第5回aiツール入門講座 linked open dataの現状とその活用

Post on 01-Nov-2014

1.994 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

第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://project-open-data.github.io/

13

何故?•公開者

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

•利用者

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

16

17

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

19

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

21

24

25

by DPADM/UMU, OGDCE Toolkit

26

• 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

30

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

31

Linked Data

32

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

33

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

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

54

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

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

67

http://json-ld.org/

68

69

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://dbpedia.org/resource/Japan

74

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/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://linkedlifedata.com/

91

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

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

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

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

http://linkdata.org/

151

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

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

http://localhost:8890/sparql

161

第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

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

165

166

top related