RDFa Lite 1.1の仕様を読んだが忘れそうなのでメモ:
- a は in attributes から。
- 使う属性は、vocab, typeof, property, resouce, prefix の5つだけ。
- vocal の値にボキャブラリー仕様のURLを書く。スコープ内ではそのボキャブラリーを使う。例: vocab="http://schema.org/"
- typeOf でボキャブラリー内で定義されている型名を指定する。その要素の型は指定した型のデータと解釈される。例: typeOf="Person"
- 指定した型はいくつかのプロパティを持つはずだから、プロパティ名を property で指定する。例: property="name"
- propertyを指定した要素のどの部分からデータを抽出するかは別にコンベンションが必要。要素内容、属性値、子要素を見に行く、など様々。
- resource で記述要素〈description〉のIDを指定する。記述対象のIDではない。記述対象のURLが何であるかは、ボキャブラリー=スキーマのプロパティ定義により決まる。
- resource の値はXMLのID値ではなくて、通常は相対URLで、ハッシュからはじまる。resoruce いらなくね?
- prefix は、Turtle の @prefix と同じことをする。そのスコープ内で使える接頭辞を定義する。属性値は、接頭辞、空白、URL という構文。区切りに空白が入る点に注意。
これも「何に対する記述」がわからない。おそらく、ボキャブラリー内に記述対象のURLを書くプロパティが準備されていて、そのボキャブラリー定義プロパティを使って対象物を示すのだろう。
記述リソースとしての要素のIDでいいなら、resouceは要らないと思う。
vocab + typeof で、型名のグローバル名が得られる。その仕様に従って、プロパティを記していけばよい。問題になるのは、プロパティ値をどう抽出するか? プロパティごとにとかだとだいぶ鬱陶しい。パス言語/ポインター言語でプロパティ値の取り出し方を記述する手はある。
JSON形式なら:
- property は不要となる。実際のプロパティを使えばよい。
- prefix の構文は必要。JSON-LD の @context か。
- vocab + typeOf は必要。@vocab, @type かな。
- @vocab でボキャブラリースキーマ仕様の URL を書いて、@type で自分の型≒記述対象の型を書いて、必要なら @contexg で名前マッピングテーブルを作る、という使い方か。