久しぶりにウェブ上の話題を眺めていたら、目に付いたのがページ作者を特定するのにdc.creator
の値としてURIを使うという話。人にURIを与えるのは構わないけれども、その人の「ホームページ」URIとその人自身のURIを混同しそうな気配が垣間見られるのが、若干気になる。
少し考えれば分かることだけれど、人間を名前づけるURIと、その人間が作ったホームページのURIは当然異なる。だから、普通こんな記述はしない。
(誤解を生む例)
<rdf:Description rdf:about="http://www.kanzaki.com/memo/2005/07/23-1">
<dc:creator>
<foaf:Person rdf:about="http://www.kanzaki.com/"
>
<foaf:nick>masaka</foaf:nick>
</foaf:Person>
</dc:creator>
</rdf:Description>
ホームページURIによって人を識別したければ、IFPとしてfoaf:homepage
などを使うのが適切だ。
(例)
<rdf:Description rdf:about="http://www.kanzaki.com/memo/2005/07/23-1">
<dc:creator>
<foaf:Person>
<foaf:homepage rdf:resource="http://www.kanzaki.com/"/>
<foaf:nick>masaka</foaf:nick>
</foaf:Person>
</dc:creator>
</rdf:Description>
ここまでは比較的明快なので、問題となるケースは少ないのではないかと思うのだが、これをDublin CoreのXHTML埋め込みで行う時、注意しないと変なことになりかねない。
(誤解を生じる例)
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /> <link rel="dc.creator" href="http://www.kanzaki.com/" />
この例が意味しているのは、作者である人物をそのホームページURIで名前づけるという最初の例そのもの。これは避けなければならない。一般にはこのケースではmeta
要素を使って名前を記述することが多いが、link
要素でURIを記述するなら、ホームページなどのネットワーク上に実際に存在するリソースのURIではなく、何か別のURIを用いる必要がある。
このとき、人物のURIは必ずしもウェブ上でアクセスできる必要はない(というより、直接アクセスできるとおかしい)。urn:pin:MK705
といったURNでもいいし、でなければhttp://www.kanzaki.com/user/masaka
など、ページとしては存在しないhttp:
スキームのURIでもよい(このあたりは、httpRange-14の話を参照)。
余り時間がないので踏み込んだ議論はしないが、この違いは非常に重要なので、せっかくページに作者を示すURIを組み込むなら、ぜひきちんと整理しておいていただきたいところだ。
- 人間のURIとウェブのアーキテクチャ (2005-07-24)
- httpRange-14あるいはhttp:型URIの適用範囲 (2005-06-22)
- Musical BatonスキーマにRDFのFAQを見る (2005-06-21)
- 時間軸を使うURIスキーム、tag:がRFCに (2005-02-25)