メタ情報をXHTMLに埋め込むRDFa
6月20日に、RDFa構文仕様の勧告候補が公開されました。順調に進めば、今年中にも勧告されるのではないかと予想しています。
さて、勧告となってはいないものの、試験的にWeb標準仕様 日本語訳一覧にRDFaを導入してみました。今回はこのページをサンプルに、簡単なRDFaの解説をしようと思います。
RDFaとは
RDFaは、メタ情報をXHTMLで表現する仕様です。RDFをデータモデルに用いることで、より柔軟で多彩なメタ情報を埋め込むことができます。メタ情報を埋め込む方法は何通りかありますが、もっともシンプルなものは、従来のmeta/link要素による指定とほぼ変わりません。
たとえば、ページの説明を記述するとき、XHTMLやHTMLではこう記述します。
<meta name="description" content="ページの説明" />
RDFaでは、新しく導入されたproperty属性を利用し、次のように記述します。
<meta property="dc:description" content="ページの説明" />
name属性を併記し、検索エンジンにもRDFクライアントにも理解できるXHTMLとすることも可能です。
しかしながら、このようなシンプルな指定であれば、特にRDFaを利用するメリットを見出せません。RDFaは従来のmeta要素やlink要素と、どのような点において異なり、また優れているのでしょうか。
文書以外のリソースにもメタ情報を
meta要素やlink要素で指定できるのは、基本的に要素が指定されたHTML文書のメタ情報のみです。このため、他のページに関する情報や、人などのリソースについて、メタ情報を記述することはできません。
しかし、RDFaでは、当該文書以外のリソースについてもメタ情報を与えられるようになっています。
たとえば、日本語一覧のページにはページの作成者である私という「人」と、公開をしているミツエーリンクスという「組織」に関するメタ情報を記述しています。
<link rel="foaf:maker" resource="[_:myakura]" />
<meta about="[_:myakura]" property="foaf:name" content="矢倉 眞隆" />
<link rel="dc:publisher" resource="[_:mitsue-links]" />
<meta about="[_:mitsue-links]" property="foaf:name" content="株式会社 ミツエーリンクス" />
<link about="[_:mitsue-links]" rel="foaf:homepage" href="http://www.mitsue.co.jp/" />
新しく導入されたresources属性とabout属性を利用し、「何に対するメタ情報なのか」を部分的に変更しています。
文書内の情報
RDFaで追加される属性は、head要素のみに限定されません。body要素内の情報についても利用可能です。日本語訳一覧はこれを利用して、原文と日本語訳の関係をマークアップしています。
<div about="http://standards.mitsue.co.jp/resources/w3c/TR/2008/WD-html5-diff-20080610/"
typeof="foaf:Document">
<h3>HTML 5 における HTML 4 からの変更点</h3>
<p rel="vtr:isTranslationOf">原文:
“<a href="http://www.w3.org/TR/2008/WD-html5-diff-20080610/">HTML 5
differences from HTML 4</a>”</p>
<p rel="vtr:prevVersion">旧版訳:
<a href="/resources/w3c/TR/2008/WD-html5-diff-20080122/">2008年1月22日版</a></p>
</div>
文章にもマークアップを施すことにより、より意味のある情報を公開することができるようになります。
RDFaをサポートするツールやサービス
RDFaの策定は数年前から始まっており、いくつかのツールがすでに公開されています。W3CのValidatorも、XHTML+RDFaによる文書の検証を行うことができます。また、RDFを抽出するためのRDFa Distillerも公開されています。
サービスにおいても、先日公開されたYahoo!のSearchMonkeyが、microformatsとともにRDFaをサポートしています。
RDFa vs. microformats?
RDFaは柔軟にメタ情報をXHTML文書に埋め込むことができます。しかしながら、よりリッチな情報を埋め込もうとすればするほど、記述しなければならない要素や属性が増えてしまいます。また、RDFの基本や属性の使い方を学ぶ必要もあり、手間がかかってしまいます。
このため、RDFaはmicroformatsとよく比較されます。つい先日も、BBCがアクセシビリティ・ユーザビリティ上の懸念から、Webサイトで配信していたhCalendarの配信を中止したことで、「RDFa対microformats」という構図で論戦が行われました(“The War of the Worlds”)。
microformatsはRDFaのような正確性を完全に保証するわけではありませんが、充分に機能します。利用できる範囲においては、microformatsのほうが現時点ではより多くのメリットを享受できる可能性が高いと思われます。
しかし、RDFaとmicroformatsは排他的な関係にあるわけではありません。たとえば、microformatsで対応できる部分はそちらを利用し、microformatsにはない語彙がある場合はRDFaを利用することもできます。