Upload
fumihiro-kato
View
670
Download
4
Embed Size (px)
DESCRIPTION
2014-06-29 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン(http://www.sansokan.jp/events/eve_detail.san?H_A_NO=17461) で使った資料
Citation preview
LOD: Linked Open Data
LODI 加藤文彦 第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
2014-06-29
1
Linked Open Data•Web技術でデータを公開・共有・統合するためのベストプラクティス
•複数の(オープン)データを組み合わせて使いやすくする
•アクセス方法の差異
•ファイル形式の差異
•データソースの差異
•語彙の差異
•事物の区別と同一性
2
3
作品
作品
書誌
4
友人
在住
人物
5
舞台
観光地
観光地名前の由来
観光
6
舞台
観光地
観光地名前の由来
作品
作品
友人
在住
書誌人物
観光
7
舞台
観光地
観光地名前の由来
作品
作品
在住
書誌
人物
観光
友人
同じ
同じ
同じ
8
9
http://ja.dbpedia.org/resource/夏目漱石識別
識別
http://viaf.org/viaf/56614190
10
http://ja.dbpedia.org/resource/夏目漱石
http://viaf.org/viaf/56614190
owl:sameAs
11
@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/夏目漱石> .
識別
識別
Webの原則1.URIをHTML文書の識別子として使う
2.URIにはhttpスキームを使う
3.URIを見るとHTML文書が返ってくる
4.HTML文書には他のURIへのリンクがある
URI + HTTP + HTML12
Linked Dataの原則1.URIを事物の識別子として使う
2.URIにはhttpスキームを使う
3.URIを見ると事物の構造化データが返ってくる
4.データには他のURIへの型付リンクがある
子供
執筆
発行日
誕生日出版社
所在地
"Things, not Strings" by Google
URI + HTTP + RDF13
LODのデータ
•データモデル
• RDFグラフモデル
•ファイル形式
• Turtle, RDF/XML, JSON-LD, …
14
As of September 2011
MusicBrainz
(zitgist)
P20
Turismo de
Zaragoza
yovisto
Yahoo! Geo
Planet
YAGO
World Fact-book
El ViajeroTourism
WordNet (W3C)
WordNet (VUA)
VIVO UF
VIVO Indiana
VIVO Cornell
VIAF
URIBurner
Sussex Reading
Lists
Plymouth Reading
Lists
UniRef
UniProt
UMBEL
UK Post-codes
legislationdata.gov.uk
Uberblic
UB Mann-heim
TWC LOGD
Twarql
transportdata.gov.
uk
Traffic Scotland
theses.fr
Thesau-rus W
totl.net
Tele-graphis
TCMGeneDIT
TaxonConcept
Open Library (Talis)
tags2con delicious
t4gminfo
Swedish Open
Cultural Heritage
Surge Radio
Sudoc
STW
RAMEAU SH
statisticsdata.gov.
uk
St. Andrews Resource
Lists
ECS South-ampton EPrints
SSW Thesaur
us
SmartLink
Slideshare2RDF
semanticweb.org
SemanticTweet
Semantic XBRL
SWDog Food
Source Code Ecosystem Linked Data
US SEC (rdfabout)
Sears
Scotland Geo-
graphy
ScotlandPupils &Exams
Scholaro-meter
WordNet (RKB
Explorer)
Wiki
UN/LOCODE
Ulm
ECS (RKB
Explorer)
Roma
RISKS
RESEX
RAE2001
Pisa
OS
OAI
NSF
New-castle
LAASKISTI
JISC
IRIT
IEEE
IBM
Eurécom
ERA
ePrints dotAC
DEPLOY
DBLP (RKB
Explorer)
Crime Reports
UK
Course-ware
CORDIS (RKB
Explorer)CiteSeer
Budapest
ACM
riese
Revyu
researchdata.gov.
ukRen. Energy Genera-
tors
referencedata.gov.
uk
Recht-spraak.
nl
RDFohloh
Last.FM (rdfize)
RDF Book
Mashup
Rådata nå!
PSH
Product Types
Ontology
ProductDB
PBAC
Poké-pédia
patentsdata.go
v.uk
OxPoints
Ord-nance Survey
Openly Local
Open Library
OpenCyc
Open Corpo-rates
OpenCalais
OpenEI
Open Election
Data Project
OpenData
Thesau-rus
Ontos News Portal
OGOLOD
JanusAMP
Ocean Drilling Codices
New York
Times
NVD
ntnusc
NTU Resource
Lists
Norwe-gian
MeSH
NDL subjects
ndlna
myExperi-ment
Italian Museums
medu-cator
MARC Codes List
Man-chester Reading
Lists
Lotico
Weather Stations
London Gazette
LOIUS
Linked Open Colors
lobidResources
lobidOrgani-sations
LEM
LinkedMDB
LinkedLCCN
LinkedGeoData
LinkedCT
LinkedUser
FeedbackLOV
Linked Open
Numbers
LODE
Eurostat (OntologyCentral)
Linked EDGAR
(OntologyCentral)
Linked Crunch-
base
lingvoj
Lichfield Spen-ding
LIBRIS
Lexvo
LCSH
DBLP (L3S)
Linked Sensor Data (Kno.e.sis)
Klapp-stuhl-club
Good-win
Family
National Radio-activity
JP
Jamendo (DBtune)
Italian public
schools
ISTAT Immi-gration
iServe
IdRef Sudoc
NSZL Catalog
Hellenic PD
Hellenic FBD
PiedmontAccomo-dations
GovTrack
GovWILD
GoogleArt
wrapper
gnoss
GESIS
GeoWordNet
GeoSpecies
GeoNames
GeoLinkedData
GEMET
GTAA
STITCH
SIDER
Project Guten-berg
MediCare
Euro-stat
(FUB)
EURES
DrugBank
Disea-some
DBLP (FU
Berlin)
DailyMed
CORDIS(FUB)
Freebase
flickr wrappr
Fishes of Texas
Finnish Munici-palities
ChEMBL
FanHubz
EventMedia
EUTC Produc-
tions
Eurostat
Europeana
EUNIS
EU Insti-
tutions
ESD stan-dards
EARTh
Enipedia
Popula-tion (En-AKTing)
NHS(En-
AKTing) Mortality(En-
AKTing)
Energy (En-
AKTing)
Crime(En-
AKTing)
CO2 Emission
(En-AKTing)
EEA
SISVU
education.data.g
ov.uk
ECS South-ampton
ECCO-TCP
GND
Didactalia
DDC Deutsche Bio-
graphie
datadcs
MusicBrainz
(DBTune)
Magna-tune
John Peel
(DBTune)
Classical (DB
Tune)
AudioScrobbler (DBTune)
Last.FM artists
(DBTune)
DBTropes
Portu-guese
DBpedia
dbpedia lite
Greek DBpedia
DBpedia
data-open-ac-uk
SMCJournals
Pokedex
Airports
NASA (Data Incu-bator)
MusicBrainz(Data
Incubator)
Moseley Folk
Metoffice Weather Forecasts
Discogs (Data
Incubator)
Climbing
data.gov.uk intervals
Data Gov.ie
databnf.fr
Cornetto
reegle
Chronic-ling
America
Chem2Bio2RDF
Calames
businessdata.gov.
uk
Bricklink
Brazilian Poli-
ticians
BNB
UniSTS
UniPathway
UniParc
Taxonomy
UniProt(Bio2RDF)
SGD
Reactome
PubMedPub
Chem
PRO-SITE
ProDom
Pfam
PDB
OMIMMGI
KEGG Reaction
KEGG Pathway
KEGG Glycan
KEGG Enzyme
KEGG Drug
KEGG Com-pound
InterPro
HomoloGene
HGNC
Gene Ontology
GeneID
Affy-metrix
bible ontology
BibBase
FTS
BBC Wildlife Finder
BBC Program
mes BBC Music
Alpine Ski
Austria
LOCAH
Amster-dam
Museum
AGROVOC
AEMET
US Census (rdfabout)
Media
Geographic
Publications
Government
Cross-domain
Life sciences
User-generated content
Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/ 15
http://dbpedia.org/resource/Japan17
http://wiki.dbpedia.org/Internationalization/Chapters18
http://ja.dbpedia.org19
日本語Linked Data Cloud図!
• 27データセット • 本家よりも緩い条件 • 日本にいる人・組織 • 日本語ラベルを含む • 1000トリプル以上 • dereference/データダン
プ/SPARQL Endpoint • LODクラウドかJLDCへ
のリンクhttp://linkedopendata.jp/?p=486
20
SPARQL• RDF用クエリ言語
• SQLのような文法 • データモデル: RDF
• プロトコル: HTTP
• 結果形式: JSON, XML, (CSV, TSV)
• W3C仕様
• 2013-03-21に1.1勧告
RDB
Query
DB
ModelRDF Model
SQL
Relational Model
RDF Store
SPARQL
21
グラフのクエリ
• グラフの最小単位: 3つ組 (トリプル)
!
• グラフパターン 1. 完全一致
• dbp:東京都 dbp-owl:country dbp:日本 .
2. 変数によるパターンマッチ
• dbp:東京都 dbp-owl:country ?country .
3. 1と2の組み合わせ
dbp:東京都 dbp:日本dbpedia-‐owl:country
22
: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
好き嫌いグラフ
23
: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 .
24
: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 .
25
SPARQLエンドポイント• SPARQLクエリを受け付ける場所
• SPARQLエンドポイントURI
• プログラムからSPARQLを使うときに指定
• 入力フォームがある場合もあり
• 例: http://ja.dbpedia.org/sparql26
dbp-‐owl:AdministraIveRegiondbp:サイボーグ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
27
dbp-‐owl:AdministraIveRegiondbp:サイボーグ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: <hVp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hVp://dbpedia.org/ontology/> !SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
28
29
• SELECT: 取得したい変数を指定 • SELECT * は全ての変数指定と同等 • 結果形式: XML, JSON, CSV, TSV, ...
• WHERE: {}内にグラフパターンの組み合わせを記述 • LIMIT: 件数の制限 • 100だと1-‐100まで取得
• LIMITがない場合は全件取得
• 量が多い場合はサーバに負荷をかけるので注意 • PREFIX: URIを短縮して記述するための仕組み • dbp:東京都 = <hVp://ja.dbpedia.org/resource/東京都>
PREFIX dbp: <hVp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hVp://dbpedia.org/ontology/> !SELECT ?birthPlace WHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
30
dbp-‐owl:AdministraIveRegiondbp:サイボーグ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: <hVp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hVp://dbpedia.org/ontology/> !SELECT ?creator WHERE { ?creator rdf:type dbp-‐owl:ComicsCreator ; dbp-‐owl:award dbp:手塚治虫文化賞 .
}
31
32
dbp-‐owl:AdministraIveRegiondbp:サイボーグ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: <hVp://ja.dbpedia.org/resource/> PREFIX dbp-‐owl: <hVp://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 . }
石ノ森章太郎33
34
http://datahub.io/dataset?q=&res_format=api%2Fsparql35
RDFライブラリ•Java: Jena, Sesame
• C: Redland
• C#: dotNetRDF
• Ruby: RDF.rb
• PHP: ARC2, Graphite, RAP
• Python: rdflib
• Perl: PerlRDF
• JavaScript: rdfQuery, rdfstore-js
• ....
37
SPARQLクライアント ライブラリ
•Ruby: sparql-client
• JavaScript: jquery-sparql
• Python: SPARQLWrapper
• Java: ARQ
• C: Rasqal
• R: SPARQL
• Haskell: hsparql
• 等々
38
http://linkeddata.jp/wiki/ツール http://www.w3.org/2001/sw/wiki/Tools参照 http://www.w3.org/wiki/SparqlImplementations
RDF.rb
$ gem install linkeddata
39
Turtleファイルの読込&SPARQL
1 #!/usr/bin/env ruby! 2 # -*- coding: utf-8 -*-! 3 require 'linkeddata'! 4! 5 repo = RDF::Repository.load("http://linkdata.org/download/rdf1s927i/ttl/osaka_heliport20140106_ttl.txt", :format => :turtle)! 6! 7 query = """PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>! 8 SELECT *! 9 WHERE {! 10 ?s rdfs:label ?o .! 11 }"""! 12 sse = SPARQL.parse(query)! 13! 14 repo.query(sse).each do |solution|! 15 puts solution.inspect! 16 end
40
SPARQL Endpoint へのクエリ
1 #!/usr/bin/env ruby! 2 # -*- coding: utf-8 -*-! 3! 4 require 'linkeddata'! 5! 6 client = SPARQL::Client.new("http://dbpedia.org/sparql")! 7 query = """SELECT ?o! 8 WHERE {! 9 <http://dbpedia.org/resource/Tokyo> <http://dbpedia.org/ontology/country> ?o .! 10 }"""! 11! 12 client.query(query).each do |solution|! 13 puts solution[:o]! 14 end
41
Sgvizler•Javascript/jQueryの可視化ライブラリ
• http://dev.data2000.no/sgvizler/
• 基本的にSPARQL埋め込むだけ
•主にGoogle Visualization API
• 安定版は0.6
• CORS or JSONP
• 使い方
• div要素に埋め込む
•直接Javascriptを書く
• クエリフォームから入力する
42
43
44
45
46
47