60
Linked Open Data基礎 LODI 加藤文彦 横浜オープンデータハッカソン, 2013-01-26 1

Linked Open Data 基礎

Embed Size (px)

DESCRIPTION

20130126

Citation preview

Page 1: Linked Open Data 基礎

Linked Open Data基礎LODI 加藤文彦

横浜オープンデータハッカソン, 2013-01-26

1

Page 2: Linked Open Data 基礎

Linked Data

•Web技術でデータを公開・共有・統合するためのベストプラクティス

• "データのWeb"

• HTTP, IRI, リンク, グラフモデル, 構造化データ

2

Page 3: Linked Open Data 基礎

Webの原則1. IRIをHTML文書の識別

子として使う

2. IRIにはhttpスキームを使う

3. IRIを見るとHTML文書が返ってくる

4. HTML文書には他のIRIへのリンクがある

3

Page 4: Linked Open Data 基礎

Linked Dataの原則1. IRIをモノ(Thing)の識

別子として使う

2. IRIにはhttpスキームを使う

3. IRIを見るとモノのデータが返ってくる

4. データには他のIRIへの型付リンクがある

子供

執筆

発行日

誕生日出版社

所在地

"Things,  not  Strings"  by  Google

4

Page 5: Linked Open Data 基礎

1. オープンライセンス

2. 構造化データ

3. オープンな形式

4. IRIによる識別 / W3C標準

5. 他データへのリンク

Linked Open Data

5

Page 6: Linked Open Data 基礎

Linked  Data(データのWeb)

Open  Data(オープンライセンス)

RDF(グラフデータモデル)

6

Page 7: Linked Open Data 基礎

子供

執筆

発行日

誕生日出版社

所在地

7

Page 8: Linked Open Data 基礎

子供

執筆

発行日

誕生日出版社

所在地

8

Page 9: Linked Open Data 基礎

グラフのシリアライズ形式• Turtle (N3)

• JSON-LD

• RDFa

• Microdata

• RDF/XML

• TriX

• TriG

• ......

9

Page 10: Linked Open Data 基礎

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/

10

Page 12: Linked Open Data 基礎

http://dbpedia.org/resource/Yokohama

12

Page 15: Linked Open Data 基礎

http://ja.dbpedia.org/resource/横浜市

15

Page 16: Linked Open Data 基礎

http://ja.dbpedia.org/resource/横浜市

http://ja.dbpedia.org/page/横浜市

http://ja.dbpedia.org/data/横浜市

"横浜市"のIRI

HTML表現

データ表現

DBpediaのIRI設計

cf. http://www.w3.org/TR/cooluris/

16

Page 17: Linked Open Data 基礎

http://ja.dbpedia.org/resource/東京都

http://ja.dbpedia.org/page/東京都

http://ja.dbpedia.org/data/東京都

"東京都"のIRI

HTML表現

データ表現

% curl -IH 'Accept: text/html' http://ja.dbpedia.org/resource/横浜市TTP/1.1 303 See OtherServer: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu Connection: closeContent-Type: text/html; charset=UTF-8Date: Fri, 25 Jan 2013 03:43:38 GMTAccept-Ranges: bytesLink: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://ja.dbpedia.org/resource/横浜市>; rel="timegate"

Location: http://ja.dbpedia.org/page/横浜市Content-Length: 0

17

Page 18: Linked Open Data 基礎

http://ja.dbpedia.org/resource/東京都

http://ja.dbpedia.org/page/東京都

http://ja.dbpedia.org/data/東京都

"東京都"のIRI

HTML表現

データ表現

% curl -IH 'Accept: text/n3' http://ja.dbpedia.org/resource/横浜市

HTTP/1.1 303 See OtherServer: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu Connection: closeDate: Fri, 25 Jan 2013 03:44:13 GMTAccept-Ranges: bytesTCN: choiceVary: negotiate,acceptContent-Location: /data/横浜市.n3

Content-Type: text/n3; qs=0.8Link: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://ja.dbpedia.org/resource/横浜市>; rel="timegate"

Location: http://ja.dbpedia.org/data/横浜市.n3

Content-Length: 0

18

Page 19: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇がない

19

Page 20: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇がない

A. Wikipediaに書け

20

Page 21: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇の位置情報がない

21

Page 22: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇の位置情報がない

A. Wikipedia 編集しろ

22

Page 23: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇の型やリンクがない

23

Page 24: Linked Open Data 基礎

FAQ

Q. DBpedia に〇〇の型やリンクがない

A. DBpedia Mappings Wiki編集しろ

http://mappings.dbpedia.org

24

Page 25: Linked Open Data 基礎

FAQ

Q. 〇〇編集したけどないんだよ!

25

Page 26: Linked Open Data 基礎

FAQ

Q. 〇〇編集したけどないんだよ!

A. 現状不定期更新.正直スマン.今年度中にWikipediaダンプが更新されたら自動更新されるようになる予定

26

Page 28: Linked Open Data 基礎

http://linkedgeodata.org/triplify/node355845257

28

Page 29: Linked Open Data 基礎

29

Page 30: Linked Open Data 基礎

30

Page 31: Linked Open Data 基礎

FAQ

Q. LinkedGeoData に〇〇がない

31

Page 32: Linked Open Data 基礎

FAQ

Q. LinkedGeoData に〇〇がない

