現在、さまざまな組織や団体が、保持しているRDFデータを検索するためのSPARQLエンドポイントを公開しています。Datahub(注4)には、2014年6月時点で500件近いSPARQLエンドポイントが登録されています。またSPARQL Endpoints Status(注5)では、エンドポイントの稼働状況を確認することができます。日本でも、DBpedia Japanese(注2)や国立国会図書館(注6)などがSPARQLエンドポイントを公開しています。本稿では、DBpeida Japaneseに対する検索例を紹介します。
例えば、「東京都の隣接都道府県を求める」といった検索は次のようなSPARQLクエリにより行います。
1: SELECT DISTINCT ?rinsetsu_label 2: WHERE { 3: ?tokyo_uri prop-ja:隣接都道府県 ?rinsetsu_uri . 4: ?tokyo_uri rdfs:label ?tokyo_label. 5: FILTER regex(?toukyo_label, "東京都") 6: ?rinsetsu_uri rdfs:label ?rinsetsu_label. 7: }
注4 the Datahub(英語)(http://datahub.io/dataset?q=&res_format=api%2Fsparql)
注5 SPARQL Endpoints Status(英語)(http://sparqles.okfn.org/availability)。
注6 Web NDL Authorities(http://iss.ndl.go.jp/ndla/sparql/)
3行目は、隣接都道府県の関係にあるURIのグラフパターンを表しています。4〜5行目では、隣接都道府県の主語のURIに付与されているラベルに「東京都」という文字列が含まれているグラフパターンを表しています。6行目では、隣接都道府県の目的語のURIに付与されているラベルを抽出するグラフパターンを表しています。下の画面は、実際のエンドポイントに上記のクエリを入力したものです。
上の画面にて、「Run Query」ボタンを押し、実行することで、下図の検索結果が得られます。結果の値が「"山梨県"@ja」のようになっているのは、「山梨県」のデータ型が日本語であることを表しているためです。
下記は、「都道府県とその隣接都道府県数」を検索するためのクエリです。6行目で都道府県名(?todoufuken_label)でグルーピングを行い、2行目で隣接都道府県(?rinsetsu_uri)の数を変数「name_rinsetsu」で参照しています。
1: SELECT DISTINCT ?todoufuken_label 2: count(?rinsetsu_uri) As ?num_rinsetsu 3: WHERE { 4: ?todoufuken_uri prop-ja:隣接都道府県 ?rinsetsu_uri. 5: ?todoufuken_uri rdfs:label ?todoufuken_label. 6: } GROUP BY (?todoufuken_label)
上記のクエリを使用することで、下記の結果が得られます。下記は全都道府県のうちの一部分です。
上記で紹介したようにSPARQLを用いてRDFを検索することができます。DBpedia Japaneseには、他にも映画や出版物などのデータも含まれていますので、上記の例を参考に検索を行ってみてください。SPARQLの詳細な説明は、下記が参考になります。
次回は、LODとして統計データを扱った場合の例を示し、「何ができるようになるか」を紹介していきます。
日立製作所 中央研究所 研究員
編集部より:本稿公開時に、東京都を表すDBpedia JapaneseのURIに一部誤りがありました。現在記事中の言及は修正されています(2014年8月15日)。
Copyright © ITmedia, Inc. All Rights Reserved.