ちょっとしたメモ

FoaF ExplorerとRDFスキーマ

セマンティック・ウェブの理念は結構だけど、今の時点で実装が伴わないからやっぱり信じられないというのはよくある話。語彙をsubClassOfなどで関連づけるといったって、アプリケーションはRDFスキーマの定義なんて参照してないでしょ、ということかな。でも実は、例えばFoaF Explorerあたりは、ちゃんとスキーマ情報を利用していたりする。

FoaF ExploerはFOAFファイルの記述内容を定義型リストで表示するわけだが、そのdt要素に示されるのは、必ずしもクラスやプロパティのローカル名というわけではない。たとえばfoaf:mboxは、mboxではなくて、personal mailboxと示さる。これは、FoaF Exploerにそういう表示方法がハードコーディングされているわけではなく、FOAFのスキーマ定義の、rdfs:labelを参照して表示しているのだ。さらに、ここにはXHTMLのtitle属性rdfs:commentの内容が埋め込まれている。だから、title属性に反応するブラウザを用いれば、この項目名に対して A personal mailbox, ie. an Internet mailbox associated with... といった説明がポップアップしたり、ステータス行に表示されたりするはずだ。

FoaF ExploerがFOAFのスキーマを頭に入れているのは当たり前? ところがこいつは、知らない語彙でもスキーマがあればちゃんと解析している。たとえば、当サイトの今後の演奏会予定というファイルをFoaf Explorerで表示してみると、そこには独自のPerformerだとかProgramといった語彙が並ぶ。一見するとプロパティのローカル名を表示しているだけにしか見えないのだが、title属性でその説明(rdfs:commentの内容)が示されることから、やはりmusic vocabularyのスキーマを読んでいることが分かる(※スキーマ定義を書き換えたら、新しく追加したり変更した語彙はすぐには反映されなかった。ある時点で解析したものをキャッシュしているようだ)

FoaF Exploerは人間のために表示するツールだから、とりあえずrdfs:labelrdfs:commentを利用しているわけだけれども、rdfs:subClassOfなどについても基本的には同じこと。もちろんこちらはさらに別のスキーマを読む必要があり、毎回リアルタイムで連鎖を辿っていては効率が悪いから、定義をパースしたらキャッシュしておくとか、あるいはそういう定義・関連を蓄積したサービスを使うなどの工夫は必要だろう(rdfs:subClassOfを辿っていけば“マシンが意味を理解できる”のかというところは、AIや哲学の問題になってくるので、ここでは深入りしない)。

RDFのメリットのひとつに、異なる語彙を混在させられるという点がある。単に混在させるだけなら、XML名前空間を使えば済む話だが、RDFでは別の語彙を予備知識がなくてもそれなりに“意味あるもの”として利用する仕組みが用意されているところが重要だ。まだ目立たないレベルではあるものの、こうした特徴・利点を実装する試みは、行われているんです。

関連メモ: