ちょっとしたメモ

作者を表すURIとホームページのURI

久しぶりにウェブ上の話題を眺めていたら、目に付いたのがページ作者を特定するのに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を組み込むなら、ぜひきちんと整理しておいていただきたいところだ。

関連メモ: