SlideShare a Scribd company logo
汎用Web API“SPARQL” 
でオープンデータ検索 
@uedayou 
http://uedayou.net/ 
Kobe.R #13 + Open Data 
2014.11.24
オープンデータとの関わり 
• 特定非営利活動法人リンクト・オープン・データ・ 
イニシアティブ 
• 2014年より理事 
• 関西支部支部長補佐 
• Linked Open Data チャレンジJapan 
• 2014年度より実行委員 
• オープンデータを利用するWebアプリを公開中 
• http://uedayou.net/ 
• ソースコード:https://github.com/uedayou
• 目的 
• リンクト・オープン・データ(LOD)の国内での普及促進 
• 理事長 
• 国立情報学研究所武田英明教授 
• 主な事業 
• LOD並びにオープンデータに関する調査研究事業 
• 講座やシンポジウムの開催 
• LOD並びにオープンデータへの取り組み支援 
• オープンデータへの取り組み評価
• 主な実績 
• Open Data METI(平成24〜25年度経済産業省) 
• データカタログサイトの構築 
• LODの設計 
• アイディアソン、ヴィジュアライズソンの開催 
• 都道府県・市区町村コード(平成25年度独立行政法 
人統計センター) 
• 自治体行政情報流通連携基盤実証事業(平成25年度 
総務省) 
• LOD連続セミナー(自主事業)
LOD連続セミナー(自主事業) 
• 2014年5~7月まで計6回開催 
• 資料はLODI のWebサイトで公開中 
• http://linkedopendata.jp/?cat=17
今日お話する内容 
•汎用Web API“SPARQL”とは? 
•SPARQLを使ってみよう! 
•SPARQLでアプリを作ってみよう!
汎用Web API“SPARQL” 
とは?
SPARQL 
いろんなデータベース 
で使えます 
• RDF(LOD)用の汎用クエリ言語 
• RDF(LOD)用のデータベースからトリプル(3つ組) 
データを検索して、表形式でデータが取得できます 
扱いやすい! 
PREFIX rdfs: 
<http://www.w3.org/2000/01/rdf-schema#> 
SELECT * WHERE { 
?uri rdfs:label ?label . 
} 
LIMIT 10 
?uri ?label 
http://ja.dbpedia.org/resource/岩手県"岩手県" 
http://ja.dbpedia.org/resource/石川県"石川県" 
http://ja.dbpedia.org/resource/愛媛県"愛媛県" 
http://ja.dbpedia.org/resource/岡山県"岡山県"
SPARQLで検索できる 
オープンデータが増えています 
データ種別Web API 
Wikipedia DBPedia 
Wikipediaオントロジー 
行政データデータシティ鯖江 
都道府県・市区町村コード情報 
Open Data METI 
イベントデータヨコハマ・アート・LOD 
博物館データEuropeana 
LODAC Museum 
The British Museum 
図書館データThe British National Bibliography 
Web NDL Authorities 
地理データLinked Geo Data 
LODAC Location 
気象データ気象庁XML用API 
生物種データLODAC Species 
この他にも多くのオープンデータがSPARQLで検索できます
LODチャレンジもSPARQLで 
検索できるデータベースを公開中! 
http://lodc.jp
過去3年分+αのオープンライセンス 
のデータセットが検索可能 
http://lodc.jp/#dataset
汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索
RDFとは 
(Resource Description Framework) 
主語 
(Subject) 
目的語 
(Object) 
述語 
(Predicate) 
• データを「主語」「述語」「目的語」を1つのセット 
(トリプル、三つ組み)として記述 
例えば… 
東京都隣の県神奈川県
トリプルデータを表形式に変換 
主語述語目的語 
dbpedia: 
rdfs:label "東京都" 
東京都 
dbpedia: 
東京都 
rdfs:comment “東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
dbpedia: 
大阪府 
変換! 
id label comment 
rdfs:label “大阪府” 
dbpedia: 
大阪府 
dbpedia: 
東京都 
"東京都" “東京都(とうきょうと)は、日本 
rdfs:comment "大阪府(おおさかふ)は、近畿 
地方(関西地方)に属する日本 
の都道府県の一つ。" 
dbpedia: 
京都府 
rdfs:label “京都府” 
dbpedia: 
京都府 
rdfs:comment "京都府(きょうとふ)は、日本 
国・近畿地方の都道府県。" 
の都道府県の一つである。" 
dbpedia: 
大阪府 
“大阪府” "大阪府(おおさかふ)は、近畿 
地方(関西地方)に属する日本 
の都道府県の一つ。" 
dbpedia: 
京都府 
“京都府” "京都府(きょうとふ)は、日本 
国・近畿地方の都道府県。" 
SPARQLなら簡単にできます!
HTML・CSV・XML・JSONなど 
さまざまな形式で出力可能! 
• formatパラメータを変更するだけ 
JSON 
http://db.lodc.jp/sparql?query=...&format=json 
XML 
http://db.lodc.jp/sparql?query=...&format=xml 
CSV 
http://db.lodc.jp/sparql?query=...&format=csv 
“format”はSPARQLエンドポイントによって異なる場合があります
汎用Web API“SPARQL”でオープンデータ検索
SPARQLを使ってみよう!
URI(IRI)とリテラル 
• URI(IRI) : <http://ja.dbpedia.org/resource/東京都> 
• 「<」「>」で挟まれた文字列 
• 人・もの・出来事などを指し示すID 
• 指定したURIを同じURIを含むデータが検索される 
• リテラル: “東京” , “100” , “2014-09-20” … 
• 「”」で挟まれた文字列 
• データそのもの(string, integer, float他) 
• 指定した文字列と同じ文字列を含むデータが検索され 
る 
• 目的語以外は指定できない
東京都 
http://ja.dbpedia.or 
g/resource/東京都 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://ja.dbpedia.or 
g/resource/山梨県 
http://ja.dbpedia.or 
g/resource/千葉県 
http://ja.dbpedia.org 
/resource/神奈川県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://ja.dbpedia.or 
g/resource/埼玉県 
山梨県 
千葉県埼玉県 
神奈川県 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
東京都と隣接県 
RDFグラフ 
東京都(とうきょうと)は、日本 
の都道府県の一つである。 
http://www.w3.org/2000 
/01/rdf-schema#comment
データベース上では… 
主語述語目的語 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県”
URIとリテラル 
主語述語目的語 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県”
データベース上では… 
主語述語目的語 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県”
東京都東京都(とうきょうと)は、日本 
の都道府県の一つである。 
http://ja.dbpedia.or 
g/resource/東京都 
http://ja.dbpedia.or 
g/resource/山梨県 
http://ja.dbpedia.or 
g/resource/千葉県 
http://www.w3.org/2000 
/01/rdf-schema#comment 
http://ja.dbpedia.org 
/resource/神奈川県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://ja.dbpedia.or 
g/resource/埼玉県 
山梨県 
千葉県埼玉県 
神奈川県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
東京都と隣接県 
RDFグラフ 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://ja.dbpedia.org/ 
property/隣接都道府県
(1) シンプルなSPARQLクエリ 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
• 全てのトリプルデータを検索
SELECT 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
• SELECT の後ろに続く変数(?で始まる文字列)に格納さ 
れたデータを表形式で取得 
• 変数名は必ずWHERE文の中で指定したものを記述す 
ること 
• 例では?s 、?p 、?o
SELECT 
SELECT * WHERE 
{ 
?s ?p ?o . 
• アスタリスク「*」を指定すると、WHERE文の中の 
全ての変数を指定したことと同じになる 
• ?s、?p、?o が抽出される 
} 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
=
DISTINCT 
SELECT DISTINCT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
• 「SELECT」と変数の間に「DISTINCT」を入れると指定 
した全ての変数で重複したパターンがあった場合、 
検索結果から除外される
WHERE 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o . 
} 
• WHERE { } 内に検索したいトリプルパターンを書く
基本構造 
述語の 
指定 
目的語 
の指定 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o . 
} 
主語の 
指定 
必ずピリオド 
で終わる 
• トリプルデータを指定するために、3つの変数(?s, ?p, ?o) 
またはURI、リテラル(目的語のみ)を1セットで書く 
• 1セットの終わりには必ずピリオド「.」をつける
?s ?p ?o 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県” 
検索対象
http://uedayou.net/sparql-mashup/test-endpoint/
変数 
• 変数: ?s , ?p , ?o, ?label, ?comment … 
• 「?」で始まる文字列 
• パターンに当てはまるデータ全てが格納される 
• 検索式内の同一変数は同じデータが入るという意味に 
トリプルパターン 
?id rdfs:label ?label. 
id label 
dbpedia: 
東京都 
"東京都" 
dbpedia: 
大阪府 
“大阪府” 
dbpedia: 
京都府 
“京都府”
トリプルパターン 
?id rdfs:comment ?comment. 
id comment 
dbpedia: 
東京都 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
dbpedia: 
大阪府 
"大阪府(おおさかふ)は、近畿 
地方(関西地方)に属する日本 
の都道府県の一つ。" 
dbpedia: 
京都府 
"京都府(きょうとふ)は、日本 
国・近畿地方の都道府県。"
トリプルパターン 
同じ名前の変数(?id)は 
AND検索を意味します 
?id rdfs:label ?label. 
?id rdfs:comment ?comment.
(2) 述語が 
<http://www.w3.org/2000/01/rdf-schema#label> 
であるトリプルを取得 
主語の 
指定 
SELECT ?s ?o WHERE 
{ 
述語の 
指定 
目的語 
の指定 
?s <http://www.w3.org/2000/01/rdf-schema#label> ?o . 
} 
• <http://www.w3.org/2000/01/rdf-schema#label> はデータ 
のラベル(名前)を示す場合によく利用されています。 
• 省略形は「rdfs:label」
?s ?p ?o 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県” 
検索対象
http://uedayou.net/sparql-mashup/test-endpoint/
(3)主語に<http://ja.dbpedia.org/resource/東京都> 
が指定されているトリプルを取得 
述語の 
指定 
select distinct * where 
{ 
<http://ja.dbpedia.org/resource/東京都> ?p ?o . 
} 
主語の 
指定 
目的語 
の指定 
• <http://ja.dbpedia.org/resource/東京都>に関する 
データ(述語と目的語)全て検索
?s ?p ?o 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県” 
検索対象
http://uedayou.net/sparql-mashup/test-endpoint/
(4) 東京都に隣接する県の名前 
1. 東京都のURIから隣接する都道府県を表す 
<http://ja.dbpedia.org/property/隣接都道府県> 
を述語として持つ目的語を検索する 
2. さらに、検索された目的語を主語に指定して、そ 
のrdfs:labelを検索する 
SELECT DISTINCT ?pref ?label WHERE 
{ 
<http://ja.dbpedia.org/resource/東京都> <http://ja.dbpedia.org/property/隣接都道府県> ?pref. 
?pref <http://www.w3.org/2000/01/rdf-schema#label> ?label. 
} 
• 同じ変数(例えば?pref)を異なるトリプルパターン 
で記述すると、同じURIを持つもののみ検索される 
(AND検索)
主語述語目的語 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://ja.dbpedia.org/resource 
/東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://ja.dbpedia.org/resource 
/山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource 
/千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“千葉県” 
<http://ja.dbpedia.org/resource 
/埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource 
/神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県” 
検索対象 
?pref 
?label 
「?pref」と同じURIを 
主語に持つトリプル 
を選択
http://uedayou.net/sparql-mashup/test-endpoint/
PREFIXによるURIの省略表記 
• URI記述はPREFIXを利用することで省略表記が可能 
• クエリ先頭行に以下のような形式で追加 
• PREFIX BINDNAME : <URI> 
• 例:PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
• PREFIX を指定するとURIを省略表記に 
• <http://www.w3.org/2000/01/rdf-schema#label> 
• PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
• rdfs:label
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/> 
PREFIX prop-ja: <http://ja.dbpedia.org/property/> 
主語述語目的語 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
"東京都" 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://www.w3.org/2000/01/ 
rdf-schema#comment> 
“東京都(とうきょうと)は、日本 
の都道府県の一つである。" 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource/ 
山梨県> 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource/ 
千葉県> 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource/ 
埼玉県> 
<http://ja.dbpedia.org/resource/ 
東京都> 
<http://ja.dbpedia.org/property 
/隣接都道府県> 
<http://ja.dbpedia.org/resource/ 
神奈川県> 
<http://ja.dbpedia.org/resource/ 
山梨県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“山梨県” 
<http://ja.dbpedia.org/resource/ 
千葉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
<http://ja.dbpedia.org/resource/ 
埼玉県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“埼玉県” 
<http://ja.dbpedia.org/resource/ 
神奈川県> 
<http://www.w3.org/2000/01/ 
rdf-schema#label> 
“神奈川県” 
dbpedia-jp:東京都rdfs:label dbpedia-jp:東京都rdfs:comment dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:山梨県 
dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:千葉県 
dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:埼玉県 
dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:神奈川県 
dbpedia-jp:山梨県rdfs:label dbpedia-jp:千葉県rdfs:label “千葉県” 
dbpedia-jp:埼玉県rdfs:label “埼玉県” 
dbpedia-jp:神奈川県rdfs:label “神奈川県”
rdfs:label 
http://ja.dbpedia.or 
g/resource/東京都 
東京都と隣接県 
RDFグラフ 
http://ja.dbpedia.org/ 
property/隣接都道府県 
prop-ja:隣接都道府県 
http://ja.dbpedia.or 
g/resource/山梨県 
dbpedia-ja:東京都 
prop-ja:隣接都道府県 
http://ja.dbpedia.or 
g/resource/千葉県 
東京都(とうきょうと)は、日本 
の都道府県の一つである。 
http://rdfs:www.comment 
w3.org/2000 
/01/rdf-schema#comment 
prop-ja:隣接都道府県 
http://ja.dbpedia.org 
/resource/神奈川県 
dbpedia-ja:神奈川県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://ja.dbpedia.or 
g/resource/埼玉県 
山梨県 
千葉県埼玉県 
神奈川県 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://ja.dbpedia.org/ 
property/隣接都道府県 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
http://www.w3.org/2000 
/01/rdf-schema#label 
東京都 
dbpedia-ja:山梨県 
dbpedia-ja:千葉県dbpedia-ja:埼玉県 
rdfs:label 
rdfs:label rdfs:label 
rdfs:label
(5) 「東京都に隣接する県の名前」 
のクエリを省略して書くと… 
SELECT DISTINCT ?pref ?label WHERE 
{ 
<http://ja.dbpedia.org/resource/東京都> <http://ja.dbpedia.org/property/隣接都道府県> ?pref. 
?pref <http://www.w3.org/2000/01/rdf-schema#label> ?label. 
} 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/> 
PREFIX prop-ja: <http://ja.dbpedia.org/property/> 
SELECT DISTINCT ?pref ?label WHERE 
{ 
dbpedia-ja:東京都prop-ja:隣接都道府県?pref . 
?pref rdfs:label ?label . 
}
http://uedayou.net/sparql-mashup/test-endpoint/
(6) 同一主語の省略 
• 同じ主語から異なる複数の述語を指定する場合、 
目的語のあとのピリオド「.」をセミコロン「;」にするこ 
とで次のトリプルパターンの主語を省略できます 
SELECT DISTINCT * WHERE { 
dbpedia-ja:東京都rdfs:label ?label . 
dbpedia-ja:東京都rdfs:comment ?comment . 
} 
SELECT DISTINCT * WHERE { 
dbpedia-ja:東京都rdfs:label ?label ; 
rdfs:comment ?comment . 
} 省略を終了するトリプルパターン 
の最後は必ずピリオドにすること 
主語を 
省略 
できる
http://uedayou.net/sparql-mashup/test-endpoint/
SPARQLの便利な検索機能 
検索句機能 
LIMIT 検索結果の上限を設定 
OFFSET 検索結果の取得位置を指定 
ORDER BY 検索結果の並び順を指定 
OPTIONAL OPTIONAL内は任意検索 
FILTER 検索結果のフィルタリングが可能 
REGEX 正規表現による検索が可能 
BIND 新たな変数への割り当てが可能 
CONCAT 文字列の結合が可能 
REPLACE 文字列の置き換えが可能(正規表現使用可) 
SUBSTR 文字列の切り出しが可能 
COUNT 検索件数を表示 
GROUP BY 変数のグループ化が可能 
HAVING グループ化した変数の絞込みが可能
FROM 
• トリプルデータには、その全体を現す名前(グラフ 
名)が指定されています 
• FROMを使うとグラフ名ごとに検索が行えます 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?label 
FROM 
<http://lod.sfc.keio.ac.jp/challenge2014/show_status.php?id=d001> 
WHERE 
{ 
?uri rdfs:label ?label . 
} 
<http://lod.sfc.keio.ac.jp/challenge2014/show_status.php?id=d001> 
というグラフ名がついているトリプルデータを対象とする
http://lod.sfc.keio.ac.jp/challenge2014 
/show_status.php?id=d001 
グラフ名ごと 
に検索が可能主語述語目的語 
http://lod.sfc.keio.ac.jp/challenge2013 
/show_status.php?id=d030 
dbpedia-ja:大阪府rdfs:label “大阪府" 
dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:兵庫県 
dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:和歌山県 
dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:京都府 
dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:奈良県 
dbpedia-ja:兵庫県rdfs:label “兵庫県” 
dbpedia-ja:和歌山県rdfs:label “和歌山県” 
dbpedia-ja:京都府rdfs:label “京都府” 
dbpedia-ja:奈良県rdfs:label “奈良県” 
FROM 
LODチャレンジエンドポイントでは、 
エントリーページのURLが 
グラフ名になっています
SPARQLでアプリを 
作ってみよう!
トイレ危険地帯 
• Linked Open Data チャレンジ2013 受賞作品 
• 鯖江市が公開するオープンデータのうち、公衆トイ 
レの位置を利用してトイレのない地域をWebアプリ 
でビジュアライズ 
http://y4ashida.github.io/toilet/
○○危険地帯 
• トイレ危険地帯のソースコードを修正して、SPARQL 
でさまざまなデータで空白地域をビジュアライズで 
きるようにしました 
• https://github.com/uedayou/dangerzone-sparql
大阪市版トイレ危険地帯 
http://uedayou.github.io/dangerzone-sparql/
○○危険地帯の使い方 
1. 「Download ZIP」ボタンを押してソースコード 
をダウンロード 
2. ZIPファイルを解凍 
3. config.js の書き換える 
4. Index.html をブラウザで開く 
SPARQLを書きます
config.js の書き方 
// SPARQLエンドポイントを指定 
var endpoint = "http://db.lodc.jp/sparql"; 
// SPARQLクエリを指定 
var query = (function () {/* 
SELECT DISTINCT * 
FROM <http://lod.sfc.keio.ac.jp/challenge2013/show_status.php?id=d030> 
WHERE{ 
?uri <http://lodosaka.hozo.jp/category_1> "公衆トイレ"@ja ; 
<http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?latitude ; 
<http://www.w3.org/2003/01/geo/wgs84_pos#long> ?longitude . 
} 
*/}).toString().match(/¥n([¥s¥S]*)¥n/)[1]; 
// 中心位置を指定 
var initial_latitude =34.68206400648744; 
var initial_longitude =135.49816131591797; 
// ズーム率を指定 
var initial_zoom = 11; 
SPARQL 
エンドポイント 
SPARQL 
クエリ
大阪市のいろんな危険地帯を作っ 
てみよう! 
// SPARQLエンドポイントを指定 
var endpoint = "http://db.lodc.jp/sparql"; 
// SPARQLクエリを指定 
var query = (function () {/* 
SELECT DISTINCT * 
FROM <http://lod.sfc.keio.ac.jp/challenge2013/show_status.php?id=d030> 
WHERE{ 
?uri <http://lodosaka.hozo.jp/category_1> "公衆トイレ"@ja ; 
<http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?latitude ; 
<http://www.w3.org/2003/01/geo/wgs84_pos#long> ?longitude . 
} 
LIMIT 1000 
*/}).toString().match(/¥n([¥s¥S]*)¥n/)[1]; 
// 中心位置を指定 
var initial_latitude =34.68206400648744; 
var initial_longitude =135.49816131591797; 
// ズーム率を指定 
var initial_zoom = 11; 
ここのカテゴリを変えると 
いろんな危険地帯が 
作れます 
例: 
“学校・保育所”@ja 
“名所・旧跡”@ja 
“警察・消防”@ja 
“医療・福祉”@ja 
“公園・スポーツ”@ja 
“駅・バス停”@ja 
…

