166
第5回AIツール入門講座 Linked Open Dataの現状 とその活用 (共)情報・システム研究機構 加藤文彦 2013-12-16 1

第5回AIツール入門講座 Linked Open Dataの現状とその活用

Embed Size (px)

DESCRIPTION

2013-12-26に行われた人工知能学会主催 第5回AIツール入門講座 Linked Open Dataの現状とその活用 の資料 第4回(http://www.slideshare.net/fumihiro/4-24004224) を多少変更したもの.

Citation preview

Page 1: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

第5回AIツール入門講座Linked Open Dataの現状

とその活用(共)情報・システム研究機構

加藤文彦2013-12-16

1

Page 2: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

加藤 文彦 (かとうふみひろ)• (共)情報・システム研究機構 特任研究員

• LODACプロジェクト

• DBpedia Japanese

• NPO リンクト・オープン・データ・イニシアティブ 理事

• CKAN

• Open DATA METI

• コミュニティ

• Linked Data勉強会

• Linked Open Data チャレンジ Japan

• CKAN日本語

2

Page 3: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ティム・バーナーズ=リーが示す次のウェブ

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

Page 4: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Linked  Data(データのWeb)

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

4

Page 5: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Linked  Data(データのWeb)

Reuse

5

Page 6: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Open Data

6

Page 7: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Open (Data) License

7

Page 8: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

“データやコンテンツがオープンであるというのは,クレジット表示と/またはライセンスの継承をするくらいの条件で,誰もが自由に利用,再利用,再配布できるということである.”

The  Open  Defini+on  -‐  h.p://opendefini+on.org

8

Page 9: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

自由な利用・再利用・再配布

• 発見できる

• アクセスできる

• 閲覧できる

• 印刷できる

• コピーできる

• 変更できる

• 共有できる

• アプリで使える

• リンクできる

• ...

9

Page 10: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

◯ ☓10

Page 11: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Open Government Data

11

Page 13: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://project-open-data.github.io/

13

Page 16: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

何故?•公開者

•透明性, 協働, 活性化, 効率化, 価値向上, ...

•利用者

•利便性, 検証, 協働, 利活用, ビジネス, ...

16

Page 17: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

17

Page 19: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://data.gov.uk/data/search

19

Page 21: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://fukuno.jig.jp/2013/opendatamap

21

Page 24: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

24

Page 25: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

25

Page 26: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

by DPADM/UMU, OGDCE Toolkit

26

Page 28: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

• 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

Page 30: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

30

Page 31: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

powered by recline.jshttp://reclinejs.com/

31

Page 32: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Linked Data

32

Page 33: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://data.gov.uk/linked-data

33

Page 34: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Web技術でデータを公開・共有するための方法論

34

Page 35: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

35

Page 36: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ライセンス データフォーマット データアクセスデータモデル

1 2 3

36

Page 37: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

4-5星への道

•データのモデルとアクセスを共通化

•アプリが使い回しやすくなる

•データ同士が参照可能

•データが使い回しやすくなる

37

Page 38: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

4-5星への道• 識別するものがある• 共通項がある• 関係がある• 由来がある• 変更履歴がある• 例: 名前,コード,カテゴリー,...

38

Page 39: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

39

Page 40: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

作品

作品

書誌

40

Page 41: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

友人

在住

人物

41

Page 42: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

舞台

観光地

観光地名前の由来

観光

42

Page 43: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

舞台

観光地

観光地名前の由来

作品

作品

友人

在住

書誌人物

観光

43

Page 44: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

舞台

観光地

観光地名前の由来

作品

作品

在住

書誌

人物

観光

友人

同じ

同じ

同じ

44

Page 45: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

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

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

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

45

Page 46: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Linked Dataの原則1.IRIをモノ(Thing)の識別子として使う

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

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

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

子供

執筆

発行日

誕生日出版社

所在地

"Things,  not  Strings"  by  Google

46

Page 47: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Reuse

Discovery Integration

ID

47

Page 48: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Reuse構造化データ

48

Page 49: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

IRIID

49

Page 50: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

27

50

Page 51: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

27

ISO3166-2:JP大阪府

工業統計コード業務用機械器具製造業

ガンバ大阪内田達也

51

Page 52: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 53: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

DiscoveryDerefereceable IRI (HTTP)

53

Page 54: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://www.w3.org/TR/webarch/

54

Page 55: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Content-negotiation

•あるリソースに対する表現をHTTPリクエストで折衝する仕組み

•例: JPEGとSVGの画像

55

Page 56: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 57: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 58: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

“Cool URIs”• 実体とその表現のIRIも分離

• 2つの代表的なソリューション

• 303 See Other

• 実体IRIを参照したときに適切なIRIへ303でリダイレクトする

• ハッシュIRI

• 実体を’#’付きのIRI

• エージェントがアクセスするときには’#’以下が取れる

58

Page 59: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

IntegrationIRI + 型付リンク

59

Page 60: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ID name tel zipcode prefecture

001 市役所 0778-51-2200 916-8666 福井県

施設データテーブル

60

Page 61: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ID name population

18 福井県 795824

26 京都府 2623924

ID name tel zipcode prefecture

001 市役所 0778-51-2200 916-8666 18

施設データテーブル

都道府県データテーブル

IDでjoin

61

Page 62: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 63: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

RDF

Discovery Integration

Reuse

全てを含んだグラフデータモデル

ID

63

Page 64: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

子供

執筆

発行日

誕生日出版社

所在地

64

Page 65: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

子供

執筆

発行日

誕生日出版社

所在地

65

Page 66: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

シリアライズ形式• Turtle (N3)• JSON-LD• RDFa• Microdata• RDF/XML• TriX• TriG• ......

66

Page 67: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://www.w3.org/TR/turtle/

67

Page 68: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://json-ld.org/

68

Page 69: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

69

Page 71: 第5回AIツール入門講座 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/

71

Page 74: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://dbpedia.org/resource/Japan

74

Page 77: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

77

Page 78: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Japanese Linked Data Cloud

• 21データセット• 本家よりも緩い条件• 1000トリプル以上• dereferenceかデータダンプかSPARQL Endpoint

• 日本語ラベルを含む• 他のLODクラウドかJLDCへのリンク

78

Page 79: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

LOD cloud criteria

21 → 9

79

Page 81: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://linkedgeodata.org/triplify/node355845257

81

Page 82: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://browser.linkedgeodata.org/

82

Page 83: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

OS Linked Data

• 地理データの一部

• 50K地名辞典

• 郵便番号

• 境界線http://data.ordnancesurvey.co.uk/

83

Page 87: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 88: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ONS linked data• 統計データの基盤としてのジオデータ

• 領域単位

• 行政,衛生,選挙,郵便,...

• 境界線

• 不一致,変更 http://statistics.data.gov.uk/

88

Page 91: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://linkedlifedata.com/

91

Page 92: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

92

Page 93: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

93

Page 94: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SPARQL

94

Page 95: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

クエリ言語

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

• 例: SQL

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

–DBシステム: RDBMS

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

95

Page 96: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

グラフのクエリ

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

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

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

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

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

3. 1と2の組み合わせ

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

96

Page 97: 第5回AIツール入門講座 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

好き嫌いグラフ

97

Page 98: 第5回AIツール入門講座 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  .

98

Page 99: 第5回AIツール入門講座 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  .

99

Page 100: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SPARQL• LOD用クエリ言語

• SQLのような文法

• データモデル: RDF

• プロトコル: HTTP

• W3C仕様

• 2013-03-21に1.1勧告

RDB

Query

DB

ModelRDF Model

SQL

Relational Model

RDF Store

SPARQL

100

Page 101: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

• SPARQLエンドポイントURI

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

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

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

101

Page 102: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 103: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 104: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

104

Page 105: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

• 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

Page 106: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 107: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

107

Page 108: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 109: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

109

Page 110: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SPARQL 1.0• データ取得• SELECT• ASK• DESCRIBE• CONSTRUCT• ほぼどこでも使える

110

Page 111: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SELECT

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

SELECT ?s ?p ?o

WHERE {

?s ?p ?o .

}

LIMIT 100

111

Page 112: 第5回AIツール入門講座 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  .

}

