ウェブ アビエーター Web Aviator...Web Aviator ウェブ アビエーター クラウドで開発。どこでも稼働。Webアプリケーションのスピード開発を実現する「クラウド開発基盤」。Web
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
-
Upload
mettoboshi -
Category
Technology
-
view
256 -
download
3
Transcript of セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのための
RDF/OWL入門 読書会
3章 RDFの構文
アジェンダ
RDFが使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
RDFが使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
RSS1.0
RDFが使われている例
http://www.kanzaki.com/docs/sw/rss.html
アプリケーションで使用される例
DSpace : http://repository.dl.itc.u-tokyo.ac.jp/dspace/
Hundle Server : http://www.handle.net/
OAI-PMH : http://repository.dl.itc.u-tokyo.ac.jp/dspace-oai/request?verb=ListRecords&metadataPrefix=oai_dc&from=2014-07-01
RDFが実際に使われている例
Hundleサーバ
データプロバイダ
Other App
サービスプロバイダ
サービスプロバイダ
ユーザ
OA
I-PM
H
ハーベスティング
URIの永続化
Other App
RDFが実際に使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
RDFトリプルのXML表現
ノード要素とプロパティ要素
主語、目的語 → ノード要素
ノード要素は rdf:Descriptionを用いて表す
述語 → プロパティ要素
プロパティ要素は名前空間接頭辞+ローカル名の組み合わせで表す
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description>
<ex:hasHomepage>
<rdf:Description>
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
「ex: 」 仮想語彙
RDF/XML : http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/
rdf:XXXはRDFの記法
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description>
<ex:hasHomepage>
<rdf:Description>
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
「ex: 」 仮想語彙
RDF/XML : http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/
rdf:XXXはRDFの記法
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
<rdf:Description rdf:about="http://mettoboshi.com">
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
→縞模様を形成しているのでストライピングと呼ばれることがある
urn:pin:mett
oboshi
http://metto
boshi.com
ex:hasHomepage
RDFトリプルのXML表現
リテラルノード
目的語がリテラル
プロパティ要素の中に直接リテラル文字列を記述する
urn:pin:mett
oboshi
ex:name 藤田 泰生
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:name>藤田 泰生</ex:name>
</rdf:Description>
RDFトリプルのXML表現
複数のトリプルからなるグラフのXML表現
urn:pin:mett
oboshi
http://metto
boshi.com
ex:hasHomepage
ex:name 藤田 泰生
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:name>藤田 泰生</ex:name>
<ex:hasHomepage>
<rdf:Description rdf:about="http://mettoboshi.com>
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
XMLを入れ子にすることで目的語を別のトリプルの主語にするようなグラフを書くことも可能
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
<rdf:Description rdf:about="http://www.mettoboshi.com>
<ex:updateInfo>
<rdf:Description rdf:about="http://www.mettoboshi.com/whatnew.html">
</rdf:Description>
</ex:updateInfo>
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
urn:pin:mett
oboshi
http://metto
boshi.com
ex:hasHomepage http://mettob
oshi.com/wha
tnew.html
ex:updateInfo
RDFトリプルのXML表現
複数のトリプルからなるグラフのXML表現
RDFトリプルのXML表現
RDF/XML文書
RDF書くだけならXMLじゃなくても良い(XMLが一番使われている)
例)http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-primer.html#rdfmodel
XMLを使う場合は
rdf:RDF要素を用意し、全てのグラフを内包させる。
rdf:RDFの記載内容は
MIMEタイプは"application/rdf+xml“
(例)http://mettoboshi.com/feed
rdf:RDF要素は省略可能だが、アプリケーションによってはrdf:RDF要素があることを期待していることもあり得るので、できるだけ省略しないほうがよい
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
空プロパティ要素とプロパティ属性
目的語ノード要素の省略
■ RDF/XML
(省略前)
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
<rdf:Description rdf:about="http://www.mettoboshi.com>
</rdf:Description>
</ex:hasHomepage>
</rdf:Description>
(省略後)
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage rdf:resource="http://www.example.com" />
</rdf:Description>
rdf:resourceとして表現
閉じタグの省略
空プロパティ要素とプロパティ属性
プロパティ属性によるリテラルノード省略表記
■ RDF/XML
(省略前)
<rdf:Description rdf:about="urn:pin:MK705">
<ex:name>mettoboshi</ex:name>
</rdf:Description>
(省略後)
<rdf:Description rdf:about="urn:pin:MK705" ex:name="mettoboshi" />
rdf:Descriptionの属性として表現
閉じタグの省略
目的語がリテラルの場合、プロパティを主語ノード要素の属性とし、目的語をその属性値として記述可能
複数のプロパティのリテラル目的語を属性として列挙することが可能
同じプロパティを複数記述することは不可能
メタデータをXHTMLに埋め込みたいが、メタデータはブラウザで表示させたくない場合などに利用可能
省略をすればするほど、XMLからグラフが直感的にはわからなくなるので注意
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
URI参照とノードの識別
相対URIによる識別
■ RDF/XML
(rdf:ID)
- http://example.com/music/beethoven
<rdf:Description rdf:ID=“opus125">
<ex:note>この作品は…</ex:note>
</rdf:Description>
(about表記)
<rdf:Description rdf:about=“http://example.org/music/beethoven#opus125">
<ex:note>この作品は…</ex:note>
</rdf:Description>
属性はID重複してはいけない
属性の名前付けは’#’とrdf:ID属性値の組み合わせで参照可能
RDF/XMLのある場所が、http://example.com/music/beethoven
ならば同じ意味に。
URI参照とノードの識別
相対URIによる識別
■ RDF/XML
- http://example.com/music/beethoven
<rdf:Description rdf:ID=“opus125">
<ex:note>この作品は…</ex:note>
</rdf:Description>
- http://example.com/music/beethoven2
<rdf:RDF xml:base=“http://example.org/music/beetoven” >
<rdf:Description>
<ex:composedWork rdf:ID“opus125” />
</rdf:Description>
</rdf:RDF>
- http://music.example.com/music/beethoven
<rdf: Description rdf:about=“http://example.org/music/beetoven#opus125”
すべて同じURIを表している すべて同じURIを表している
すべて同じURIを表している
→リソースについては複数の場所で独立して記述可能
URI参照とノードの識別
空白ノードの識別
■ RDF/XML
<rdf:Description rdf:about=“http://mettoboshi.com">
<ex:creator rdf:nodeID=“p1”>
</rdf:Description>
<rdf:Description rdf:nodeID=“p1”>
<ex:name>藤田 泰生</ex:name>
<ex:email>”mailto:[email protected]”</ex:email>
</rdf:Description>
http://metto
boshi.com
ex:creator
mailto:metto
boshi@mett
oboshi.com
_:p1
藤田 泰生 ex:name
ex:email
「_:」はN-Triplesの空白ノード記述法
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
特別なリテラルノード
言語タグを示す属性
■ RDF/XML
言語タグの記法
<ex:title xml:lang=“de”>Sinfonie Nr.9</ex:title>
<ex:title xml:lang=“ja”>交響曲第9番</ex:title>
属性内で言語を変える方法
<rdf:RDF ... xml:lang=“ja”>
...
<rdf:Description rdf:ID=“opus125”>
<ex:title>交響曲第9番</ex:title>
<ex:title xml:lang=“de”>Sinfonie Nr.9</ex:title>
</rdf:Description>
...
</rdf:RDF>
特別なリテラルノード
データ型を示す属性
■ RDF/XML
<ex:composed rdf:datatype=“http://www.w3.org/2001/XMLSchema#gYear”>
1824
</ex:composed>
RDFのデータ型はXMLスキーマで定義されている基本データ型を用いる
rdf:datatypeの属性値に修飾名が使えないため、URI全体を記述する必要がある
<!DOCTYPE rdf:RDF [
<!ENTITY xsd “http://www.w3.org/2001/XMLSchema#”>
]>
<ex:composed rdf:datatype=“&xsd;#gYear”>1824</ex:composed>
名前空間URI部分を実体として定義しておき、属性の中で実体参照する方法が用いられる
resourceなどで繰り返し登場するURIにも利用可能
特別なリテラルノード
XMLリテラルを示す属性
XMLタグをそのまま含んだ文字列
グラフとして解析する必要のないXMLを記述する際に使用
■ RDF/XML
<rdf:Description>
<ex:name rdf:parseType=“Literal” xmlns”http://www.w3.org/1999/xhtml”>
<ruby lang=“ja”>
<rb>藤田泰生</rb><rp>(</rp><rt>ふじたやすお</rt><rp>)</rp>
</ruby>
</ex:name>
</rdf:Description>
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
RDFと既存のXML文書
リソースのタイプと型付ノード
RDFを意識していない通常のXMLの仕組みに大きく手を加えることなくRDFとして処理する方法として使える
■ XML
<a:product>
<a:name>名前</a:name>
<a:price>100円</a:price>
</a:product>
■ RDF/XML
<rdf:Description>
<rdf:type rdf:resource=“http://example.com/business#product”>
<a:name>名前</a:name>
<a:price>100円</a:price>
</rdf:Description>
a:product
名前
100円
a:name
a:price
rdf:type
RDFと既存のXML文書
空白ノードの省略 ■ RDF/XML
(省略前)
<rdf:Description rdf:about=“http://mettoboshi.com">
<ex:creator>
<rdf:Description >
<ex:name>藤田 泰生</ex:name>
<ex:email>”mailto:[email protected]”</ex:email>
</rdf:Description>
</ex:creator>
</rdf:Description>
(省略後)
<rdf:Description rdf:about=“http://mettoboshi.com">
<ex:creator rdf:parseType=“Resource”>
<ex:name>藤田 泰生</ex:name>
<ex:email>”mailto:[email protected]”</ex:email>
</ex:creator>
</rdf:Description>
rdf:parseType=“Resource”を使うことで空白ノードを省略可能
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
RDFのさまざまな構文
RDF/XMLの利点と難点
利点
XML用のツールが利用可能
XMLベースのシステムと相互運用しやすい
XHTMLと同じタグなのでなじみがある
難点
省略構文などが複雑
タグ量が多くなるので見通しが悪い
もっと直接的にトリプルを表現できる構文も存在。
RDFのさまざまな構文
N-Triples
主語、述語、目的語のURLを<>で囲んで記述し、その順番に並べるだけ
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740> .
<http://www.example.org/index.html> <http://www.example.org/terms/creation-date> "August 16, 1999" .
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/language> "en“ .
空白のノードは、 _:p1のように記載する
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> _:p1 .
:p1 xxx
:p1 xxx
リテラルは’@’
データ型は’^^’で記載
RDFのさまざまな構文
N3とTurtle
Nortation 3 (N3)は最初に名前空間接頭辞を宣言することで、修飾名が使用できる
同じ主語を持つプロパティは主語を省略して’;’でまとめられる
同じプロパティを繰り返して複数の値を記述する場合はプロパティを’,’でつなぐことも可能
空白のノードを主語とするトリプルは全体を’[ ]’で囲むことで主語を省略可能
Turtleは、N-Triplesの構文をもとにN3の書式を加えたものなので、RDFを簡潔に記述するための新しい構文として提案されている
RDFのさまざまな構文
トリプルを直接XMLで表すRXR
RDF/XMLは構文に多様なバリエーションがある
1つのグラフには1つのXMLが定まる構文を求める声もある
正規化された構文が考案される
RXRはその中の1つ
主語:subject
述語:predicate
目的語:object要素で表される
名前がURIである時はuriが属性値に。リテラルは要素内容として記述。
空白ノードはuriの代わりにblank属性を使用
参考資料
セマンティック・ウェブのためのRDF/OWL入門
RDF入門 http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-primer.html
RDF/XML Syntax Specification http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/