« 北欧のスタイリッシュ・デザイン @ 東京都庭園美術館 | メイン | ?b とリテラシー »

June 18, 2006

博物館資料のRDF

ミュージアム資料情報構造化モデルが昨年11月に公開されて (今改訂作業も進行中)、これをもとにして RDF で博物館資料の情報を表現できるようにするっていうのを検討中なのです。で、ボキャブラリの定義とか考える中で、もちろん DublinCore とか、あと FRBR の RDF 表現なんかも参考にしてます。FRBR のやつなんかは他の語彙もうまく使いながらという感じのようですが、基本的には rdf と rdfs の語彙プラス独自の語彙で構成して、foaf や dc なんかとの関係はあとから owl を使って定義してやるという方向でどうかなと。(あ、このエントリは非公式な僕個人のメモです、念のため)

で。ミュージアム資料情報構造化モデルでは、簡単に書くための簡易記述と、詳しく書くための詳細要素が定義されてます。今現在動いてるデータベースなんかから無理なく共有できる形のものを取り出す、ということと、細かくデータを作れるならこういう要素があるといいよ、というのを組合せてるわけです。たとえば資料番号は番号だけでもいいんだけど、それがどういう番号なのかとか、いつ付けられた番号なのかとかも示せるわけです。それで、今考えてるのは、こういう場合に簡易記述では (以下デフォルトの名前空間がミュージアム資料用の語彙で、MuseumObject が対象になってるモノです)、

<MuseumObject>
  <hasObjectNumber>
    <ObjectNumber>
      <rdf:value>A-12345</rdf:value>
    </ObjectNumber>
  </hasObjectNumber>
</MuseumObject>

一方、詳細記述では、

<MuseumObject>
  <hasObjectNumber>
    <ObjectNumber>
      <rdf:value>A-12345</rdf:value>
      <hasType>収蔵品番号</hasType>
      <hasDate>1970-12-03</hasDate>
    </ObjectNumber>
  </hasObjectNumber>
</MuseumObject>

みたいにしてやれば、一貫した形にできるんじゃないかなと。それで「主たる値」には rdf:value を使うのがいいんじゃないかなーと思っているわけです。例えば資料のアイテム数を表す員数 (Quantity) の場合には、計算のための数値と人間が読むための文字列表現があるので、

<MuseumObject>
  <hasQuantity>
    <Quantity>
      <rdf:value>7</rdf:value>
      <rdfs:label>7巻</rdfs:label>
    </Quantity>
  </hasQuantity>
</MuseumObject>

みたいにして rdf:value と rdfs:label を使ってやるのがいいかと。なんだけれども、ちょっとしたメモ - Dublin CoreのRDFモデル新仕様案で言及されてる Expressing Dublin Core metadata using the Resource Description Framework (RDF)それについてのノートを読むと、この DCMI の提案って以前提案されてた方式と結構変えてきてるんですね。それで、以前のドキュメントには rdf:value と rdfs:label を使う方法が書かれてたんですが、それを dcrdf:valueString で置きかえる、と。理由は、

The use of rdfs:label or rdf:value for expressing value strings is no longer supported, as their original definitions do not clearly fit this purpose.

ということらしいのですが…。うーん、そうなのか…。そうなのか? RDF-Schema のドキュメント読んでも別に外れてるわけではないようですが…。もっと明確である必要があるってことなのかな。むー。

あともうひとつ迷ってる点。技法とか形状とか分類とかってのには、いつの日かシソーラスが使えるようになることを夢見てるんです。今は日本にはないけど。そいでですね、たとえば分類 (Classification) を考えると、今はシソーラスとか無いので

<MuseumObject>
  <hasClassification>
    <Classification>
      <rdf:value>絵画</rdf:value>
    </Classification>
  </hasClassification>
</MuseumObject>

みたいに書くのかなと。分類クラス (ややこしい。これのインスタンスは一つの分類概念ってことです) の匿名リソースがあって、その値が「絵画」と。で、特定のシソーラスを使う場合、その名前空間が exterms とすると

<MuseumObject>
  <hasClassfication>
    <exterm:Painting>
      <rdfs:label>絵画</rdfs:label>
    </exterm:Painting>
  </hasClassification>
</MuseumObject>

みたいにして、読むためには rdfs:label をつけるようになるんじゃないかという気がするわけです。そうすっと、さっきのシソーラスなしだと rdf:value で、ありだと rdfs:label っていうなんか変なことに。こういう場合って、最初のシソーラスなしの例がおかしくて、あっちでも rdfs:label に「絵画」とか書いといたほうがいい、と考えるべきなんすかね? Classification クラスのインスタンスは分類概念なんだから、それにラベルをつけるって考えるのが正しい? これが正しいような気がしてるんですが、どうなんだろう。むー。

あとあと、この hasClassification の range をどうするか。ヨソで定義された分類用語を使えるようにしておくには Classification を range にするんじゃなく rdfs:Resource を range にする必要がある、のか? (う、イマイチはっきり理解してないのが露呈した)

投稿者 ryoji : June 18, 2006 06:12 PM

トラックバック

このエントリーのトラックバックURL:
http://ryoji.sakura.ne.jp/mt/mt-tb.cgi/321