SlideShare a Scribd company logo
LODを使ってみよう! 
上田洋 
特定非営利活動法人リンクト・オープン・データ・イニシアティブ 
第33回WordBench大阪「WordPress + LODで作るWebアプリケーションハッカソン」 
2014.09.20
自己紹介 
•株式会社ATR Creative 
•ソフトウェアエンジニア、スマートフォンアプリ開発を担 当 
•特定非営利活動法人リンクト・オープン・データ・イ ニシアティブ 
•2014年8月より理事 
•関西支部支部長補佐 
•LODチャレンジJapan実行委員 
•2014年度より
オープンデータとは?
これらを許可するライセンス(オープンライセンス)を持つデータ 
オープンデータ 
Open Definition 
http://opendatahandbook.org/ja/what-is-open-data/ 
利用できる、そしてアクセスできる データ全体を丸ごと使えないといけないし、再作成に必要以上のコストがかかっ てはいけない。望ましいのは、インターネット経由でダウンロードできるようにする ことだ。また、データは使いやすく変更可能な形式で存在しなければならない。 
再利用と再配布ができる 
データを提供するにあたって、再利用や再配布を許可しなければならない。また、 他のデータセットと組み合わせて使うことも許可しなければならない。 
誰でも使える 
誰もが利用、再利用、再配布をできなければならない。データの使い道、人種、所 属団体などによる差別をしてはいけない。たとえば「非営利目的での利用に限る」 などという制限をすると商用での利用を制限してしまうし「教育目的での利用に限 る」などの制限も許されない。
クリエイティブコモンズライセンス でのオープンライセンス 
CC BY 
表示 
CC0 
権利放棄 
CC BY-SA 
表示-継承 
CC BY-NC 
表示-非営利 
CC BY-ND 
表示-改変禁止 
CC BY-NC-ND 
表示-非営利-改変禁止 
全ての権利を主張 
CC BY-NC-SA 
表示-非営利-継承
http://fukuno.jig.jp/756
5つ星オープンデータ 星が多いほど良いオープンデータ 
オープン 
ライセンス 
でデータ公開 
構造化された 
データを公開 
ソフトウェアに 
依存しない 
ファイル形式 
で公開 
他のデータと 
リンクするため 
のURIを使う 
外部のデータ 
とリンクをつける 
LOD 
Linked Open Data 
http://5stardata.info/ja/
Linked Open Data(LOD) とても良い オープンデータ
リンクして何が嬉しい?
World Wide Web(文書のWeb) 
メリット:リンクによりたくさんのページ(情報)を簡単に発見できる
ID 
DATA 
ID 
DATA 
ID 
DATA 
ID 
DATA 
ID 
DATA 
データのWeb=Linked Open Data(LOD) 
メリット:リンクによりたくさんのデータを簡単に発見できる 
データを分散して管理 
共通の標準フォーマットでデータが簡単に取得できる 
同じ データ 
データ の別名 
作者の 
連絡先 
同じ データ 
関連 データ 
データ の作者 
データ の画像
LODクラウド(2007) 
http://lod-cloud.net/versions/2007-05-01/lod-cloud.png
LODクラウド(2011) 
http://lod-cloud.net/versions/2011-09-19/lod-cloud.png
LODクラウド(2014) 
http://data.dws.informatik.uni-mannheim.de/lodcloud/2014/
日本のLODクラウド(2014) 
http://linkedopendata.jp/?p=486
具体的に Linked Open Dataとは?
Linked Dataとは 
•ティム・バーナーズ=リーのLinked Data4原則 
1.あらゆる「もの」の名前にURI(Uniform Resource Identifier) をつけましょう 
2.HTTPプロトコルのURI(http://hoge.net/hoge)で、「もの」 についてのデータにアクセスできるようにしましょう 
3.URIでアクセスしたデータは標準的なフォーマット(RDFを推 奨)で提供しましょう 
4.他のデータを見つけやすくするために他のデータとURIで リンクしましょう 
オープンライセンスで提供されるLinked Data 
Linked Open Data(LOD) 
http://www.w3.org/DesignIssues/LinkedData.html
RDFとは (Resource Description Framework) 
•データを「主語」「述語」「目的語」を1つのセット (トリプル、三つ組み)として記述 
主語 
(Subject) 
目的語 
(Object) 
述語 
(Predicate) 
大阪府 
和歌山県 
隣の県 
例えば…
もっと詳しくLODを知りたい! 
•「Linked Data –Webをグロー バルなデータ空間にする仕 組み–」 
•トム・ヒース他著武田英明 監訳 
•3,200円(税別)
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で提供されるデータ 
データ種別 
WebAPI 
Wikipedia 
DBPedia 
Wikipediaオントロジー 
行政データ 
データシティ鯖江 
都道府県・市区町村コード情報 
Open Data METI 
大阪市オープンデータ(非公式) 
イベントデータ 
ヨコハマ・アート・LOD 
博物館データ 
Europeana 
LODAC Museum 
図書館データ 
The British National Bibliography 
Web NDL Authorities 
地理データ 
Linked Geo Data 
LODACLocation 
気象データ 
気象庁XML用API 
生物種データ 
LODACSpecies 
この他にも多くのデータがSPARQLで提供されています。
SPARQLの検索方法 
•RDFストアに設置されたSPARQL検索ページ 
•SPARQLエンドポイント(Web API)を直接利用 
•例:http://ja.dbpedia.org/sparql?query={SPARQLクエリ} 
•JSONやXML、CSVなどで取得可能
SPARQLの検索結果取得 JSONの場合 
•http://db.lodc.jp/sparql?query={UTF8でURLエンコードされ たSPARQLクエリ}&format=json 
{ "head": { "vars": ["link", "title", "lat", "long" ] }, 
"results": { 
"bindings": [ 
{ "link": { "type": "uri", 
"value": "http://linkdata.org/resource/rdf1s933i#8542" }, 
"title": { "type": "literal", "xml:lang": "ja", 
"value": "福島消防署上福島出張所"}, 
"lat": { "type": "typed-literal", 
"datatype": "http://www.w3.org/2001/XMLSchema#float", 
"value": "34.6936" }, 
"long": { "type": "typed-literal", 
"datatype": "http://www.w3.org/2001/XMLSchema#float", 
"value": "135.482" } 
}, 
...
SPARQLの検索結果取得 XMLの場合 
•http://db.lodc.jp/sparql?query={UTF8でURLエンコードされ たSPARQLクエリ}&format=xml 
<sparqlxmlns="http://www.w3.org/2005/sparql-results#" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> 
<head> 
<variable name="link"/> <variable name="title"/> <variable name="lat"/> <variable name="long"/> 
</head> 
<results distinct="false" ordered="true"> 
<result> 
<binding name="link"><uri>http://linkdata.org/resource/rdf1s933i#8542</uri></binding> 
<binding name="title"><literal xml:lang="ja">福島消防署上福島出張所</literal></binding> 
<binding name="lat"> 
<literal datatype="http://www.w3.org/2001/XMLSchema#float">34.6936</literal> 
</binding> 
<binding name="long"> 
<literal datatype="http://www.w3.org/2001/XMLSchema#float">135.482</literal> 
</binding> 
</result> 
...
例:DBPediaJapaneseで東京都に 関するデータを検索 
•http://ja.dbpedia.org/sparql を開いて「Run Query」 を押すと検索できます 
select distinct * where 
{ 
<http://ja.dbpedia.org/resource/東京都> ?p ?o . 
} 
SPARQLクエリ 
検索結果
SPARQLの書き方
変数とURI(IRI)とリテラル 
•変数:?s , ?p , ?o … 
•「?」で始まる文字列 
•該当する全てのデータが格納される 
•検索式内の同一変数は同じデータが入るという意味に 
•URI(IRI) : <http://ja.dbpedia.org/resource/東京都> 
•「<」「>」で挟まれた文字列 
•人・もの・出来事などを指し示すID 
•指定したURIを同じURIを含むデータが検索される 
•リテラル: “東京” , “100” , “2014-09-20” … 
•「”」で挟まれた文字列 
•データそのもの(string, integer, float他) 
•指定した文字列と同じ文字列を含むデータが検索される 
•目的語以外は指定できない
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/
SPARQLの便利な検索機能 
検索句 
機能 
LIMIT 
検索結果の上限を設定 
OFFSET 
検索結果の取得位置を指定 
ORDER BY 
検索結果の並び順を指定 
OPTIONAL 
OPTIONAL内は任意検索 
FILTER 
検索結果のフィルタリングが可能 
REGEX 
正規表現による検索が可能 
BIND 
新たな変数への割り当てが可能 
CONCAT 
文字列の結合が可能 
REPLACE 
文字列の置き換えが可能(正規表現使用可) 
SUBSTR 
文字列の切り出しが可能 
COUNT 
検索件数を表示 
GROUP BY 
変数のグループ化が可能 
HAVING 
グループ化した変数の絞込みが可能 
各機能の詳しいの説明はSlideShareの資料を参照してください
LOD関連のイベントの お知らせ
LODチャレンジJapan2014開催決定! 
•日本最大級のオープンデータコンテスト 
•前年度の賞金総額150万円以上 
•アプリ、データセット、アイデアなどを募集 
•10月1日よりエントリー受付開始 
http://lod.sfc.keio.ac.jp/challenge2014/
LODチャレンジ2014キックオフ “オープンデータ・サミット”を開催 
•国内オープンデータのキーパーソンによる講演会 
•9月27日慶應義塾大学三田キャンパスで開催 
http://peatix.com/event/50519
大阪ではLODハッカソンを開催! 
•10月13日梅田のグランフロント大阪でハッカソンを開催 
•LODをもう少し知りたい、今日の作ったものをもっと作りこ みたい、LODチャレンジに応募したい方、参加お待ちして います! 
https://www.facebook.com/events/274650762736519/
SPARQLの 便利な検索機能
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>」になる
REPLACE 
•文字列の置き換えが可能 
•書き方 
REPLACE( 置換対象の変数, 置換対象の文字列, 置換後の文字列) 
•BIND を使うと、置き換わった文字列を変数に設定できる 
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( REPLACE( ?description , “京都”, “大阪” ) AS ?text ) 
}
SUBSTR 
•文字列の切り出しが可能 
•書き方 
SUBSTR( 切出対象の変数, 開始位置, 切り出し文字数) 
•BIND を使うと、置き換わった文字列を変数に設定 できる 
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( SUBSTR( ?description , 10, 5) AS ?text ) 
}
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 “奈良県” 
FROM
データ型のキャスト 
•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#> があることが前提
エンドポイントの結果(JSON)を プログラムで取得するには? 
{ "head": { "vars": ["link", "title", "lat", "long" ] }, 
"results": { 
"bindings": [ 
{ "link": { "type": "uri", 
"value": "http://linkdata.org/resource/rdf1s933i#8542" }, 
"title": { "type": "literal", "xml:lang": "ja", 
"value": "福島消防署上福島出張所"}, 
"lat": { "type": "typed-literal", 
"datatype": "http://www.w3.org/2001/XMLSchema#float", 
"value": "34.6936" }, 
"long": { "type": "typed-literal", 
"datatype": "http://www.w3.org/2001/XMLSchema#float", 
"value": "135.482" } 
varresults = json.results.bindings; 
for ( vari=0 ; i< results.length; i++ ) { 
varresult = results[i]; 
vartitle = result.title.value; 
} 
$results = $json[“results”][“bindings”]; 
foreach( $results as $result ) { 
$title = $result[“title”][“value”]; 
}

More Related Content

PDF
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
PPTX
DBpedia Japaneseとは?
PDF
Linked Open Data(LOD)の基本的な使い方
PPTX
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
PDF
ナレッジグラフ/LOD利用技術の入門(後編)
PDF
LOD技術の概要と LinkData.orgを用いたLOD公開
PDF
Linked Open Data (LOD)の基礎講座
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
DBpedia Japaneseとは?
Linked Open Data(LOD)の基本的な使い方
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
ナレッジグラフ/LOD利用技術の入門(後編)
LOD技術の概要と LinkData.orgを用いたLOD公開
Linked Open Data (LOD)の基礎講座

What's hot (20)

PDF
第7回 Linked Data 勉強会 @yayamamo
PDF
Wikidataを編集してみよう!
PPTX
PDF
スキーマとURI
PDF
RDF Semantic Graph「RDF 超入門」
PDF
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
PDF
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望
PPTX
オープンデータをLOD化するデータソン in 高槻
PDF
ナレッジグラフ/LOD利用技術の入門(前編)
PDF
Rdf入門handout
PPTX
CSVファイルをLODとして公開するデータソン
PDF
ナレッジグラフとオントロジー
PDF
LOD連続講義 第5回「LODの作り方・使い方」
PPTX
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
PDF
MongoDB〜その性質と利用場面〜
PPTX
セマンティック・ウェブのためのRdf owl入門解説.ch5
PDF
SPARQLでオープンデータ活用!
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
ナレッジグラフ入門
PDF
オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門
第7回 Linked Data 勉強会 @yayamamo
Wikidataを編集してみよう!
スキーマとURI
RDF Semantic Graph「RDF 超入門」
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望
オープンデータをLOD化するデータソン in 高槻
ナレッジグラフ/LOD利用技術の入門(前編)
Rdf入門handout
CSVファイルをLODとして公開するデータソン
ナレッジグラフとオントロジー
LOD連続講義 第5回「LODの作り方・使い方」
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
MongoDB〜その性質と利用場面〜
セマンティック・ウェブのためのRdf owl入門解説.ch5
SPARQLでオープンデータ活用!
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門
Ad

Viewers also liked (20)

PDF
LODデータベースAPIの紹介
PDF
SPARQLでマッシュアップ -LOD活用のための技術紹介-
PDF
LODとメディア ニューヨークタイムズ最新事情
PDF
サーバサイドコース Sinatra + SPARQL 編
PDF
Welcome to opendata world
PDF
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
PDF
オープンデータ流通基盤 LinkData.org による 行政と市民の協業促進
KEY
第2回LinkedData勉強会@yayamamo
PDF
お手軽Linked Open Data可視化ツールSPARQL Timeliner
PDF
SPARQL Timelinerの使い方
PPTX
BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)
PPTX
2015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.1
PDF
逆マッシュアップの提唱
PDF
LOD公開のレシピ(第3回LODとオントロジー勉強会)
PDF
SPARQLとMashup環境 (年岡先生)
PPTX
PDF
7th_LinkedData(20131008)
PPT
Event Logs: What kind of data does process mining require?
PDF
LODを閲覧する/作成する
LODデータベースAPIの紹介
SPARQLでマッシュアップ -LOD活用のための技術紹介-
LODとメディア ニューヨークタイムズ最新事情
サーバサイドコース Sinatra + SPARQL 編
Welcome to opendata world
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
オープンデータ流通基盤 LinkData.org による 行政と市民の協業促進
第2回LinkedData勉強会@yayamamo
お手軽Linked Open Data可視化ツールSPARQL Timeliner
SPARQL Timelinerの使い方
BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)
2015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.1
逆マッシュアップの提唱
LOD公開のレシピ(第3回LODとオントロジー勉強会)
SPARQLとMashup環境 (年岡先生)
7th_LinkedData(20131008)
Event Logs: What kind of data does process mining require?
LODを閲覧する/作成する
Ad

Similar to LODを使ってみよう! (20)

PDF
汎用Web API“SPARQL”でオープンデータ検索
PDF
大阪市オープンデータポータルAPI(SPARQL)勉強会
PDF
Linked Data API Navi(LODチャレンジ2022)
PDF
20150209 甲府-web新世紀2
PDF
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
PDF
データカタログソフトウェア CKAN
PDF
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
PDF
SPARQLアプリケーション開発
PDF
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
PDF
セマンテックウェブとRDFDB
PPTX
LODAC プロジェクト 中間発表会 資料
PDF
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
PDF
Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~
PPTX
Linked Data in Japan/Semantic Conference In Japan 2010
PDF
オープンデータ公開プラットフォームとしてのWordPressへの期待
PDF
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
PDF
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
PDF
Ogura LOD at code4lib_20180901
PDF
Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku
PDF
Web API入門
汎用Web API“SPARQL”でオープンデータ検索
大阪市オープンデータポータルAPI(SPARQL)勉強会
Linked Data API Navi(LODチャレンジ2022)
20150209 甲府-web新世紀2
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
データカタログソフトウェア CKAN
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
SPARQLアプリケーション開発
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
セマンテックウェブとRDFDB
LODAC プロジェクト 中間発表会 資料
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~
Linked Data in Japan/Semantic Conference In Japan 2010
オープンデータ公開プラットフォームとしてのWordPressへの期待
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Ogura LOD at code4lib_20180901
Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku
Web API入門

More from uedayou (14)

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

LODを使ってみよう!

  • 1. LODを使ってみよう! 上田洋 特定非営利活動法人リンクト・オープン・データ・イニシアティブ 第33回WordBench大阪「WordPress + LODで作るWebアプリケーションハッカソン」 2014.09.20
  • 2. 自己紹介 •株式会社ATR Creative •ソフトウェアエンジニア、スマートフォンアプリ開発を担 当 •特定非営利活動法人リンクト・オープン・データ・イ ニシアティブ •2014年8月より理事 •関西支部支部長補佐 •LODチャレンジJapan実行委員 •2014年度より
  • 4. これらを許可するライセンス(オープンライセンス)を持つデータ オープンデータ Open Definition http://opendatahandbook.org/ja/what-is-open-data/ 利用できる、そしてアクセスできる データ全体を丸ごと使えないといけないし、再作成に必要以上のコストがかかっ てはいけない。望ましいのは、インターネット経由でダウンロードできるようにする ことだ。また、データは使いやすく変更可能な形式で存在しなければならない。 再利用と再配布ができる データを提供するにあたって、再利用や再配布を許可しなければならない。また、 他のデータセットと組み合わせて使うことも許可しなければならない。 誰でも使える 誰もが利用、再利用、再配布をできなければならない。データの使い道、人種、所 属団体などによる差別をしてはいけない。たとえば「非営利目的での利用に限る」 などという制限をすると商用での利用を制限してしまうし「教育目的での利用に限 る」などの制限も許されない。
  • 5. クリエイティブコモンズライセンス でのオープンライセンス CC BY 表示 CC0 権利放棄 CC BY-SA 表示-継承 CC BY-NC 表示-非営利 CC BY-ND 表示-改変禁止 CC BY-NC-ND 表示-非営利-改変禁止 全ての権利を主張 CC BY-NC-SA 表示-非営利-継承
  • 7. 5つ星オープンデータ 星が多いほど良いオープンデータ オープン ライセンス でデータ公開 構造化された データを公開 ソフトウェアに 依存しない ファイル形式 で公開 他のデータと リンクするため のURIを使う 外部のデータ とリンクをつける LOD Linked Open Data http://5stardata.info/ja/
  • 8. Linked Open Data(LOD) とても良い オープンデータ
  • 10. World Wide Web(文書のWeb) メリット:リンクによりたくさんのページ(情報)を簡単に発見できる
  • 11. ID DATA ID DATA ID DATA ID DATA ID DATA データのWeb=Linked Open Data(LOD) メリット:リンクによりたくさんのデータを簡単に発見できる データを分散して管理 共通の標準フォーマットでデータが簡単に取得できる 同じ データ データ の別名 作者の 連絡先 同じ データ 関連 データ データ の作者 データ の画像
  • 16. 具体的に Linked Open Dataとは?
  • 17. Linked Dataとは •ティム・バーナーズ=リーのLinked Data4原則 1.あらゆる「もの」の名前にURI(Uniform Resource Identifier) をつけましょう 2.HTTPプロトコルのURI(http://hoge.net/hoge)で、「もの」 についてのデータにアクセスできるようにしましょう 3.URIでアクセスしたデータは標準的なフォーマット(RDFを推 奨)で提供しましょう 4.他のデータを見つけやすくするために他のデータとURIで リンクしましょう オープンライセンスで提供されるLinked Data Linked Open Data(LOD) http://www.w3.org/DesignIssues/LinkedData.html
  • 18. RDFとは (Resource Description Framework) •データを「主語」「述語」「目的語」を1つのセット (トリプル、三つ組み)として記述 主語 (Subject) 目的語 (Object) 述語 (Predicate) 大阪府 和歌山県 隣の県 例えば…
  • 19. もっと詳しくLODを知りたい! •「Linked Data –Webをグロー バルなデータ空間にする仕 組み–」 •トム・ヒース他著武田英明 監訳 •3,200円(税別)
  • 21. 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/岡山県 "岡山県"
  • 22. SPARQLで提供されるデータ データ種別 WebAPI Wikipedia DBPedia Wikipediaオントロジー 行政データ データシティ鯖江 都道府県・市区町村コード情報 Open Data METI 大阪市オープンデータ(非公式) イベントデータ ヨコハマ・アート・LOD 博物館データ Europeana LODAC Museum 図書館データ The British National Bibliography Web NDL Authorities 地理データ Linked Geo Data LODACLocation 気象データ 気象庁XML用API 生物種データ LODACSpecies この他にも多くのデータがSPARQLで提供されています。
  • 23. SPARQLの検索方法 •RDFストアに設置されたSPARQL検索ページ •SPARQLエンドポイント(Web API)を直接利用 •例:http://ja.dbpedia.org/sparql?query={SPARQLクエリ} •JSONやXML、CSVなどで取得可能
  • 24. SPARQLの検索結果取得 JSONの場合 •http://db.lodc.jp/sparql?query={UTF8でURLエンコードされ たSPARQLクエリ}&format=json { "head": { "vars": ["link", "title", "lat", "long" ] }, "results": { "bindings": [ { "link": { "type": "uri", "value": "http://linkdata.org/resource/rdf1s933i#8542" }, "title": { "type": "literal", "xml:lang": "ja", "value": "福島消防署上福島出張所"}, "lat": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#float", "value": "34.6936" }, "long": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#float", "value": "135.482" } }, ...
  • 25. SPARQLの検索結果取得 XMLの場合 •http://db.lodc.jp/sparql?query={UTF8でURLエンコードされ たSPARQLクエリ}&format=xml <sparqlxmlns="http://www.w3.org/2005/sparql-results#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd"> <head> <variable name="link"/> <variable name="title"/> <variable name="lat"/> <variable name="long"/> </head> <results distinct="false" ordered="true"> <result> <binding name="link"><uri>http://linkdata.org/resource/rdf1s933i#8542</uri></binding> <binding name="title"><literal xml:lang="ja">福島消防署上福島出張所</literal></binding> <binding name="lat"> <literal datatype="http://www.w3.org/2001/XMLSchema#float">34.6936</literal> </binding> <binding name="long"> <literal datatype="http://www.w3.org/2001/XMLSchema#float">135.482</literal> </binding> </result> ...
  • 26. 例:DBPediaJapaneseで東京都に 関するデータを検索 •http://ja.dbpedia.org/sparql を開いて「Run Query」 を押すと検索できます select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } SPARQLクエリ 検索結果
  • 28. 変数とURI(IRI)とリテラル •変数:?s , ?p , ?o … •「?」で始まる文字列 •該当する全てのデータが格納される •検索式内の同一変数は同じデータが入るという意味に •URI(IRI) : <http://ja.dbpedia.org/resource/東京都> •「<」「>」で挟まれた文字列 •人・もの・出来事などを指し示すID •指定したURIを同じURIを含むデータが検索される •リテラル: “東京” , “100” , “2014-09-20” … •「”」で挟まれた文字列 •データそのもの(string, integer, float他) •指定した文字列と同じ文字列を含むデータが検索される •目的語以外は指定できない
  • 29. 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グラフ
  • 30. 主語 述語 目的語 <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> “神奈川県” データベース上では…
  • 31. 主語 述語 目的語 <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とリテラル
  • 32. 主語 述語 目的語 <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> “神奈川県” データベース上では…
  • 33. 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/隣接都道府県
  • 35. SELECT •SELECT の後ろに続く変数(?で始まる文字列)に格納さ れたデータを表形式で取得 •変数名は必ずWHERE文の中で指定したものを記述す ること •例では?s、?p、?o SELECT ?s ?p ?o WHERE { ?s ?p ?o. }
  • 36. SELECT •アスタリスク「*」を指定すると、WHERE文の中の 全ての変数を指定したことと同じになる •?s、?p、?o が抽出される SELECT * WHERE { ?s ?p ?o . } SELECT ?s ?p ?o WHERE { ?s ?p ?o. } =
  • 38. WHERE •WHERE { } 内に検索したいトリプルパターンを書く SELECT ?s ?p ?o WHERE { ?s ?p ?o . }
  • 39. 基本構造 •トリプルデータを指定するために、3つの変数また はURI、リテラル(目的語のみ)を1セットで書く •1セットの終わりには必ずピリオド「.」をつける SELECT ?s ?p ?o WHERE { ?s ?p ?o. } 主語の 指定 述語の 指定 目的語 の指定 必ずピリオド で終わる
  • 40. ?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> “神奈川県” 検索対象
  • 42. (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 . } 主語の 指定 述語の 指定 目的語 の指定
  • 43. ?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> “神奈川県” 検索対象
  • 45. select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } (3) DBpediaのデフォルトのクエリ の意味 •主語に<http://ja.dbpedia.org/resource/東京都>が 指定されているトリプルの述語と目的語のデータ を全て検索 主語の 指定 述語の 指定 目的語 の指定
  • 46. ?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> “神奈川県” 検索対象
  • 48. (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. }
  • 49. 主語 述語 目的語 <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を 主語に持つトリプル を選択
  • 51. 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
  • 52. 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 “神奈川県”
  • 53. 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
  • 54. (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 . }
  • 56. (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. } 省略を終了するトリプルパターン の最後は必ずピリオドにすること 主語を 省略 できる
  • 58. SPARQLの便利な検索機能 検索句 機能 LIMIT 検索結果の上限を設定 OFFSET 検索結果の取得位置を指定 ORDER BY 検索結果の並び順を指定 OPTIONAL OPTIONAL内は任意検索 FILTER 検索結果のフィルタリングが可能 REGEX 正規表現による検索が可能 BIND 新たな変数への割り当てが可能 CONCAT 文字列の結合が可能 REPLACE 文字列の置き換えが可能(正規表現使用可) SUBSTR 文字列の切り出しが可能 COUNT 検索件数を表示 GROUP BY 変数のグループ化が可能 HAVING グループ化した変数の絞込みが可能 各機能の詳しいの説明はSlideShareの資料を参照してください
  • 60. LODチャレンジJapan2014開催決定! •日本最大級のオープンデータコンテスト •前年度の賞金総額150万円以上 •アプリ、データセット、アイデアなどを募集 •10月1日よりエントリー受付開始 http://lod.sfc.keio.ac.jp/challenge2014/
  • 61. LODチャレンジ2014キックオフ “オープンデータ・サミット”を開催 •国内オープンデータのキーパーソンによる講演会 •9月27日慶應義塾大学三田キャンパスで開催 http://peatix.com/event/50519
  • 62. 大阪ではLODハッカソンを開催! •10月13日梅田のグランフロント大阪でハッカソンを開催 •LODをもう少し知りたい、今日の作ったものをもっと作りこ みたい、LODチャレンジに応募したい方、参加お待ちして います! https://www.facebook.com/events/274650762736519/
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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. } }
  • 68. 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) }
  • 69. 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を「東京」で前方一致検索
  • 70. 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>」になる
  • 71. REPLACE •文字列の置き換えが可能 •書き方 REPLACE( 置換対象の変数, 置換対象の文字列, 置換後の文字列) •BIND を使うと、置き換わった文字列を変数に設定できる 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( REPLACE( ?description , “京都”, “大阪” ) AS ?text ) }
  • 72. SUBSTR •文字列の切り出しが可能 •書き方 SUBSTR( 切出対象の変数, 開始位置, 切り出し文字数) •BIND を使うと、置き換わった文字列を変数に設定 できる 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( SUBSTR( ?description , 10, 5) AS ?text ) }
  • 73. COUNT •変数のデータ総数を計算 SELECT COUNT(*)WHERE { ?s ?p ?o . } 全トリプル数を計算
  • 74. 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つ以上 ある作者のみ対象
  • 75. 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 . }
  • 76. 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 “奈良県” FROM
  • 77. データ型のキャスト •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#> があることが前提
  • 78. エンドポイントの結果(JSON)を プログラムで取得するには? { "head": { "vars": ["link", "title", "lat", "long" ] }, "results": { "bindings": [ { "link": { "type": "uri", "value": "http://linkdata.org/resource/rdf1s933i#8542" }, "title": { "type": "literal", "xml:lang": "ja", "value": "福島消防署上福島出張所"}, "lat": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#float", "value": "34.6936" }, "long": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#float", "value": "135.482" } varresults = json.results.bindings; for ( vari=0 ; i< results.length; i++ ) { varresult = results[i]; vartitle = result.title.value; } $results = $json[“results”][“bindings”]; foreach( $results as $result ) { $title = $result[“title”][“value”]; }