LODを検索する

10,449 views

Published on

Published in: Technology, Self Improvement
  • Be the first to comment

LODを検索する

  1. 1. LODを検索する LOD  Challenge  実行委員会
  2. 2. クエリ言語 •  データの検索や操作を行うための言語  •  データモデルやDBシステムに合わせて設計  •  例:  SQL   –  データモデル:  関係モデル   –  DBシステム:  RDBMS  •  LODのデータモデル:  グラフモデル    
  3. 3. グラフのクエリ •  グラフの最小単位:  3つ組  (トリプル)   dbpedia-owl:country dbp:東京都 dbp:日本 •  グラフパターン   1.  完全一致   •  dbp:東京都  dbp-­‐owl:country  dbp:日本  .   2.  変数によるパターンマッチ   •  dbp:東京都  dbp-­‐owl:country  ?country  .   3.  1と2の組み合わせ
  4. 4. 好き嫌いグラフ :Amy :like :like :Bob :Cathy :dislike :like:Dan :dislike :Flo :dislike :Ed :dislike :dislike :Gil :like :Ian :like :Jim :Hal :like :dislike :Kate :dislike :May :like :Lee :dislike
  5. 5. Amyが好きな人 グラフパターン :Amy  :like  ?person  .   :Amy :like :like :Bob :Cathy :dislike :like :Dan :dislike :Flo :dislike :Ed :dislike :dislike :Gil :like :Ian :like :Jim :Hal :like :dislike :Kate :dislike :May :like :Lee :dislike
  6. 6. “Amyが好きな人”が好きな人 グラフパターン :Amy  :like  ?person1  .  ?person1  :like  ?person2  .   :Amy :like :like :Bob :Cathy :dislike :like :Dan :dislike :Flo :dislike :Ed :dislike :dislike :Gil :like :Ian :like :Jim :Hal :like :dislike :Kate :dislike :May :like :Lee :dislike
  7. 7. SPARQL •  LOD用クエリ言語   –  データモデル:  RDF  (ラベル付き有向グラフ)   –  プロトコル:  HTTP  •  W3C仕様   –  1.0:  RecommendaVons   –  1.1:  Working  DraWs  
  8. 8. SPARQLエンドポイント •  SPARQLクエリを受け付ける場所   –  SPARQLエンドポイントURI   •  プログラムからSPARQLを使うときに指定   –  入力フォームがある場合もあり  •  リスト   –  hYp://www.w3.org/wiki/SparqlEndpoints   –  hYp://ckan.net/dataset?res_format=api %2Fsparql&q=sparql   –  hYp://labs.mondeca.com/sparqlEndpointsStatus/
  9. 9. http://thedatahub.org/dataset?res_format=api%2Fsparql
  10. 10. 公開SPARQLエンドポイント   の状態確認サイト http://labs.mondeca.com/sparqlEndpointsStatus/
  11. 11. DBpedia  Japanese  SPARQLエンドポイント
  12. 12. DBpedia  Japaneseのグラフ例   サイボーグ009 dbp-­‐owl:Comics rdfs:label rdf:type dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009 rdf:type dbp-­‐owl:   dbp-owl:notableWork ComicsCreator rdfs:label dbp:宮城県 rdf:type dbp-owl:birthPlace dbp:石ノ森章太郎 宮城県 rdf:type foaf:Person dbp-owl:leaderName dbp-prop:生年 rdfs:label dbp-owl:award dbp:村井嘉浩   1938 dbp:手塚治虫 石ノ森章太郎 文化賞
  13. 13. クエリ: 石ノ森章太郎の出身地 PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-owl:birthPlace ?birthPlace . } サイボーグ009 dbp-­‐owl:Comics rdfs:label rdf:type dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009 rdf:type dbp-­‐owl:   dbp-owl:notableWork ComicsCreator rdfs:label dbp:宮城県 rdf:type dbp-owl:birthPlace dbp:石ノ森章太郎 宮城県 rdf:type foaf:Person dbp-owl:leaderName dbp-prop:生年 rdfs:label dbp-owl:award dbp:村井嘉浩   1938 dbp:手塚治虫 石ノ森章太郎 文化賞
  14. 14. PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-owl:birthPlace ?birthPlace . } •  SELECT:  取得したい変数を指定   •  SELECT  *  は全ての変数指定と同等   •  結果形式:  XML,  JSON,  CSV,  TSV,  ...  •  WHERE:    {}内にグラフパターンの組み合わせを記述  •  LIMIT:    件数の制限   •  100だと1-­‐100まで取得   •  LIMITがない場合は全件取得   •  量が多い場合はサーバに負荷をかけるので注意  •  PREFIX:    URIを短縮して記述するための仕組み   •  dbp:東京都  =  <hYp://ja.dbpedia.org/resource/東京都>    
  15. 15. クエリ: 手塚治虫文化賞を受賞した漫画家 PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?creator WHERE { ?creator rdf:type dbp-owl:ComicsCreator ; dbp-owl:award dbp:手塚治虫文化賞 . } サイボーグ009 dbp-­‐owl:Comics rdfs:label rdf:type dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009 rdf:type dbp-­‐owl:   dbp-owl:notableWork ComicsCreator rdfs:label dbp:宮城県 rdf:type dbp-owl:birthPlace dbp:石ノ森章太郎 宮城県 rdf:type foaf:Person dbp-owl:leaderName dbp-prop:生年 rdfs:label dbp-owl:award dbp:村井嘉浩   1938 dbp:手塚治虫 石ノ森章太郎 文化賞
  16. 16. クエリ: 手塚治虫文化賞を受賞した漫画家の代表的な漫画 PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?creatorName ?comicName WHERE { ?creator a dbp-owl:ComicsCreator ; dbp-owl:award dbp:手塚治虫文化賞 ; dbp-owl:notableWork ?comic ; rdfs:label ?creatorName . ?comic a dbp-owl:Comics ; rdfs:label ?comicName . } サイボーグ009 dbp-­‐owl:Comics rdfs:label rdf:type dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009 rdf:type dbp-­‐owl:   dbp-owl:notableWork ComicsCreator rdfs:label dbp:宮城県 rdf:type dbp-owl:birthPlace dbp:石ノ森章太郎 宮城県 rdf:type foaf:Person dbp-owl:leaderName dbp-prop:生年 rdfs:label dbp-owl:award dbp:村井嘉浩   1938 dbp:手塚治虫 石ノ森章太郎 文化賞
  17. 17. SPARQL •  LOD用クエリ言語   –  データモデル:  RDF  (ラベル付き有向グラフ)   –  プロトコル:  HTTP  •  W3C仕様   –  1.0:  RecommendaVons   –  1.1:  Working  DraWs  
  18. 18. SPARQL  1.0  •  データ取得・検索   –  SELECT   –  ASK   –  CONSTRUCT   –  DESCRIBE  •  どこでもほぼ使用可能  
  19. 19. SELECT 例)  任意の3つ組を100件取得  SELECT  ?s  ?p  ?o  WHERE  {      ?s  ?p  ?o  .  }  LIMIT  100    
  20. 20. ASK  •  ASK:    グラフパターンにマッチするものがあるか   •  結果yes  か  no      例)  石ノ森章太郎の出身地が含まれているかどうか  PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/>  PREFIX  dbp-­‐owl:  <hYp://dbpedia.org/ontology/>    ASK    WHERE  {      dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  .  }  
  21. 21. CONSTRUCT  •  CONSTRUCT: 新しいグラフを作成して取得 •  結果形式: RDF/XML, Turtle, … 例) foaf:nameプロパティの3つ組をそのまま取得 PREFIX  foaf:  <hYp://xmlns.com/foaf/0.1/>    CONSTRUCT  {      ?s  foaf:name  ?o  .  }  WHERE  {      ?s  foaf:name  ?o  .  }  
  22. 22. DESCRIBE  •  DESCRIBE: リソースに関するグラフを取得 •  実装依存 •  多くの場合は対象リソースを直接含む3つ組の集合 •  結果形式: RDF/XML, Turtle, … 例) http://ja.dbpedia.org/resource/東京都に関するグラフを取得 DESCRIBE <http://ja.dbpedia.org/resource/東京都>
  23. 23. SPARQL  1.1  •  データ作成・更新・削除   –  INSERT  /  UPDATE  /  DELETE  /  LOAD  /  DROP  •  様々な機能追加   –  プロパティパス,集約,条件,数値関数,文字列関数,サブ クエリ,Federatedクエリなど  •  実装に差あり  •  1.1の内容は省略  
  24. 24. SPARQL1.0  specs  •  SPARQL  Query  Language  for  RDF:   hYp://www.w3.org/TR/rdf-­‐sparql-­‐query/  •  SPARQL  Protocol  for  RDF:   hYp://www.w3.org/TR/rdf-­‐sparql-­‐protocol  •  SPARQL  Query  Results  XML  Format:   hYp://www.w3.org/TR/rdf-­‐sparql-­‐XMLres/  •  CURIE  Syntax  1.0:  hYp://www.w3.org/TR/curie/  
  25. 25. SPARQL  1.1  specs  •  SPARQL  1.1  Query  Language:  hYp://www.w3.org/TR/sparql11-­‐query/  •  SPARQL  1.1  Update:  hYp://www.w3.org/TR/sparql11-­‐update/  •  SPARQL  1.1  Protocol  for  RDF:  hYp://www.w3.org/TR/sparql11-­‐protocol/  •  SPARQL  1.1  Graph  Store  HTTP  Protocol:   hYp://www.w3.org/TR/sparql11-­‐hYp-­‐rdf-­‐update/  •  SPARQL  1.1  Entailment  Regimes:  hYp://www.w3.org/TR/sparql11-­‐entailment/  •  SPARQL  1.1  Service  DescripVon:   hYp://www.w3.org/TR/sparql11-­‐service-­‐descripVon/  •  SPARQL  1.1  Federated  Query:  hYp://www.w3.org/TR/sparql11-­‐federated-­‐query/  •  SPARQL  1.1  Test  case  structure:  hYp://www.w3.org/2009/sparql/docs/tests/  •  SPARQL  1.1  Query  Results  JSON  Format:   hYp://www.w3.org/TR/sparql11-­‐results-­‐json/  •  SPARQL  1.1  Query  Results  CSV  and  TSV  Formats:   hYp://www.w3.org/TR/sparql11-­‐results-­‐csv-­‐tsv/  
  26. 26. まとめ •  SPARQLによるLODの検索   –  SPARQLエンドポイント –  グラフパターン   –  ja.dbpedia.org  

×