More Related Content

PDF
ナレッジグラフとオントロジー
PDF
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
PDF
ナレッジグラフ入門
PDF
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
PDF
4つの戦犯から考えるサービスづくりの失敗
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
PDF
カッコいい SharePoint モダンサイトを作ろう
PDF
オントロジーとは?
ナレッジグラフとオントロジー
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
ナレッジグラフ入門
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
4つの戦犯から考えるサービスづくりの失敗
Python 3.9からの新定番zoneinfoを使いこなそう
カッコいい SharePoint モダンサイトを作ろう
オントロジーとは?

What's hot (20)

PDF
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
PPTX
セマンティック・ウェブのためのRdf owl入門解説.ch5
PDF
クラウド環境下におけるAPIリトライ設計
PDF
NetflixにおけるPresto/Spark活用事例
PPTX
(2017.6.9) Neo4jの可視化ライブラリまとめ
PDF
Wikidataを編集してみよう!
PPTX
マルチクラウドDWH(Snowflake)のすすめ
PPTX
ビッグデータ処理データベースの全体像と使い分け
2018年version
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
PPTX
DBpedia Japaneseとは?
PPTX
SharePoint で始める情報共有とそのアプローチ
PDF
Hadoopエコシステムのデータストア振り返り
PPTX
グラフ構造のデータモデルをPower BIで可視化してみた
PDF
Serverless時代のJavaについて
PDF
ソーシャルゲームのためのデータベース設計
PDF
ナレッジグラフ/LOD利用技術の入門(後編)
PDF
マルチテナント化で知っておきたいデータベースのこと
PDF
SPARQLでオープンデータ活用!
PDF
オントロジー工学に基づく 知識の体系化と利用
PPTX
AWSで作る分析基盤
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
セマンティック・ウェブのためのRdf owl入門解説.ch5
クラウド環境下におけるAPIリトライ設計
NetflixにおけるPresto/Spark活用事例
(2017.6.9) Neo4jの可視化ライブラリまとめ
Wikidataを編集してみよう!
マルチクラウドDWH(Snowflake)のすすめ
ビッグデータ処理データベースの全体像と使い分け
2018年version
Microsoft Graph APIを活用した社内アプリケーション開発
DBpedia Japaneseとは?
SharePoint で始める情報共有とそのアプローチ
Hadoopエコシステムのデータストア振り返り
グラフ構造のデータモデルをPower BIで可視化してみた
Serverless時代のJavaについて
ソーシャルゲームのためのデータベース設計
ナレッジグラフ/LOD利用技術の入門(後編)
マルチテナント化で知っておきたいデータベースのこと
SPARQLでオープンデータ活用!
オントロジー工学に基づく 知識の体系化と利用
AWSで作る分析基盤
Ad

