Upload
fumihiro-kato
View
1.994
Download
0
Tags:
Embed Size (px)
DESCRIPTION
2013-12-26に行われた人工知能学会主催 第5回AIツール入門講座 Linked Open Dataの現状とその活用 の資料 第4回(http://www.slideshare.net/fumihiro/4-24004224) を多少変更したもの.
Citation preview
第5回AIツール入門講座Linked Open Dataの現状
とその活用(共)情報・システム研究機構
加藤文彦2013-12-16
1
加藤 文彦 (かとうふみひろ)• (共)情報・システム研究機構 特任研究員
• LODACプロジェクト
• DBpedia Japanese
• NPO リンクト・オープン・データ・イニシアティブ 理事
• CKAN
• Open DATA METI
• コミュニティ
• Linked Data勉強会
• Linked Open Data チャレンジ Japan
• CKAN日本語
2
ティム・バーナーズ=リーが示す次のウェブ
http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html
オープンデータとマッシュアップで変わる世界
http://www.ted.com/talks/tim_berners_lee_the_year_open_data_went_worldwide.html
Raw Data Now!
3
Linked Data(データのWeb)
Open Data(オープンライセンス)
4
Open Data(オープンライセンス)
Linked Data(データのWeb)
Reuse
5
Open Data
6
Open (Data) License
7
“データやコンテンツがオープンであるというのは,クレジット表示と/またはライセンスの継承をするくらいの条件で,誰もが自由に利用,再利用,再配布できるということである.”
The Open Defini+on -‐ h.p://opendefini+on.org
8
自由な利用・再利用・再配布
• 発見できる
• アクセスできる
• 閲覧できる
• 印刷できる
• コピーできる
• 変更できる
• 共有できる
• アプリで使える
• リンクできる
• ...
9
◯ ☓10
Open Government Data
11
http://www.whitehouse.gov/the-press-office/2013/05/09/executive-order-making-open-and-machine-readable-new-default-government-
12
http://project-open-data.github.io/
13
https://www.gov.uk/government/publications/open-data-charter/g8-open-data-charter-and-technical-annex
14
http://www.mofa.go.jp/mofaj/gaiko/page23_000044.html
15
何故?•公開者
•透明性, 協働, 活性化, 効率化, 価値向上, ...
•利用者
•利便性, 検証, 協働, 利活用, ビジネス, ...
16
17
http://www.city.sabae.fukui.jp/pageview.html?id=11552
20
http://fukuno.jig.jp/2013/opendatamap
21
http://datameti.go.jp
22
http://datameti.go.jp/data/dataset/statistics_kougyou_2010
23
24
25
by DPADM/UMU, OGDCE Toolkit
26
http://spending.jp
27
• FLOSSのデータポータルソフトウェア
• Open Knowledge Foundation作
• 最新版: v2.1
• AGPL v3.0
• http://github.com/okfn/ckan
• Python+JS+PostgreSQL+SOLR
• 世界中の国や地方自治体等で採用
• API提供
• 豊富な拡張: 可視化,ハーベスト等
• Facebook CKAN日本語グループ
• https://www.facebook.com/groups/327233017355370/
CKAN
28
http://datahub.io
29
30
Linked Data
32
Web技術でデータを公開・共有するための方法論
34
35
ライセンス データフォーマット データアクセスデータモデル
1 2 3
36
4-5星への道
•データのモデルとアクセスを共通化
•アプリが使い回しやすくなる
•データ同士が参照可能
•データが使い回しやすくなる
37
4-5星への道• 識別するものがある• 共通項がある• 関係がある• 由来がある• 変更履歴がある• 例: 名前,コード,カテゴリー,...
38
39
作品
作品
書誌
40
友人
在住
人物
41
舞台
観光地
観光地名前の由来
観光
42
舞台
観光地
観光地名前の由来
作品
作品
友人
在住
書誌人物
観光
43
舞台
観光地
観光地名前の由来
作品
作品
在住
書誌
人物
観光
友人
同じ
同じ
同じ
44
Webの原則1.IRIをHTML文書の識別子として使う
2.IRIにはhttpスキームを使う
3.IRIを見るとHTML文書が返ってくる
4.HTML文書には他のIRIへのリンクがある
45
Linked Dataの原則1.IRIをモノ(Thing)の識別子として使う
2.IRIにはhttpスキームを使う
3.IRIを見るとモノの構造化データが返ってくる
4.データには他のIRIへの型付リンクがある
子供
執筆
発行日
誕生日出版社
所在地
"Things, not Strings" by Google
46
Reuse
Discovery Integration
ID
47
Reuse構造化データ
48
IRIID
49
27
50
27
ISO3166-2:JP大阪府
工業統計コード業務用機械器具製造業
ガンバ大阪内田達也
51
27
ISO3166-2:JP大阪府
工業統計コード業務用機械器具製造業
ガンバ大阪内田達也
http://www.iso.org/3166-2/jp/27
http://www.gamba-osaka.net/gamba/player/2013/27
http://www.meti.go.jp/industrial-code/26
IDをIRIにすると世界でユニークなIDになる
52
DiscoveryDerefereceable IRI (HTTP)
53
Content-negotiation
•あるリソースに対する表現をHTTPリクエストで折衝する仕組み
•例: JPEGとSVGの画像
55
1. request /resource/Japan
2. return an HTML document for /resource/Japan
http://dbpedia.orgWeb Browser
% curl -ILH 'Accept: text/html' http://dbpedia.org/resource/JapanHTTP/1.1 303 See OtherDate: Thu, 04 Jul 2013 09:30:17 GMTContent-Type: text/html; charset=UTF-8Content-Length: 0Connection: keep-aliveServer: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDBAccept-Ranges: bytesLocation: http://dbpedia.org/page/Japan
HTTP/1.1 200 OKDate: Thu, 04 Jul 2013 09:31:07 GMTContent-Type: text/html; charset=UTF-8Content-Length: 2023382Connection: keep-aliveVary: Accept-Encoding.....
56
1. request /resource/Japan
2. return a turtle document for /resource/Japan
http://dbpedia.orgLOD Agent
@prefix yago-res: <http://mpii.de/yago/resource/> .@prefix dbpedia: <http://dbpedia.org/resource/> .yago-res:Japan owl:sameAs dbpedia:Japan .<http://data.nytimes.com/59436095099277148161> owl:sameAs dbpedia:Japan .<http://data.nytimes.com/66220885916538669281> owl:sameAs dbpedia:Japan .@prefix dbpedia-owl: <http://dbpedia.org/ontology/> .dbpedia:Ayumi_Hamasaki dbpedia-owl:hometown dbpedia:Japan ; dbpedia-owl:birthPlace dbpedia:Japan .dbpedia:Nippon_Columbia dbpedia-owl:distributingCompany dbpedia:Japan ; dbpedia-owl:distributingLabel dbpedia:Japan ; dbpedia-owl:country dbpedia:Japan .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix yago: <http://dbpedia.org/class/yago/> .dbpedia:Japan rdf:type yago:EastAsianCountries , owl:Thing .@prefix ns6: <http://schema.org/> .dbpedia:Japan rdf:type ns6:Country , yago:CountriesBorderingThePhilippineSea , yago:Empires , yago:IslandCountries , yago:StatesAndTerritoriesEstablishedIn660BC , dbpedia-owl:Country , dbpedia-owl:PopulatedPlace , ns6:Place , yago:CountriesBorderingThePacificOcean .@prefix ns7: <http://umbel.org/umbel/rc/> .dbpedia:Japan rdf:type ns7:Country , ns7:PopulatedPlace , dbpedia-owl:Place , yago:OECDMemberEconomies .
% curl -ILH 'Accept: text/turtle' http://dbpedia.org/resource/JapanHTTP/1.1 303 See OtherDate: Thu, 04 Jul 2013 09:36:52 GMTContent-Type: text/turtle; qs=0.7Content-Length: 0Connection: keep-aliveServer: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDBTCN: choiceVary: negotiate,acceptLink: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/resource/Japan>; rel="timegate"Location: http://dbpedia.org/data/Japan.ttl
HTTP/1.1 200 OKDate: Thu, 04 Jul 2013 09:36:52 GMTContent-Type: text/turtle; charset=UTF-8Content-Length: 1967774Connection: keep-alive......
57
“Cool URIs”• 実体とその表現のIRIも分離
• 2つの代表的なソリューション
• 303 See Other
• 実体IRIを参照したときに適切なIRIへ303でリダイレクトする
• ハッシュIRI
• 実体を’#’付きのIRI
• エージェントがアクセスするときには’#’以下が取れる
58
IntegrationIRI + 型付リンク
59
ID name tel zipcode prefecture
001 市役所 0778-51-2200 916-8666 福井県
施設データテーブル
60
ID name population
18 福井県 795824
26 京都府 2623924
ID name tel zipcode prefecture
001 市役所 0778-51-2200 916-8666 18
施設データテーブル
都道府県データテーブル
IDでjoin
61
ID name population
http://.../3166/jp/18 福井県 795824
http://.../3166/jp/26 京都府 2623924
ID name tel zipcode prefecture
001 市役所 0778-51-2200 916-8666 http://.../3166/jp/18
IDをhttp IRIにすることで外部から参照される
prefectureのデータ
施設データテーブル
都道府県データテーブル
62
RDF
Discovery Integration
Reuse
全てを含んだグラフデータモデル
ID
63
子供
執筆
発行日
誕生日出版社
所在地
64
子供
執筆
発行日
誕生日出版社
所在地
65
シリアライズ形式• Turtle (N3)• JSON-LD• RDFa• Microdata• RDF/XML• TriX• TriG• ......
66
69
https://developers.google.com/gmail/schemas/reference/formats/json-ld
70
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/
71
http://datahub.io/dataset?q=&groups=lodcloud
72
http://wiki.dbpedia.org/Internationalization/Chapters
75
http://ja.dbpedia.org
76
77
Japanese Linked Data Cloud
• 21データセット• 本家よりも緩い条件• 1000トリプル以上• dereferenceかデータダンプかSPARQL Endpoint
• 日本語ラベルを含む• 他のLODクラウドかJLDCへのリンク
78
LOD cloud criteria
21 → 9
79
http://linkedgeodata.org/triplify/node355845257
81
http://browser.linkedgeodata.org/
82
OS Linked Data
• 地理データの一部
• 50K地名辞典
• 郵便番号
• 境界線http://data.ordnancesurvey.co.uk/
83
http://data.ordnancesurvey.co.uk/datasets/50k-gazetteer
84
http://data.ordnancesurvey.co.uk/id/50kGazetteer/140013
http://data.ordnancesurvey.co.uk/id/50kGazetteer/140012http://data.ordnancesurvey.co.uk/id/50kGazetteer/140011
85
http://data.ordnancesurvey.co.uk/datasets/code-point-open http://data.ordnancesurvey.co.uk/datasets/boundary-line
86
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
郵便番号 行政区・選挙区87
ONS linked data• 統計データの基盤としてのジオデータ
• 領域単位
• 行政,衛生,選挙,郵便,...
• 境界線
• 不一致,変更 http://statistics.data.gov.uk/
88
http://statistics.data.gov.uk/explore?URI=http%3A%2F%2Fstatistics.data.gov.uk%2Fid%2Fstatistical-geography%2FE09000001
89
http://statistics.data.gov.uk/id/statistical-geography/E09000001
90
92
93
SPARQL
94
クエリ言語
• データの検索や操作を行うための言語• データモデルやDBシステムに合わせて設計
• 例: SQL
–データモデル: 関係モデル
–DBシステム: RDBMS
• LODのデータモデル: グラフモデル
95
グラフのクエリ
• グラフの最小単位: 3つ組 (トリプル)
• グラフパターン1. 完全一致
• dbp:東京都 dbp-owl:country dbp:日本 .
2. 変数によるパターンマッチ
• dbp:東京都 dbp-owl:country ?country .
3. 1と2の組み合わせ
dbp:東京都 dbp:日本dbpedia-‐owl:country
96
: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
好き嫌いグラフ
97
: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 .
98
: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 .
99
SPARQL• LOD用クエリ言語
• SQLのような文法
• データモデル: RDF
• プロトコル: HTTP
• W3C仕様
• 2013-03-21に1.1勧告
RDB
Query
DB
ModelRDF Model
SQL
Relational Model
RDF Store
SPARQL
100
SPARQLエンドポイント• SPARQLクエリを受け付ける場所
• SPARQLエンドポイントURI
• プログラムからSPARQLを使うときに指定
• 入力フォームがある場合もあり
• 例: http://ja.dbpedia.org/sparql
101
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
102
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: <h;p://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <h;p://dbpedia.org/ontology/>
SELECT ?birthPlaceWHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
103
104
• SELECT: 取得したい変数を指定• SELECT * は全ての変数指定と同等• 結果形式: XML, JSON, CSV, TSV, ...
• WHERE: {}内にグラフパターンの組み合わせを記述• LIMIT: 件数の制限• 100だと1-‐100まで取得• LIMITがない場合は全件取得• 量が多い場合はサーバに負荷をかけるので注意
• PREFIX: URIを短縮して記述するための仕組み• dbp:東京都 = <h;p://ja.dbpedia.org/resource/東京都>
PREFIX dbp: <h;p://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <h;p://dbpedia.org/ontology/>
SELECT ?birthPlaceWHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
105
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: <h;p://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <h;p://dbpedia.org/ontology/>
SELECT ?creatorWHERE { ?creator rdf:type dbp-‐owl:ComicsCreator ; dbp-‐owl:award dbp:手塚治虫文化賞 .
}
106
107
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: <h;p://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <h;p://dbpedia.org/ontology/>
SELECT ?creatorName ?comicNameWHERE { ?creator a dbp-‐owl:ComicsCreator ; dbp-‐owl:award dbp:手塚治虫文化賞 ;
dbp-‐owl:notableWork ?comic ; rdfs:label ?creatorName . ?comic a dbp-‐owl:Cartoon ; rdfs:label ?comicName .}
石ノ森章太郎
108
109
SPARQL 1.0• データ取得• SELECT• ASK• DESCRIBE• CONSTRUCT• ほぼどこでも使える
110
SELECT
例) 任意の3つ組を100件取得
SELECT ?s ?p ?o
WHERE {
?s ?p ?o .
}
LIMIT 100
111
ASK• ASK: グラフパターンにマッチするものがあるか• 結果yes か no
例) 石ノ森章太郎の出身地が含まれているかどうかPREFIX dbp: <hYp://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <hYp://dbpedia.org/ontology/>
ASK WHERE { dbp:石ノ森章太郎 dbp-‐owl:birthPlace ?birthPlace .
}
112
DESCRIBE• DESCRIBE: リソースに関するグラフを取得• 実装依存• 多くの場合は対象リソースをsubjectかobjectに含む3つ組の集合• 結果形式: RDF/XML, Turtle, …
例) http://ja.dbpedia.org/resource/横浜市に関するグラフを取得DESCRIBE <http://ja.dbpedia.org/resource/横浜市>
113
CONSTRUCT• CONSTRUCT: 新しいグラフを作成して取得• 結果形式: RDF/XML, Turtle, …
例) foaf:nameプロパティの3つ組をそのまま取得PREFIX foaf: <hYp://xmlns.com/foaf/0.1/>
CONSTRUCT { ?s foaf:name ?o .}WHERE { ?s foaf:name ?o .}
114
Named Graph• 3つ組の集合を区別したいという要求
• データソースやファイルの違い
• Triple(3つ組)ではなくQuad(4つ組)
115
Named Graphの例
PREFIX dcndl: h;p://ndl.go.jp/dcndl/terms/>PREFIX rdfs: <h;p://www.w3.org/2000/01/rdf-‐schema#>PREFIX dc: <h;p://purl.org/dc/terms/>SELECT DISTINCT *WHERE { GRAPH ?g { <h;p://lod.ac/species/Papilio_xuthus> ?p ?o . } ?g dc:source ?source . ?source dcndl:edibon ?edibon ; dc:publisher/rdfs:label ?publisher .}
116
SPARQL 1.1• データ管理
• 作成・更新・削除用句
• INSERT, UPDATE, DELETE, LOAD, DROP
• サービス記述
• Graph Store HTTP Protocol
• 結果形式の追加: JSON, CSV, TSV
• 様々な追加機能
• プロパティパス,集約,条件,数値関数,文字列関数,サブクエリ,Federatedクエリなど
• 実装の差
• 最新の実装だと大分カバーされている
• 実働中のエンドポイントは差あり
• 特にFederatedクエリやBINDあたりは使えないところも多い
117
プロパティパス
•通常の3つ組パターン: ?s ?p ?o
• ?oの省略や?pの繰り返し,?pの逆向き等を記述可能
PREFIX dbp: <h;p://ja.dbpedia.org/resource/>PREFIX dbp-‐owl: <h;p://dbpedia.org/ontology/>
SELECT ?creatorName ?comicNameWHERE { ?creator dbp-‐owl:notableWork/rdfs:label ?comicName .}
118
プロパティパスの例
• ?s foaf:knows/foaf:knows ?o
• ?s foaf:knows+ ?o
• ?s ^foaf:knows ?o
• ?s foaf:name|rdfs:label ?o
119
集約• COUNT: 個数• SUM: 合計• AVG: 平均• MIN: 最小値• MAX: 最大値• GROUP BY:
120
COUNT
例) 森薫リソースのオブジェクトの数
SELECT (COUNT(?o) AS ?count)WHERE { <hYp://dbpedia.org/resource/Kaoru_Mori> ?p ?o .}
121
GROUP BY例) クラス毎のインスタンスの数上位100件を降順
SELECT ?class (COUNT(?instance) AS ?noOfInstances)WHERE { ?instance a ?class .}GROUP BY ?classORDER BY DESC(?noOfInstances)LIMIT 100
122
サブクエリ例) クラス毎のインスタンスの数の平均
SELECT (AVG(?noOfInstances) AS ?avg)WHERE { { SELECT ?class (COUNT(?instance) AS ?noOfInstances) WHERE { ?instance a ?class . } GROUP BY ?class }}
123
Federatedクエリ• サブクエリの延長• SERVICE句• クエリを直接投げたエンドポイント以外を指定してクエリを投げられる
• 2ヶ所以上のSPARQLエンドポイントに対してクエリを発行して自動的に結果を結合
• まだ使えるエンドポイントが限られるし相互運用性も怪しいがSPARQLのパワフルさの象徴の一つ
124
SPARQL Endpointリスト
• http://datahub.io/dataset?q=&res_format=api%2Fsparql
• http://labs.mondeca.com/sparqlEndpointsStatus/
125
http://datahub.io/dataset?q=&res_format=api%2Fsparql
126
http://labs.mondeca.com/sparqlEndpointsStatus/127
128
http://lod.ac/apps/lodac_location/
129
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT ?link ?title ?lat ?long WHERE { ?link rdfs:label ?title; geo:lat ?lat; geo:long ?long . FILTER ( ?lat > 左上緯度 && ?lat < 右下緯度 &&
?long > 左上経度 && ?long < 右下経度 &&
lang(?title) = "ja" )}
130
http://lod.ac/apps/yas
131
132
133
© 2013 Scholex co.,ltd. and ATR Creative Inc. © 2013 ATR Creative Inc., Linked Open Data Initiative
134
Tool
135
ライブラリ
136
RDFライブラリ• Java: Jena, Sesame
• C: Redland• C#: dotNetRDF• Ruby: RDF.rb• PHP: ARC2, Graphite
• Python: rdflib
• Perl: PerlRDF
• JavaScript: rdfQuery, rdfstore-js
• ....http://www.w3.org/2001/sw/wiki/Tools参照
137
SPARQLクライアントライブラリ
• Ruby: sparql
• Python: SPARQLWrapper
• Java: ARQ
• C: Rasqal
• R: SPARQL
• Haskell: hsparql
• 等々
• http://linkeddata.jp/wiki/ツール
• http://www.w3.org/wiki/SparqlImplementations
138
sparql - RDF.rb
$ gem install sparql
139
Querying a 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 8 query = """SELECT ?o 9 WHERE {10 <http://dbpedia.org/resource/Tokyo> <http://dbpedia.org/ontology/country> ?o .11 }"""12 13 client.query(query).each do |solution|14 puts solution[:o]15 end
140
R SPARQL> install.packages(“SPARQL”)
141
> library(SPARQL)> endpoint <- 'http://dbpedia.org/sparql'> q <- "SELECT ?class (count(?instance) AS ?noOfInstances)WHERE { ?instance a ?class .}GROUP BY ?classORDER BY DESC(?noOfInstances)LIMIT 10"> res <- SPARQL(endpoint, q)$results> pie(res$noOfInstances, label=res$class)
142
Sgvizler• Javascript/jQueryの可視化ライブラリ
• https://code.google.com/p/sgvizler/
• 基本的にSPARQL埋め込むだけ
• 主にGoogle Visualization API
• 安定版は0.5
• HEADは大分変更があるので注意
143
144
使い方
• div要素に埋め込む
•直接Javascriptを書く
•クエリフォームから入力する
145
SPARQL Timeliner• OKFNのTimeliner(現TimeMapper)をSPARQL対応
• http://uedayou.net/SPARQLTimeliner/
• http://www.slideshare.net/uedayou/sparql-timeliner-28905905
146
OpenRefine• Freebase Gridworks, GoogleRefine,...
• データと遊ぶためのツール (一部要拡張)
• インポート形式: *SV, Excel, JSON, XML, RDF/XML Google Data(Spreadsheet, Fusion Table)
• エクスポート形式: *SV, HTML, Excel, ODF Spreadsheet, MQL, RDF/XML, RDF/Turtle
• アップロード: Freebase, CKAN
• ビュアー: ファセット, フィルター,フラグ
• 編集履歴
• スクリプト: GREL
• データ変換
• データ公開
• 様々な拡張
• Reconciliation
147
Reconciliation• ラベル(と付加情報)にマッチする潜在的なエンティティリストを推薦
• Apple社 vs フルーツのapple vs New York City
• サービス
• Freebase
• Reconciliation API
• SPARQL (要RDFRefine)
148
149
150
RDB
Query
DB
Model RDF Model
SQL
Relational Model
RDF Store
SPARQL
152
RDF Store• TripleStore / QuadStore / Graph DB
• SPARQLエンドポイント• オプション• RDFS/OWL Inference• Full text indexing• Clustering
• See http://en.wikipedia.org/wiki/Triplestore
Bigdata®
153
http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/
154
https://github.com/openlink/virtuoso-opensource
155
Virtuoso Open Source• http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/
• バイナリとソースあり• ソースからインストール
$ tar xvzf virtuoso-opensource-6.1.6.tar.gz
$ cd virtuoso-opensource-6.1.6
$ ./configure
$ make
$ make install
$ /usr/local/virtuoso-opensource/bin/virtuoso-t +configfile /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.ini
156
http://localhost:8890/conductor/
157
http://localhost:8890/conductor/
158
159
160
第6回LODチャレンジデー
• 2013-11-24 パートナーリソース活用ハッカソン
• サーバーサイドコース• クラウドでサーバ立ち上げからVirtuosoインストール,Rubyでのアプリまで
• https://github.com/LinkedOpenData/challenge2013/wiki/サーバーサイド
162
http://lodcu.cs.chubu.ac.jp/SparqlEPCU/
163
•ツール・ライブラリまとめh;p://linkeddata.jp/wiki/ツール
•SPARQLクエリ例h;p://goo.gl/bPSHp
•RDF.rbの資料h;p://www.slideshare.net/fumihiro/programming-‐with-‐lod
人工知能学会 私のブックマークh;p://www.ai-‐gakkai.or.jp/my-‐bookmark_vol28-‐no5/
164
166