第4回 aiツール入門講座 linked open data入門

146
第4回AIツール入門講座 Linked Open Data入門 (共)情報・システム研究機構 加藤文彦 2013-07-05 1

Upload: fumihiro-kato

Post on 11-Apr-2017

7.082 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 第4回 AIツール入門講座 Linked Open Data入門

第4回AIツール入門講座Linked Open Data入門

(共)情報・システム研究機構加藤文彦

2013-07-05

1

Page 2: 第4回 AIツール入門講座 Linked Open Data入門

加藤 文彦 (かとうふみひろ)

• (共)情報・システム研究機構 特任研究員

• LODACプロジェクト

• DBpedia Japanese

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

• CKAN

• Open DATA METI

• コミュニティ

• Linked Data勉強会

• Linked Open Data チャレンジ Japan

• CKAN日本語

2

Page 3: 第4回 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: 第4回 AIツール入門講座 Linked Open Data入門

Linked  Data(データのWeb)

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

4

Page 5: 第4回 AIツール入門講座 Linked Open Data入門

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

Linked  Data(データのWeb)

Reuse

5

Page 6: 第4回 AIツール入門講座 Linked Open Data入門

Open Data

6

Page 7: 第4回 AIツール入門講座 Linked Open Data入門

Open (Data) License

7

Page 8: 第4回 AIツール入門講座 Linked Open Data入門

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

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

8

Page 9: 第4回 AIツール入門講座 Linked Open Data入門

◯ ☓9

Page 10: 第4回 AIツール入門講座 Linked Open Data入門

Open Government Data

10

Page 11: 第4回 AIツール入門講座 Linked Open Data入門

11

Page 13: 第4回 AIツール入門講座 Linked Open Data入門

13

Page 16: 第4回 AIツール入門講座 Linked Open Data入門

16

Page 17: 第4回 AIツール入門講座 Linked Open Data入門

17

Page 18: 第4回 AIツール入門講座 Linked Open Data入門

18

Page 19: 第4回 AIツール入門講座 Linked Open Data入門

by DPADM/UMU, OGDCE Toolkit

19

Page 21: 第4回 AIツール入門講座 Linked Open Data入門

CKAN• FLOSSのデータポータルソフトウェア

• AGPL v3.0

• http://github.com/okfn/ckan

• Open Knowledge Foundation

• 約50の国や地方自治体等で採用

• Python+JavaScript

• PostgreSQL+SOLR

• API提供

• 豊富な拡張

21

Page 24: 第4回 AIツール入門講座 Linked Open Data入門

Linked Data

24

Page 25: 第4回 AIツール入門講座 Linked Open Data入門

25

Page 26: 第4回 AIツール入門講座 Linked Open Data入門

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

26

Page 27: 第4回 AIツール入門講座 Linked Open Data入門

データのWeb

27

Page 28: 第4回 AIツール入門講座 Linked Open Data入門

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

子として使う

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

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

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

28

Page 29: 第4回 AIツール入門講座 Linked Open Data入門

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

別子として使う

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

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

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

子供

執筆

発行日

誕生日出版社

所在地

"Things,  not  Strings"  by  Google

29

Page 30: 第4回 AIツール入門講座 Linked Open Data入門

30

Page 31: 第4回 AIツール入門講座 Linked Open Data入門

作品

作品

書誌

31

Page 32: 第4回 AIツール入門講座 Linked Open Data入門

友人

在住

人物

32

Page 33: 第4回 AIツール入門講座 Linked Open Data入門

舞台

観光地

観光地名前の由来

観光

33

Page 34: 第4回 AIツール入門講座 Linked Open Data入門

舞台

観光地

観光地名前の由来

作品

作品

友人

在住

書誌人物

観光

34

Page 35: 第4回 AIツール入門講座 Linked Open Data入門

Reuse

Discovery Integration

ID

35

Page 36: 第4回 AIツール入門講座 Linked Open Data入門

