30
LODを検索する LOD Challenge 実行委員会

LODを検索する

Embed Size (px)

DESCRIPTION

2012-08-25 第1回LODチャレンジデー 資料

Citation preview

Page 1: LODを検索する

LODを検索する

LOD  Challenge  実行委員会

Page 2: LODを検索する

クエリ言語

•  データの検索や操作を行うための言語  •  データモデルやDBシステムに合わせて設計  •  例:  SQL  – データモデル:  関係モデル  – DBシステム:  RDBMS  

•  LODのデータモデル:  グラフモデル    

Page 3: LODを検索する

グラフのクエリ

•  グラフの最小単位:  3つ組  (トリプル)  

•  グラフパターン  1.  完全一致  

•  dbp:東京都  dbp-­‐owl:country  dbp:日本  .  

2.  変数によるパターンマッチ  •  dbp:東京都  dbp-­‐owl:country  ?country  .  

3.  1と2の組み合わせ

dbp:東京都 dbp:日本 dbpedia-owl:country

Page 4: LODを検索する

:Amy :Bob :Cathy

:Dan

:Jim

:Ed

:Kate

:Gil

:Flo

:Hal

:Ian

:Lee :May

:like :like

:like

:like :like

:like

:like

:dislike

:dislike

:dislike :dislike :dislike

:dislike :dislike

:dislike

好き嫌いグラフ

Page 5: LODを検索する

:Amy :Bob :Cathy

:Dan

:Jim

:Ed

:Kate

:Gil

:Flo

:Hal

:Ian

:Lee :May

:like :like

:like

:like :like

:like

:like

:dislike

:dislike

:dislike :dislike :dislike

:dislike :dislike

:dislike

Amyが好きな人 グラフパターン :Amy  :like  ?person  .  

Page 6: LODを検索する

:Amy :Bob :Cathy

:Dan

:Jim

:Ed

:Kate

:Gil

:Flo

:Hal

:Ian

:Lee :May

:like :like

:like

:like :like

:like

:like

:dislike

:dislike

:dislike :dislike :dislike

:dislike :dislike

:dislike

“Amyが好きな人”が好きな人 グラフパターン :Amy  :like  ?person1  .  ?person1  :like  ?person2  .  

Page 7: LODを検索する

SPARQL

•  LOD用クエリ言語  – データモデル:  RDF  (ラベル付き有向グラフ)  – プロトコル:  HTTP  

•  W3C仕様  – 1.0:  RecommendaVons  – 1.1:  Working  DraWs  

Page 8: LODを検索する

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/

Page 9: LODを検索する

http://thedatahub.org/dataset?res_format=api%2Fsparql

Page 10: LODを検索する

公開SPARQLエンドポイント  の状態確認サイト

http://labs.mondeca.com/sparqlEndpointsStatus/

Page 11: LODを検索する
Page 12: LODを検索する

DBpedia  Japanese  SPARQLエンドポイント

Page 13: LODを検索する

dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009

dbp-­‐owl:  ComicsCreator

dbp:宮城県

dbp:石ノ森章太郎

rdfs:label

rdf:type

rdfs:label

dbp-prop:生年

dbp-owl:notableWork

dbp-owl:award

dbp-owl:birthPlace

rdf:type

サイボーグ009

宮城県 foaf:Person

1938 石ノ森章太郎

rdf:type

rdfs:label dbp:村井嘉浩  

dbp-owl:leaderName

DBpedia  Japaneseのグラフ例  

dbp:手塚治虫文化賞

dbp-­‐owl:Comics

rdf:type

Page 14: LODを検索する

dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009

dbp-­‐owl:  ComicsCreator

dbp:宮城県

dbp:石ノ森章太郎

rdfs:label

rdf:type

rdfs:label

dbp-prop:生年

dbp-owl:notableWork

dbp-owl:award

dbp-owl:birthPlace

rdf:type

サイボーグ009

宮城県 foaf:Person

1938 石ノ森章太郎

rdf:type

rdfs:label dbp:村井嘉浩  

dbp-owl:leaderName

dbp:手塚治虫文化賞

dbp-­‐owl:Comics

rdf:type

クエリ: 石ノ森章太郎の出身地 PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-owl:birthPlace ?birthPlace . }

