ちょっとしたメモ

AtomとGRDDLとSemantic SDO

Sam RubyのウェブログでGRDDLについて触れていた。これ自体AtomをXSLT経由でRDFにするひとつの標準になりうる方法として注目されるのだが、興味深かったのはIBMのJames Snellが加えたコメントで紹介されていたSemantic SDOというツール/手法だ。

In the IBM Emerging Technologies Toolkit version we just released, there is a demo technology called "Semantic SDO" in which we demonstrate that it is entirely possible to use the RDF model without requiring instance data to ever be in the RDF XML syntax. All you need is a data model, a mapping between your XML Schema and the data model, and a processor intelligent enough to understand 'em and you can get the benefits of RDF without the need to convert everything to RDF.

SDOはBEAとIBMが提唱しているデータ処理の統一モデルだが、これは基本的にStructural Data Models、つまりデータの構造的なシンタックスをベースにしている。このモデルでは、意味が同じでも構文が異なると全く別のものとして扱うことになるので、Structural Modelの「意味」をRDF/OWLを使ってマッピングでしようというのがSemantic SDOだ。これを利用して、AtomとRSS 1.0を対応づけることができるというわけ。

仮に、Atomの名前空間URIを http://purl.org/atom/ns# として、entry要素とRSS 1.0のitem要素の関係は次のように記述できる。

(例)

<owl:Class rdf:about="http://purl.org/atom/ns#entry">
 <owl:sameAs rdf:resource="http://purl.org/rss/1.0/item"/>
 <sdo:pathPromRoot>feed/entry</sdo:pathPromRoot>
</owl:Class>

owl:sameAsを用いてatom:entryrss:itemと同等であることを示しているわけだが、面白いのはsdo:pathPromRootという仕組みで、この意味定義をStructural Modelに結びつけているところだ。Semantic SDOは、Structural Modelから得られる構造は内部的にそのまま保って、意味マッピングからでも、構文モデルからでも、どちらを使っても簡単にデータにアクセスできるのだという。

マッピングのためのOWLを記述しておけば、RDFではないXML文書でもRDFモデルのメリットを生かすことができる。Atomに限らず、様々な面で応用できそうな技術だ。

関連メモ: