ちょっとしたメモ

profile属性でのGRDDL指定

DominiqueのメッセージGRDDL demo now does per-profile transformationで、「GRDDLによる変換をprofile属性だけでも指定できるようにした」とアナウンスされている。これは、個別の文書にlink要素でスタイルシートを設定しなくても、profile文書経由で適用するXSLTが分かるようにするというもの。独自のprofileを用意して文書を作成していれば、個別文書に手を加えなくても、profile文書ににXSLT適用のための定義を追加するだけで、GRDDLによるメタデータ抽出が可能になるというわけだ。

具体的な例としては、W3Cのホームページのような形でRSSを抽出するマーク付け(item, headline, dateなどのクラスを用いる)をしていれば、そのプロファイル http://www.w3.org/2000/08/w3c-synd/# をhead要素のprofile属性に加えるだけでよい(GRDDLのプロファイルは不要)。別の例としては、XFNのマーク付けからメタデータを抽出するプロファイル http://www.w3.org/2003/g/td/xfn-workalike がDan Connollyによって試作されている。

自分でプロファイルをつくるならば、次のようにしてRDDLを使った定義を行い、そのプロファイル自身に、XSLTのURIを取り出すためのGRDDLを適用できるようにしておく。

(例)

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:rddl="http://www.rddl.org/">
<head profile="http://www.w3.org/2003/g/data-view">
 <title>The Web KANZAKI - XHTML profile</title>
 <link rel="transformation"
    href="http://www.w3.org/2003/12/rdf-in-xhtml-xslts/grokRDDL.xsl" />
...
<p>このプロファイルは、GRDDLでメタデータを抽出するための
<a rddl:nature="http://www.w3.org/1999/XSL/Transform"
   rddl:purpose="http://www.w3.org/2003/g/data-view#profileTransformation"
   href="http://www.kanzaki.com/parts/xh2rdf.xsl">XSLTスタイルシート</a>
を指定しています。</p>
...

RDDLは名前空間やプロファイルのURIに対応するドキュメントに、人間が読める文書(XHTML)と同時に、そのURIに関連するリソース(名前空間URIならその語彙を定義するスキーマなど)を合わせて記述する仕組みで、rddl:natureでそのリソースの性質、rddl:purposeでその働きを示すようになっている。ここでは、GRDDLによるメタデータ抽出を行うXSLTを記述するので、rddl:natureがXSLT、rddl:purposeがprofileTransformationになるわけだ。リソースそのもの(この場合はXLSTスタイルシート)は、href属性で示す。

プロファイル定義は若干面倒だが、一度つくってしまえば、あとはprofile属性にそのURIを書くだけというのは便利な方法だ。例えば、上記のようなプロファイルをXHTML文書に適用すると、GRDDLを使ってメタデータを抽出することができる。

関連メモ:
genre: rdf. at