前回は、タグで文書の相互リンク構造を表現するコンピュータ言語であるHTMLについてまとめた。ここでは、リンクの詳細やイベント情報を表現できる microformats について説明する。
1 シンプルなセマンティックWeb
microformatsは小文字のセマンティックWeb(semantic web)を実現するとされている。それは、従来の大文字のセマンティックWeb(Semantic Web)に比べて軽量であることを強調するためである。
2 セマンティクス(意味論)とは
セマンティクス(Semantics)とは意味論と訳される。ここでは、言語学、プログラミング言語、Webの3つにおける意味論についてまとめる。
言語学における意味論
もともと意味論は言語学の用語である。言語学における意味論とは、言語が持つ意味を扱うことである。
プログラミング言語における意味論
プログラム意味論とは、コンピュータの分野においてプログラミング言語が持つ意味を確定させるための理論のこと。プログラミング言語の仕様書では、言語の意味論を形式的な数理モデルで表現する。
Webにおける意味論
Webにおける意味論とは、リソースが持つ意味を確定させるための理論である。HTMLなどで表現したテキストがどのような意味を持つのかを、プログラムでも解釈できるようにすることが目的である。つまり、Webにおける意味論とは、HTMLやXMLで書かれたリソースの意味をどのようにプログラムから処理するか、に尽きる。
3 RDFとmicroformats
RDFの場合
RDF(Resource Description Framework)とは、プログラムで処理可能な情報の意味を記述するための仕様として1990年代後半に登場したものである。RDFではトリプル(Triple)と呼ばれる主語、述語、目的語の3つの組を使って、Web上のリソースにメタデータを与え、プログラムがリソースの意味を処理できるようにする。しかし、RDFは記述が複雑になりがちで統一的な記述がしづらく、対象データとは独立したメタデータが必要であったため、ほとんど普及しなかった。
microformatsの場合
RDFの問題点を解消した技術が microformatsである。microformatsとは、HTML文書そのものにメタデータを埋め込む技術である。もとのHTML文書の<a>要素に必要最低限の情報を追加しているだけなため、記述量も少なくなっている。
4 microformatsの標準化
microformatsは「より簡単に、もっと気軽にWebページのセマンティクスを記述できるようにしよう」という目的のもと、microformats.orgにて、Technoratiのエンジニアを中心としたボランティアが様々なメタデータ記述の仕様を策定している。以下に標準化が完了したmicroformatsの一覧を載せる。
- hCalendar:イベント情報。ベースはRFC 2445(iCalendar)
- hCard:プロフィール情報。ベースはRFC 2426(vCard)
- rel-license:ライセンス情報
- rel-nofollow:スパムリンク防止
- rel-tag:ソーシャルタグ
- Vote Links:リンク先への賛否
- XFN(XHTML Friends Network):友人関係
- XMDP(XHTML Meta Data Profiles):microformats自体のスキーマ
- XOXO(Extensible Open XHTML Outlines):アウトラインフォーマット
5 microformatsの分類
microformatsは、elemental(単純)microformats と compound(複合)microformatsの2つがある。前者は、rel-licenseのように、リンク関係(<a>要素や<link>要素のrel属性)を使ってメタデータを表現するフォーマットである。後者は、後述するhCalendarのように、主にclass属性を使って階層構造のあるメタデータを表現するフォーマットである。
elemental microformats
rel-licenseは、Webページのライセンスを記述するためのmicroformatsである。rel-nofollowは、スパムリンクを防止するためのmicroformatsである。
compound microformats
hCalendarは、カレンダー情報、イベント情報を記述するためのmicroformatsである。hAtomは、Atomが持つメタデータ(更新情報)をHTMLに埋め込むmicroformatsである。hAtomが定義しているclass属性の値には以下の9つがある(※は必須)。
- hfeed:feed。フィード全体
- hentry(※):entry。個々のエントリ
- entry-title(※):entry/title。エントリのタイトル
- entry-content:entry/content。エントリの内容
- entry-summary:entry/summary。エントリの概要
- updated(※):entry/updated。エントリの更新日時
- published:entry/published。エントリの公開日時
- author:entry/author。エントリの著者
- bookmark:entry/link。エントリへのリンク
6 microformatsとRDFa
microformatsの問題点
同じ値のclass属性やrel属性を持ったWebページがあった場合、プログラムが誤判定を起こしたり、同じ属性値を持った別のmicroformatsが作れなくなったりする。
RDFaでの解決(と残る問題点)
RDFa(RDF-in-attributes)を用いることで、microformatsが持つ名前の衝突問題をXMLの名前空間で解決することができる。しかし、複雑化してしまう点が問題なため、ほとんどのケースではmicroformatsで目的を果たすことができるといえる。
7 microformatsの可能性
Tim Brayの疑問
「もしmicroformatsを使った現実的なアプリケーションが出てきたら、そのときに評価しよう」
hAtom/xFolkとLDRize/AutoPagerize
hAtom/xFolkとは、Webページをlivedoor Readerのような操作性で閲覧できるFirefox/Greasemonkeyのユーザスクリプトである。AutoPagerizeも同様のユーザスクリプトで、検索結果ページやニュース記事など複数に分割されているWebページにおいて、現在のページの下に自動で次のページを継ぎ足してくれる。LDRizeやAutoPagerizeは、hAtomやxFolkというmicroformatsが提供するメタデータを使ったアプリケーションである。Greasemonkeyのユーザスクリプトという「プログラム」がHTML文書を解釈し、ページ送りを画面遷移なしに実現している。
8 リソースの表現としてのmicroformats
microformatsは、プログラム用に別のWeb APIを提供するスタイルにある以下の3つの弱点を補ってくれるリソース表現である。すなわち、1)WebサービスとWeb APIで提供する機能が異なってしまいがちである、2)開発規模の増大に伴うメンテナンス性の低下、3)Web APIに必要な技術の習得コストである。その結果microformatsを用いると、既存のWebページをそのままWeb APIとして提供できるのである。
最後に
microformatsを用いると、既存のWebページをそのままWeb APIとして提供できる。また、microformatsはHTMLの知識を持っていれば容易に習得することができる。このように、必要最低限のコストでWebサービスをWeb API化できるのがmicroformatsの最大の特長である。
次回は、ブログなどの更新情報を配信するためのフィードが基本であるAtomについてまとめる。
![]() |