microformat が分からない

no extension

遅まきながら, 思い立って microformat の勉強を始めたのだが, 最初の1フィートでけっつまずいてしまった。 以下は, お勉強メモ。

そもそも何で今更 microformat を勉強しようかっちう気になったかというと, CC ライセンス・ツールが microformat に対応してるというんで「うちでも対応させてみようかな」と思ったのだが, どハマり状態に陥ってしまったのだ。 大体 CC ライセンス・ツールの吐き出すコードって明らかにおかしいよね。 例えばタイトルはこう:

<span xmlns:dc="http://purl.org/dc/elements/1.1/"
  href="http://purl.org/dc/dcmitype/Text"
  property="dc:title"
  rel="dc:type">Page Title</span>

まぁ,最初の xmlns:dc="..." はなんとなく分かる。 Dublin Core の語彙を定義してるんだろうなぁ, って感じ。 じゃあ, これって RDF なの? と思って続きを読むと href, property, rel の3つの属性が出てくる。 リテラルとしての「Page Title」も含めれば4つだ。 どれが主語(Subject)で, どれが述語(Predicate)で, どれが目的語(Object)なの? 更に読んでいくと cc:attributionName だの cc:attributionURL だの cc:morePermissions だの正体不明の語がたくさん出てくる。 それらの語を定義しているらしい xmlns:cc="..." のリンク先を見ても, そんな怪しげな語は定義されていない。 この時点で私は完全にパニック状態になってしまった。

後で分かったことだが, 上の例が分かりにくいのは2つの文(Statement)が span 要素の中で混ざっているからのようだ。 文法間違いを承知で敢えて書くなら, 以下のように分解すれば少し分かりやすくなる。

<link rel="dc:type"
  href="http://purl.org/dc/dcmitype/Text" />
<span property="dc:title">Page Title</span>

他の怪しげな語については以下の記事が参考になる。

いずれにしろ CC ライセンス・ツールの吐き出すコードは正しくないっぽい。 ここは腹を括って microformat の勉強をしたほうがよさそうだ。

ふむ, どうやら microformat には elemental microformatcompound microformat の2種類あるらしい。 有名な rel-nofollowrel-licenseelemental microformat で, hReviewcompound microformat か。 先ほどの CC ライセンスの microformatelemental microformat のようだ。 そういえば, CC ライセンスのコモンズ証にも microformat が仕込まれているけど, こちらは compound microformat っぽい。 構造がよく見えないけど。

基本的に microformat は意味(Semantics)を構成しない。 要素に属性を付加するだけのものだ。 そこに意味を見出すためには何らかの解釈を与える必要があるが, その解釈を microformat 側が定義することはない。 (ただし compound microformat は意味を構成するように設定できるが, ここでは置いておく)

例えば rel-nofollow は最初 Google が提唱し(だよね?), 今やすっかり普及している microformat だが, かつてその解釈をめぐって議論があったらしい。 また rel-license はヘッダの link 要素にのみ使われているうちはよかったが, body 内の a 要素などに使われだすと混乱することになる。 それが指し示す主語が分からないからだ。 実際, a 要素などに使われる rel-license の主語が何であるか (ページ全体なのかページ内のある一部のコンテンツなのか)は文脈による。

microformat を解釈するのは人ではなく機械である。 機械が解釈するのであれば, それは論理的かつ外部とも整合がとれているものでなければならない。 というわけで, 次は GRDDL について勉強してみるか。