112

Page 113: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

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

113

Page 114: 第5回AIツール入門講座 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  .}

114

Page 115: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Named Graph• 3つ組の集合を区別したいという要求

• データソースやファイルの違い

• Triple(3つ組)ではなくQuad(4つ組)

115

Page 116: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 117: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SPARQL 1.1• データ管理

• 作成・更新・削除用句

• INSERT, UPDATE, DELETE, LOAD, DROP

• サービス記述

• Graph Store HTTP Protocol

• 結果形式の追加: JSON, CSV, TSV

• 様々な追加機能

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

• 実装の差

• 最新の実装だと大分カバーされている

• 実働中のエンドポイントは差あり

• 特にFederatedクエリやBINDあたりは使えないところも多い

117

Page 118: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

プロパティパス

•通常の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

Page 119: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

プロパティパスの例

• ?s foaf:knows/foaf:knows ?o

• ?s foaf:knows+ ?o

• ?s ^foaf:knows ?o

• ?s foaf:name|rdfs:label ?o

119

Page 120: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

集約• COUNT: 個数• SUM: 合計• AVG: 平均• MIN: 最小値• MAX: 最大値• GROUP BY:

120

Page 121: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

COUNT

例)  森薫リソースのオブジェクトの数

SELECT  (COUNT(?o)  AS  ?count)WHERE  {    <hYp://dbpedia.org/resource/Kaoru_Mori>  ?p  ?o  .}

121

Page 122: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

GROUP BY例)  クラス毎のインスタンスの数上位100件を降順

