Webアプリケーション開発者の間で注目を浴びている技術の一つに「マイクロフォーマット」がある。
マイクロフォーマットは既存のHTML、XHTMLに標準の記法でメタデータを与えることができる技術だ。
例えば、HTMLで筆者の名前「菊池崇」を普通にマークアップすると、以下のようになる。
<p>菊池崇</p>
それに対し、マイクロフォーマットを利用する場合は、次のようなかたちで記述する。
<p class="vcard">
<span class="fn n">
<span class="family-name">菊池</span>
<span class="given-name">崇</span>
</span>
</p>
すなわち、どの部分が苗字で、どの部分が名前なのか、といった情報まで細かくマークアップすることができるのだ。
このように簡単なマークアップで詳細なメタデータを与えることができるマイクロフォーマットだが、そのメタデータを取り出す処理を実装するとなると、やはり煩雑なコーディングプログラムが必要になる。ただし、最近ではそれ専用のツールがかなりの数公開されており、それらを利用すれば、Webサイトの情報を抽出して各種アプリケーションに取り込む、といったことも非常に簡単に行える。
そこで、6月に開催したWeb開発者向けイベント『SwapSkills for the Happy web weekend』(主催: ActLink)において講演した"マイクロフォーマットの権威"John Allsopp氏に、マイクロフォーマット対応ツールについて聞いたので、以下では、氏の言葉を借りながら、代表的なツールの概要とその使い方をお伝えしよう。
――(X)HTMLからマイクロフォーマットを抽出するツールはどのようなものがあるのか?
すでに、マイクロフォーマットをパースをするツールはたくさん提供されています。種類も豊富で、マイクロフォーマットの多様なフォーマットに対応する汎用ツールもあれば、マイクロフォーマットの中のさらに特定のフォーマットのみをターゲットにしたツールもあります。
それらのツールには大きく分けてサーバー上で動作するものと、ローカルで動くものと存在します。今年6月にリリースされたFirefox3にも既に、マイクロフォーマットを抽出するJavascriptのAPIが搭載されています。
以下、代表的なツールを2つほどご紹介しましょう。
X2V (開発者: Brian Suda)
1つ目は「X2V」です。
X2Vは、マイクロフォーマットの一種である「hcard」や「hcalendar」を、各種メールクライアント/スケジュール管理ソフトで使用されている汎用フォーマット「vcard」や「iCalendar」に変換するツールです。Web上の情報をデスクトップアプリケーションに取り込む際などに非常に重宝します。
使用法は非常に簡単で、以下のように、変換アプリケーションを呼び出すURLの後に、マイクロフォーマットを含むWebページのURLをパラメータとして指定するだけです。
http://suda.co.uk/projects/microformats/hcalendar/get-cal.php?uri=《対象WebページのURL》
開発者であれば、工夫次第で、X2Vを使ってさまざまなサービスを生み出せるはずです。例えば、hcardやhcalendarで記載されたイベント情報をオンラインのカレンダーやアドレス帳に取り込めるようにするというのもよいでしょう。
Optimus (開発者: Dmitry Baranovskiy)
続いて紹介するのは「Optimus」です。
Optimus は数多くの機能を備えています。X2V同様、Webページ上のマイクロフォーマットをパースして各種フォーマットに変換することも可能です。ただし、同機能に関しても、出力フォーマットの種類はX2Vとは異なります。具体的には、XML、RSS、JSONという、開発者に馴染みの深いフォーマットになります。
また、Optimusはマイクロフォーマットのデバッガツールとしても使用することができます。自分で記述したマイクロフォーマットが正しいかどうかを確かめるのは難しいものです。しかし、Optimusを使うと、記述ミス部分がレポートとして出力されるため、問題個所を容易に発見することができます。
なお、OptimusはGoogle Codeにてオープンソースとして公開されています。
Optimusサーバー上で利用することもできますし、自分のサーバー上にインストールして実行することも可能です。
その他のツール
その他にも、マイクロフォーマットのパースツールはたくさんあります。例えば、RDF、vCard、iCalendar、Atom、KMLなどに変換可能な「Cognition」や、PHP5製パーサ「hkit」、Javascript製パーサ「Sumo」、Ruby製パーサ「Mofo」、Python製パーサ「AUMP」などが代表的なツールとして挙げられるでしょう。