オープンデータと Linked Open Data
ROIS & LODI 加藤文彦 第3回BODIKトーク 2014-09-04
1
加藤 文彦 (かとうふみひろ)
• (共)情報・システム研究機構 特任研究員
• LODACプロジェクト
• DBpedia Japanese
• NPO法人 リンクト・オープン・データ・イニシアティブ 理事
• CKAN
• Open DATA METI
• コミュニティ
• Linked Data勉強会
• Linked Open Data チャレンジ Japan
• CKAN日本語
• Data for Japan2
Linked DataOpen Data
3
Open Data
“データやコンテンツがオープンであるというのは,クレジット表示と/またはライセンスの継承をするくらいの条件で,誰もが自由に利用,再利用,再配布できるということである.” !
The Open Defini+on -‐ h.p://opendefini+on.org
5
自由な利用・再利用・再配布
• 発見できる
• アクセスできる
• 閲覧できる
• 印刷できる
• コピーできる
• 変更できる
• 共有できる
• アプリで使える
• リンクできる
• ...
6
7
◯ ☓
8
特にまずかった個所•応募者は、データ等を本コンテストへの応募作品の開発及び本コンテストの応募以外の目的で使用してはならないものとします。
•応募者は、データ等及び本コンテストへの応募作品を、有償か無償かに係らず商業目的には利用できないものとします。
9
オープンの定義 第2版(案)
•オープンライセンス
•アクセス
•オープンフォーマット • https://github.com/okfn/opendefinition/blob/master/source/open-
definition-2.0/open-definition-2.0.en.markdown
10
11http://odfaq.info/
Linked Data
Linked Data•Web技術でデータを公開・共有・統合するためのベストプラクティス
•複数のデータを組み合わせて使いやすくする
•アクセス方法の差異
•ファイル形式の差異
•データソースの差異
•語彙の差異
•事物の区別と同一性
13
14
作品
作品
書誌
15
友人
在住
人物
16
舞台
観光地
観光地名前の由来
観光
17
舞台
観光地
観光地名前の由来
作品
作品
友人
在住
書誌人物
観光
18
舞台
観光地
観光地名前の由来
作品
作品
在住
書誌
人物
観光
友人
同じ
同じ
19
Webの原則1. IRIをHTML文書の識別子として使う
2. IRIにはhttpスキームを使う
3. IRIを見るとHTML文書が返ってくる
4.HTML文書には他のIRIへのリンクがある
IRI + HTTP + HTML20
Linked Dataの原則1. IRIを事物(Thing)の識別子として使う
2. IRIにはhttpスキームを使う
3. IRIを見ると事物の構造化データが返ってくる
4.データには他のIRIへの型付リンクがある
子供
執筆
発行日
誕生日出版社
所在地
"Things, not Strings" by Google
IRI + HTTP + RDF21
22
ライセンス データフォーマット データアクセス データモデル
1 2 3
23
Linked Open DataOpen Data
4-5星への道•識別するものがある
•共通項がある
•関係がある
•由来がある
•変更履歴がある
•例: 名前,コード,カテゴリー,...
http://www.ordnancesurvey.co.uk/business-and-government/products/opendata-products.html24
4-5星のメリット•アプリ・ツールが使い回しやすくなる
•データのモデルとアクセスが共通
•データが使い回しやすくなる
•グローバル識別子
•他のデータを参照可能
•データの一部分だけ利用
•ネットワーク効果を得られる
•関係するデータの発見
•データ価値の増大
25
4-5星のデメリット•学習コスト
•グラフ >>>> 木 >> 表
• 作成コスト
•モデリング
•既存語彙の知識
•メンテナンスコスト
• IRI
• リンク切れ
26
27
LOD cloud diagram 2014 by Max Schmachtenberg et al. http://data.dws.informatik.uni-mannheim.de/lodcloud/2014/
http://dbpedia.org/resource/Japan29
http://wiki.dbpedia.org/Internationalization/Chapters30
http://ja.dbpedia.org31
32http://ja.dbpedia.org/resource/福岡市
OS Linked Data
• 地理データの一部
• 50K地名辞典
• 郵便番号
• 境界線http://data.ordnancesurvey.co.uk/
33
http://data.ordnancesurvey.co.uk/datasets/50k-gazetteer
34
http://data.ordnancesurvey.co.uk/id/50kGazetteer/140013
http://data.ordnancesurvey.co.uk/id/50kGazetteer/140012http://data.ordnancesurvey.co.uk/id/50kGazetteer/140011
35
http://data.ordnancesurvey.co.uk/datasets/code-point-open http://data.ordnancesurvey.co.uk/datasets/boundary-line
36
http://data.ordnancesurvey.co.uk/id/postcodedistrict/E14
http://data.ordnancesurvey.co.uk/id/postcodeunit/E148BG http://data.ordnancesurvey.co.uk/id/7000000000010975
http://data.ordnancesurvey.co.uk/id/7000000000011185
http://data.ordnancesurvey.co.uk/id/7000000000041441
http://data.ordnancesurvey.co.uk/id/postcodedistrict/E148
郵便番号 行政区・選挙区37
IRIID
38
http://ja.dbpedia.org/resource/夏目漱石識別
識別
http://viaf.org/viaf/56614190
39
IntegrationIRI + 型付リンク
40
http://ja.dbpedia.org/resource/夏目漱石
http://viaf.org/viaf/56614190
owl:sameAs
41
@prefix owl: <http://www.w3.org/2002/07/owl#> <http://ja.dbpedia.org/resource/夏目漱石> owl:sameAs <http://viaf.org/viaf/56614190> . <http://viaf.org/viaf/56614190> owl:sameAs <http://ja.dbpedia.org/resource/夏目漱石> .
識別
識別
DiscoveryDerefereceable IRI (HTTP)
42
http://www.w3.org/TR/webarch/43
http://dbpedia.org/resource/Matsuyama,_Ehime
represents
identifies
44
http://dbpedia.org/resource/Matsuyama,_Ehime
represents
identifies
represents
45
Content-negotiation
•あるリソースの表現をHTTPリクエストで折衝する仕組み
•例: JPEGとSVGの画像
46
1. request /resource/Matsuyama,_Ehime
2. return an HTML document for /resource/Matsuyama,_Ehime
http://dbpedia.orgWeb Browser
% curl -LIH 'Accept: text/html' http://dbpedia.org/resource/Matsuyama,_EhimeHTTP/1.1 303 See OtherDate: Wed, 19 Mar 2014 08:56:18 GMTContent-Type: text/html; charset=UTF-8Content-Length: 0Connection: keep-aliveServer: Virtuoso/07.10.3207 (Linux) x86_64-redhat-linux-gnu VDBLocation: http://dbpedia.org/page/Matsuyama,_Ehime!HTTP/1.1 200 OKDate: Wed, 19 Mar 2014 08:56:18 GMTContent-Type: text/html; charset=UTF-8Content-Length: 109160Connection: keep-aliveVary: Accept-EncodingServer: Virtuoso/07.10.3207 (Linux) x86_64-redhat-linux-gnu VDBExpires: Wed, 26 Mar 2014 08:47:42 GMTLink: <http://dbpedia.org/data/Matsuyama,_Ehime.rdf>;……
47
2. return a turtle document for /resource/Matsuyama,_Ehime
http://dbpedia.orgLOD Agent
% curl -LIH 'Accept: text/turtle' http://dbpedia.org/resource/Matsuyama,_EhimeHTTP/1.1 303 See OtherDate: Wed, 19 Mar 2014 08:57:55 GMTContent-Type: text/turtle; qs=0.7Content-Length: 0Connection: keep-aliveServer: Virtuoso/07.10.3207 (Linux) x86_64-redhat-linux-gnu VDBAccept-Ranges: bytesTCN: choiceVary: negotiate,acceptLink: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/resource/Matsuyama,_Ehime>; rel="timegate"Location: http://dbpedia.org/data/Matsuyama,_Ehime.ttl!HTTP/1.1 200 OKDate: Wed, 19 Mar 2014 08:57:56 GMTContent-Type: text/turtle; charset=UTF-8Content-Length: 40704Connection: keep-aliveServer: Virtuoso/07.10.3207 (Linux) x86_64-redhat-linux-gnu VDBExpires: Wed, 26 Mar 2014 08:51:16 GMTLink: <http://dbpedia.org/data/Matsuyama,_Ehime.xml>;……
1. request /resource/Matsuyama,_Ehime
48
“Cool URIs”•リソースそのものとその表現のIRIを区別した上で適切にderefenceableにする
• 303 リダイレクト
• IRIを参照したときに適切な表現のIRIへ303でリダイレクト
•例: http://dbpedia.org/resource/Matsuyama,_Ehime
• ハッシュIRI
• ’#’付きのIRIによるリソース識別子
•例: http://www.w3.org/People/Berners-Lee/card#i
49
http://dbpedia.org/resource/Matsuyama,_Ehime
represents
identifies
represents
http://dbpedia.org/data/Matsuyama,_Ehime.ttl
http://dbpedia.org/page/Matsuyama,_Ehime
identifies
identifies
50
http://dbpedia.org/resource/Matsuyama,_Ehime
http://dbpedia.org/page/Matsuyama,_Ehime
http://dbpedia.org/data/Matsuyama,_Ehime.ttl
303 redirect Accept: text/html
303 redirect Accept: text/turtle
303リダイレクト例: DBpedia
51
200 OK Accept: text/html
200 OK Accept: application/rdf+xml
http://www.w3.org/People/Berners-Lee/card
#以下削除
HTML Doc
RDF/XML Doc
http://www.w3.org/People/Berners-Lee/
card#i
ハッシュ例: TimBL
52
303 or Hash•Hashが向いているもの
•小さく安定的な複数リソースのセット
•例: 語彙ファイル
•直接ファイルを置きたい場合
•例: foaf文書,HTML(+RDFa)文書
• 303が向いているもの
•大きなデータセット
•例: DBpedia
• データ全体を使いたい人向けに同時にデータダンプやSPARQL Endpointも提供したほうがよい
53
リソースについての表現として 構造化データを返すようにする
Structured data
54
シリアライズ形式•Turtle (N3)
• JSON-LD
• RDFa
• Microdata
• RDF/XML
• TriX
• TriG
• ......
55
http://www.w3.org/TR/turtle/http://www.w3.org/TR/turtle/
56
日本語Linked Data Cloud図!
• 27データセット • 本家よりも緩い条件 • 日本にいる人・組織 • 日本語ラベルを含む • 1000トリプル以上 • dereference/データダン
プ/SPARQL Endpoint • LODクラウドかJLDCへ
のリンクhttp://linkedopendata.jp/?p=486
58
LOD cloud基準
27 → 1359
SPARQL
クエリ言語
• データの検索や操作を行うための言語 • データモデルやDBシステムに合わせて設計
• 例: SQL
–データモデル: 関係モデル
–DBシステム: RDBMS
• LODのデータモデル: RDFグラフモデル61
グラフのクエリ
• グラフの最小単位: 3つ組 (トリプル)
!
• グラフパターン 1. 完全一致
• dbp:東京都 dbp-owl:country dbp:日本 .
2. 変数によるパターンマッチ
• dbp:東京都 dbp-owl:country ?country .
3. 1と2の組み合わせ
dbp:東京都 dbp:日本dbpedia-‐owl:country
62
:Amy :Bob :Cathy
:Dan
:Jim
:Ed
:Kate
:Gil
:Flo
:Hal
:Ian
:Lee:May
:like :like
:like
:like :like
:like
:like
:dislike
:dislike
:dislike :dislike
:dislike
:dislike :dislike
:dislike
好き嫌いグラフ
63
:Amy :Bob :Cathy
:Dan
:Jim
:Ed
:Kate
:Gil
:Flo
:Hal
:Ian
:Lee:May
:like :like
:like
:like :like
:like
:like
:dislike
:dislike
:dislike :dislike
:dislike
:dislike :dislike
:dislike
Amyが好きな人グラフパターン :Amy :like ?person .
64
:Amy :Bob :Cathy
:Dan
:Jim
:Ed
:Kate
:Gil
:Flo
:Hal
:Ian
:Lee:May
:like :like
:like
:like :like
:like
:like
:dislike
:dislike
:dislike :dislike
:dislike
:dislike :dislike
:dislike
“Amyが好きな人”が好きな人グラフパターン :Amy :like ?person1 . ?person1 :like ?person2 .
65
SPARQL• LOD用クエリ言語
• SQLのような文法
• データモデル: RDF
• プロトコル: HTTP
• W3C仕様
• 2013-03-21に1.1勧告
RDB
Query
DB
ModelRDF Model
SQL
Relational Model
RDF Store
SPARQL
66
SPARQLエンドポイント• SPARQLクエリを受け付ける場所
• SPARQLエンドポイントURI
• プログラムからSPARQLを使うときに指定
• 入力フォームがある場合もあり
• 例: http://ja.dbpedia.org/sparql67
dbp-‐owl:AdministraJveRegiondbp:サイボーグ009
dbp-‐owl: ComicsCreator
dbp:宮城県
dbp:石ノ森章太郎
rdfs:label
rdf:type
rdfs:label
dbp-‐prop:生年
dbp-‐owl:notableWork
dbp-‐owl:award
dbp-‐owl:birthPlace
rdf:type
サイボーグ009
宮城県 foaf:Person
1938石ノ森章太郎
rdf:type
rdfs:labeldbp:村井嘉浩
dbp-‐owl:leaderName
DBpedia Japaneseのグラフ例
dbp:手塚治虫文化賞
dbp-‐owl:Cartoon
rdf:type
68
dbp-‐owl:AdministraJveRegiondbp:サイボーグ009
dbp-‐owl: ComicsCreator
dbp:宮城県
dbp:石ノ森章太郎
rdfs:label
rdf:type
rdfs:label
dbp-‐prop:生年
dbp-‐owl:notableWork
dbp-‐owl:award
dbp-‐owl:birthPlace
rdf:type
サイボーグ009
宮城県 foaf:Person
1938石ノ森章太郎
rdf:type
rdfs:labeldbp:村井嘉浩
dbp-‐owl:leaderName
dbp:手塚治虫文化賞
dbp-‐owl:Cartoon
rdf:type
クエリ: 石ノ森章太郎の出身地 PREFIX dbp: <hWp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hWp://dbpedia.org/ontology/> SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
69
70
• SELECT: 取得したい変数を指定 • SELECT * は全ての変数指定と同等 • 結果形式: XML, JSON, CSV, TSV, ...
• WHERE: {}内にグラフパターンの組み合わせを記述 • LIMIT: 件数の制限 • 100だと1-‐100まで取得
• LIMITがない場合は全件取得
• 量が多い場合はサーバに負荷をかけるので注意 • PREFIX: URIを短縮して記述するための仕組み • dbp:東京都 = <hWp://ja.dbpedia.org/resource/東京都>
PREFIX dbp: <hWp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hWp://dbpedia.org/ontology/> !SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
71
dbp-‐owl:AdministraJveRegiondbp:サイボーグ009
dbp-‐owl: ComicsCreator
dbp:宮城県
dbp:石ノ森章太郎
rdfs:label
rdf:type
rdfs:label
dbp-‐prop:生年
dbp-‐owl:notableWork
dbp-‐owl:award
dbp-‐owl:birthPlace
rdf:type
サイボーグ009
宮城県 foaf:Person
1938石ノ森章太郎
rdf:type
rdfs:labeldbp:村井嘉浩
dbp-‐owl:leaderName
dbp:手塚治虫文化賞
dbp-‐owl:Cartoon
rdf:type
クエリ: 手塚治虫文化賞を受賞した漫画家 PREFIX dbp: <hWp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hWp://dbpedia.org/ontology/> SELECT ?creator WHERE { ?creator rdf:type dbp-‐owl:ComicsCreator ; dbp-‐owl:award dbp:手塚治虫文化賞 .
}
72
73
dbp-‐owl:AdministraJveRegiondbp:サイボーグ009
dbp-‐owl: ComicsCreator
dbp:宮城県
dbp:石ノ森章太郎
rdfs:label
rdf:type
rdfs:label
dbp-‐prop:生年
dbp-‐owl:notableWork
dbp-‐owl:award
dbp-‐owl:birthPlace
rdf:type
サイボーグ009
宮城県 foaf:Person
1938
rdf:type
rdfs:labeldbp:村井嘉浩
dbp-‐owl:leaderName
dbp:手塚治虫文化賞
dbp-‐owl:Cartoon
rdf:type
クエリ: 手塚治虫文化賞を受賞した漫画家の代表的な漫画 PREFIX dbp: <hWp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hWp://dbpedia.org/ontology/> SELECT ?creatorName ?comicName WHERE { ?creator a dbp-‐owl:ComicsCreator ; dbp-‐owl:award dbp:手塚治虫文化賞 ;
dbp-‐owl:notableWork ?comic ; rdfs:label ?creatorName . ?comic a dbp-‐owl:Cartoon ; rdfs:label ?comicName . }
石ノ森章太郎74
75
http://datahub.io/dataset?q=&res_format=api%2Fsparql76
http://sparqles.okfn.org/77
Yokohama Art Lod
エンドポイント !
(RDF取り込み・API提供)
横浜美術館
大佛次郎記念館
アート・ナビ
ACYアーティストアーカイブ
市民ギャラリーあざみ野
78
http://lod.ac/apps/yas79
© 2013 Scholex co.,ltd. and ATR Creative Inc. © 2013 ATR Creative Inc., Linked Open Data Initiative
80
81
82http://statdb.nstac.go.jp/lod/sparql
83http://statdb.nstac.go.jp/wp/wp-content/uploads/2013/12/sac-spec.pdf
PREFIX org: <hWp://www.w3.org/ns/org#> PREFIX owl: <hWp://www.w3.org/2002/07/owl#> PREFIX sac: <hWp://statdb.nstac.go.jp/lod/sac/> SELECT ?changeEvent ?p ?o WHERE { sac:C40130 owl:sameAs ?currentCode . ?currentCode org:resultedFrom ?changeEvent . ?changeEvent ?p ?o . } LIMIT 100
84
85
86
87
88