セマンティック・ウェブのための
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...
 RDFが実際に使われている例
 RDFトリプルのXML表現
 空プロパティ要素とプロパティ属性
 URI参照とノードの識別
 特別なリテラルノード
 RDFと既存のXML文書
 RDFのさまざまな構文
RDFトリプルのXML表現
ノード要素とプロパティ要素
 主語、目的語 → ノード要素
 ノード要素は rdf:Descriptionを用いて表す
 述語 → プロパティ要素
 プロパティ要素は名前空間接頭辞+ローカル名の組み合わ
せで...
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description>
<ex:hasHomepage>
<rdf:Description>
</rdf:Description>
</ex:hasHome...
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description>
<ex:hasHomepage>
<rdf:Description>
</rdf:Description>
</ex:hasHome...
RDFトリプルのXML表現
ノード要素とプロパティ要素
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
<rdf:Description r...
RDFトリプルのXML表現
リテラルノード
 目的語がリテラル
 プロパティ要素の中に直接リテラル文字列を記述する
urn:pin:mett
oboshi
ex:name
藤田 泰生
■ RDF/XML
<rdf:Description r...
RDFトリプルのXML表現
複数のトリプルからなるグラフのXML表現
urn:pin:mett
oboshi
http://metto
boshi.com
ex:hasHomepage
ex:name
藤田 泰生
■ RDF/XML
<rdf:...
 XMLを入れ子にすることで目的語を別のトリプルの主語にするようなグラフを書くことも可能
■ RDF/XML
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
...
RDFトリプルのXML表現
RDF/XML文書
 RDF書くだけならXMLじゃなくても良い(XMLが一番使われている)
 例)http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-pr...
 RDFトリプルのXML表現
 空プロパティ要素とプロパティ属性
 URI参照とノードの識別
 特別なリテラルノード
 RDFと既存のXML文書
 RDFのさまざまな構文
空プロパティ要素とプロパティ属性
目的語ノード要素の省略
■ RDF/XML
(省略前)
<rdf:Description rdf:about="urn:pin:mettoboshi">
<ex:hasHomepage>
<rdf:Descri...
空プロパティ要素とプロパティ属性
プロパティ属性によるリテラルノード省略表記
■ RDF/XML
(省略前)
<rdf:Description rdf:about="urn:pin:MK705">
<ex:name>mettoboshi</ex...
 RDFトリプルのXML表現
 空プロパティ要素とプロパティ属性
 URI参照とノードの識別
 特別なリテラルノード
 RDFと既存のXML文書
 RDFのさまざまな構文
URI参照とノードの識別
相対URIによる識別
■ RDF/XML
(rdf:ID)
- http://example.com/music/beethoven
<rdf:Description rdf:ID=“opus125">
<ex:not...
URI参照とノードの識別
相対URIによる識別
■ RDF/XML
- http://example.com/music/beethoven
<rdf:Description rdf:ID=“opus125">
<ex:note>この作品は…<...
URI参照とノードの識別
空白ノードの識別
■ RDF/XML
<rdf:Description rdf:about=“http://mettoboshi.com">
<ex:creator rdf:nodeID=“p1”>
</rdf:Des...
 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...
特別なリテラルノード
データ型を示す属性
■ RDF/XML
<ex:composed rdf:datatype=“http://www.w3.org/2001/XMLSchema#gYear”>
1824
</ex:composed>
 R...
特別なリテラルノード
XMLリテラルを示す属性
 XMLタグをそのまま含んだ文字列
 グラフとして解析する必要のないXMLを記述する際に使用
■ RDF/XML
<rdf:Description>
<ex:name rdf:parseTyp...
 RDFトリプルのXML表現
 空プロパティ要素とプロパティ属性
 URI参照とノードの識別
 特別なリテラルノード
 RDFと既存のXML文書
 RDFのさまざまな構文
RDFと既存のXML文書
リソースのタイプと型付ノード
 RDFを意識していない通常のXMLの仕組みに大きく手を加えることなく
RDFとして処理する方法として使える
■ XML
<a:product>
<a:name>名前</a:name>
...
RDFと既存のXML文書
空白ノードの省略
■ RDF/XML
(省略前)
<rdf:Description rdf:about=“http://mettoboshi.com">
<ex:creator>
<rdf:Description >
...
 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/elemen...
RDFのさまざまな構文
N3とTurtle
 Nortation 3 (N3)は最初に名前空間接頭辞を宣言するこ
とで、修飾名が使用できる
 同じ主語を持つプロパティは主語を省略して’;’でまとめら
れる
 同じプロパティを繰り返して複数...
RDFのさまざまな構文
トリプルを直接XMLで表すRXR
 RDF/XMLは構文に多様なバリエーションがある
 1つのグラフには1つのXMLが定まる構文を求める声もある
 正規化された構文が考案される
 RXRはその中の1つ
 主語:...
