SlideShare una empresa de Scribd logo
1 de 99
Descargar para leer sin conexión
SPARQLを利用した 逆マッシュアップ -プログラミングを必要としないアプリ作成方法- 
上田洋 
日本図書館研究会情報組織化研究グループLOD勉強会 
2014/08/30
紹介するSPARQLクエリ、エンドポイント、 アプリはこちらから利用・取得できます 
http://uedayou.net/sparql-examples/
自己紹介 
•株式会社ATR Creative 
•ソフトウェアエンジニア、スマートフォンアプリ開発を担 当 
•特定非営利活動法人リンクト・オープン・データ・イ ニシアティブ 
•2014年8月より理事 
•関西支部支部長補佐 
•LODチャレンジJapan実行委員 
•2014年度より
逆マッシュアップとは? 
•既存のアプリ(プログラム)を再利用して、データを 入れ替えて新たなアプリを簡単に作成 
•プログラム作成が大変 
•既存データのAPIを利用 
マッシュアップ 
データ 
API 
データ 
API 
プログラム の作成 
マッシュアップ 
•プログラムは再利用 
•新データをAPI化して挿入 
逆マッシュアップ 
データ 
API 
データの作成 
API化 
プログラム 
逆マッシュアップ 
簡単! 
「逆マッシュアップの提唱」より 
http://www.slideshare.net/tetsurotoyoda/ss-27381991
逆マッシュアップするために 
•LinkData.org を利用する 
•理化学研究所が開発した、データとアプリの作成・公開 をひとつのサイトで行える「逆マッシュアップ支援ツー ル」 
•自前のサーバが不要 
•LinkData.org に登録されたデータとアプリが再利用可能 
•SPARQLを利用する 
•SPARQLと呼ばれるクエリ言語で抽出したデータを、既存 アプリに当てはめて作成 
•SPARQLで高度なデータ加工・変換が可能なため、汎用 性・自由度が高い 
•世界中のSPARQLエンドポイント(Web API)で公開される データも利用可能
SPARQLを利用した逆マッシュアップ 
•SPARQLだけで作成できるWebアプリがいくつか公開中 
•地図、カレンダー、データ検索、ビジュアライズなど 
•利用できるSPARQLエンドポイント、データ量・種類が豊富 
•Wikipedia:DBpedia、DBpediaJapanese、日本語Wikipediaオントロジー 
•行政データ:データシティ鯖江、次世代統計利用システム都道府県・市区町村コード情 報 
•文化芸術データ:Europeana、ヨコハマ・アート・LOD、LODAC Museum 
•書誌・典拠データ:The British National Bibliography、Web NDL Authorities 
•地理データ:Linked Geo Data、LODAC Location 
•気象データ:気象庁XML用API 
ほか 
•作成データを手軽にSPARQLエンドポイントで公開できる サービスも 
•SparqlEPCU
1.SPARQLの使い方
SPARQLとは? 
•SPARQL Protocol and RDF Query Language 
•RDF用のクエリ言語 
•RDFストア(データベース)に設置されるSPARQLエン ドポイントからトリプルデータ検索・抽出が可能 
PREFIX rdfs: 
<http://www.w3.org/2000/01/rdf-schema#> 
SELECT * WHERE { 
?urirdfs: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での検索方法 
•RDFストアに設置されたSPARQL検索ページ 
•直接SPARQLエンドポイント(API)を直接利用 
•例:http://ja.dbpedia.org/sparql?query={SPARQLクエリ} 
•JSONやXML、CSVなどで取得可能
例:DBPediaJapaneseで東京都に 関するデータを検索 
•http://ja.dbpedia.org/sparql を開いて「Run Query」 を押すと検索できます 
select distinct * where 
{ 
<http://ja.dbpedia.org/resource/東京都> ?p ?o . 
} 
SPARQLクエリ 
検索結果
2.SPARQLの書き方
変数とURI(IRI)とリテラル 
•変数 
•「?」で始まる文字列 
•該当する全てのデータが格納される 
•検索式内の同一変数は同じデータが入るという意味に 
•URI(IRI) 
•「<」「>」で挟まれた文字列 
•指定したURIを同じURIを含むデータが検索される 
•リテラル 
•「”」で挟まれた文字列 
•指定した文字列と同じ文字列を含むデータが検索され る 
•目的語以外は指定できない
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/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 
http://www.w3.org/2000 
/01/rdf-schema#label 
東京都と隣接県 RDFグラフ
主語 
述語 
目的語 
<http://ja.dbpedia.org/resource/東京都> 
<http://www.w3.org/2000/01/rdf-schema#label> 
"東京都" 
<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://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://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://ja.dbpedia.org/resource/山梨県 
http://ja.dbpedia.org/resource/千葉県 
http://ja.dbpedia.org/resource/埼玉県 
山梨県 
千葉県 
埼玉県 
http://ja.dbpedia.org/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 
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 の後ろに続く変数(?で始まる文字列)に格納さ れたデータを表形式で取得 
•変数名は必ずWHERE文の中で指定したものを記述す ること 
•例では?s、?p、?o 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
}
SELECT 
•アスタリスク「*」を指定すると、WHERE文の中の 全ての変数を指定したことと同じになる 
•?s、?p、?o が抽出される 
SELECT * WHERE 
{ 
?s ?p ?o . 
} 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
=
DISTINCT 
•「SELECT」と変数の間に「DISTINCT」を入れると指定 した全ての変数で重複したパターンがあった場合、 検索結果から除外される 
SELECT DISTINCT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
}
WHERE 
•WHERE { } 内に検索したいトリプルパターンを書く 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o . 
}
基本構造 
•トリプルデータを指定するために、3つの変数また はURI、リテラル(目的語のみ)を1セットで書く 
•1セットの終わりには必ずピリオド「.」をつける 
SELECT ?s ?p ?o WHERE 
{ 
?s ?p ?o. 
} 
主語の 
指定 
述語の 
指定 
目的語 
の指定 
必ずピリオド で終わる
?s 
?p 
?o 
<http://ja.dbpedia.org/resource/東京都> 
<http://www.w3.org/2000/01/rdf-schema#label> 
"東京都" 
<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-examples/test-endpoint/
(2) 述語が <http://www.w3.org/2000/01/rdf-schema#label> であるトリプルを取得 
•<http://www.w3.org/2000/01/rdf-schema#label>はデータ のラベル(名前)を示す場合によく利用されています。 
•省略形は「rdfs:label」 
SELECT ?s ?o WHERE 
{ 
?s <http://www.w3.org/2000/01/rdf-schema#label> ?o . 
} 
主語の 
指定 
述語の 
指定 
目的語 
の指定
?s 
?p 
?o 
<http://ja.dbpedia.org/resource/東京都> 
<http://www.w3.org/2000/01/rdf-schema#label> 
"東京都" 
<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-examples/test-endpoint/
select distinct * where 
{ 
<http://ja.dbpedia.org/resource/東京都> ?p ?o . 
} 
(3) DBpediaのデフォルトのクエリ の意味 
•主語に<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://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-examples/test-endpoint/
(4) 東京都に隣接する県の名前 
1.東京都のURIから隣接する都道府県を表す <http://ja.dbpedia.org/property/隣接都道府県> を述語として持つ目的語を検索する 
2.さらに、検索された目的語を主語に指定して、そ のrdfs:labelを検索する 
•同じ変数(例えば?pref)を異なるトリプルパターン で記述すると、同じURIを持つもののみ検索される (AND検索) 
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. 
}
主語 
述語 
目的語 
<http://ja.dbpedia.org/resource/東京都> 
<http://www.w3.org/2000/01/rdf-schema#label> 
"東京都" 
<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-examples/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/re 
source/東京都> 
<http://www.w3.org/200 
0/01/rdf-schema#label> 
<http://ja.dbpedia.org/re 
source/東京都> 
<http://ja.dbpedia.org/pr 
operty/隣接都道府県> 
<http://ja.dbpedia.org/re 
source/山梨県> 
<http://ja.dbpedia.org/re 
source/東京都> 
<http://ja.dbpedia.org/pr 
operty/隣接都道府県> 
<http://ja.dbpedia.org/re 
source/千葉県> 
<http://ja.dbpedia.org/re 
source/東京都> 
<http://ja.dbpedia.org/pr 
operty/隣接都道府県> 
<http://ja.dbpedia.org/re 
source/埼玉県> 
<http://ja.dbpedia.org/re 
source/東京都> 
<http://ja.dbpedia.org/pr 
operty/隣接都道府県> 
<http://ja.dbpedia.org/re 
source/神奈川県> 
<http://ja.dbpedia.org/re 
source/山梨県> 
<http://www.w3.org/200 
0/01/rdf-schema#label> 
<http://ja.dbpedia.org/re 
source/千葉県> 
<http://www.w3.org/200 
0/01/rdf-schema#label> 
<http://ja.dbpedia.org/re 
source/埼玉県> 
<http://www.w3.org/200 
0/01/rdf-schema#label> 
<http://ja.dbpedia.org/re 
source/神奈川県> 
<http://www.w3.org/200 
0/01/rdf-schema#label> 
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 “神奈川県”
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/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 
http://www.w3.org/2000 
/01/rdf-schema#label 
東京都と隣接県 RDFグラフ 
dbpedia-ja:東京都 dbpedia-ja:山梨県 prop-ja:隣接都道府県 dbpedia-ja:千葉県dbpedia-ja:埼玉県 dbpedia-ja:神奈川県 prop-ja:隣接都道府県 prop-ja:隣接都道府県 rdfs:label rdfs:labelrdfs:labelrdfs: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. 
?prefrdfs:label?label . 
}
http://uedayou.net/sparql-examples/test-endpoint/
(6) 同一主語の省略 
•同じ主語から複数のプロパティを指定する場合、 目的語のあとのピリオド「.」をセミコロン「;」にするこ とで次のトリプルパターンの主語を省略できます 
SELECT DISTINCT ?pref?label WHERE { 
dbpedia-ja:東京都rdfs:label?label . 
dbpedia-ja:東京都prop-ja:隣接都道府県?pref. 
} 
SELECT DISTINCT ?pref?label WHERE { 
dbpedia-ja:東京都rdfs:label?label ; 
prop-ja:隣接都道府県?pref. 
} 
省略を終了するトリプルパターン の最後は必ずピリオドにすること 
主語を 
省略 
できる
http://uedayou.net/sparql-examples/test-endpoint/
よく使われそうな述語(プロパティ) 
意味 
プロパティ 
ラベル 
名前 
タイトル 
rdfs:label<http://www.w3.org/2000/01/rdf-schema#label> 
dc:title<http://purl.org/dc/elements/1.1/title> 
dcterms:title<http://purl.org/dc/terms/title> 
schema:name<http://schema.org/name> 
foaf:name<http://xmlns.com/foaf/0.1/name> 
作者 
著者 
dc:creator 
<http://purl.org/dc/elements/1.1/creator> 
dcterms:creator 
<http://purl.org/dc/terms/creator> 
作成日 
dc:created 
<http://purl.org/dc/elements/1.1/created> 
dcterms:created 
<http://purl.org/dc/terms/created> 
更新日 
dc:modified 
<http://purl.org/dc/elements/1.1/modified> 
dcterms:modified 
<http://purl.org/dc/terms/modified> 
開始 
時間 
schema:startDate<http://schema.org/startDate> 
cal:dtstart<http://www.w3.org/2002/12/cal/icaltzd#dtstart> 
終了 
時間 
schema:endDate<http://schema.org/endDate> 
ical:dtend<http://www.w3.org/2002/12/cal/icaltzd#dtend>
意味 
プロパティ 
緯度 
geo:lat 
<http://www.w3.org/2003/01/geo/wgs84_pos#lat> 
経度 
geo:long 
<http://www.w3.org/2003/01/geo/wgs84_pos#long> 
説明 
内容 
dc:description 
<http://purl.org/dc/elements/1.1/description> 
dcterms:description<<http://purl.org/dc/terms/description> 
schema:description<http://schema.org/description> 
データ 
タイプ 
rdf:type(※SPARQLでは「a」と省略できる) 
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
Web 
ページ 
foaf:homepage<http://xmlns.com/foaf/0.1/homepage> 
schema:url<http://schema.org/url> 
メール 
アドレス 
vCard:email<http://www.w3.org/2006/vcard/ns#email> 
foaf:mbox<http://xmlns.com/foaf/0.1/mbox> 
画像 
schema:image<http://schema.org/image> 
foaf:Image<http://xmlns.com/foaf/0.1/Image> 
住所 
schema:address<http://schema.org/address> 
vCard:adr<http://www.w3.org/2006/vcard/ns#adr> 
電話番 号 
schema:telephone<http://schema.org/telephone> 
vCard:tel<http://www.w3.org/2006/vcard/ns#tel> 
foaf:phone<http://xmlns.com/foaf/0.1/phone>
LIMIT 
•検索結果の上限を設定 
•WHERE{}の後ろに記述 
•「LIMIT 10」で最大10件取得 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri?label WHERE 
{ 
?urirdfs:label?label . 
} 
LIMIT 10
OFFSET 
•検索結果の取得位置を指定 
•WHERE{}の後ろに記述 
•「OFFSET 100」は100番目から取得 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri?label WHERE 
{ 
?urirdfs:label?label . 
} 
LIMIT 10 
OFFSET 100
ORDER BY / ORDER BY DESC 
•検索結果の並び順を指定 
•WHERE{}の後ろに記述 
•「ORDER BY ?created」で作成日昇順にソート 
•「ORDER BY DESC(?created)」なら作成日降順 
•LIMIT、OFFSETがあれば、その前に挿入 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT DISTINCT ?uri?created WHERE 
{ 
?uridc:created?created. 
} 
ORDER BY ?created 
LIMIT 10 
OFFSET 100 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT DISTINCT ?uri?created WHERE 
{ 
?uridc:created?created. 
} 
ORDER BY DESC(?created) 
LIMIT 10 
OFFSET 100
OPTIONAL 
•OPTIONAL{ … } 内のグラフパターンはパターンに一 致しなくても、OPTIONAL外のパターンに一致すれ ば検索される 
•WHERE{ … } 内に記述 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT DISTINCT ?uri?label ?description WHERE 
{ 
?urirdfs:label?label . 
OPTIONAL { 
?uridc:description?description. 
} 
}
FILTER 
•検索結果のフィルタリングが可能 
•WHERE{ … } 内に記述 
•dcterms:issuedが2000(年)以上のものを検索 
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dcterms: <http://purl.org/dc/terms/> 
SELECT DISTINCT ?uri?label ?issued WHERE 
{ 
?urirdfs:label?label ; 
dcterms:issued?issued . 
FILTER ( ?issued >= 2000) 
}
REGEX 
•正規表現による検索が可能 
•FILTER と組み合わせて利用する 
•WHERE{ … } 内に記述 
•書き方 
•REGEX( 検索対象の変数, 正規表現) 
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri?label WHERE 
{ 
?urirdfs:label?label . 
FILTER ( REGEX ( ?label, “^東京.*$” ) ) 
} 
?labelを「東京」で前方一致検索
BIND / CONCAT 
•BIND:指定した変数・データを別の名前の変数に 割り当てが可能 
•BIND( [割り当てるデータ]AS [変数] ) 
•CONCAT:変数や文字列同士の結合が可能、値は リテラルに 
•CONCAT( [変数or文字列] , [変数or文字列] , … ) 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT DISTINCT ?uri?label ?description ?text WHERE 
{ 
?urirdfs:label?label ; 
dc:description?description . 
BIND( CONCAT( “<h1>” , ?label ,“</h1><p>” , ?description,“</p>” ) AS?text ) 
} 
?text は「<h1>[?labelのデータ]</h1><p>[?descriptionのデータ]</p>」になる
COUNT 
•変数のデータ総数を計算 
SELECT COUNT(*)WHERE 
{ 
?s ?p ?o . 
} 
全トリプル数を計算
GROUP BY / HAVING 
•GROUP BY:指定の変数でデータを集約(グループ 化)する 
•HAVING:グループ化されたデータの絞込み 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT ?creator ( COUNT( ?uri) AS ?count ) 
WHERE 
{ 
?uridc:creator?creator . 
} 
GROUP BY ?creator 
ORDER BY DESC(?count) 
HAVING( COUNT(?uri) >= 5 ) 
COUNT(?uri)の 
結果が?countに 
?creator(作者)で集約 
異なる主語が5つ以上 
ある作者のみ対象
FROM 
•トリプルデータには、その全体を現す名前(グラフ 名)が指定されています 
•FROMを使うとグラフ名ごとに検索が行えます 
<http://hoge.jp/defaultgraph> というグラフ名が 
ついているトリプルデータを対象とする 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri?label 
FROM <http://hoge.jp/graph/01> 
WHERE 
{ 
?urirdfs:label?label . 
}
http://hoge.jp/graph/02 
http://hoge.jp/graph/01 
グラフ名ごと 
に検索が可能主語述語目的語 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“奈良県”
データ型のキャスト 
•str(?data) 
•データを文字列に変換 
•URI(?data) 
•データをURIに変換 
•xsd:integer(?data) 
•データを整数値型に変換 
•xsd:float(?data) / xsd:double(?data) 
•データを浮動小数点型に変換 
•xsd:dateTime(?data) 
•データをdateTime型に変換 
※PREFIX xsd:<http://www.w3.org/2001/XMLSchema#> があることが前提
複数の人や物を含むフィールド を分割するメリット(1) 
•検索精度が向上 
•「上田洋」で検索した場合 
「上田洋@@@村上晴美@@@辰巳昭治」 
「上田洋一」 
•分割すると… 
「上田洋」 
「村上晴美」 
「辰巳昭治」 
「上田洋一」 
別名が検索される恐れ 
完全一致検索のため別名が検索されることはない
複数の人や物を含むフィールド を分割するメリット(2) 
•URIが付与でき、他のデータとつなげられる 
ex:武田英明 
武田英明 
dbpedia-ja: 武田英明 
ndl: 
武田英明 
kasm: 
武田英明 
Wikipedia 
Web NDL 
Authorities 
自身の 
Webサイト 
•最低限のデータだけを管理して、そのほかのデータは外部に任せられ る(データの分散管理) 
Linked Open Data のメリット
3.SPARQLクエリの例
DBpediaJapaneseより 
•エンドポイント:http://ja.dbpedia.org/sparql 
•鉄道駅の駅名と位置データ(緯度・経度)を取得 
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
select * where { 
?link a dbpedia-owl:Station; 
rdfs:label?title; 
geo:lat?lat; 
geo:long?long. 
}
LODチャレンジJapan応募作品の SPARQLエンドポイント試行版より 
•エンドポイント:http://db.lodc.jp/sparql 
•応募作品のグラフURIとタイトル一覧を100件取得 
•http://lodc.jp/ にいくつかクエリ例があります 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dcterms: <http://purl.org/dc/terms/> 
SELECT ?id ?title 
FROM <http://lod.sfc.keio.ac.jp/challenge/entries> 
WHERE { 
?s dcterms:title?title; 
rdfs:seeAlso?id. 
} 
LIMIT 100
青空文庫LODより 
•エンドポイント:http://mdlab.slis.tsukuba.ac.jp/sparql 
•1600年以前に生まれた作者の作品 
•http://mdlab.slis.tsukuba.ac.jp/lodc2012/aozoralod/aozoralod_search.html にクエリ例がいくつかあります 
PREFIX xsd:<http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdag2:<http://RDVocab.info/ElementsGr2/> 
PREFIX dcterms:<http://purl.org/dc/terms/> 
select distinct * 
from <http://purl.org/net/aozora/resources> 
where{ 
?title_uridcterms:creator?creator_uri; 
dcterms:title[rdf:value?title]. 
?creator_urirdag2:dateOfBirth ?date. 
filter(?date < "1800-12-31"^^xsd:date) 
}
京都国際マンガミュージアム 書誌情報LODより 
•エンドポイント:http://mdlab.slis.tsukuba.ac.jp/sparql 
•マンガ著作とそのマンガ家を表示するSPARQL文 
•http://mdlab.slis.tsukuba.ac.jp/lodc2012/kmm/example.htmlにクエリ例 がいくつかあります 
PREFIX rda:<http://rdvocab.info/Elements#> 
PREFIX rdaG2:<http://rdvocab.info/ElementsGr2#> 
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX kmm:<http://mdlab.tsukuba.ac.jp/lodc2012/kmm/> 
PREFIX frbrer:<http://iflastandards.info/ns/fr/frbr/frbrer#> 
select distinct ?mangalabel?creator ?name 
from <http://purl.org/net/mdlab/kmm> 
where { 
?manga rda:titleProper?mangalabel; 
rdf:typekmm:Wmanga; 
frbrer:isCreatedByPerson?creator. 
?creator rdaG2:preferredNameForThePerson ?name. 
} 
ORDER BY ?manga
LODAC Museumより 
•エンドポイント:http://lod.ac/sparql 
•横浜美術館が所蔵している日本画の作品 
•http://lod.ac/wiki/SPARQLスニペットにクエリ例がたくさんあります 
PREFIX dc: <http://purl.org/dc/terms/> 
PREFIX dc11: <http://purl.org/dc/elements/1.1/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX lodac: <http://lod.ac/ns/lodac#> 
PREFIX lodacid: <http://lod.ac/id/> 
SELECT ?work ?title ?creator ?created ?genre ?material ?size 
WHERE { 
lodacid:3172 lodac:isProviderOf?work . 
?work rdfs:label?title; 
dc:references?workRef. 
?workReflodac:genre"日本画"@ja; 
dc11:creator ?creator; 
dc:medium?material; 
dc:extent?size . 
OPTIONAL{ ?workRefdc:created?created . } 
} 
LIMIT 100
WebNDL Authoritiesより 
•エンドポイント:http://id.ndl.go.jp/auth/ndla?query= 
•API:http://id.ndl.go.jp/auth/ndla 
•「夏目漱石」の典拠情報URI、名称実体URI、生年、 没年、標目、標目カナヨミを調べる 
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX rda: <http://RDVocab.info/ElementsGr2/> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX xl: <http://www.w3.org/2008/05/skos-xl#> 
PREFIX ndl: <http://ndl.go.jp/dcndl/terms/> 
SELECT * WHERE { 
?uri1 foaf:primaryTopic?uri2. 
?uri1 xl:prefLabel[ xl:literalForm?heading; ndl:transcription?yomi]. 
?uri2 rda:dateOfBirth?birth. 
?uri2 rda:dateOfDeath?death. 
?uri2 foaf:name"夏目漱石". 
FILTER (lang(?yomi) = 'ja-Kana'). 
}
Europeanaより 
•エンドポイント:http://europeana.ontotext.com/sparql 
•Europeanaにコンテンツを提供する機関 
•http://europeana.ontotext.com/sparql にたくさんクエ リ例があります 
PREFIX edm: <http://www.europeana.eu/schemas/edm/> 
SELECT DISTINCT ?DataProvider 
WHERE { 
?Aggregation edm:dataProvider?DataProvider. 
}
The British National Bibliography より 
•エンドポイント:http://bnb.data.bl.uk/flint-sparql 
•API:http://bnb.data.bl.uk/sparql 
•ISBN「9780729408745」の本を検索 
•http://bnb.data.bl.uk/flint-sparqlにいくつかクエリ 例があります 
PREFIX bibo: <http://purl.org/ontology/bibo/> 
PREFIX blt: <http://www.bl.uk/schemas/bibliographic/blterms#> 
PREFIX dct: <http://purl.org/dc/terms/> 
SELECT ?book ?bnb ?title WHERE { 
?book bibo:isbn13 "9780729408745"; 
blt:bnb ?bnb; 
dct:title ?title. 
}
4.SPARQLで 逆マッシュアップ
SPARQLで逆マッシュアップ 
•SPARQLクエリを書くだけでプログラミングなしに いろんなアプリが作れます。
SPARQLで逆マッシュアップ 
•地図アプリ 
•leaflet-simple-sparql 
•カレンダーアプリ 
•fullcalendar-sparql-js 
•地図とタイムラインビジュアライズアプリ 
•SPARQL Timeliner 
•書籍検索アプリ 
•booksearch-sparql-js 
•データビジュアライズツール 
•sgvizler
地図アプリ 
•leaflet-simple-sparql 
•https://github.com/uedayou/leaflet-simple-sparql
使い方:leaflet-simple-sparql 
•githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード 
•解凍して「config.js」にエンドポイントとクエリを記述する 
•Webサーバに置く 
var endpoint = "http://ja.dbpedia.org/sparql"; 
var query = (function () {/* 
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
select * where { 
?link rdfs:label ?title; 
geo:lat ?lat; 
geo:long ?long. 
} 
limit 1000 
*/}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
カレンダーアプリ 
•fullcalendar-sparql-js 
•https://github.com/uedayou/fullcalendar-sparql-js
使い方:fullcalendar-sparql-js 
•githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード 
•解凍して「config.js」にエンドポイントとクエリを記述する 
•Webサーバに置く 
varendpoint = "http://archive.yafjp.org/test/inspection.php"; 
varquery = (function () {/* 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
PREFIX schema: <http://schema.org/> 
PREFIX event: <http://fp.yafjp.org/terms/event#> 
SELECT * WHERE{ 
?uria event:Event; 
schema:name?title; 
schema:startDate?start; 
schema:endDate?end; 
dc:description?description. 
} 
*/}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
地図とタイムラインの ビジュアライズアプリ 
•SPARQL Timeliner 
•http://uedayou.net/SPARQLTimeliner/
使い方:SPARQL Timeliner 
エンドポイントのURLを入力 
クエリを入力 
•http://uedayou.net/SPARQLTimeliner を開いてエンドポイントURLとクエリを入力して 「Load>>」ボタンをクリック
使い方:SPARQL Timeliner 
•以下のルールに従ってクエリを作成してください 
•詳しい使い方は以下の資料にまとめています 
•http://www.slideshare.net/uedayou/sparql-timeliner- 28905905
書籍検索アプリ 
•booksearch-sparql-js 
•https://github.com/uedayou/booksearch-sparql-js
使い方:booksearch-sparql-js 
•githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード 
•解凍して「config.js」にエンドポイントとクエリを記述する 
•?uriに書籍URI、?title に書籍タイトル、?description に詳細情 報が入るようにクエリを記述してください。 
•{% QUERY %} が検索文字列に置き換えられます。 
•Webサーバに置く 
// SPARQLエンドポイントURL 
varendpoint = "http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list"; 
// SPARQLクエリ(検索用) 
varlist_query= (function () {/* 
select distinct ?uri?title ?description where 
{ 
?uri<http://linkdata.org/property/rdf1s1294i#title> ?title; 
<http://linkdata.org/property/rdf1s1294i#Summary> ?description. 
filter(regex(str(?title), '.*?{% QUERY %}.*?')) 
} 
*/}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
使い方:booksearch-sparql-js 
•config.js のprop_labelsにURIとそのラベルを設定 しておくと、詳細表示の際にURIをラベルに置き換 わります。 
varprop_labels= { 
"http://purl.org/dc/terms/title":"タイトル", 
"http://purl.org/dc/elements/1.1/creator":"著者", 
…
データビジュアライズツール 
•sgvizler 
•http://dev.data2000.no/sgvizler/ 
•※今回はバージョン0.5を使います
使い方:sgvizler 
•以下のコードをHTMLファイルに貼り付けて保存してブラウザで開くだけ 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript" id="sgvzlr_script" src="http://sgvizler.googlecode.com/svn/release/0.5/sgvizler.js"></script> 
<script type="text/javascript"> 
<!--$(document).ready(sgvizler.go()); --> 
</script> 
<div 
id=“sgvizler-sample” 
data-sgvizler-endpoint 
="http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list" 
data-sgvizler-query=“ 
SELECT ?year (count(?uri) AS ?noOfUri) 
WHERE { 
?uri<http://linkdata.org/property/rdf1s1294i#Year> ?year. 
}GROUP BY ?year 
ORDER BY DESC(?noOfUri) 
“ 
data-sgvizler-chart="gBarChart" 
data-sgvizler-loglevel="2" 
data-sgvizler-chart-options="title=Number of instances" 
style="width:2000px; height:2500px;"></div> 
•以下で雛形コードをダウンロードできます 
•http://uedayou.net/sparql-examples/sgvizer-example.html
使い方:sgvizler 
<div 
id=“sgvizler-sample” 
data-sgvizler-endpoint 
="http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list" 
data-sgvizler-query=“ 
SELECT ?year (count(?uri) AS ?noOfUri) 
WHERE { 
?uri<http://linkdata.org/property/rdf1s1294i#Year> ?year. 
}GROUP BY ?year 
ORDER BY DESC(?noOfUri) 
“ 
data-sgvizler-chart="gBarChart" 
data-sgvizler-loglevel="2" 
data-sgvizler-chart-options=“title=出版年別ランキング" 
style="width:800px; height:500px;"></div> 
クエリを記述 
グラフの 
種類を指定 
エンドポイントを指定 
グラフタイトル 
を記述 
Idを指定
例で利用するデータ 
•京都が出てくる本のデータ 
•京都岡崎にある図書館で働く司書の方々が中心のグ ループ「ししょまろはん」が作成・公開する京都が舞台 の小説やマンガ・ライトノベル等のデータ 
•http://libmaro.kyoto.jp/ 
•作品の舞台となった京都府内の位置データや司書さん のおすすめ度もデータ化される 
•データ:http://linkdata.org/work/rdf1s1294i 
•エンドポイント(非公式): http://lodcu.cs.chubu.ac.jp/SparqlEPCU/project.jsp?projectID=kyotobook_list 
•DBpedia 
•Wikipediaのデータ 
•エンドポイント:http://ja.dbpedia.org/sparql
京都が出てくる本のデータ: 出版年ランキング 
http://uedayou.net/sparql-examples/sgvizler/kyoto-issued-ranking.html
京都が出てくる本のデータ: 著者トップ10 
http://uedayou.net/sparql-examples/sgvizler/kyoto-author-top10.html
京都が出てくる本のデータ: おすすめ度ランキング 
http://uedayou.net/sparql-examples/sgvizler/kyoto-recommend-ranking.html
京都が出てくる本のデータ: 出版社別ランキング 
http://uedayou.net/sparql-examples/sgvizler/kyoto-publisher-ranking.html
京都が出てくる本のデータ: カテゴリ別ランキング 
http://uedayou.net/sparql-examples/sgvizler/kyoto-category-ranking.html
クエリの書き方 (棒グラフ、円グラフの場合) 
•「data-sgvizler-chart」には以下を指定 
•円グラフ:「gPieChart」 
•縦棒グラフ:「gColumnChart」 
•横棒グラフ:「gBarChart」 
•GROUP BY を使ってデータをグループ化する 
•COUNTで出現回数を計算 
PREFIX dcterms: <http://purl.org/dc/terms/> 
SELECT ?year (COUNT(?uri) AS ?noOfUri) 
WHERE { 
?uridcterms:issued?year. 
} 
GROUP BY ?year 
ORDER BY DESC(?noOfUri)
クエリの書き方 (棒グラフ、円グラフの場合) 
•実際のデータは…
DBpedia:隣接都道府県グラフ 
http://uedayou.net/sparql-examples/sgvizler/dbpedia-pref-neighbor.html
クエリの書き方 (無指向グラフの場合) 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema> 
SELECTDISTINCT ?alabel?blabelWHERE 
{ 
?s <http://ja.dbpedia.org/property/隣接都道府県> ?o. 
?s rdfs:label?alabel. 
?o rdfs:label?blabel. 
} 
•無指向グラフの場合 
•「data-sgvizler-chart」には「gForceGraph」を指定 
•SELECTで二つのラベルが入るようにクエリを記述
クエリの書き方 (無指向グラフの場合) 
•実際のデータは…
SPARQLについて 
•RDF用クエリ言語SPARQL 
•http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf- sparql-query.html 
•SPARQL 1.1クエリ言語 
•http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/REC- sparql11-query-20130321.html 
•LOD連続講義第5回「LODの作り方・使い方」 
•http://www.slideshare.net/fuyukoitomatsumura/lod5lod 
•SPARQLを使い込む 
•http://www.slideshare.net/yayamamo/5linked- datayayamamo 
•SPARQLで集合論の実装| クリナ 
•http://clina.jp/blog/sparql-set-theory
SPARQLエンドポイント(1) 
•DBpedia 
•http://dbpedia.org/sparql 
•DBpediaJapanese 
•http://ja.dbpedia.org/sparql 
•日本語Wikipediaオントロジー 
•http://www.wikipediaontology.org/query/ 
•データシティ鯖江 
•http://sparql.odp.jig.jp/sparql.html 
•次世代統計利用システム都道府県・市区町村コード情報 
•http://statdb.nstac.go.jp/lod/sparql 
•Europeana 
•http://europeana.ontotext.com/sparql 
•ヨコハマ・アート・LOD 
•http://archive.yafjp.org/test/inspection.php 
•LODAC Museum 
•http://lod.ac/sparql 
•Web NDL Authorities 
•http://id.ndl.go.jp/auth/ndla?query=
SPARQLエンドポイント(2) 
•青空文庫LOD/京都国際マンガミュージアム 書誌情報LOD エンドポイント 
•http://mdlab.slis.tsukuba.ac.jp/sparql 
•青空文庫LOD 
•http://mdlab.slis.tsukuba.ac.jp/lodc2012/aozoralod/ 
•京都国際マンガミュージアム 書誌情報LOD 
•http://mdlab.slis.tsukuba.ac.jp/lodc2012/kmm/ 
•The British National Bibliography 
•http://bnb.data.bl.uk/flint-sparql 
•http://bnb.data.bl.uk/sparql 
•Linked Geo Data 
•http://linkedgeodata.org/sparql 
•気象庁防災情報XML 
•http://api.aitc.jp/ds/ 
•LODチャレンジJapan応募作品のエンドポイント試行版 
•http://db.lodc.jp/sparql 
•SparqlEPCU 
•http://lodcu.cs.chubu.ac.jp/SparqlEPCU/ 
•SPARQLエンドポイント一覧(the Datahub) 
•http://datahub.io/ja/dataset?res_format=api%2Fsparql
SPARQLを利用するアプリ(1) 
•leaflet-simple-sparql 
•https://github.com/uedayou/leaflet-simple-sparql 
•fullcalendar-sparql-js 
•https://github.com/uedayou/fullcalendar-sparql-js 
•SPARQL Timeliner 
•http://uedayou.net/SPARQLTimeliner/ 
•お手軽LOD可視化ツールSPARQL Timeliner 
•http://www.slideshare.net/uedayou/linked-open- datasparql-timeliner 
•SPARQL Timeliner使い方 
•http://www.slideshare.net/uedayou/sparql-timeliner- 28905905 
•booksearch-sparql-js 
•https://github.com/uedayou/leaflet-simple-sparql
SPARQLを利用するアプリ(2) 
•sgvizler 
•http://dev.data2000.no/sgvizler/ 
•Sgvizler/0.5/DesigningQueries 
•http://dev.data2000.no/sgvizler/wiki/Sgvizler/0.5/DesigningQueries 
•sgvizler(LODI加藤さんの解説資料) 
•http://www.slideshare.net/fumihiro/sgvizler 
•Sgvizlerによる気象庁提供データの可視化 
•http://www1.u-netsurf.ne.jp/~s- koba84/lod/jmaXmlSgvizler.html
その他 
•LinkData 
•http://linkdata.org/ 
•逆マッシュアップの提唱 
•http://www.slideshare.net/tetsurotoyoda/ss-27381991 
•ししょまろはんラボ 
•http://libmaro.kyoto.jp/ 
•京都が出てくる本のデータ 
•http://linkdata.org/work/rdf1s1294i 
•京都が出てくる本のデータ非公式SPARQLエンドポイント 
•http://lodcu.cs.chubu.ac.jp/SparqlEPCU/project.jsp?projectID= kyotobook_list 
•http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list (API)

Más contenido relacionado

La actualidad más candente

汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索uedayou
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰hagino 3000
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)KnowledgeGraph
 
OWLで何が書けるか
OWLで何が書けるかOWLで何が書けるか
OWLで何が書けるかKazuro Fukuhara
 
Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Kouji Kozaki
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-Kouji Kozaki
 
オープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズオープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズuedayou
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)A AOKI
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理wada, kazumi
 
オントロジー工学に基づく 知識の体系化と利用
オントロジー工学に基づく知識の体系化と利用オントロジー工学に基づく知識の体系化と利用
オントロジー工学に基づく 知識の体系化と利用Kouji Kozaki
 
Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座Kouji Kozaki
 
SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!uedayou
 
フィッシングとドメイン名・DNS
フィッシングとドメイン名・DNSフィッシングとドメイン名・DNS
フィッシングとドメイン名・DNSShiojiri Ohhara
 

La actualidad más candente (20)

汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰PRML ベイズロジスティック回帰
PRML ベイズロジスティック回帰
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
 
第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo
 
OWLで何が書けるか
OWLで何が書けるかOWLで何が書けるか
OWLで何が書けるか
 
Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
オープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズオープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズ
 
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
オントロジー工学に基づく 知識の体系化と利用
オントロジー工学に基づく知識の体系化と利用オントロジー工学に基づく知識の体系化と利用
オントロジー工学に基づく 知識の体系化と利用
 
Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座Linked Open Data (LOD)の基礎講座
Linked Open Data (LOD)の基礎講座
 
SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!
 
フィッシングとドメイン名・DNS
フィッシングとドメイン名・DNSフィッシングとドメイン名・DNS
フィッシングとドメイン名・DNS
 

Similar a SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-

LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)Shun Shiramatsu
 
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~uedayou
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回yamahige
 
20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2Taisuke Fukuno
 
オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取Taisuke Fukuno
 
RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API DesignAkinari Tsugo
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪Yohei Azekatsu
 
20181031 springfest spring data geode
20181031 springfest spring data geode20181031 springfest spring data geode
20181031 springfest spring data geodeMasaki Yamakawa
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムyayamamo @ DBCLS Kashiwanoha
 
Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Nanako Takahashi
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksqlMitsutoshi Kiuchi
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTterurou
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築Takanori Hayashi
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Fuyuko Matsumura
 
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LT
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016  LTPIXTAにおけるCloudSearch運用 - JAWS DAYS 2016  LT
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LTPIXTA Inc.
 
Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchanHiroki Matsui
 

Similar a SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法- (20)

LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)
 
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
 