A. OpenStreetMap 編集(ry

32

Page 33: Linked Open Data 基礎

クエリ言語

• データの検索や操作を行うための言語• データモデルやDBシステムに合わせて設計

• 例: SQL

–データモデル: 関係モデル

–DBシステム: RDBMS

• LODのデータモデル: グラフモデル

33

Page 34: Linked Open Data 基礎

グラフのクエリ

• グラフの最小単位: 3つ組 (トリプル)

• グラフパターン1. 完全一致

• dbp:東京都 dbp-owl:country dbp:日本 .

2. 変数によるパターンマッチ

• dbp:東京都 dbp-owl:country ?country .

3. 1と2の組み合わせ

dbp:東京都 dbp:日本dbpedia-­‐owl:country

34

Page 35: Linked Open Data 基礎

: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

好き嫌いグラフ

35

Page 36: Linked Open Data 基礎

: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  .

36

Page 37: Linked Open Data 基礎

: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  .

37

Page 38: Linked Open Data 基礎

SPARQL• LOD用クエリ言語

– データモデル: RDF (ラベル付き有向グラフ)

– プロトコル: HTTP

• W3C仕様

– 1.0: Recommendations

– 1.1: Working Drafts

38

Page 39: Linked Open Data 基礎

SPARQLエンドポイント

• SPARQLクエリを受け付ける場所– SPARQLエンドポイントURI

• プログラムからSPARQLを使うときに指定

– 入力フォームがある場合もあり

39

Page 40: Linked Open Data 基礎

DBpedia Japanese SPARQLエンドポイント

40

Page 41: Linked Open Data 基礎

dbp-­‐owl:AdministraMveRegiondbp:サイボーグ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:Comics

rdf:type

41

Page 42: Linked Open Data 基礎

dbp-­‐owl:AdministraMveRegiondbp:サイボーグ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:Comics

rdf:type

クエリ:  石ノ森章太郎の出身地PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/>PREFIX  dbp-­‐owl:  <hYp://dbpedia.org/ontology/>

SELECT  ?birthPlaceWHERE  {    dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  .

}

42

Page 43: Linked Open Data 基礎

43

Page 44: Linked Open Data 基礎

• SELECT:  取得したい変数を指定• SELECT  *  は全ての変数指定と同等• 結果形式:  XML,  JSON,  CSV,  TSV,  ...

• WHERE:    {}内にグラフパターンの組み合わせを記述• LIMIT:    件数の制限• 100だと1-­‐100まで取得• LIMITがない場合は全件取得• 量が多い場合はサーバに負荷をかけるので注意

• PREFIX:    URIを短縮して記述するための仕組み• dbp:東京都  =  <hYp://ja.dbpedia.org/resource/東京都>

PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/>PREFIX  dbp-­‐owl:  <hYp://dbpedia.org/ontology/>

SELECT  ?birthPlaceWHERE  {    dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  .

}

44

Page 45: Linked Open Data 基礎

dbp-­‐owl:AdministraMveRegiondbp:サイボーグ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:Comics

rdf:type

クエリ:  手塚治虫文化賞を受賞した漫画家PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/>PREFIX  dbp-­‐owl:  <hYp://dbpedia.org/ontology/>

SELECT  ?creatorWHERE  {    ?creator  rdf:type  dbp-­‐owl:ComicsCreator  ;        dbp-­‐owl:award  dbp:手塚治虫文化賞  .

}

45

Page 46: Linked Open Data 基礎

46

Page 47: Linked Open Data 基礎

dbp-­‐owl:AdministraMveRegiondbp:サイボーグ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:Comics

rdf:type

クエリ:  手塚治虫文化賞を受賞した漫画家の代表的な漫画PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/>PREFIX  dbp-­‐owl:  <hYp://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:Comics  ;  rdfs:label  ?comicName  .}

石ノ森章太郎

47

Page 48: Linked Open Data 基礎

48

Page 49: Linked Open Data 基礎

SPARQL 1.0• データ取得・検索– SELECT

–ASK

–CONSTRUCT

–DESCRIBE

• どこでもほぼ使用可能

49

Page 50: Linked Open Data 基礎

SELECT

例) 任意の3つ組を100件取得

SELECT ?s ?p ?o

WHERE {

?s ?p ?o .

}

LIMIT 100

50

Page 51: Linked Open Data 基礎

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  .

}

51

Page 52: Linked Open Data 基礎

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  .}

52

Page 53: Linked Open Data 基礎

DESCRIBE• DESCRIBE: リソースに関するグラフを取得• 実装依存• 多くの場合は対象リソースを直接含む3つ組の集合• 結果形式: RDF/XML, Turtle, …

例) http://ja.dbpedia.org/resource/横浜市に関するグラフを取得DESCRIBE <http://ja.dbpedia.org/resource/横浜市>

53

Page 54: Linked Open Data 基礎

SPARQL 1.1• データ作成・更新・削除

‒ INSERT / UPDATE / DELETE / LOAD / DROP

• 様々な機能追加

‒ プロパティパス,集約,条件,数値関数,文字列関数,サブクエリ,Federatedクエリなど

• 実装に差あり

54

Page 56: Linked Open Data 基礎

http://thedatahub.org/dataset?res_format=api%2Fsparql

56

Page 57: Linked Open Data 基礎

公開SPARQLエンドポイントの状態確認サイト

http://labs.mondeca.com/sparqlEndpointsStatus/

57

Page 58: Linked Open Data 基礎

http://lod.ac/apps/lodac_location/58

Page 60: Linked Open Data 基礎

ツール・ライブラリまとめhttp://linkeddata.jp/wiki/ツール

60