参考資料
 セマンティック・ウェブのためのRDF/OWL入門
 RDF入門
 http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-primer.html
 RDF/XML Syn...
Upcoming SlideShare
Loading in …5
×

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

433 views
362 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
433
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. セマンティック・ウェブのための RDF/OWL入門 読書会 3章 RDFの構文
  2. 2. アジェンダ  RDFが使われている例  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  3. 3.  RDFが使われている例  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  4. 4.  RSS1.0 RDFが使われている例 http://www.kanzaki.com/docs/sw/rss.html
  5. 5.  アプリケーションで使用される例  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 サービスプロバイダ サービスプロバイダ ユーザ OAI-PMH ハーベスティング URIの永続化 Other App
  6. 6.  RDFが実際に使われている例  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  7. 7. RDFトリプルのXML表現 ノード要素とプロパティ要素  主語、目的語 → ノード要素  ノード要素は rdf:Descriptionを用いて表す  述語 → プロパティ要素  プロパティ要素は名前空間接頭辞+ローカル名の組み合わ せで表す
  8. 8. 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の記法
  9. 9. 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の記法
  10. 10. 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
  11. 11. RDFトリプルのXML表現 リテラルノード  目的語がリテラル  プロパティ要素の中に直接リテラル文字列を記述する urn:pin:mett oboshi ex:name 藤田 泰生 ■ RDF/XML <rdf:Description rdf:about="urn:pin:mettoboshi"> <ex:name>藤田 泰生</ex:name> </rdf:Description>
  12. 12. 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>
  13. 13.  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表現
  14. 14. 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要素があること を期待していることもあり得るので、できるだけ省略しないほうがよい
  15. 15.  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  16. 16. 空プロパティ要素とプロパティ属性 目的語ノード要素の省略 ■ 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として表 現 閉じタグの省略
  17. 17. 空プロパティ要素とプロパティ属性 プロパティ属性によるリテラルノード省略表記 ■ 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からグラフが直感的にはわからなくなるので注意
  18. 18.  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  19. 19. 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 ならば同じ意味に。
  20. 20. 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を表している →リソースについては複数の場所で 独立して記述可能
  21. 21. 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:mettoboshi@mettoboshi.com”</ex:email> </rdf:Description> http://metto boshi.com ex:creator mailto:metto boshi@mett oboshi.com _:p1 藤田 泰生ex:name ex:email 「_:」はN-Triplesの空白ノード記述法
  22. 22.  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  23. 23. 特別なリテラルノード 言語タグを示す属性 ■ 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>
  24. 24. 特別なリテラルノード データ型を示す属性 ■ 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にも利用可能
  25. 25. 特別なリテラルノード 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>
  26. 26.  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  27. 27. 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
  28. 28. RDFと既存のXML文書 空白ノードの省略 ■ RDF/XML (省略前) <rdf:Description rdf:about=“http://mettoboshi.com"> <ex:creator> <rdf:Description > <ex:name>藤田 泰生</ex:name> <ex:email>”mailto:mettoboshi@mettoboshi.com”</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:mettoboshi@mettoboshi.com”</ex:email> </ex:creator> </rdf:Description> rdf:parseType=“Resource”を使うこと で空白ノードを省略可能
  29. 29.  RDFトリプルのXML表現  空プロパティ要素とプロパティ属性  URI参照とノードの識別  特別なリテラルノード  RDFと既存のXML文書  RDFのさまざまな構文
  30. 30. RDFのさまざまな構文 RDF/XMLの利点と難点  利点  XML用のツールが利用可能  XMLベースのシステムと相互運用しやすい  XHTMLと同じタグなのでなじみがある  難点  省略構文などが複雑  タグ量が多くなるので見通しが悪い もっと直接的にトリプルを表現できる構文も存在。
  31. 31. 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  リテラルは’@’  データ型は’^^’で記載
  32. 32. RDFのさまざまな構文 N3とTurtle  Nortation 3 (N3)は最初に名前空間接頭辞を宣言するこ とで、修飾名が使用できる  同じ主語を持つプロパティは主語を省略して’;’でまとめら れる  同じプロパティを繰り返して複数の値を記述する場合は プロパティを’,’でつなぐことも可能  空白のノードを主語とするトリプルは全体を’[ ]’で囲むこ とで主語を省略可能  Turtleは、N-Triplesの構文をもとにN3の書式を加えたものな ので、RDFを簡潔に記述するための新しい構文として提案さ れている
  33. 33. RDFのさまざまな構文 トリプルを直接XMLで表すRXR  RDF/XMLは構文に多様なバリエーションがある  1つのグラフには1つのXMLが定まる構文を求める声もある  正規化された構文が考案される  RXRはその中の1つ  主語:subject  述語:predicate  目的語:object要素で表される  名前がURIである時はuriが属性値に。リテラルは要素内容と して記述。  空白ノードはuriの代わりにblank属性を使用
  34. 34. 参考資料  セマンティック・ウェブのための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/

×