2005 年 8 月の履歴(もしくは日誌)


2005 年 8 月

8 月 15 日

microformats についての誤解と,ぼくが理解している範囲

microformats って一体なんだ? という問いに対して,XFN などの具体的なものを例にしてこんなものだよって説明するのは簡単だし分かりやすそうです.でもその結果として,
<a href="example.com/">example</a>
って書いていたのを
<a rel="example" href="example.com/">example</a>
って書くようにしたのを microformats だよっていうような,誤解がひろがっているんぢゃないかなって不安になりました.ぼくも良くわかっていないので人に説明するレベルではないと思っているのですが,とりあえずぼくが理解している範囲を整理しておこうかなって思います.つっこみ大歓迎です.

まず RDF を使った Semantic Web っていうものがあります.RDF はとても応用範囲が広く,統一的な方法でいろいろなものを意味付けしていくことができます.HTML 文書は画像ファイルをデータとしたら,そのデータのデータつまりメタデータを RDF で表現して既存の HTML 文書や画像ファイルにメタデータとして意味を付加して行きます.このメタデータは意味をコンピュータが処理できる形で記述するので,例えば検索エンジンでメタデータを利用したら検索は単純な文字列マッチングではなくて,意味を処理した検索ができるようになると...

でも,RDF はいいとして,もっと特定の問題について簡単にできないかなっていう話が出て来ました.HTML 文書と別に RDF を用意するのではなくて HTML でマークアップする時に,文書構造だけでなくちょっとした意味もマークアップできなかなっていう話.順番がどうなっているのか良くわかっていませんが XFN っていうのが出て来ました.はじめは RDF を使った Semantic Web に対して小文字の semantic web と紹介されていた XFN などのアプローチは,後に microformats と呼ばれるようになったようです.

例えば XHTML 文書の中で,友達について話題にする時にその人の名前の部分をハイパーリンクにして
<a href="http://sususmu.cup.com/">すーさん</a>
と記述するのは,今まで普通に行われて来たと思います.友達についてのメタデータとして Semantic Web なら FOAF を使って記述するなどの方法がありますが,もっと簡単にってことで XFN では
<a href="http://sususmu.cup.com/" rel="friend met">すーさん</a>
のように記述します.この方法の利点は以下のようなものがあります:

  • RDF/XML で FOAF を記述のように,HTML 文書とは別の独立した記述をしなくてよい
  • RDF での記述と比べると,非常に簡単に記述できて,記述する量も少ない
  • 記述形式と意味付けをきちんと定義しておけば,メタデータの抽出を自動化できる
  • 従来の HTML の決まりの範囲で記述できる

HTML/XHTML では rel 属性の値はあらかじめ決められたもの以外を使う場合は,profile を用意する事になっています.XFN は人間関係を表現するのが目的で,その profile は http://www.gmpg.org/xfn/11 にあります.そして profile は <head profile="http://www.gmpg.org/xfn/11"> のように head 要素の profile 属性で指定します.XFN の profile は XMDP という profile の記述の規格があって,それにそった記述がされています.

  • rel 属性値の拡張には profile が必要である
  • profile は head 要素の profile 属性で定義する
  • profile で microformats の意味付けを定義する
  • 記述形式を定義する
参考:

それでさらに microformats であるなら,一度「意味付けと記述書式」を決めたら,それが他での使い回す事ができないと意味がありません.限定された問題を解ければ良いとはいっても,特定の問題にしか対応できないほど限定してたら駄目なのです.

で,誤解の例としてはこんなのがあります:

<link rel="hatenab" href="http://b.hatena.ne.jp/onohiroki" />
<a rel="hatenab" href="http://b.hatena.ne.jp/onohiroki">僕のブックマーク</a>です

rel 属性値は profile で定義してそこで意味付けをします.上の例では a 要素で rel 属性値 hatenab とある場合は href が指す URI ははてなブックマークであるってことになるのかな? こういう形なら,profile であらゆるオンラインブックマークサービスなどに対応した rel 属性値をあらかじめ決めなくちゃ駄目ですよね.そうではなくてオンラインブックマークサービースだという属性値を定義しないと.だから hatenab でなく bookmark とかね.

ちなみに標準で rel 属性値に Bookmark って定義されていますよね.

[削除 2005-08-17:これは microformats でもなんでもないけど,ふつうに rel="Bookmark" 使ってこれでいいぢゃん:


<link rel="Bookmark" href="http://b.hatena.ne.jp/onohiroki" title="はてなブックマーク" />

]

上の「Web らしく URI で連携する方向」での話題で「<a rel="mixi" href="http://mixi.jp/view_profile.pl?">mixi</a>も使ってるよ。」なんてのは,microformats としての条件を満たしていないと思うっていうのは,つまりそういうことです.profile を定義するということを意識していないから rel 属性値をどうするかというところで間違えるのではないでしょうか.profile を定義することと,その profile が他で応用できるようにするということを考えないとダメだと思うのです.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050815n1 TrackBack