SELECT  ?class  (COUNT(?instance)  AS  ?noOfInstances)WHERE  {      ?instance  a  ?class  .}GROUP  BY  ?classORDER  BY  DESC(?noOfInstances)LIMIT  100

122

Page 123: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

サブクエリ例)  クラス毎のインスタンスの数の平均

SELECT  (AVG(?noOfInstances)  AS  ?avg)WHERE  {    {        SELECT  ?class  (COUNT(?instance)  AS  ?noOfInstances)        WHERE  {              ?instance  a  ?class  .        }        GROUP  BY  ?class    }}

123

Page 124: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Federatedクエリ• サブクエリの延長• SERVICE句• クエリを直接投げたエンドポイント以外を指定してクエリを投げられる

• 2ヶ所以上のSPARQLエンドポイントに対してクエリを発行して自動的に結果を結合

• まだ使えるエンドポイントが限られるし相互運用性も怪しいがSPARQLのパワフルさの象徴の一つ

124

Page 128: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

128

Page 129: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

129

Page 130: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 132: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

132

Page 133: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

133

Page 134: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

© 2013 Scholex co.,ltd. and ATR Creative Inc. © 2013 ATR Creative Inc., Linked Open Data Initiative

134

Page 135: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Tool

135

Page 136: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

ライブラリ

136

Page 137: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 138: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

SPARQLクライアントライブラリ

• Ruby: sparql

• Python: SPARQLWrapper

• Java: ARQ

• C: Rasqal

• R: SPARQL

• Haskell: hsparql

• 等々

• http://linkeddata.jp/wiki/ツール

• http://www.w3.org/wiki/SparqlImplementations

138

Page 139: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

sparql - RDF.rb

$ gem install sparql

139

Page 140: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 141: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

R SPARQL> install.packages(“SPARQL”)

141

Page 142: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

> 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

Page 143: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

• https://code.google.com/p/sgvizler/

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

• 主にGoogle Visualization API

• 安定版は0.5

• HEADは大分変更があるので注意

143

Page 144: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

144

Page 145: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

使い方

• div要素に埋め込む

•直接Javascriptを書く

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

145

Page 147: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 148: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

Reconciliation• ラベル(と付加情報)にマッチする潜在的なエンティティリストを推薦

• Apple社 vs フルーツのapple vs New York City

• サービス

• Freebase

• Reconciliation API

• SPARQL (要RDFRefine)

148

Page 149: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

149

Page 150: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

150

Page 151: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://linkdata.org/

151

Page 152: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

RDB

Query

DB

Model RDF Model

SQL

Relational Model

RDF Store

SPARQL

152

Page 153: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

RDF Store• TripleStore / QuadStore / Graph DB

• SPARQLエンドポイント• オプション• RDFS/OWL Inference• Full text indexing• Clustering

• See http://en.wikipedia.org/wiki/Triplestore

Bigdata®

153

Page 156: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

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

Page 157: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://localhost:8890/conductor/

157

Page 158: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://localhost:8890/conductor/

158

Page 159: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

159

Page 160: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

160

Page 161: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://localhost:8890/sparql

161

Page 162: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

第6回LODチャレンジデー

• 2013-11-24 パートナーリソース活用ハッカソン

• サーバーサイドコース• クラウドでサーバ立ち上げからVirtuosoインストール,Rubyでのアプリまで

• https://github.com/LinkedOpenData/challenge2013/wiki/サーバーサイド

162

Page 163: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://lodcu.cs.chubu.ac.jp/SparqlEPCU/

163

Page 164: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

•ツール・ライブラリまとめ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

Page 165: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

http://lod.sfc.keio.ac.jp

165

Page 166: 第5回AIツール入門講座 Linked Open Dataの現状とその活用

166