Upload
hiroshi-ueda
View
1.586
Download
2
Embed Size (px)
DESCRIPTION
SPARQLを利用した逆マッシュアップ -プログラミングを必要としないアプリ作成方法- http://uedayou.net/sparql-examples/
Citation preview
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、DBpedia Japanese、日本語Wikipediaオントロジー
• 行政データ:データシティ鯖江、次世代統計利用システム都道府県・市区町村コード情報
• 文化芸術データ:Europeana、ヨコハマ・アート・LOD、 LODAC Museum
• 書誌・典拠データ:The British National Bibliography、Web NDL Authorities
• 地理データ:Linked Geo Data、LODAC Location
• 気象データ:気象庁XML用API
ほか
•作成データを手軽にSPARQLエンドポイントで公開できるサービスも• Sparql EPCU
1.SPARQLの使い方
SPARQLとは?
• SPARQL Protocol and RDF Query Language
• RDF用のクエリ言語
• RDFストア(データベース)に設置されるSPARQLエンドポイントからトリプルデータ検索・抽出が可能
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での検索方法• RDFストアに設置されたSPARQL検索ページ
•直接SPARQLエンドポイント(API)を直接利用• 例:http://ja.dbpedia.org/sparql?query={SPARQLクエリ}
• JSONやXML、CSVなどで取得可能
例:DBPedia Japaneseで東京都に関するデータを検索• 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/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>
“神奈川県”
主語 述語 目的語
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
東京都と隣接県RDFグラフ
rdfs:label
rdfs:labelrdfs: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-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 {
?uri rdfs:label ?label .}LIMIT 10
OFFSET
•検索結果の取得位置を指定
• WHERE{}の後ろに記述
• 「OFFSET 100」は100番目から取得
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?uri ?label WHERE {
?uri rdfs:label ?label .}LIMIT 10OFFSET 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 {
?uri dc:created ?created.}ORDER BY ?createdLIMIT 10OFFSET 100
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT ?uri ?created WHERE {
?uri dc:created ?created.}ORDER BY DESC(?created)LIMIT 10OFFSET 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 {
?uri rdfs:label ?label .OPTIONAL {
?uri dc: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 {
?uri rdfs: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 {
?uri rdfs: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 {
?uri rdfs: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 {
?uri dc:creator ?creator .}GROUP BY ?creatorORDER 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 {
?uri rdfs: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 NDLAuthorities
自身のWebサイト
• 最低限のデータだけを管理して、そのほかのデータは外部に任せられる(データの分散管理)
Linked Open Data のメリット
3.SPARQLクエリの例
DBpedia Japaneseより
• エンドポイント: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_uri dcterms:creator ?creator_uri;dcterms:title [rdf:value ?title].?creator_uri rdag2: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 ?namefrom <http://purl.org/net/mdlab/kmm>where {?manga rda:titleProper ?mangalabel;
rdf:type kmm: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 ?sizeWHERE {
lodacid:3172 lodac:isProviderOf ?work .?work rdfs:label ?title;dc:references ?workRef .?workRef lodac:genre "日本画"@ja;dc11:creator ?creator;dc:medium ?material;dc:extent ?size .OPTIONAL{ ?workRef dc:created ?created . }
}LIMIT 100
Web NDL 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 ?DataProviderWHERE {
?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サーバに置く
var endpoint = "http://archive.yafjp.org/test/inspection.php";var query = (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{
?uri a 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エンドポイントURLvar endpoint = "http://lodcu.cs.chubu.ac.jp/SparqlEPCU/api/kyotobook_list";// SPARQLクエリ(検索用) var list_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をラベルに置き換わります。
var prop_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 ?yearORDER 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 ?yearORDER 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 {
?uri dcterms:issued ?year.}GROUP BY ?yearORDER BY DESC(?noOfUri)
クエリの書き方(棒グラフ、円グラフの場合)•実際のデータは…
DBpedia:隣接都道府県グラフ
http://uedayou.net/sparql-examples/sgvizler/dbpedia-pref-neighbor.html
クエリの書き方(無指向グラフの場合)
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema>
SELECT DISTINCT ?alabel ?blabel WHERE {?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
• DBpedia Japanese• 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/Designin
gQueries
• 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)