Reuse構造化データ

36

Page 37: 第4回 AIツール入門講座 Linked Open Data入門

IRIID

37

Page 38: 第4回 AIツール入門講座 Linked Open Data入門

26

38

Page 39: 第4回 AIツール入門講座 Linked Open Data入門

26

ISO3166-2:JP京都府

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

FC東京阿部 巧

39

Page 40: 第4回 AIツール入門講座 Linked Open Data入門

26

ISO3166-2:JP京都府

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

FC東京阿部 巧

http://www.iso.org/3166-2/jp/26

http://www.fctokyo.co.jp/players/2013/26http://www.meti.go.jp/industrial-code/26

IDをIRIにすると世界でユニークなIDになる

40

Page 41: 第4回 AIツール入門講座 Linked Open Data入門

DiscoveryDerefereceable IRI (HTTP)

41

Page 42: 第4回 AIツール入門講座 Linked Open Data入門

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

42

Page 43: 第4回 AIツール入門講座 Linked Open Data入門

Content-negotiation

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

•例: JPEGとSVGの画像

43

Page 44: 第4回 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.....

44

Page 45: 第4回 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......

45

Page 46: 第4回 AIツール入門講座 Linked Open Data入門

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

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

• 303 See Other

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

• ハッシュIRI

• 実体を’#’付きのIRI

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

46

Page 47: 第4回 AIツール入門講座 Linked Open Data入門

IntegrationIRI + 型付リンク

47

Page 48: 第4回 AIツール入門講座 Linked Open Data入門

ID name tel zipcode prefecture

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

施設データテーブル

48

Page 49: 第4回 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

49

Page 50: 第4回 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のデータ

施設データテーブル

都道府県データテーブル

50

Page 51: 第4回 AIツール入門講座 Linked Open Data入門

RDF

Discovery Integration

Reuse

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

ID

51

Page 52: 第4回 AIツール入門講座 Linked Open Data入門

子供

執筆

発行日

誕生日出版社

所在地

52

Page 53: 第4回 AIツール入門講座 Linked Open Data入門

子供

執筆

発行日

誕生日出版社

所在地

53

Page 54: 第4回 AIツール入門講座 Linked Open Data入門

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

• JSON-LD

• RDFa

• Microdata

• RDF/XML

• TriX

• TriG

• ......

54

Page 55: 第4回 AIツール入門講座 Linked Open Data入門

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

55

Page 56: 第4回 AIツール入門講座 Linked Open Data入門

http://json-ld.org/

56

Page 57: 第4回 AIツール入門講座 Linked Open Data入門

57

Page 59: 第4回 AIツール入門講座 Linked Open Data入門

http://5stardata.info/ja/

59

Page 60: 第4回 AIツール入門講座 Linked Open Data入門

1. オープンライセンス

2. 構造化データ

3. オープンな形式

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

5. 他データへのリンク

Linked Open Data

60

Page 61: 第4回 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/

61

Page 64: 第4回 AIツール入門講座 Linked Open Data入門

http://dbpedia.org/resource/Japan

64

Page 68: 第4回 AIツール入門講座 Linked Open Data入門

68

Page 70: 第4回 AIツール入門講座 Linked Open Data入門

http://linkedgeodata.org/triplify/node355845257

70

Page 71: 第4回 AIツール入門講座 Linked Open Data入門

http://browser.linkedgeodata.org/

71

Page 72: 第4回 AIツール入門講座 Linked Open Data入門

http://www.uniprot.org/

72

Page 74: 第4回 AIツール入門講座 Linked Open Data入門

http://beta.sparql.uniprot.org/

74

Page 75: 第4回 AIツール入門講座 Linked Open Data入門

75

Page 76: 第4回 AIツール入門講座 Linked Open Data入門

http://linkedlifedata.com/

76

Page 77: 第4回 AIツール入門講座 Linked Open Data入門

77

Page 78: 第4回 AIツール入門講座 Linked Open Data入門

78

Page 79: 第4回 AIツール入門講座 Linked Open Data入門

SPARQL

79

Page 80: 第4回 AIツール入門講座 Linked Open Data入門

クエリ言語

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

• 例: SQL

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

–DBシステム: RDBMS

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

80

Page 81: 第4回 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

81

Page 82: 第4回 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

好き嫌いグラフ

82

Page 83: 第4回 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  .

83

Page 84: 第4回 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  .

84

Page 85: 第4回 AIツール入門講座 Linked Open Data入門

SPARQL• LOD用クエリ言語

• SQLのような文法

• データモデル: RDF

• プロトコル: HTTP

• W3C仕様

• 1.1が2013-03-21に勧告

• 11種類の文書

85

Page 86: 第4回 AIツール入門講座 Linked Open Data入門

RDB

Query

DB

Model RDF Model

SQL

Relational Model

RDF Store

SPARQL

86

Page 87: 第4回 AIツール入門講座 Linked Open Data入門

SPARQLエンドポイント

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

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

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

87

Page 88: 第4回 AIツール入門講座 Linked Open Data入門

DBpedia Japanese SPARQLエンドポイント

88

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

89

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

}

90

Page 91: 第4回 AIツール入門講座 Linked Open Data入門

91

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

}

92

Page 93: 第4回 AIツール入門講座 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:手塚治虫文化賞  .

}

93

Page 94: 第4回 AIツール入門講座 Linked Open Data入門

94

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

石ノ森章太郎

95

Page 96: 第4回 AIツール入門講座 Linked Open Data入門

96

Page 97: 第4回 AIツール入門講座 Linked Open Data入門

SPARQL 1.0• データ取得

• SELECT

• ASK

• DESCRIBE

• CONSTRUCT

• ほぼどこでも使える

97

Page 98: 第4回 AIツール入門講座 Linked Open Data入門

SELECT

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

SELECT ?s ?p ?o

WHERE {

?s ?p ?o .

}

LIMIT 100

98

Page 99: 第4回 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  .

}

99

Page 100: 第4回 AIツール入門講座 Linked Open Data入門

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

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

100

Page 101: 第4回 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  .}

101

Page 102: 第4回 AIツール入門講座 Linked Open Data入門

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

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

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

102

Page 103: 第4回 AIツール入門講座 Linked Open Data入門

Named Graphの例

PREFIX  dcndl:  hYp://ndl.go.jp/dcndl/terms/>PREFIX  rdfs:  <hYp://www.w3.org/2000/01/rdf-­‐schema#>PREFIX  dc:  <hYp://purl.org/dc/terms/>SELECT  DISTINCT  *WHERE  {    GRAPH  ?g  {        <hYp://lod.ac/species/Papilio_xuthus>  ?p  ?o    .    }    ?g  dc:source  ?source  .    ?source  dcndl:ediMon  ?ediMon  ;                        dc:publisher/rdfs:label  ?publisher  .}

103

Page 104: 第4回 AIツール入門講座 Linked Open Data入門

SPARQL 1.1• データ管理

• 作成・更新・削除用句

• INSERT, UPDATE, DELETE, LOAD, DROP

• サービス記述

• Graph Store HTTP Protocol

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

• 様々な追加機能

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

• 実装の差

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

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

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

104

Page 105: 第4回 AIツール入門講座 Linked Open Data入門

プロパティパス

•通常の3つ組パターン: ?s ?p ?o

• ?oの省略や?pの繰り返し,?pの逆向き等を記述可能

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

SELECT  ?creatorName  ?comicNameWHERE  {    ?creator  dbp-­‐owl:notableWork/rdfs:label  ?comicName  .}

105

Page 106: 第4回 AIツール入門講座 Linked Open Data入門

プロパティパスの例

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

• ?s foaf:knows+ ?o