Viewers also liked (20)

PDF
Linked Open Data 作成支援ツールの紹介
PDF
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
PDF
SPARQLでマッシュアップ -LOD活用のための技術紹介-
PDF
サーバサイドコース Sinatra + SPARQL 編
PDF
Sparql epcuでlodをマッシュアップ
PPTX
SPARQL作成ツール SPARQL Creator
PDF
National digitallibaryofkorea series_3_dgitalcontnetmanagementsystem
PDF
Scientific And Legal Perspectives On Science Generated For Regulatory Activities
PDF
地域のLinked Open Dataでできること
 ー 奈良の観光情報を例に ー
PDF
オープンデータと Linked Open Data(LOD)@神戸R
PDF
The Legal Rdf Ontology A Generic Model For Legal Documents
PPTX
How to Create a Golden Ontology
PDF
LODオープンデータのつくりかたと項目名のつけかた
PPT
05 Coreonto It Device Ontology 20080623
PPTX
파이썬+데이터+구조+이해하기 20160311
PPTX
PPTX
인공지능시대의 한국어 정보처리
PDF
Rdf入門handout
PDF
ガバメント分野におけるLODの活用例
PDF
地理空間情報におけるLinked Open Dataの活用例
Linked Open Data 作成支援ツールの紹介
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
サーバサイドコース Sinatra + SPARQL 編
Sparql epcuでlodをマッシュアップ
SPARQL作成ツール SPARQL Creator
National digitallibaryofkorea series_3_dgitalcontnetmanagementsystem
Scientific And Legal Perspectives On Science Generated For Regulatory Activities
地域のLinked Open Dataでできること
 ー 奈良の観光情報を例に ー
