47
LOD: Linked Open Data LODI 加藤文彦 第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン 2014-06-29 1

LOD: Linked Open Data

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

Page 1: LOD: Linked Open Data

LOD: Linked Open Data

LODI 加藤文彦 第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン

2014-06-29

1

Page 2: LOD: Linked Open Data

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

•複数の(オープン)データを組み合わせて使いやすくする

•アクセス方法の差異

•ファイル形式の差異

•データソースの差異

•語彙の差異

•事物の区別と同一性

2

Page 3: LOD: Linked Open Data

3

Page 4: LOD: Linked Open Data

作品

作品

書誌

4

Page 5: LOD: Linked Open Data

友人

在住

人物

5

Page 6: LOD: Linked Open Data

舞台

観光地

観光地名前の由来

観光

6

Page 7: LOD: Linked Open Data

舞台

観光地

観光地名前の由来

作品

作品

友人

在住

書誌人物

観光

7

Page 8: LOD: Linked Open Data

舞台

観光地

観光地名前の由来

作品

作品

在住

書誌

人物

観光

友人

同じ

同じ

同じ

8

Page 9: LOD: Linked Open Data

9

Page 10: LOD: Linked Open Data

http://ja.dbpedia.org/resource/夏目漱石識別

識別

http://viaf.org/viaf/56614190

10

Page 11: LOD: Linked Open Data

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/夏目漱石> .

識別

識別

Page 12: LOD: Linked Open Data

Webの原則1.URIをHTML文書の識別子として使う

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

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

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

URI + HTTP + HTML12

Page 13: LOD: Linked Open Data

Linked Dataの原則1.URIを事物の識別子として使う

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

3.URIを見ると事物の構造化データが返ってくる

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

子供

執筆

発行日

誕生日出版社

所在地

"Things,  not  Strings"    by  Google

URI + HTTP + RDF13

Page 14: LOD: Linked Open Data

LODのデータ

•データモデル

• RDFグラフモデル

•ファイル形式

• Turtle, RDF/XML, JSON-LD, …

14

Page 15: LOD: 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/ 15

Page 16: LOD: Linked Open Data

http://dbpedia.org

16

Page 17: LOD: Linked Open Data

http://dbpedia.org/resource/Japan17

Page 18: LOD: Linked Open Data

http://wiki.dbpedia.org/Internationalization/Chapters18

Page 19: LOD: Linked Open Data

http://ja.dbpedia.org19

Page 20: LOD: Linked Open Data

日本語Linked Data Cloud図!

• 27データセット • 本家よりも緩い条件 • 日本にいる人・組織 • 日本語ラベルを含む • 1000トリプル以上 • dereference/データダン

プ/SPARQL Endpoint • LODクラウドかJLDCへ

のリンクhttp://linkedopendata.jp/?p=486

20

Page 21: LOD: Linked Open Data

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

Page 22: LOD: Linked Open Data

グラフのクエリ

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

!

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

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

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

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

3. 1と2の組み合わせ

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

22

Page 23: LOD: 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

好き嫌いグラフ

23

Page 24: LOD: 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  .

24

Page 25: LOD: 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  .

25

Page 26: LOD: Linked Open Data

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

• SPARQLエンドポイントURI

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

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

• 例: http://ja.dbpedia.org/sparql26

Page 27: LOD: Linked Open Data

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

Page 28: LOD: Linked Open Data

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

Page 29: LOD: Linked Open Data

29

Page 30: LOD: Linked Open Data

• 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

Page 31: LOD: Linked Open Data

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

Page 32: LOD: Linked Open Data

32

Page 33: LOD: Linked Open Data

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

Page 34: LOD: Linked Open Data

34

Page 35: LOD: Linked Open Data

http://datahub.io/dataset?q=&res_format=api%2Fsparql35

Page 36: LOD: Linked Open Data

http://sparqles.okfn.org/

36

Page 37: LOD: Linked Open Data

RDFライブラリ•Java: Jena, Sesame

• C: Redland

• C#: dotNetRDF

• Ruby: RDF.rb

• PHP: ARC2, Graphite, RAP

• Python: rdflib

• Perl: PerlRDF

• JavaScript: rdfQuery, rdfstore-js

• ....

37

Page 38: LOD: Linked Open Data

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

Page 39: LOD: Linked Open Data

RDF.rb

$ gem install linkeddata

39

Page 40: LOD: Linked Open Data

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

Page 41: LOD: Linked Open Data

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

Page 42: LOD: Linked Open Data

Sgvizler•Javascript/jQueryの可視化ライブラリ

• http://dev.data2000.no/sgvizler/

• 基本的にSPARQL埋め込むだけ

•主にGoogle Visualization API

• 安定版は0.6

• CORS or JSONP

• 使い方

• div要素に埋め込む

•直接Javascriptを書く

• クエリフォームから入力する

42

Page 43: LOD: Linked Open Data

43

Page 44: LOD: Linked Open Data

44

Page 45: LOD: Linked Open Data

45

Page 46: LOD: Linked Open Data

46

Page 47: LOD: Linked Open Data

47