• ?s ^foaf:knows ?o

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

106

Page 107: 第4回 AIツール入門講座 Linked Open Data入門

集約• COUNT: 個数

• SUM: 合計

• AVG: 平均

• MIN: 最小値

• MAX: 最大値

• GROUP BY:

107

Page 108: 第4回 AIツール入門講座 Linked Open Data入門

COUNT

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

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

108

Page 109: 第4回 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

109

Page 110: 第4回 AIツール入門講座 Linked Open Data入門

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

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

110

Page 111: 第4回 AIツール入門講座 Linked Open Data入門

Federatedクエリ• サブクエリの延長

• SERVICE句

• クエリを直接投げたエンドポイント以外を指定してクエリを投げられる

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

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

111

Page 115: 第4回 AIツール入門講座 Linked Open Data入門

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

115

Page 116: 第4回 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 > #{sw_lat} && ?lat < #{ne_lat} && ?long > #{sw_long} && ?long < #{ne_long} && lang(?title) = "ja" )}

116

Page 118: 第4回 AIツール入門講座 Linked Open Data入門

118

Page 119: 第4回 AIツール入門講座 Linked Open Data入門

119

Page 120: 第4回 AIツール入門講座 Linked Open Data入門

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

120

Page 121: 第4回 AIツール入門講座 Linked Open Data入門

Tool

121

Page 122: 第4回 AIツール入門講座 Linked Open Data入門

ライブラリ

122

Page 123: 第4回 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参照

123

Page 124: 第4回 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

124

Page 125: 第4回 AIツール入門講座 Linked Open Data入門

sparql - RDF.rb

$ gem install sparql

125

Page 126: 第4回 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/Daejeon> <http://dbpedia.org/ontology/country> ?o .11 }"""12 13 client.query(query).each do |solution|14 puts solution[:o]15 end

126

Page 127: 第4回 AIツール入門講座 Linked Open Data入門

R SPARQL

> install.packages(“SPARQL”)

127

Page 128: 第4回 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)

128

Page 129: 第4回 AIツール入門講座 Linked Open Data入門

RDB

Query

DB

Model RDF Model

SQL

Relational Model

RDF Store

SPARQL

129

Page 130: 第4回 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®

130

Page 133: 第4回 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

133

Page 134: 第4回 AIツール入門講座 Linked Open Data入門

http://localhost:8890/conductor/

134

Page 135: 第4回 AIツール入門講座 Linked Open Data入門

http://localhost:8890/conductor/

135

Page 136: 第4回 AIツール入門講座 Linked Open Data入門

136

Page 137: 第4回 AIツール入門講座 Linked Open Data入門

137

Page 138: 第4回 AIツール入門講座 Linked Open Data入門

http://localhost:8890/sparql

138

Page 139: 第4回 AIツール入門講座 Linked Open Data入門

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

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

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

• 主にGoogle Visualization API

• 安定版は0.5

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

139

Page 140: 第4回 AIツール入門講座 Linked Open Data入門

140

Page 141: 第4回 AIツール入門講座 Linked Open Data入門

使い方

•div要素に埋め込む

•直接Javascriptを書く

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

141

Page 142: 第4回 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

142

Page 143: 第4回 AIツール入門講座 Linked Open Data入門

Reconciliation• ラベル(と付加情報)にマッチ

する潜在的なエンティティリストを推薦

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

• pathやURI

• サービス

• Freebase

• Reconciliation API

• SPARQL (要RDFRefine)

143

Page 144: 第4回 AIツール入門講座 Linked Open Data入門

144

Page 145: 第4回 AIツール入門講座 Linked Open Data入門

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

•SPARQLクエリ例hYp://goo.gl/bPSHp

•RDF.rbの資料hYp://www.slideshare.net/fumihiro/programming-­‐with-­‐lod

145

Page 146: 第4回 AIツール入門講座 Linked Open Data入門

146