セマンティック・ウェブのためのrdf/owl入門 読書会 -3章-
TRANSCRIPT
![Page 1: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/1.jpg)
セマンティック・ウェブのための
RDF/OWL入門 読書会
3章 RDFの構文
![Page 2: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/2.jpg)
アジェンダ
RDFが使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 3: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/3.jpg)
RDFが使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 4: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/4.jpg)
RSS1.0
RDFが使われている例
http://www.kanzaki.com/docs/sw/rss.html
![Page 5: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/5.jpg)
アプリケーションで使用される例
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/6.jpg)
RDFが実際に使われている例
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 7: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/7.jpg)
RDFトリプルのXML表現
ノード要素とプロパティ要素
主語、目的語 → ノード要素
ノード要素は rdf:Descriptionを用いて表す
述語 → プロパティ要素
プロパティ要素は名前空間接頭辞+ローカル名の組み合わせで表す
![Page 8: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/8.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/9.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/10.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/11.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/12.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/13.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/14.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/15.jpg)
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 16: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/16.jpg)
空プロパティ要素とプロパティ属性
目的語ノード要素の省略
■ 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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/17.jpg)
空プロパティ要素とプロパティ属性
プロパティ属性によるリテラルノード省略表記
■ 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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/18.jpg)
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 19: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/19.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/20.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/21.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/22.jpg)
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 23: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/23.jpg)
特別なリテラルノード
言語タグを示す属性
■ 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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/24.jpg)
特別なリテラルノード
データ型を示す属性
■ 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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/25.jpg)
特別なリテラルノード
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/26.jpg)
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 27: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/27.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/28.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/29.jpg)
RDFトリプルのXML表現
空プロパティ要素とプロパティ属性
URI参照とノードの識別
特別なリテラルノード
RDFと既存のXML文書
RDFのさまざまな構文
![Page 30: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/30.jpg)
RDFのさまざまな構文
RDF/XMLの利点と難点
利点
XML用のツールが利用可能
XMLベースのシステムと相互運用しやすい
XHTMLと同じタグなのでなじみがある
難点
省略構文などが複雑
タグ量が多くなるので見通しが悪い
もっと直接的にトリプルを表現できる構文も存在。
![Page 31: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/31.jpg)
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章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/32.jpg)
RDFのさまざまな構文
N3とTurtle
Nortation 3 (N3)は最初に名前空間接頭辞を宣言することで、修飾名が使用できる
同じ主語を持つプロパティは主語を省略して’;’でまとめられる
同じプロパティを繰り返して複数の値を記述する場合はプロパティを’,’でつなぐことも可能
空白のノードを主語とするトリプルは全体を’[ ]’で囲むことで主語を省略可能
Turtleは、N-Triplesの構文をもとにN3の書式を加えたものなので、RDFを簡潔に記述するための新しい構文として提案されている
![Page 33: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/33.jpg)
RDFのさまざまな構文
トリプルを直接XMLで表すRXR
RDF/XMLは構文に多様なバリエーションがある
1つのグラフには1つのXMLが定まる構文を求める声もある
正規化された構文が考案される
RXRはその中の1つ
主語:subject
述語:predicate
目的語:object要素で表される
名前がURIである時はuriが属性値に。リテラルは要素内容として記述。
空白ノードはuriの代わりにblank属性を使用
![Page 34: セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-](https://reader034.vdocuments.net/reader034/viewer/2022052400/559b85361a28ab1d458b4747/html5/thumbnails/34.jpg)
参考資料
セマンティック・ウェブのための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/