セマンティック・ウェブのためのrdf/owl入門 読書会 -3章-

34
セマンティック・ウェブのための RDF/OWL入門 読書会 3RDFの構文

Upload: mettoboshi

Post on 07-Jul-2015

247 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

セマンティック・ウェブのための

RDF/OWL入門 読書会

3章 RDFの構文

Page 2: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

アジェンダ

RDFが使われている例

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 3: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFが使われている例

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 4: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RSS1.0

RDFが使われている例

http://www.kanzaki.com/docs/sw/rss.html

Page 5: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

アプリケーションで使用される例

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

Page 6: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFが実際に使われている例

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 7: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

ノード要素とプロパティ要素

主語、目的語 → ノード要素

ノード要素は rdf:Descriptionを用いて表す

述語 → プロパティ要素

プロパティ要素は名前空間接頭辞+ローカル名の組み合わせで表す

Page 8: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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の記法

Page 9: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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の記法

Page 10: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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

Page 11: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

リテラルノード

目的語がリテラル

プロパティ要素の中に直接リテラル文字列を記述する

urn:pin:mett

oboshi

ex:name 藤田 泰生

■ RDF/XML

<rdf:Description rdf:about="urn:pin:mettoboshi">

<ex:name>藤田 泰生</ex:name>

</rdf:Description>

Page 12: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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>

Page 13: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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表現

Page 14: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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要素があることを期待していることもあり得るので、できるだけ省略しないほうがよい

Page 15: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 16: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

空プロパティ要素とプロパティ属性

目的語ノード要素の省略

■ 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として表現

閉じタグの省略

Page 17: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

空プロパティ要素とプロパティ属性

プロパティ属性によるリテラルノード省略表記

■ 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からグラフが直感的にはわからなくなるので注意

Page 18: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 19: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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

ならば同じ意味に。

Page 20: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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を表している

→リソースについては複数の場所で独立して記述可能

Page 21: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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の空白ノード記述法

Page 22: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 23: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

特別なリテラルノード

言語タグを示す属性

■ 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>

Page 24: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

特別なリテラルノード

データ型を示す属性

■ 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にも利用可能

Page 25: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

特別なリテラルノード

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>

Page 26: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 27: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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

Page 28: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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”を使うことで空白ノードを省略可能

Page 29: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFトリプルのXML表現

空プロパティ要素とプロパティ属性

URI参照とノードの識別

特別なリテラルノード

RDFと既存のXML文書

RDFのさまざまな構文

Page 30: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFのさまざまな構文

RDF/XMLの利点と難点

利点

XML用のツールが利用可能

XMLベースのシステムと相互運用しやすい

XHTMLと同じタグなのでなじみがある

難点

省略構文などが複雑

タグ量が多くなるので見通しが悪い

もっと直接的にトリプルを表現できる構文も存在。

Page 31: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

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

リテラルは’@’

データ型は’^^’で記載

Page 32: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFのさまざまな構文

N3とTurtle

Nortation 3 (N3)は最初に名前空間接頭辞を宣言することで、修飾名が使用できる

同じ主語を持つプロパティは主語を省略して’;’でまとめられる

同じプロパティを繰り返して複数の値を記述する場合はプロパティを’,’でつなぐことも可能

空白のノードを主語とするトリプルは全体を’[ ]’で囲むことで主語を省略可能

Turtleは、N-Triplesの構文をもとにN3の書式を加えたものなので、RDFを簡潔に記述するための新しい構文として提案されている

Page 33: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

RDFのさまざまな構文

トリプルを直接XMLで表すRXR

RDF/XMLは構文に多様なバリエーションがある

1つのグラフには1つのXMLが定まる構文を求める声もある

正規化された構文が考案される

RXRはその中の1つ

主語:subject

述語:predicate

目的語:object要素で表される

名前がURIである時はuriが属性値に。リテラルは要素内容として記述。

空白ノードはuriの代わりにblank属性を使用

Page 34: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-

参考資料

セマンティック・ウェブのための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/