オープンデータと Linked Open Data(LOD)@神戸R
The Legal Rdf Ontology A Generic Model For Legal Documents
How to Create a Golden Ontology
LODオープンデータのつくりかたと項目名のつけかた
05 Coreonto It Device Ontology 20080623
파이썬+데이터+구조+이해하기 20160311
인공지능시대의 한국어 정보처리
Rdf入門handout
ガバメント分野におけるLODの活用例
地理空間情報におけるLinked Open Dataの活用例
Ad

Similar to 汎用Web API“SPARQL”でオープンデータ検索 (20)

PDF
LODを使ってみよう!
PDF
Linked Open Data(LOD)の基本的な使い方
PDF
ナレッジグラフ/LOD利用技術の入門(前編)
KEY
第5回LinkedData勉強会@yayamamo
PPTX
統計データのLOD化とデータ間の関係の表現
PDF
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
PDF
オープンデータとLinked Open Data
PDF
SPARQLとMashup環境 (年岡先生)
PDF
大阪市オープンデータポータルAPI(SPARQL)勉強会
PDF
RDF/OWLの概要及びOSS実装、及び活用イメージについて
PDF
LOD連続講義 第5回「LODの作り方・使い方」
PPTX
Silkについて
PPTX
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
PDF
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
PDF
オープンデータとSPARQLでビジュアライズ
PDF
第4回 AIツール入門講座 Linked Open Data入門
PPTX
PDF
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
PDF
Open Data METI Linked Open Data
PPT
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
LODを使ってみよう!
Linked Open Data(LOD)の基本的な使い方
ナレッジグラフ/LOD利用技術の入門(前編)
第5回LinkedData勉強会@yayamamo
統計データのLOD化とデータ間の関係の表現
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
オープンデータとLinked Open Data
SPARQLとMashup環境 (年岡先生)
大阪市オープンデータポータルAPI(SPARQL)勉強会
RDF/OWLの概要及びOSS実装、及び活用イメージについて
LOD連続講義 第5回「LODの作り方・使い方」
Silkについて
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
オープンデータとSPARQLでビジュアライズ
第4回 AIツール入門講座 Linked Open Data入門
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
Open Data METI Linked Open Data
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進

