ちょっとしたメモ

Dublin CoreのRDFモデル新仕様案

ダブリン・コアRDFで使う時のモデルを定めるExpressing Dublin Core metadata using RDFの草案が公開されている。注目すべきは、いくつかのケースを除いて、プロパティ値(目的語)としてリテラルが認められなくなっているところ。具体的に言えば、<dc:creator>神崎正英</dc:creator> という記述は不可で、目的語は<foaf:Person>などのエンティティにしなければならなくなる。RSSをはじめとする現在のRDFデータにかなり大きな影響が出るのは必至だ。

例外としてリテラルを目的語にできるのは、大まかにまとめると (1)値となるのが一つの文字列だけ;(2)そのEncoding Scheme(クラスに相当)がデータ型もしくはrdfs:Literal;(3)RDFのリテラルとして矛盾無く記述できる(たとえばデータ型と言語タグの両方を持っていたりしない);といった条件を満たす場合とされている。目的語のクラスが何かというのは、並行して定義しようとしている各プロパティの値域(rdfs:range)が固まらないとはっきりしないのだが、今の案を見る限りでは、基本15プロパティで条件を満たすのは、

  • title(プレーンリテラル、オプションで言語タグ付き)
  • date(xsd:date、xsd:dateTimeなどの型付きリテラルとして)
  • language(xsd:languageの型付きリテラルとして)
  • identifier(xsd:anyURI、dcterms:URIなどの型付きリテラルとして)

の4つに過ぎない。dc:creatorのみならず、dc:subjectもキーワードを直接書けないことになる(どうにも変なのはdc:descriptionのケースで、今のところ値域がNonAgentResourceとされているから直接リテラルは書けない)。簡単に例を示すと、次のような具合だ。

(例)

<rdf:Description rdf:about="http://www.kanzaki.com/memo/2006/06/04-1">
 <dc:title>Dublin CoreのRDFモデル新仕様案</dc:title>
 <dc:date rdf:datatype="&xsd:date">2006-06-04</dc:date>
 <dc:creator>
  <foaf:Person>
   <dcrdf:valueString>神崎正英</dcrdf:valueString>
  </foaf:Person>
 </dc:creator>
 <dc:subject rdf:resource="http://del.icio.us/tag/rdf"/>
 <dc:description rdf:parseType="Resource">
  <dcrdf:valueString>DCの新しいRDFモデルについて検討する。</dcrdf:valueString>
 </dc:description>
</rdf:Description>

目的語をリテラルと扱わないのに文字列値があるときはdcrdf:valueStringというプロパティを使ってグラフを追加する(rdf:valuerdfs:labelを置き換えるものだと説明されている)。foaf:Personとしながら名前にfoaf:nameを用いないあたり、元々のモデルに由来する矛盾が凝縮されているような気はする。dc:descriptionは、いくら何でもこのままの形になることはないだろうが。

dc:creatorなどの値がリテラルではおかしいというのは、ずっと前からある話で、考え方としてはDCの抽象モデルに基づくこの草案が望ましいのは明らかだ。問題は、今というタイミングが遅すぎるのか、今後を考えればまだ今からでもやっておくべきかという判断だろう。語彙を既にいろいろなところで使っている立場からすると、何を今更というのが率直なところだが、10年先を考えたらどうかというのは、なかなか難しい。6月27日までがコメント募集期間となっているので、思うところのある人はDCMIにぜひ意見を。

なおこれは、「だからRDFってやつは」という話ではなくて、一般のXMLにも関係してくる。別の草案、Expressing Dublin Core metadata using XMLがやはり公開されており、こっちでは文字列は例外なくvalueStringというタグで囲むことになるようだ。つまり、タイトルですら、

(例)

<dc:title>
 <dcx:valueString>Dublin CoreのRDFモデル新仕様案</dcx:valueString>
</dc:title>

と書かなければならない模様。こちらの草案はあまり読み込んでいないので、真意は測りかねるが、はたして受け入れられるものなんだろうか。

関連メモ:
genre: rdf. at