20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2
 
オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取オープンデータセミナー in 鳥取
オープンデータセミナー in 鳥取
 
RESTful Web API Design
RESTful Web API DesignRESTful Web API Design
RESTful Web API Design
 
SPARQLとMashup環境
SPARQLとMashup環境SPARQLとMashup環境
SPARQLとMashup環境
 
d3sparql.js
d3sparql.js d3sparql.js
d3sparql.js
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪
 
20181031 springfest spring data geode
20181031 springfest spring data geode20181031 springfest spring data geode
20181031 springfest spring data geode
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
 
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
 
Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
Drupalを活用した Linked Open Dataの実践的試行環境の構築Drupalを活用した Linked Open Dataの実践的試行環境の構築
Drupalを活用した Linked Open Dataの 実践的試行環境の構築
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
 
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LT
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016  LTPIXTAにおけるCloudSearch運用 - JAWS DAYS 2016  LT
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LT
 
Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchan
 

Más de uedayou

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

Más de uedayou (16)

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

Último

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Último (7)

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-

  • 1. SPARQLを利用した 逆マッシュアップ -プログラミングを必要としないアプリ作成方法- 上田洋 日本図書館研究会情報組織化研究グループLOD勉強会 2014/08/30
  • 3. 自己紹介 •株式会社ATR Creative •ソフトウェアエンジニア、スマートフォンアプリ開発を担 当 •特定非営利活動法人リンクト・オープン・データ・イ ニシアティブ •2014年8月より理事 •関西支部支部長補佐 •LODチャレンジJapan実行委員 •2014年度より
  • 4. 逆マッシュアップとは? •既存のアプリ(プログラム)を再利用して、データを 入れ替えて新たなアプリを簡単に作成 •プログラム作成が大変 •既存データのAPIを利用 マッシュアップ データ API データ API プログラム の作成 マッシュアップ •プログラムは再利用 •新データをAPI化して挿入 逆マッシュアップ データ API データの作成 API化 プログラム 逆マッシュアップ 簡単! 「逆マッシュアップの提唱」より http://www.slideshare.net/tetsurotoyoda/ss-27381991
  • 5. 逆マッシュアップするために •LinkData.org を利用する •理化学研究所が開発した、データとアプリの作成・公開 をひとつのサイトで行える「逆マッシュアップ支援ツー ル」 •自前のサーバが不要 •LinkData.org に登録されたデータとアプリが再利用可能 •SPARQLを利用する •SPARQLと呼ばれるクエリ言語で抽出したデータを、既存 アプリに当てはめて作成 •SPARQLで高度なデータ加工・変換が可能なため、汎用 性・自由度が高い •世界中のSPARQLエンドポイント(Web API)で公開される データも利用可能
  • 6. SPARQLを利用した逆マッシュアップ •SPARQLだけで作成できるWebアプリがいくつか公開中 •地図、カレンダー、データ検索、ビジュアライズなど •利用できるSPARQLエンドポイント、データ量・種類が豊富 •Wikipedia:DBpedia、DBpediaJapanese、日本語Wikipediaオントロジー •行政データ:データシティ鯖江、次世代統計利用システム都道府県・市区町村コード情 報 •文化芸術データ:Europeana、ヨコハマ・アート・LOD、LODAC Museum •書誌・典拠データ:The British National Bibliography、Web NDL Authorities •地理データ:Linked Geo Data、LODAC Location •気象データ:気象庁XML用API ほか •作成データを手軽にSPARQLエンドポイントで公開できる サービスも •SparqlEPCU
  • 8. SPARQLとは? •SPARQL Protocol and RDF Query Language •RDF用のクエリ言語 •RDFストア(データベース)に設置されるSPARQLエン ドポイントからトリプルデータ検索・抽出が可能 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?urirdfs: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での検索方法 •RDFストアに設置されたSPARQL検索ページ •直接SPARQLエンドポイント(API)を直接利用 •例:http://ja.dbpedia.org/sparql?query={SPARQLクエリ} •JSONやXML、CSVなどで取得可能
  • 10. 例:DBPediaJapaneseで東京都に 関するデータを検索 •http://ja.dbpedia.org/sparql を開いて「Run Query」 を押すと検索できます select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } SPARQLクエリ 検索結果
  • 12. 変数とURI(IRI)とリテラル •変数 •「?」で始まる文字列 •該当する全てのデータが格納される •検索式内の同一変数は同じデータが入るという意味に •URI(IRI) •「<」「>」で挟まれた文字列 •指定したURIを同じURIを含むデータが検索される •リテラル •「”」で挟まれた文字列 •指定した文字列と同じ文字列を含むデータが検索され る •目的語以外は指定できない
  • 13. 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/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 http://www.w3.org/2000 /01/rdf-schema#label 東京都と隣接県 RDFグラフ
  • 14. 主語 述語 目的語 <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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> “神奈川県” データベース上では…
  • 15. 主語 述語 目的語 <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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とリテラル
  • 16. 主語 述語 目的語 <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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> “神奈川県” データベース上では…
  • 17. http://ja.dbpedia.org/resource/東京都 東京都 http://ja.dbpedia.org/resource/山梨県 http://ja.dbpedia.org/resource/千葉県 http://ja.dbpedia.org/resource/埼玉県 山梨県 千葉県 埼玉県 http://ja.dbpedia.org/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 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/隣接都道府県
  • 19. SELECT •SELECT の後ろに続く変数(?で始まる文字列)に格納さ れたデータを表形式で取得 •変数名は必ずWHERE文の中で指定したものを記述す ること •例では?s、?p、?o SELECT ?s ?p ?o WHERE { ?s ?p ?o. }
  • 20. SELECT •アスタリスク「*」を指定すると、WHERE文の中の 全ての変数を指定したことと同じになる •?s、?p、?o が抽出される SELECT * WHERE { ?s ?p ?o . } SELECT ?s ?p ?o WHERE { ?s ?p ?o. } =
  • 22. WHERE •WHERE { } 内に検索したいトリプルパターンを書く SELECT ?s ?p ?o WHERE { ?s ?p ?o . }
  • 23. 基本構造 •トリプルデータを指定するために、3つの変数また はURI、リテラル(目的語のみ)を1セットで書く •1セットの終わりには必ずピリオド「.」をつける SELECT ?s ?p ?o WHERE { ?s ?p ?o. } 主語の 指定 述語の 指定 目的語 の指定 必ずピリオド で終わる
  • 24. ?s ?p ?o <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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> “神奈川県” 検索対象
  • 26. (2) 述語が <http://www.w3.org/2000/01/rdf-schema#label> であるトリプルを取得 •<http://www.w3.org/2000/01/rdf-schema#label>はデータ のラベル(名前)を示す場合によく利用されています。 •省略形は「rdfs:label」 SELECT ?s ?o WHERE { ?s <http://www.w3.org/2000/01/rdf-schema#label> ?o . } 主語の 指定 述語の 指定 目的語 の指定
  • 27. ?s ?p ?o <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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> “神奈川県” 検索対象
  • 29. select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } (3) DBpediaのデフォルトのクエリ の意味 •主語に<http://ja.dbpedia.org/resource/東京都>が 指定されているトリプルの述語と目的語のデータ を全て検索 主語の 指定 述語の 指定 目的語 の指定
  • 30. ?s ?p ?o <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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> “神奈川県” 検索対象
  • 32. (4) 東京都に隣接する県の名前 1.東京都のURIから隣接する都道府県を表す <http://ja.dbpedia.org/property/隣接都道府県> を述語として持つ目的語を検索する 2.さらに、検索された目的語を主語に指定して、そ のrdfs:labelを検索する •同じ変数(例えば?pref)を異なるトリプルパターン で記述すると、同じURIを持つもののみ検索される (AND検索) 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. }
  • 33. 主語 述語 目的語 <http://ja.dbpedia.org/resource/東京都> <http://www.w3.org/2000/01/rdf-schema#label> "東京都" <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を 主語に持つトリプル を選択
  • 35. 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
  • 36. 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/re source/東京都> <http://www.w3.org/200 0/01/rdf-schema#label> <http://ja.dbpedia.org/re source/東京都> <http://ja.dbpedia.org/pr operty/隣接都道府県> <http://ja.dbpedia.org/re source/山梨県> <http://ja.dbpedia.org/re source/東京都> <http://ja.dbpedia.org/pr operty/隣接都道府県> <http://ja.dbpedia.org/re source/千葉県> <http://ja.dbpedia.org/re source/東京都> <http://ja.dbpedia.org/pr operty/隣接都道府県> <http://ja.dbpedia.org/re source/埼玉県> <http://ja.dbpedia.org/re source/東京都> <http://ja.dbpedia.org/pr operty/隣接都道府県> <http://ja.dbpedia.org/re source/神奈川県> <http://ja.dbpedia.org/re source/山梨県> <http://www.w3.org/200 0/01/rdf-schema#label> <http://ja.dbpedia.org/re source/千葉県> <http://www.w3.org/200 0/01/rdf-schema#label> <http://ja.dbpedia.org/re source/埼玉県> <http://www.w3.org/200 0/01/rdf-schema#label> <http://ja.dbpedia.org/re source/神奈川県> <http://www.w3.org/200 0/01/rdf-schema#label> 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 “神奈川県”
  • 37. 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/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 http://www.w3.org/2000 /01/rdf-schema#label 東京都と隣接県 RDFグラフ dbpedia-ja:東京都 dbpedia-ja:山梨県 prop-ja:隣接都道府県 dbpedia-ja:千葉県dbpedia-ja:埼玉県 dbpedia-ja:神奈川県 prop-ja:隣接都道府県 prop-ja:隣接都道府県 rdfs:label rdfs:labelrdfs:labelrdfs:label
  • 38. (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. ?prefrdfs:label?label . }
  • 40. (6) 同一主語の省略 •同じ主語から複数のプロパティを指定する場合、 目的語のあとのピリオド「.」をセミコロン「;」にするこ とで次のトリプルパターンの主語を省略できます SELECT DISTINCT ?pref?label WHERE { dbpedia-ja:東京都rdfs:label?label . dbpedia-ja:東京都prop-ja:隣接都道府県?pref. } SELECT DISTINCT ?pref?label WHERE { dbpedia-ja:東京都rdfs:label?label ; prop-ja:隣接都道府県?pref. } 省略を終了するトリプルパターン の最後は必ずピリオドにすること 主語を 省略 できる
  • 42. よく使われそうな述語(プロパティ) 意味 プロパティ ラベル 名前 タイトル rdfs:label<http://www.w3.org/2000/01/rdf-schema#label> dc:title<http://purl.org/dc/elements/1.1/title> dcterms:title<http://purl.org/dc/terms/title> schema:name<http://schema.org/name> foaf:name<http://xmlns.com/foaf/0.1/name> 作者 著者 dc:creator <http://purl.org/dc/elements/1.1/creator> dcterms:creator <http://purl.org/dc/terms/creator> 作成日 dc:created <http://purl.org/dc/elements/1.1/created> dcterms:created <http://purl.org/dc/terms/created> 更新日 dc:modified <http://purl.org/dc/elements/1.1/modified> dcterms:modified <http://purl.org/dc/terms/modified> 開始 時間 schema:startDate<http://schema.org/startDate> cal:dtstart<http://www.w3.org/2002/12/cal/icaltzd#dtstart> 終了 時間 schema:endDate<http://schema.org/endDate> ical:dtend<http://www.w3.org/2002/12/cal/icaltzd#dtend>
  • 43. 意味 プロパティ 緯度 geo:lat <http://www.w3.org/2003/01/geo/wgs84_pos#lat> 経度 geo:long <http://www.w3.org/2003/01/geo/wgs84_pos#long> 説明 内容 dc:description <http://purl.org/dc/elements/1.1/description> dcterms:description<<http://purl.org/dc/terms/description> schema:description<http://schema.org/description> データ タイプ rdf:type(※SPARQLでは「a」と省略できる) <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> Web ページ foaf:homepage<http://xmlns.com/foaf/0.1/homepage> schema:url<http://schema.org/url> メール アドレス vCard:email<http://www.w3.org/2006/vcard/ns#email> foaf:mbox<http://xmlns.com/foaf/0.1/mbox> 画像 schema:image<http://schema.org/image> foaf:Image<http://xmlns.com/foaf/0.1/Image> 住所 schema:address<http://schema.org/address> vCard:adr<http://www.w3.org/2006/vcard/ns#adr> 電話番 号 schema:telephone<http://schema.org/telephone> vCard:tel<http://www.w3.org/2006/vcard/ns#tel> foaf:phone<http://xmlns.com/foaf/0.1/phone>
  • 44. LIMIT •検索結果の上限を設定 •WHERE{}の後ろに記述 •「LIMIT 10」で最大10件取得 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri?label WHERE { ?urirdfs:label?label . } LIMIT 10
  • 45. OFFSET •検索結果の取得位置を指定 •WHERE{}の後ろに記述 •「OFFSET 100」は100番目から取得 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri?label WHERE { ?urirdfs:label?label . } LIMIT 10 OFFSET 100
  • 46. ORDER BY / ORDER BY DESC •検索結果の並び順を指定 •WHERE{}の後ろに記述 •「ORDER BY ?created」で作成日昇順にソート •「ORDER BY DESC(?created)」なら作成日降順 •LIMIT、OFFSETがあれば、その前に挿入 PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT DISTINCT ?uri?created WHERE { ?uridc:created?created. } ORDER BY ?created LIMIT 10 OFFSET 100 PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT DISTINCT ?uri?created WHERE { ?uridc:created?created. } ORDER BY DESC(?created) LIMIT 10 OFFSET 100
  • 47. OPTIONAL •OPTIONAL{ … } 内のグラフパターンはパターンに一 致しなくても、OPTIONAL外のパターンに一致すれ ば検索される •WHERE{ … } 内に記述 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT DISTINCT ?uri?label ?description WHERE { ?urirdfs:label?label . OPTIONAL { ?uridc:description?description. } }
  • 48. FILTER •検索結果のフィルタリングが可能 •WHERE{ … } 内に記述 •dcterms:issuedが2000(年)以上のものを検索 PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX dcterms: <http://purl.org/dc/terms/> SELECT DISTINCT ?uri?label ?issued WHERE { ?urirdfs:label?label ; dcterms:issued?issued . FILTER ( ?issued >= 2000) }
  • 49. REGEX •正規表現による検索が可能 •FILTER と組み合わせて利用する •WHERE{ … } 内に記述 •書き方 •REGEX( 検索対象の変数, 正規表現) PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri?label WHERE { ?urirdfs:label?label . FILTER ( REGEX ( ?label, “^東京.*$” ) ) } ?labelを「東京」で前方一致検索
  • 50. BIND / CONCAT •BIND:指定した変数・データを別の名前の変数に 割り当てが可能 •BIND( [割り当てるデータ]AS [変数] ) •CONCAT:変数や文字列同士の結合が可能、値は リテラルに •CONCAT( [変数or文字列] , [変数or文字列] , … ) PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT DISTINCT ?uri?label ?description ?text WHERE { ?urirdfs:label?label ; dc:description?description . BIND( CONCAT( “<h1>” , ?label ,“</h1><p>” , ?description,“</p>” ) AS?text ) } ?text は「<h1>[?labelのデータ]</h1><p>[?descriptionのデータ]</p>」になる
  • 51. COUNT •変数のデータ総数を計算 SELECT COUNT(*)WHERE { ?s ?p ?o . } 全トリプル数を計算
  • 52. GROUP BY / HAVING •GROUP BY:指定の変数でデータを集約(グループ 化)する •HAVING:グループ化されたデータの絞込み PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?creator ( COUNT( ?uri) AS ?count ) WHERE { ?uridc:creator?creator . } GROUP BY ?creator ORDER BY DESC(?count) HAVING( COUNT(?uri) >= 5 ) COUNT(?uri)の 結果が?countに ?creator(作者)で集約 異なる主語が5つ以上 ある作者のみ対象
  • 53. FROM •トリプルデータには、その全体を現す名前(グラフ 名)が指定されています •FROMを使うとグラフ名ごとに検索が行えます <http://hoge.jp/defaultgraph> というグラフ名が ついているトリプルデータを対象とする PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri?label FROM <http://hoge.jp/graph/01> WHERE { ?urirdfs:label?label . }
  • 54. http://hoge.jp/graph/02 http://hoge.jp/graph/01 グラフ名ごと に検索が可能主語述語目的語 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“奈良県”
  • 55. データ型のキャスト •str(?data) •データを文字列に変換 •URI(?data) •データをURIに変換 •xsd:integer(?data) •データを整数値型に変換 •xsd:float(?data) / xsd:double(?data) •データを浮動小数点型に変換 •xsd:dateTime(?data) •データをdateTime型に変換 ※PREFIX xsd:<http://www.w3.org/2001/XMLSchema#> があることが前提
  • 56. 複数の人や物を含むフィールド を分割するメリット(1) •検索精度が向上 •「上田洋」で検索した場合 「上田洋@@@村上晴美@@@辰巳昭治」 「上田洋一」 •分割すると… 「上田洋」 「村上晴美」 「辰巳昭治」 「上田洋一」 別名が検索される恐れ 完全一致検索のため別名が検索されることはない
  • 57. 複数の人や物を含むフィールド を分割するメリット(2) •URIが付与でき、他のデータとつなげられる ex:武田英明 武田英明 dbpedia-ja: 武田英明 ndl: 武田英明 kasm: 武田英明 Wikipedia Web NDL Authorities 自身の Webサイト •最低限のデータだけを管理して、そのほかのデータは外部に任せられ る(データの分散管理) Linked Open Data のメリット
  • 59. DBpediaJapaneseより •エンドポイント:http://ja.dbpedia.org/sparql •鉄道駅の駅名と位置データ(緯度・経度)を取得 PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?link a dbpedia-owl:Station; rdfs:label?title; geo:lat?lat; geo:long?long. }
  • 60. LODチャレンジJapan応募作品の SPARQLエンドポイント試行版より •エンドポイント:http://db.lodc.jp/sparql •応募作品のグラフURIとタイトル一覧を100件取得 •http://lodc.jp/ にいくつかクエリ例があります PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dcterms: <http://purl.org/dc/terms/> SELECT ?id ?title FROM <http://lod.sfc.keio.ac.jp/challenge/entries> WHERE { ?s dcterms:title?title; rdfs:seeAlso?id. } LIMIT 100
  • 61. 青空文庫LODより •エンドポイント:http://mdlab.slis.tsukuba.ac.jp/sparql •1600年以前に生まれた作者の作品 •http://mdlab.slis.tsukuba.ac.jp/lodc2012/aozoralod/aozoralod_search.html にクエリ例がいくつかあります PREFIX xsd:<http://www.w3.org/2001/XMLSchema#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdag2:<http://RDVocab.info/ElementsGr2/> PREFIX dcterms:<http://purl.org/dc/terms/> select distinct * from <http://purl.org/net/aozora/resources> where{ ?title_uridcterms:creator?creator_uri; dcterms:title[rdf:value?title]. ?creator_urirdag2:dateOfBirth ?date. filter(?date < "1800-12-31"^^xsd:date) }
  • 62. 京都国際マンガミュージアム 書誌情報LODより •エンドポイント:http://mdlab.slis.tsukuba.ac.jp/sparql •マンガ著作とそのマンガ家を表示するSPARQL文 •http://mdlab.slis.tsukuba.ac.jp/lodc2012/kmm/example.htmlにクエリ例 がいくつかあります PREFIX rda:<http://rdvocab.info/Elements#> PREFIX rdaG2:<http://rdvocab.info/ElementsGr2#> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX kmm:<http://mdlab.tsukuba.ac.jp/lodc2012/kmm/> PREFIX frbrer:<http://iflastandards.info/ns/fr/frbr/frbrer#> select distinct ?mangalabel?creator ?name from <http://purl.org/net/mdlab/kmm> where { ?manga rda:titleProper?mangalabel; rdf:typekmm:Wmanga; frbrer:isCreatedByPerson?creator. ?creator rdaG2:preferredNameForThePerson ?name. } ORDER BY ?manga
  • 63. LODAC Museumより •エンドポイント:http://lod.ac/sparql •横浜美術館が所蔵している日本画の作品 •http://lod.ac/wiki/SPARQLスニペットにクエリ例がたくさんあります PREFIX dc: <http://purl.org/dc/terms/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX lodac: <http://lod.ac/ns/lodac#> PREFIX lodacid: <http://lod.ac/id/> SELECT ?work ?title ?creator ?created ?genre ?material ?size WHERE { lodacid:3172 lodac:isProviderOf?work . ?work rdfs:label?title; dc:references?workRef. ?workReflodac:genre"日本画"@ja; dc11:creator ?creator; dc:medium?material; dc:extent?size . OPTIONAL{ ?workRefdc:created?created . } } LIMIT 100
  • 64. WebNDL Authoritiesより •エンドポイント:http://id.ndl.go.jp/auth/ndla?query= •API:http://id.ndl.go.jp/auth/ndla •「夏目漱石」の典拠情報URI、名称実体URI、生年、 没年、標目、標目カナヨミを調べる PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rda: <http://RDVocab.info/ElementsGr2/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX xl: <http://www.w3.org/2008/05/skos-xl#> PREFIX ndl: <http://ndl.go.jp/dcndl/terms/> SELECT * WHERE { ?uri1 foaf:primaryTopic?uri2. ?uri1 xl:prefLabel[ xl:literalForm?heading; ndl:transcription?yomi]. ?uri2 rda:dateOfBirth?birth. ?uri2 rda:dateOfDeath?death. ?uri2 foaf:name"夏目漱石". FILTER (lang(?yomi) = 'ja-Kana'). }
  • 65. Europeanaより •エンドポイント:http://europeana.ontotext.com/sparql •Europeanaにコンテンツを提供する機関 •http://europeana.ontotext.com/sparql にたくさんクエ リ例があります PREFIX edm: <http://www.europeana.eu/schemas/edm/> SELECT DISTINCT ?DataProvider WHERE { ?Aggregation edm:dataProvider?DataProvider. }
  • 66. The British National Bibliography より •エンドポイント:http://bnb.data.bl.uk/flint-sparql •API:http://bnb.data.bl.uk/sparql •ISBN「9780729408745」の本を検索 •http://bnb.data.bl.uk/flint-sparqlにいくつかクエリ 例があります PREFIX bibo: <http://purl.org/ontology/bibo/> PREFIX blt: <http://www.bl.uk/schemas/bibliographic/blterms#> PREFIX dct: <http://purl.org/dc/terms/> SELECT ?book ?bnb ?title WHERE { ?book bibo:isbn13 "9780729408745"; blt:bnb ?bnb; dct:title ?title. }
  • 69. SPARQLで逆マッシュアップ •地図アプリ •leaflet-simple-sparql •カレンダーアプリ •fullcalendar-sparql-js •地図とタイムラインビジュアライズアプリ •SPARQL Timeliner •書籍検索アプリ •booksearch-sparql-js •データビジュアライズツール •sgvizler
  • 71. 使い方:leaflet-simple-sparql •githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード •解凍して「config.js」にエンドポイントとクエリを記述する •Webサーバに置く var endpoint = "http://ja.dbpedia.org/sparql"; var query = (function () {/* PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?link rdfs:label ?title; geo:lat ?lat; geo:long ?long. } limit 1000 */}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
  • 73. 使い方:fullcalendar-sparql-js •githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード •解凍して「config.js」にエンドポイントとクエリを記述する •Webサーバに置く varendpoint = "http://archive.yafjp.org/test/inspection.php"; varquery = (function () {/* PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX schema: <http://schema.org/> PREFIX event: <http://fp.yafjp.org/terms/event#> SELECT * WHERE{ ?uria event:Event; schema:name?title; schema:startDate?start; schema:endDate?end; dc:description?description. } */}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
  • 74. 地図とタイムラインの ビジュアライズアプリ •SPARQL Timeliner •http://uedayou.net/SPARQLTimeliner/
  • 75. 使い方:SPARQL Timeliner エンドポイントのURLを入力 クエリを入力 •http://uedayou.net/SPARQLTimeliner を開いてエンドポイントURLとクエリを入力して 「Load>>」ボタンをクリック
  • 76. 使い方:SPARQL Timeliner •以下のルールに従ってクエリを作成してください •詳しい使い方は以下の資料にまとめています •http://www.slideshare.net/uedayou/sparql-timeliner- 28905905
  • 78. 使い方:booksearch-sparql-js •githubのページから「Download ZIP」ボタンを押して、 ソースコード一式をダウンロード •解凍して「config.js」にエンドポイントとクエリを記述する •?uriに書籍URI、?title に書籍タイトル、?description に詳細情 報が入るようにクエリを記述してください。 •{% QUERY %} が検索文字列に置き換えられます。 •Webサーバに置く // SPARQLエンドポイントURL varendpoint = "http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list"; // SPARQLクエリ(検索用) varlist_query= (function () {/* select distinct ?uri?title ?description where { ?uri<http://linkdata.org/property/rdf1s1294i#title> ?title; <http://linkdata.org/property/rdf1s1294i#Summary> ?description. filter(regex(str(?title), '.*?{% QUERY %}.*?')) } */}).toString().match(/¥n([¥s¥S]*)¥n/)[1];
  • 79. 使い方:booksearch-sparql-js •config.js のprop_labelsにURIとそのラベルを設定 しておくと、詳細表示の際にURIをラベルに置き換 わります。 varprop_labels= { "http://purl.org/dc/terms/title":"タイトル", "http://purl.org/dc/elements/1.1/creator":"著者", …
  • 81. 使い方:sgvizler •以下のコードをHTMLファイルに貼り付けて保存してブラウザで開くだけ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" id="sgvzlr_script" src="http://sgvizler.googlecode.com/svn/release/0.5/sgvizler.js"></script> <script type="text/javascript"> <!--$(document).ready(sgvizler.go()); --> </script> <div id=“sgvizler-sample” data-sgvizler-endpoint ="http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list" data-sgvizler-query=“ SELECT ?year (count(?uri) AS ?noOfUri) WHERE { ?uri<http://linkdata.org/property/rdf1s1294i#Year> ?year. }GROUP BY ?year ORDER BY DESC(?noOfUri) “ data-sgvizler-chart="gBarChart" data-sgvizler-loglevel="2" data-sgvizler-chart-options="title=Number of instances" style="width:2000px; height:2500px;"></div> •以下で雛形コードをダウンロードできます •http://uedayou.net/sparql-examples/sgvizer-example.html
  • 82. 使い方:sgvizler <div id=“sgvizler-sample” data-sgvizler-endpoint ="http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list" data-sgvizler-query=“ SELECT ?year (count(?uri) AS ?noOfUri) WHERE { ?uri<http://linkdata.org/property/rdf1s1294i#Year> ?year. }GROUP BY ?year ORDER BY DESC(?noOfUri) “ data-sgvizler-chart="gBarChart" data-sgvizler-loglevel="2" data-sgvizler-chart-options=“title=出版年別ランキング" style="width:800px; height:500px;"></div> クエリを記述 グラフの 種類を指定 エンドポイントを指定 グラフタイトル を記述 Idを指定
  • 83. 例で利用するデータ •京都が出てくる本のデータ •京都岡崎にある図書館で働く司書の方々が中心のグ ループ「ししょまろはん」が作成・公開する京都が舞台 の小説やマンガ・ライトノベル等のデータ •http://libmaro.kyoto.jp/ •作品の舞台となった京都府内の位置データや司書さん のおすすめ度もデータ化される •データ:http://linkdata.org/work/rdf1s1294i •エンドポイント(非公式): http://lodcu.cs.chubu.ac.jp/SparqlEPCU/project.jsp?projectID=kyotobook_list •DBpedia •Wikipediaのデータ •エンドポイント:http://ja.dbpedia.org/sparql
  • 89. クエリの書き方 (棒グラフ、円グラフの場合) •「data-sgvizler-chart」には以下を指定 •円グラフ:「gPieChart」 •縦棒グラフ:「gColumnChart」 •横棒グラフ:「gBarChart」 •GROUP BY を使ってデータをグループ化する •COUNTで出現回数を計算 PREFIX dcterms: <http://purl.org/dc/terms/> SELECT ?year (COUNT(?uri) AS ?noOfUri) WHERE { ?uridcterms:issued?year. } GROUP BY ?year ORDER BY DESC(?noOfUri)
  • 92. クエリの書き方 (無指向グラフの場合) PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema> SELECTDISTINCT ?alabel?blabelWHERE { ?s <http://ja.dbpedia.org/property/隣接都道府県> ?o. ?s rdfs:label?alabel. ?o rdfs:label?blabel. } •無指向グラフの場合 •「data-sgvizler-chart」には「gForceGraph」を指定 •SELECTで二つのラベルが入るようにクエリを記述
  • 94. SPARQLについて •RDF用クエリ言語SPARQL •http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf- sparql-query.html •SPARQL 1.1クエリ言語 •http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/REC- sparql11-query-20130321.html •LOD連続講義第5回「LODの作り方・使い方」 •http://www.slideshare.net/fuyukoitomatsumura/lod5lod •SPARQLを使い込む •http://www.slideshare.net/yayamamo/5linked- datayayamamo •SPARQLで集合論の実装| クリナ •http://clina.jp/blog/sparql-set-theory
  • 95. SPARQLエンドポイント(1) •DBpedia •http://dbpedia.org/sparql •DBpediaJapanese •http://ja.dbpedia.org/sparql •日本語Wikipediaオントロジー •http://www.wikipediaontology.org/query/ •データシティ鯖江 •http://sparql.odp.jig.jp/sparql.html •次世代統計利用システム都道府県・市区町村コード情報 •http://statdb.nstac.go.jp/lod/sparql •Europeana •http://europeana.ontotext.com/sparql •ヨコハマ・アート・LOD •http://archive.yafjp.org/test/inspection.php •LODAC Museum •http://lod.ac/sparql •Web NDL Authorities •http://id.ndl.go.jp/auth/ndla?query=
  • 96. SPARQLエンドポイント(2) •青空文庫LOD/京都国際マンガミュージアム 書誌情報LOD エンドポイント •http://mdlab.slis.tsukuba.ac.jp/sparql •青空文庫LOD •http://mdlab.slis.tsukuba.ac.jp/lodc2012/aozoralod/ •京都国際マンガミュージアム 書誌情報LOD •http://mdlab.slis.tsukuba.ac.jp/lodc2012/kmm/ •The British National Bibliography •http://bnb.data.bl.uk/flint-sparql •http://bnb.data.bl.uk/sparql •Linked Geo Data •http://linkedgeodata.org/sparql •気象庁防災情報XML •http://api.aitc.jp/ds/ •LODチャレンジJapan応募作品のエンドポイント試行版 •http://db.lodc.jp/sparql •SparqlEPCU •http://lodcu.cs.chubu.ac.jp/SparqlEPCU/ •SPARQLエンドポイント一覧(the Datahub) •http://datahub.io/ja/dataset?res_format=api%2Fsparql
  • 97. SPARQLを利用するアプリ(1) •leaflet-simple-sparql •https://github.com/uedayou/leaflet-simple-sparql •fullcalendar-sparql-js •https://github.com/uedayou/fullcalendar-sparql-js •SPARQL Timeliner •http://uedayou.net/SPARQLTimeliner/ •お手軽LOD可視化ツールSPARQL Timeliner •http://www.slideshare.net/uedayou/linked-open- datasparql-timeliner •SPARQL Timeliner使い方 •http://www.slideshare.net/uedayou/sparql-timeliner- 28905905 •booksearch-sparql-js •https://github.com/uedayou/leaflet-simple-sparql
  • 98. SPARQLを利用するアプリ(2) •sgvizler •http://dev.data2000.no/sgvizler/ •Sgvizler/0.5/DesigningQueries •http://dev.data2000.no/sgvizler/wiki/Sgvizler/0.5/DesigningQueries •sgvizler(LODI加藤さんの解説資料) •http://www.slideshare.net/fumihiro/sgvizler •Sgvizlerによる気象庁提供データの可視化 •http://www1.u-netsurf.ne.jp/~s- koba84/lod/jmaXmlSgvizler.html
  • 99. その他 •LinkData •http://linkdata.org/ •逆マッシュアップの提唱 •http://www.slideshare.net/tetsurotoyoda/ss-27381991 •ししょまろはんラボ •http://libmaro.kyoto.jp/ •京都が出てくる本のデータ •http://linkdata.org/work/rdf1s1294i •京都が出てくる本のデータ非公式SPARQLエンドポイント •http://lodcu.cs.chubu.ac.jp/SparqlEPCU/project.jsp?projectID= kyotobook_list •http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list (API)