More from uedayou (16)

PDF
Linked Data API Navi(アーバンデータチャレンジ2022)
PDF
Linked Data API Navi(LODチャレンジ2022)
PDF
小倉百人一首クイズ/路線王 ~駅名だけで鉄道路線を当てるクイズゲーム~
PDF
鉄道駅LOD
PDF
LODを誰でも簡単に「Simple LODI」
PDF
関西におけるボトムアップによるLinked Open Data普及の取り組み~LODハッカソン関西の活動事例を中心に~
PDF
大阪市の警察署・交番と犯罪発生地点の重ね合わせ ~大阪市 警察署 x 犯罪発生~
PDF
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
PDF
AllegroGraphでsgvizler 0.5を使うときの注意点
PDF
ソースコード公開しました! HTML5 x LOD WEBアプリ “SPARQL Timeliner”
PDF
LODx簡単アプリ作成 SPARQL Timeliner
PDF
TimeMapper2RDFとSPARQL Timelinerで簡単アプリ作成
PDF
お手軽Linked Open Data可視化ツールSPARQL Timeliner
PDF
SPARQL Timelinerの使い方
PDF
ミュージアムへ行こう!
PDF
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
Linked Data API Navi(アーバンデータチャレンジ2022)
Linked Data API Navi(LODチャレンジ2022)
小倉百人一首クイズ/路線王 ~駅名だけで鉄道路線を当てるクイズゲーム~
鉄道駅LOD
LODを誰でも簡単に「Simple LODI」
関西におけるボトムアップによるLinked Open Data普及の取り組み~LODハッカソン関西の活動事例を中心に~
大阪市の警察署・交番と犯罪発生地点の重ね合わせ ~大阪市 警察署 x 犯罪発生~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
AllegroGraphでsgvizler 0.5を使うときの注意点
ソースコード公開しました! HTML5 x LOD WEBアプリ “SPARQL Timeliner”
LODx簡単アプリ作成 SPARQL Timeliner
TimeMapper2RDFとSPARQL Timelinerで簡単アプリ作成
お手軽Linked Open Data可視化ツールSPARQL Timeliner
SPARQL Timelinerの使い方
ミュージアムへ行こう!
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-