Page 15: LODを検索する
Page 16: LODを検索する

•  SELECT:  取得したい変数を指定  •  SELECT  *  は全ての変数指定と同等  • 結果形式:  XML,  JSON,  CSV,  TSV,  ...  

• WHERE:    {}内にグラフパターンの組み合わせを記述  •  LIMIT:    件数の制限  •  100だと1-­‐100まで取得  •  LIMITがない場合は全件取得  • 量が多い場合はサーバに負荷をかけるので注意  

•  PREFIX:    URIを短縮して記述するための仕組み  •  dbp:東京都  =  <hYp://ja.dbpedia.org/resource/東京都>  

 

PREFIX dbp: <http://ja.dbpedia.org/resource/> PREFIX dbp-owl: <http://dbpedia.org/ontology/> SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-owl:birthPlace ?birthPlace . }

Page 17: LODを検索する

dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009

dbp-­‐owl:  ComicsCreator

dbp:宮城県

dbp:石ノ森章太郎

rdfs:label

rdf:type

rdfs:label

dbp-prop:生年

dbp-owl:notableWork

dbp-owl:award

dbp-owl:birthPlace

rdf:type

サイボーグ009

宮城県 foaf:Person

1938 石ノ森章太郎

rdf:type

rdfs:label dbp:村井嘉浩  

dbp-owl:leaderName

dbp:手塚治虫文化賞

dbp-­‐owl:Comics

rdf:type

クエリ: 手塚治虫文化賞を受賞した漫画家 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:手塚治虫文化賞 . }

Page 18: LODを検索する
Page 19: LODを検索する

dbp-­‐owl:AdministraVveRegion dbp:サイボーグ009

dbp-­‐owl:  ComicsCreator

dbp:宮城県

dbp:石ノ森章太郎

rdfs:label

rdf:type

rdfs:label

dbp-prop:生年

dbp-owl:notableWork

dbp-owl:award

dbp-owl:birthPlace

rdf:type

サイボーグ009

宮城県 foaf:Person

1938

rdf:type

rdfs:label dbp:村井嘉浩  

dbp-owl:leaderName

dbp:手塚治虫文化賞

dbp-­‐owl:Comics

rdf:type

クエリ: 手塚治虫文化賞を受賞した漫画家の代表的な漫画 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 . }

石ノ森章太郎

Page 20: LODを検索する
Page 21: LODを検索する

SPARQL

•  LOD用クエリ言語  – データモデル:  RDF  (ラベル付き有向グラフ)  – プロトコル:  HTTP  

•  W3C仕様  – 1.0:  RecommendaVons  – 1.1:  Working  DraWs  

Page 22: LODを検索する

SPARQL  1.0  

•  データ取得・検索  – SELECT  – ASK  – CONSTRUCT  – DESCRIBE  

•  どこでもほぼ使用可能  

Page 23: LODを検索する

SELECT

例)  任意の3つ組を100件取得  SELECT  ?s  ?p  ?o  WHERE  {      ?s  ?p  ?o  .  }  LIMIT  100    

Page 24: LODを検索する

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  .  }  

Page 25: LODを検索する

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  .  }  

Page 26: LODを検索する

DESCRIBE  

•  DESCRIBE: リソースに関するグラフを取得 • 実装依存 • 多くの場合は対象リソースを直接含む3つ組の集合 • 結果形式: RDF/XML, Turtle, …

例) http://ja.dbpedia.org/resource/東京都に関するグラフを取得 DESCRIBE <http://ja.dbpedia.org/resource/東京都>

Page 27: LODを検索する

SPARQL  1.1  

•  データ作成・更新・削除  –  INSERT  /  UPDATE  /  DELETE  /  LOAD  /  DROP  

•  様々な機能追加  

–  プロパティパス,集約,条件,数値関数,文字列関数,サブクエリ,Federatedクエリなど  

•  実装に差あり  •  1.1の内容は省略  

Page 28: LODを検索する

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/  

Page 29: LODを検索する

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/  

Page 30: LODを検索する

まとめ

•  SPARQLによるLODの検索  – SPARQLエンドポイント – グラフパターン  –  ja.dbpedia.org