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によって出力されるレポート

なお、OptimusはGoogle Codeにてオープンソースとして公開されています。

Optimusサーバー上で利用することもできますし、自分のサーバー上にインストールして実行することも可能です。

その他のツール

その他にも、マイクロフォーマットのパースツールはたくさんあります。例えば、RDF、vCard、iCalendar、Atom、KMLなどに変換可能な「Cognition」や、PHP5製パーサ「hkit」、Javascript製パーサ「Sumo」、Ruby製パーサ「Mofo」、Python製パーサ「AUMP」などが代表的なツールとして挙げられるでしょう。