汎用Web API“SPARQL”でオープンデータ検索

  • 1. 汎用Web API“SPARQL” でオープンデータ検索 @uedayou http://uedayou.net/ Kobe.R #13 + Open Data 2014.11.24
  • 2. オープンデータとの関わり • 特定非営利活動法人リンクト・オープン・データ・ イニシアティブ • 2014年より理事 • 関西支部支部長補佐 • Linked Open Data チャレンジJapan • 2014年度より実行委員 • オープンデータを利用するWebアプリを公開中 • http://uedayou.net/ • ソースコード:https://github.com/uedayou
  • 3. • 目的 • リンクト・オープン・データ(LOD)の国内での普及促進 • 理事長 • 国立情報学研究所武田英明教授 • 主な事業 • LOD並びにオープンデータに関する調査研究事業 • 講座やシンポジウムの開催 • LOD並びにオープンデータへの取り組み支援 • オープンデータへの取り組み評価
  • 4. • 主な実績 • Open Data METI(平成24〜25年度経済産業省) • データカタログサイトの構築 • LODの設計 • アイディアソン、ヴィジュアライズソンの開催 • 都道府県・市区町村コード(平成25年度独立行政法 人統計センター) • 自治体行政情報流通連携基盤実証事業(平成25年度 総務省) • LOD連続セミナー(自主事業)
  • 5. LOD連続セミナー(自主事業) • 2014年5~7月まで計6回開催 • 資料はLODI のWebサイトで公開中 • http://linkedopendata.jp/?cat=17
  • 6. 今日お話する内容 •汎用Web API“SPARQL”とは? •SPARQLを使ってみよう! •SPARQLでアプリを作ってみよう!
  • 8. SPARQL いろんなデータベース で使えます • RDF(LOD)用の汎用クエリ言語 • RDF(LOD)用のデータベースからトリプル(3つ組) データを検索して、表形式でデータが取得できます 扱いやすい! PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?uri rdfs:label ?label . } LIMIT 10 ?uri ?label http://ja.dbpedia.org/resource/岩手県"岩手県" http://ja.dbpedia.org/resource/石川県"石川県" http://ja.dbpedia.org/resource/愛媛県"愛媛県" http://ja.dbpedia.org/resource/岡山県"岡山県"
  • 9. SPARQLで検索できる オープンデータが増えています データ種別Web API Wikipedia DBPedia Wikipediaオントロジー 行政データデータシティ鯖江 都道府県・市区町村コード情報 Open Data METI イベントデータヨコハマ・アート・LOD 博物館データEuropeana LODAC Museum The British Museum 図書館データThe British National Bibliography Web NDL Authorities 地理データLinked Geo Data LODAC Location 気象データ気象庁XML用API 生物種データLODAC Species この他にも多くのオープンデータがSPARQLで検索できます
  • 14. RDFとは (Resource Description Framework) 主語 (Subject) 目的語 (Object) 述語 (Predicate) • データを「主語」「述語」「目的語」を1つのセット (トリプル、三つ組み)として記述 例えば… 東京都隣の県神奈川県
  • 15. トリプルデータを表形式に変換 主語述語目的語 dbpedia: rdfs:label "東京都" 東京都 dbpedia: 東京都 rdfs:comment “東京都(とうきょうと)は、日本 の都道府県の一つである。" dbpedia: 大阪府 変換! id label comment rdfs:label “大阪府” dbpedia: 大阪府 dbpedia: 東京都 "東京都" “東京都(とうきょうと)は、日本 rdfs:comment "大阪府(おおさかふ)は、近畿 地方(関西地方)に属する日本 の都道府県の一つ。" dbpedia: 京都府 rdfs:label “京都府” dbpedia: 京都府 rdfs:comment "京都府(きょうとふ)は、日本 国・近畿地方の都道府県。" の都道府県の一つである。" dbpedia: 大阪府 “大阪府” "大阪府(おおさかふ)は、近畿 地方(関西地方)に属する日本 の都道府県の一つ。" dbpedia: 京都府 “京都府” "京都府(きょうとふ)は、日本 国・近畿地方の都道府県。" SPARQLなら簡単にできます!
  • 16. HTML・CSV・XML・JSONなど さまざまな形式で出力可能! • formatパラメータを変更するだけ JSON http://db.lodc.jp/sparql?query=...&format=json XML http://db.lodc.jp/sparql?query=...&format=xml CSV http://db.lodc.jp/sparql?query=...&format=csv “format”はSPARQLエンドポイントによって異なる場合があります
  • 19. URI(IRI)とリテラル • URI(IRI) : <http://ja.dbpedia.org/resource/東京都> • 「<」「>」で挟まれた文字列 • 人・もの・出来事などを指し示すID • 指定したURIを同じURIを含むデータが検索される • リテラル: “東京” , “100” , “2014-09-20” … • 「”」で挟まれた文字列 • データそのもの(string, integer, float他) • 指定した文字列と同じ文字列を含むデータが検索され る • 目的語以外は指定できない
  • 20. 東京都 http://ja.dbpedia.or g/resource/東京都 http://ja.dbpedia.org/ property/隣接都道府県 http://ja.dbpedia.or g/resource/山梨県 http://ja.dbpedia.or g/resource/千葉県 http://ja.dbpedia.org /resource/神奈川県 http://www.w3.org/2000 /01/rdf-schema#label http://ja.dbpedia.or g/resource/埼玉県 山梨県 千葉県埼玉県 神奈川県 http://ja.dbpedia.org/ property/隣接都道府県 http://ja.dbpedia.org/ property/隣接都道府県 http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label 東京都と隣接県 RDFグラフ 東京都(とうきょうと)は、日本 の都道府県の一つである。 http://www.w3.org/2000 /01/rdf-schema#comment
  • 21. データベース上では… 主語述語目的語 <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県”
  • 22. URIとリテラル 主語述語目的語 <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県”
  • 23. データベース上では… 主語述語目的語 <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県”
  • 24. 東京都東京都(とうきょうと)は、日本 の都道府県の一つである。 http://ja.dbpedia.or g/resource/東京都 http://ja.dbpedia.or g/resource/山梨県 http://ja.dbpedia.or g/resource/千葉県 http://www.w3.org/2000 /01/rdf-schema#comment http://ja.dbpedia.org /resource/神奈川県 http://www.w3.org/2000 /01/rdf-schema#label http://ja.dbpedia.or g/resource/埼玉県 山梨県 千葉県埼玉県 神奈川県 http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label 東京都と隣接県 RDFグラフ http://ja.dbpedia.org/ property/隣接都道府県 http://ja.dbpedia.org/ property/隣接都道府県 http://ja.dbpedia.org/ property/隣接都道府県
  • 25. (1) シンプルなSPARQLクエリ SELECT ?s ?p ?o WHERE { ?s ?p ?o. } • 全てのトリプルデータを検索
  • 26. SELECT SELECT ?s ?p ?o WHERE { ?s ?p ?o. } • SELECT の後ろに続く変数(?で始まる文字列)に格納さ れたデータを表形式で取得 • 変数名は必ずWHERE文の中で指定したものを記述す ること • 例では?s 、?p 、?o
  • 27. SELECT SELECT * WHERE { ?s ?p ?o . • アスタリスク「*」を指定すると、WHERE文の中の 全ての変数を指定したことと同じになる • ?s、?p、?o が抽出される } SELECT ?s ?p ?o WHERE { ?s ?p ?o. } =
  • 28. DISTINCT SELECT DISTINCT ?s ?p ?o WHERE { ?s ?p ?o. } • 「SELECT」と変数の間に「DISTINCT」を入れると指定 した全ての変数で重複したパターンがあった場合、 検索結果から除外される
  • 29. WHERE SELECT ?s ?p ?o WHERE { ?s ?p ?o . } • WHERE { } 内に検索したいトリプルパターンを書く
  • 30. 基本構造 述語の 指定 目的語 の指定 SELECT ?s ?p ?o WHERE { ?s ?p ?o . } 主語の 指定 必ずピリオド で終わる • トリプルデータを指定するために、3つの変数(?s, ?p, ?o) またはURI、リテラル(目的語のみ)を1セットで書く • 1セットの終わりには必ずピリオド「.」をつける
  • 31. ?s ?p ?o <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県” 検索対象
  • 33. 変数 • 変数: ?s , ?p , ?o, ?label, ?comment … • 「?」で始まる文字列 • パターンに当てはまるデータ全てが格納される • 検索式内の同一変数は同じデータが入るという意味に トリプルパターン ?id rdfs:label ?label. id label dbpedia: 東京都 "東京都" dbpedia: 大阪府 “大阪府” dbpedia: 京都府 “京都府”
  • 34. トリプルパターン ?id rdfs:comment ?comment. id comment dbpedia: 東京都 “東京都(とうきょうと)は、日本 の都道府県の一つである。" dbpedia: 大阪府 "大阪府(おおさかふ)は、近畿 地方(関西地方)に属する日本 の都道府県の一つ。" dbpedia: 京都府 "京都府(きょうとふ)は、日本 国・近畿地方の都道府県。"
  • 36. (2) 述語が <http://www.w3.org/2000/01/rdf-schema#label> であるトリプルを取得 主語の 指定 SELECT ?s ?o WHERE { 述語の 指定 目的語 の指定 ?s <http://www.w3.org/2000/01/rdf-schema#label> ?o . } • <http://www.w3.org/2000/01/rdf-schema#label> はデータ のラベル(名前)を示す場合によく利用されています。 • 省略形は「rdfs:label」
  • 37. ?s ?p ?o <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県” 検索対象
  • 39. (3)主語に<http://ja.dbpedia.org/resource/東京都> が指定されているトリプルを取得 述語の 指定 select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } 主語の 指定 目的語 の指定 • <http://ja.dbpedia.org/resource/東京都>に関する データ(述語と目的語)全て検索
  • 40. ?s ?p ?o <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県” 検索対象
  • 42. (4) 東京都に隣接する県の名前 1. 東京都のURIから隣接する都道府県を表す <http://ja.dbpedia.org/property/隣接都道府県> を述語として持つ目的語を検索する 2. さらに、検索された目的語を主語に指定して、そ のrdfs:labelを検索する SELECT DISTINCT ?pref ?label WHERE { <http://ja.dbpedia.org/resource/東京都> <http://ja.dbpedia.org/property/隣接都道府県> ?pref. ?pref <http://www.w3.org/2000/01/rdf-schema#label> ?label. } • 同じ変数(例えば?pref)を異なるトリプルパターン で記述すると、同じURIを持つもののみ検索される (AND検索)
  • 43. 主語述語目的語 <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource /東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /山梨県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /千葉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /埼玉県> <http://ja.dbpedia.org/resource /東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource /神奈川県> <http://ja.dbpedia.org/resource /山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource /千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> “千葉県” <http://ja.dbpedia.org/resource /埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource /神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県” 検索対象 ?pref ?label 「?pref」と同じURIを 主語に持つトリプル を選択
  • 45. PREFIXによるURIの省略表記 • URI記述はPREFIXを利用することで省略表記が可能 • クエリ先頭行に以下のような形式で追加 • PREFIX BINDNAME : <URI> • 例:PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> • PREFIX を指定するとURIを省略表記に • <http://www.w3.org/2000/01/rdf-schema#label> • PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> • rdfs:label
  • 46. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/> PREFIX prop-ja: <http://ja.dbpedia.org/property/> 主語述語目的語 <http://ja.dbpedia.org/resource/ 東京都> <http://www.w3.org/2000/01/ rdf-schema#label> "東京都" <http://ja.dbpedia.org/resource/ 東京都> <http://www.w3.org/2000/01/ rdf-schema#comment> “東京都(とうきょうと)は、日本 の都道府県の一つである。" <http://ja.dbpedia.org/resource/ 東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource/ 山梨県> <http://ja.dbpedia.org/resource/ 東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource/ 千葉県> <http://ja.dbpedia.org/resource/ 東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource/ 埼玉県> <http://ja.dbpedia.org/resource/ 東京都> <http://ja.dbpedia.org/property /隣接都道府県> <http://ja.dbpedia.org/resource/ 神奈川県> <http://ja.dbpedia.org/resource/ 山梨県> <http://www.w3.org/2000/01/ rdf-schema#label> “山梨県” <http://ja.dbpedia.org/resource/ 千葉県> <http://www.w3.org/2000/01/ rdf-schema#label> <http://ja.dbpedia.org/resource/ 埼玉県> <http://www.w3.org/2000/01/ rdf-schema#label> “埼玉県” <http://ja.dbpedia.org/resource/ 神奈川県> <http://www.w3.org/2000/01/ rdf-schema#label> “神奈川県” dbpedia-jp:東京都rdfs:label dbpedia-jp:東京都rdfs:comment dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:山梨県 dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:千葉県 dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:埼玉県 dbpedia-jp:東京都prop-ja:隣接都道府県dbpedia-jp:神奈川県 dbpedia-jp:山梨県rdfs:label dbpedia-jp:千葉県rdfs:label “千葉県” dbpedia-jp:埼玉県rdfs:label “埼玉県” dbpedia-jp:神奈川県rdfs:label “神奈川県”
  • 47. rdfs:label http://ja.dbpedia.or g/resource/東京都 東京都と隣接県 RDFグラフ http://ja.dbpedia.org/ property/隣接都道府県 prop-ja:隣接都道府県 http://ja.dbpedia.or g/resource/山梨県 dbpedia-ja:東京都 prop-ja:隣接都道府県 http://ja.dbpedia.or g/resource/千葉県 東京都(とうきょうと)は、日本 の都道府県の一つである。 http://rdfs:www.comment w3.org/2000 /01/rdf-schema#comment prop-ja:隣接都道府県 http://ja.dbpedia.org /resource/神奈川県 dbpedia-ja:神奈川県 http://www.w3.org/2000 /01/rdf-schema#label http://ja.dbpedia.or g/resource/埼玉県 山梨県 千葉県埼玉県 神奈川県 http://ja.dbpedia.org/ property/隣接都道府県 http://ja.dbpedia.org/ property/隣接都道府県 http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label http://www.w3.org/2000 /01/rdf-schema#label 東京都 dbpedia-ja:山梨県 dbpedia-ja:千葉県dbpedia-ja:埼玉県 rdfs:label rdfs:label rdfs:label rdfs:label
  • 48. (5) 「東京都に隣接する県の名前」 のクエリを省略して書くと… SELECT DISTINCT ?pref ?label WHERE { <http://ja.dbpedia.org/resource/東京都> <http://ja.dbpedia.org/property/隣接都道府県> ?pref. ?pref <http://www.w3.org/2000/01/rdf-schema#label> ?label. } PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dbpedia-ja: <http://ja.dbpedia.org/resource/> PREFIX prop-ja: <http://ja.dbpedia.org/property/> SELECT DISTINCT ?pref ?label WHERE { dbpedia-ja:東京都prop-ja:隣接都道府県?pref . ?pref rdfs:label ?label . }
  • 50. (6) 同一主語の省略 • 同じ主語から異なる複数の述語を指定する場合、 目的語のあとのピリオド「.」をセミコロン「;」にするこ とで次のトリプルパターンの主語を省略できます SELECT DISTINCT * WHERE { dbpedia-ja:東京都rdfs:label ?label . dbpedia-ja:東京都rdfs:comment ?comment . } SELECT DISTINCT * WHERE { dbpedia-ja:東京都rdfs:label ?label ; rdfs:comment ?comment . } 省略を終了するトリプルパターン の最後は必ずピリオドにすること 主語を 省略 できる
  • 52. SPARQLの便利な検索機能 検索句機能 LIMIT 検索結果の上限を設定 OFFSET 検索結果の取得位置を指定 ORDER BY 検索結果の並び順を指定 OPTIONAL OPTIONAL内は任意検索 FILTER 検索結果のフィルタリングが可能 REGEX 正規表現による検索が可能 BIND 新たな変数への割り当てが可能 CONCAT 文字列の結合が可能 REPLACE 文字列の置き換えが可能(正規表現使用可) SUBSTR 文字列の切り出しが可能 COUNT 検索件数を表示 GROUP BY 変数のグループ化が可能 HAVING グループ化した変数の絞込みが可能
  • 53. FROM • トリプルデータには、その全体を現す名前(グラフ 名)が指定されています • FROMを使うとグラフ名ごとに検索が行えます PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri ?label FROM <http://lod.sfc.keio.ac.jp/challenge2014/show_status.php?id=d001> WHERE { ?uri rdfs:label ?label . } <http://lod.sfc.keio.ac.jp/challenge2014/show_status.php?id=d001> というグラフ名がついているトリプルデータを対象とする
  • 54. http://lod.sfc.keio.ac.jp/challenge2014 /show_status.php?id=d001 グラフ名ごと に検索が可能主語述語目的語 http://lod.sfc.keio.ac.jp/challenge2013 /show_status.php?id=d030 dbpedia-ja:大阪府rdfs:label “大阪府" dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:兵庫県 dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:和歌山県 dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:京都府 dbpedia-ja:大阪府prop-ja:隣接都道府県dbpedia-ja:奈良県 dbpedia-ja:兵庫県rdfs:label “兵庫県” dbpedia-ja:和歌山県rdfs:label “和歌山県” dbpedia-ja:京都府rdfs:label “京都府” dbpedia-ja:奈良県rdfs:label “奈良県” FROM LODチャレンジエンドポイントでは、 エントリーページのURLが グラフ名になっています
  • 56. トイレ危険地帯 • Linked Open Data チャレンジ2013 受賞作品 • 鯖江市が公開するオープンデータのうち、公衆トイ レの位置を利用してトイレのない地域をWebアプリ でビジュアライズ http://y4ashida.github.io/toilet/
  • 57. ○○危険地帯 • トイレ危険地帯のソースコードを修正して、SPARQL でさまざまなデータで空白地域をビジュアライズで きるようにしました • https://github.com/uedayou/dangerzone-sparql
  • 59. ○○危険地帯の使い方 1. 「Download ZIP」ボタンを押してソースコード をダウンロード 2. ZIPファイルを解凍 3. config.js の書き換える 4. Index.html をブラウザで開く SPARQLを書きます
  • 60. config.js の書き方 // SPARQLエンドポイントを指定 var endpoint = "http://db.lodc.jp/sparql"; // SPARQLクエリを指定 var query = (function () {/* SELECT DISTINCT * FROM <http://lod.sfc.keio.ac.jp/challenge2013/show_status.php?id=d030> WHERE{ ?uri <http://lodosaka.hozo.jp/category_1> "公衆トイレ"@ja ; <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?latitude ; <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?longitude . } */}).toString().match(/¥n([¥s¥S]*)¥n/)[1]; // 中心位置を指定 var initial_latitude =34.68206400648744; var initial_longitude =135.49816131591797; // ズーム率を指定 var initial_zoom = 11; SPARQL エンドポイント SPARQL クエリ
  • 61. 大阪市のいろんな危険地帯を作っ てみよう! // SPARQLエンドポイントを指定 var endpoint = "http://db.lodc.jp/sparql"; // SPARQLクエリを指定 var query = (function () {/* SELECT DISTINCT * FROM <http://lod.sfc.keio.ac.jp/challenge2013/show_status.php?id=d030> WHERE{ ?uri <http://lodosaka.hozo.jp/category_1> "公衆トイレ"@ja ; <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?latitude ; <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?longitude . } LIMIT 1000 */}).toString().match(/¥n([¥s¥S]*)¥n/)[1]; // 中心位置を指定 var initial_latitude =34.68206400648744; var initial_longitude =135.49816131591797; // ズーム率を指定 var initial_zoom = 11; ここのカテゴリを変えると いろんな危険地帯が 作れます 例: “学校・保育所”@ja “名所・旧跡”@ja “警察・消防”@ja “医療・福祉”@ja “公園・スポーツ”@ja “駅・バス停”@ja …