SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
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”]; 
}

Contenu connexe

Tendances

Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発KnowledgeGraph
 
Rdf入門handout
Rdf入門handoutRdf入門handout
Rdf入門handoutSeiji Koide
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-Kouji Kozaki
 
Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Kouji Kozaki
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてRDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてMasayuki Isobe
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)KnowledgeGraph
 
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-Kouji Kozaki
 
書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーション書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーションKouji Kozaki
 
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門Kouji Kozaki
 
SPARQL 사용법
SPARQL 사용법SPARQL 사용법
SPARQL 사용법홍수 허
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!KnowledgeGraph
 
第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介KnowledgeGraph
 
Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Kouji Kozaki
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジーUniversity of Tsukuba
 
ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)KnowledgeGraph
 

Tendances (20)

Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
Rdf入門handout
Rdf入門handoutRdf入門handout
Rdf入門handout
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
 
Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術
 
DBpedia Japaneseとは?
DBpedia Japaneseとは?DBpedia Japaneseとは?
DBpedia Japaneseとは?
 
スキーマとURI
スキーマとURIスキーマとURI
スキーマとURI
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてRDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
 
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
 
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
SPARQLによるLODの検索@第4回LODとオントロジー勉強会-
 
書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーション書誌データのLOD化: データソン的デモンストレーション
書誌データのLOD化: データソン的デモンストレーション
 
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
 
SPARQL 사용법
SPARQL 사용법SPARQL 사용법
SPARQL 사용법
 
RDF Refineの使い方
RDF Refineの使い方RDF Refineの使い方
RDF Refineの使い方
 
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
 
第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介
 
Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際Linked Dataとオントロジーによるセマンティック技術の実際
Linked Dataとオントロジーによるセマンティック技術の実際
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジー
 
ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)
 

En vedette

LODデータベースAPIの紹介
LODデータベースAPIの紹介LODデータベースAPIの紹介
LODデータベースAPIの紹介s3works
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-uedayou
 
サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編サーバサイドコース Sinatra + SPARQL 編
サーバサイドコース Sinatra + SPARQL 編Fumihiro Kato
 
Welcome to opendata world
Welcome to opendata worldWelcome to opendata world
Welcome to opendata worldNobuo Kawaguchi
 
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-uedayou
 
CSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンCSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンKouji Kozaki
 
オープンデータ流通基盤 LinkData.org による 行政と市民の協業促進
オープンデータ流通基盤 LinkData.org による行政と市民の協業促進オープンデータ流通基盤 LinkData.org による行政と市民の協業促進
オープンデータ流通基盤 LinkData.org による 行政と市民の協業促進Sayoko Shimoyama
 
お手軽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
 
BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)
BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)
BISG Rights Summit June 11, 2014 (Michael Healy, Copyright Clearance Center)bisg
 
2015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.1
2015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.12015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.1
2015.1.25 アイデア・アプリケーションコンテスト二次審査<活用アイデア部門>エントリーno.1ビッグデータ・オープンデータ 活用推進協議会
 
逆マッシュアップの提唱
逆マッシュアップの提唱逆マッシュアップの提唱
逆マッシュアップの提唱Tetsuro Toyoda
 
LOD公開のレシピ(第3回LODとオントロジー勉強会)
LOD公開のレシピ(第3回LODとオントロジー勉強会)LOD公開のレシピ(第3回LODとオントロジー勉強会)
LOD公開のレシピ(第3回LODとオントロジー勉強会)Kouji Kozaki
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)Shun Shiramatsu
 
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望
Linked Open Data(LOD)を用いたオープンデータの活用事例と今後の展望Linked Open Data(LOD)を用いたオープンデータの活用事例と今後の展望
Linked Open Data(LOD)を用いた オープンデータの活用事例と今後の展望Kouji Kozaki
 
7th_LinkedData(20131008)
7th_LinkedData(20131008)7th_LinkedData(20131008)
7th_LinkedData(20131008)真 岡本
 
Event Logs: What kind of data does process mining require?
Event Logs: What kind of data does process mining require?Event Logs: What kind of data does process mining require?
Event Logs: What kind of data does process mining require?Wil van der Aalst
 

En vedette (20)

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

Similaire à LODを使ってみよう!

汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索uedayou
 
大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会大阪市オープンデータポータルAPI(SPARQL)勉強会
大阪市オープンデータポータルAPI(SPARQL)勉強会Kouji Kozaki
 
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
 
20150209 甲府-web新世紀2
20150209 甲府-web新世紀220150209 甲府-web新世紀2
20150209 甲府-web新世紀2Taisuke Fukuno
 
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
 
データカタログソフトウェア CKAN
データカタログソフトウェア CKANデータカタログソフトウェア CKAN
データカタログソフトウェア CKANFumihiro Kato
 
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)
Linked Open Dataによる博物館情報および地域情報の連携活用(じんもんこん2011)Fuyuko Matsumura
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発Toshiaki Katayama
 
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~
オープンデータ/Linked Open Data お手軽可視化ツールの紹介~SPARQLでマッシュアップ~uedayou
 
セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDBHirosuke Asano
 
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」
じんもんこん2011「芸術・文化情報のLinked Open Data普及に向けた現状と課題」KAMURA
 
Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~
Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~
Excelで始めるオープンデータ ~LinkData.orgを使った データセット・アプリ公開~Sayoko Shimoyama
 
オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待Kouji Kozaki
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLTaisuke Fukuno
 
Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Ogura LOD at code4lib_20180901
Ogura LOD at code4lib_20180901Nanako Takahashi
 
Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku
Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku
Data cooperation between Ogura Hyakunin Isshu LOD and Minna de Honkoku Nanako Takahashi
 

Similaire à LODを使ってみよう! (20)

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

Plus de uedayou

Linked Data API Navi(アーバンデータチャレンジ2022)
Linked Data API Navi(アーバンデータチャレンジ2022)Linked Data API Navi(アーバンデータチャレンジ2022)
Linked Data API Navi(アーバンデータチャレンジ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
 
オープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズオープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズ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
 
ミュージアムへ行こう!
ミュージアムへ行こう!ミュージアムへ行こう!
ミュージアムへ行こう!uedayou
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-uedayou
 

Plus de uedayou (14)

Linked Data API Navi(アーバンデータチャレンジ2022)
Linked Data API Navi(アーバンデータチャレンジ2022)Linked Data API Navi(アーバンデータチャレンジ2022)
Linked Data API Navi(アーバンデータチャレンジ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ハッカソン関西の活動事例を中心に~
 
オープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズオープンデータとSPARQLでビジュアライズ
オープンデータとSPARQLでビジュアライズ
 
大阪市の警察署・交番と犯罪発生地点の重ね合わせ ~大阪市 警察署 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で簡単アプリ作成
 
ミュージアムへ行こう!
ミュージアムへ行こう!ミュージアムへ行こう!
ミュージアムへ行こう!
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+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/
  • 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”]; }