Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

3. RDF/XMLの厳密な構文(1)

第2章では RDF/XML構文 の簡単な例をいくつか紹介しました。1つのグラフに対して1つずつ RDF/XML構文 を紹介してきましたが、実際には同じ意味構造を表現するためにも複数のグラフ表現や RDF/XML記述方法 があります。ここでは RDF/XML におけるグラフの生成規則を紹介します。

第2章でも説明したように、 RDF のモデルは主語S、述語P、目的語Oからなり、SとOをノード、Pをこれらをつなぐ矢印(アーク)とする有効ラベル付グラフとして表現されます。この3つ組みの情報を RDFトリプル と呼びます。Oがそれ自身リソースであることも許され、その場合にはノードとアークを連続してつなげることができます。たとえば次のような RDFグラフ を考えます。

図1
図1

このRDFグラフは、次の5つに分けることができます。

  1. ノード要素-URI参照 (http://tech.4dd.co.jp/ )
  2. アーク-URI参照 (http://tech.4dd.co.jp/example/creator)
  3. ノード要素--URI参照なし
  4. アーク-URI参照(http://tech.4dd.co.jp/example/comeFrom)
  5. ノード要素-URI参照 (http://tech.4dd.co.jp/example/Kyoto)

これを XML で表すためには、ノードであることを表す rdf:Description要素 とアークを表すプロパティ要素を交互に子要素として記述します。ノード要素とプロパティ要素が縞模様のように交互に現れることから「ストライピング」と呼ばれます。 XML表記 は次のようになります (例1以降は名前空間を省略して主要部分のみを記述します)。

例1
<?xml version="1.0" encoding="Shift_JIS"?>
<rdf:RDF
   xmls:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmls:4dd="http://tech.4dd.co.jp/example/">
   <rdf:Description rdf:about="http://tech.4dd.co.jp/">
      <4dd:creator>
         <rdf:Description>
            <4dd:comeFrom>
               <rdf:Description
                 rdf:about="http://tech.4dd.co.jp/example/Kyoto">
               </rdf:Description>
            </4dd:comeFrom>
         </rdf:Description>
      </4dd:creator>
   </rdf:Description>
</rdf:RDF>

ひとつのノード要素から複数のアークが出ている場合は、主語となるノード要素の子としてプロパティ要素を列挙します。

図2
図2

例2
<rdf:Description>
   <4dd:comeFrom rdf:resource="http:tech.4dd.co.jp/example/Kyoto" />
   <4dd:name>Taro,Yojigen</4dd:name>
</rdf:Description>

このストライピング構造の記述は階層が深くなりやすく、見づらくなってしまうことがしばしばあります。次節以降では代替となる別の記述方法について説明します。

ノード要素からのRDFグラフ生成

ノード要素は次のような構造で記述します。

<NodeElement (URIreference)? (propertyAttribute)* >
   propertyElementList
</NodeElement>

ノード要素には0または1個の URIreference属性 、0個以上の propertyAttribute属性 を記述でき、子として propertyElementList(プロパティ要素) を記述できます。
URIreference には rdf:about 、 rdf:ID 、 rdf:nodeID 、 rdf:resource などがありますが、これらの違いについては次章で説明します。ここでは、ノード要素に記述されている属性などから RDFグラフ を生成するためのルールについて説明します。

<Typed Node(型付ノード)>

<4dd:homePage rdf:about="http://tech.4dd.co.jp/">

図3
図3

これまでは NodeElement として rdf:Description を主に扱ってきましたが、それ以外が NodeElement となる場合は 主語URI をS、 rdf:type をPとし、この要素型名(ここでは、4dd:homePage)をOとするグラフが生成されます。
これは前章のコンテナモデルのところで出てきましたが、 http://tech.4dd.co.jp/ が 4dd:homePage クラスのインスタンスであるということを表しています。これについては RDF Schema のところで詳しく説明しています。
またこのグラフは、 propertyAttribute に rdf:type を含めた次のような記述法によっても生成できます。

<rdf:Description rdf:about="http://tech.4dd.co.jp/" 
   rdf:type="4dd:homePage">

<propertyAttributeからのリテラルノードの生成>

<rdf:Description rdf:about="http://tech.4dd.co.jp/" 
   4dd:creator="Taro,Yojigen">

図4
図4

propertyAttribute に rdf:type 以外の記述がある場合には、属性名をプロパティ、属性値を目的語としたグラフを生成します。このとき、属性値は必ずリテラルとなります。

プロパティ要素からのRDFグラフ生成

<ノード要素を目的語とするプロパティ>

<rdf:Description rdf:about="http://tech.4dd.co.jp/">
   <4dd:creator>
      <rdf:Description rdf:about="urn:4dd:dev-000">
      </rdf:Description>
   </4dd:creator>
</rdf:Description>

図5
図5

上の RDF/XML はストライピングの構文にしたがっています。またこのグラフは空プロパティを利用する以下の記述方法によって生成することもできます。

<rdf:Description rdf:about="http://tech.4dd.co.jp/">
   <4dd:creator rdf:resource="urn:4dd:dev-000" />
</rdf:Description>

このときは、 rdf:resource属性 により URI を参照します。

<空プロパティ要素のpropertyAttribute>

<rdf:Description rdf:about="http://tech.4dd.co.jp/">
   <4dd:creator rdf:resource="urn:4dd;dev-000" 4dd:name="Taro,Yojigen" />
</rdf:Description>

図6
図6

プロパティ要素に 図4 と同じように propertyAttribute を記述することで続けてモデルを生成できます。

<リテラルを目的語とするプロパティ>

<rdf:Description rdf:about="http://tech.4dd.co.jp/">
   <4dd:creator>Taro,Yojigen</4dd:creator>
</rdf:Description>

このグラフは 図4 と同じです。
リテラルを目的語とする場合、 図4 の propertyAttribute からの生成に加えて、プロパティ要素の内容として記述することでもモデルを生成することができます。

<rdf:parseType属性によるグラフ生成>

rdf:parseType属性 によるグラフは次の3種類あります。

  • Resource型
  • Literal型
  • Collection型

これらについても次章で説明します。



前のページへ TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa