lod技術の概要とlinkdata.orgを用いたlod公開

51
LOD技術の概要と LinkData.orgを用いたLOD公開 大阪大学産業科学研究所 古崎晃司 2014823日(土) 於:大阪大学中之島センター 2014/8/23 1

Upload: kouji-kozaki

Post on 16-Jan-2017

2.627 views

Category:

Technology


0 download

TRANSCRIPT

LOD技術の概要とLinkData.orgを用いたLOD公開

大阪大学産業科学研究所

古崎晃司

2014年8月23日(土)於:大阪大学中之島センター

2014/8/23 1

自己紹介 古崎 晃司(こざき こうじ)

所属:大阪大学産業科学研究所

知識システム研究分野 准教授

専門分野 オントロジー工学

LODとのつながり LODチャレンジ2011から実行委員として参加

実行委員参加のモチベーション オントロジーはLODで用いる「語彙」の意味を定義する技術として“も”用いられる

LODをさらに高度化する技術としてオントロジー工学を活用したい

実施中のLOD関連プロジェクト オントロジー構築環境「法造」のLOD対応

臨床医学オントロジーのLOD化

バイオミメティクデータベースの開発にLOD技術を利用

2014/8/23 2

講演概要

ねらい

データをLODとして公開する方法を学ぶ

使用するツールは,LinkData.org

講演概要

LOD技術の概要

LinkData.orgを利用したLOD公開方法のチュートリアル+ハンズオン

2014/8/23 3

LOD技術の概要

LODの技術的背景

従来のWebからLinked Dataへの流れ

LODの基本的技術

RDF(Resource Description Framework)

SPARQL

2014/8/23 4

参考文献:『Linked Data-Webをグローバルなデータ空間にする仕組み(Tom Heath, Christian Bizer(武田英明監訳),丸善,2013)』

Linked Open Data(LOD) Linked Data:Web上のデータを,つなぐ(linkする)ことで,新しい価値

を生み出そうとする取り組み.Webの創始者Tim Berners-Lee氏が提唱

※ Linked Open Data(LOD):オープンな形で公開されたLinked Data

2014/8/23

http://linkeddata.org/

• 誰もが同じ方法で,「データをつなぐことができる仕組み」を提供している.• 技術的には,

-データ公開の共通フォーマット(URIによる名前付け,RDFによるグラフ表現-コンピュータが,データにアクセスする共通の仕組みが提供されている.

→Web上に公開された膨大なデータを統合した1つのデータベースとして利用できる.

5

Linked Dataの技術的背景~Semantic Webの概要~

Semantic Webとは 従来の「人が読む(理解する)ためのWeb」から,

「コンピュータが理解(意味処理)可能なWeb」へ 技術的には,

Web上のドキュメントにコンピュータによる意味処理に用いる「メタデータ」を付与する(タグを付ける)」

その際に用いるフォーマットが「RDF」 メタデータに用いる語彙を定義するのが「オントロジー」(RDFSやOWLで書かれる)

RDFで書かれたメタデータを検索するためのクエリー言語が「SPARQL」

...

Semantic Webの学術的流れ The Semantic Web:Tim Berners-Lee, James Hendler and

Ora Lassila,Scientific American, May 17, 2001. Semantic Web Conference

Semantic Web分野のトップカンファレンス 2002~ 毎年開催

2014/8/23 6

Layer Cake

Semantic Webに必要な要素技術を階層状に表したもの

2014/8/23

http://www.w3.org/2001/09/06-ecdl/slide17-0.html http://www.dajobe.org/talks/200905-redland/

7

Semantic Webの研究動向の変遷

研究動向(流行トピック)の変遷 語彙(オントロジー)に基づいたメタデータによる意味処理の実現

誰がメタデータを?→Web2.0的共同構築

データ(インスタンス)のLinkの重視:Linked Data

2014/8/23

リッチな意味記述

スケーラビリティ(大量データ)

Semantic Web (の理想)

すぐに使えるタグを(RSS,FOAF)

SNS利用・Web2.0

DBPedia× Linked Data

2004-2006

2007

2008-

8

TED Talk by Tim Berrners Lee (1) 2009/2

~Raw Data Now!~

2014/8/23

http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html

データを抱え込むのでは無く,誰もが使えるように(オープンに)することを呼びかける=Raw Data Now!(生データをすぐに!)

9

TED Talk by Tim Berrners Lee (1) 2010/2

~LODの活用事例~

2014/8/23

http://www.ted.com/talks/tim_berners_lee_the_year_open_data_went_worldwide.html

オープンデータの活用事例を紹介・白人/黒人の住む家と水道管の整備状況の相関を見える化→裁判で勝利へ

・Where does my money go?(税金はどこへ行った?)

(英国) http://wheredoesmymoneygo.org/(横浜市) http://spending.jp/

10

Linked Dataが目指すこと

WWW(World Wide Web) 文書を公開し,相互に接続(ハイパーリンクでつなぐ)ための革命的な仕組みを提供したことで,今日のWebの発展につながった.

Linked Data データを共有(公開)し,相互につなぐ仕組みを提供する.

Linked Dataの原理

データの構造化 構造化されたデータはより洗練された処理を可能にする

分散したデータをつなぐハイパーリンク 文書単位では無く,データ単位のリンクを可能にする.

データの島々から一つのグローバルデータ空間へ 分散されたデータ群を1つのグローバルなデータ空間へ統合する

参考:『Linked Data-Webをグローバルなデータ空間にする仕組み(Tom Heath, Christian Bizer(武田英明監訳),丸善,2013)』 1章.はじめに

2014/8/23 11

既に公開・リンクされているLOD~LODクラウド~

2014/8/23

2007/5/12007/10/8

2008/9/182009/7/142010/9/22http://lod-cloud.net/

2011/9/19時点

1つの丸が個別に公開されたDBを表す.

参考:「Linked Data-Webをグローバルなデータ空間にする仕組み」 3章.データのWeb

マスメディア

地理情報

図書館・教育

ユーザ作成データ

政府情報クロス・ドメイン

ライフサイエンス

DBPedia

open.govopen.gov.uk

12

DBPedia

2014/8/23

Wikipediaの各記事のインフォボックスの情報を抽出して自動生成されるLOD様々なデータをつなぐLODのハブ的な存在となっている.

http://dbpedia.org/

日本語版のDBPediaはhttp://jp.dbpedia.org/

インフォボックスの例

13

LOD技術の概要

RDF(Resource Description Framework) データの記述に用いるモデル

RDFのデータモデル

RDFの表現形式(シリアル化形式)

SPARQL RDFへのクエリ(検索)言語

2014/8/23 14

RDF(Resource Description Framework)

Web上の情報(リソースと呼ぶ)を記述するための統一的枠組み

RDFのデータモデル 主語(subject),述語(predicate),目的語(object)の3つ組み(トリプル)の組み

合わせで,リソースに関する情報を表現する.

計算機表現上はXML形式をはじめ,いくつかの表現が用意されている.

リソースはURI(Uniform Resource Identifier:Web上の情報資源(リソース)の場所を示すための記述方式.URLはURIの一種)を用いて表される.

→ 近は,IRI(Internationalized Resource Identifier):国際化リソース識別子へ.

2014/8/23 15

知識工学論

古崎担当教員

主語 述語 目的語

所属知識システム研究分野

述語 目的語主語

來村担当教員 所属授業コード

280598

RDF(Resource Description Framework)

Web上の情報(リソースと呼ぶ)を記述するための統一的枠組み

RDFのデータモデル 主語(subject),述語(predicate),目的語(object)の3つ組み(トリプル)の組み

合わせで,リソースに関する情報を表現する.

計算機表現上はXML形式をはじめ,いくつかの表現が用意されている.

リソースはURI(Uniform Resource Identifier:Web上の情報資源(リソース)の場所を示すための記述方式.URLはURIの一種)を用いて表される.

→ 近は,IRI(Internationalized Resource Identifier):国際化リソース識別子へ.

目的語には「リテラル」(文字列)を用いることができる.

2014/8/23 16

https://koan.osaka-u.ac.jp/koan/lecture#280598

http://www.ei.sanken.osaka-u.ac.jp/~kozaki/

担当教員

主語 述語 目的語

所属http://www.ei.sanken.

osaka-u.ac.jp/main

述語 目的語主語

http://www.ei.sanken.osaka-u.ac.jp/~kita/

担当教員 所属授業コード

280598

リソース

リテラルプロパティ

:リソース間の関係

RDF(Resource Description Framework)

2014/8/23 17

koan:lecture#280598 ei:kozaki/担当教員

主語 述語 目的語

所属ei:main

述語 目的語主語

ei:kita/担当教員 所属授業コード

280598ネームスペース(namespace)を用いると…koan:=https://koan.osaka-u.ac.jp/koan/ei:=http://www.ei.sanken.osaka-u.ac.jp/

Web上の情報(リソースと呼ぶ)を記述するための統一的枠組み

RDFのデータモデル 主語(subject),述語(predicate),目的語(object)の3つ組み(トリプル)の組み

合わせで,リソースに関する情報を表現する.

計算機表現上はXML形式をはじめ,いくつかの表現が用意されている.

リソースはURI(Uniform Resource Identifier:Web上の情報資源(リソース)の場所を示すための記述方式.URLはURIの一種)を用いて表される.

→ 近は,IRI(Internationalized Resource Identifier):国際化リソース識別子へ.

目的語には「リテラル」(文字列)を用いることができる.

RDFのシリアル化形式

RDFのシリアル化(serialize) RDFは,リソースを主語,目的語,述語の形式で記述するデータモデルであって,データ形式ではない.

RDFの形式に沿ってトリプルを特定の文法に従ってファイルに書き出す(シリアル化する)必要がある.

代表的なシリアル化形式

RDF/XML:計算機向け

RDFa:HTMLにRDFを埋め込む

Turtle:プレーンテキストで人間向けに読みやすい

N-Triples:1行単位で処理できるので処理しやすい

RDF/JSON:Web開発向け

参考:『Linked Data』2.4.2 RDFのシリアル化形式

2014/8/23 18

Turtle・N-Triplesの表現例

Turtle@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>@prefix foaf: <http://xmlns.com/foaf/0.1/>

<http://www.ei.sanken.osaka-u.ac.jp/~kozaki/> rdf:type foaf:Person ;foaf:name “Kouji Kozaki” .

N-Triples<http://www.ei.sanken.osaka-u.ac.jp/~kozaki/>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://xmlns.com/foaf/0.1/Person>.

<http://www.ei.sanken.osaka-u.ac.jp/~kozaki/> <http://xmlns.com/foaf/0.1/name> “Kouji Kozaki”.

2014/8/23 19

http://www.ei.sanken.osaka-u.ac.jp/~kozaki/ foaf:Person

rdf:type

foaf:name Kouji Kozaki

1行

1行

ヘッダ

SPARQL

SPARQL RDFデータに対するクエリ言語

「指定したグラフ構造」に一致するトリプルを検索する

select distinct * where { ?s ?p ?o . } LIMIT 100

select distinct * where { <http://ja.dbpedia.org/resource/東京都> ?p ?o . } LIMIT 100

select distinct ?s where {?s <http://www.w3.org/2000/01/rdf-schema#label> ?o FILTER(regex(str(?o), "大阪")) .} LIMIT 100

2014/8/23 20

日本語DBPediaでのクエリ検索例 http://ja.dbpedia.org/で指定したパターンに一致するトリプルを検索する.

←取得する数

↑同じパターンは除外する

↓返す要素(*は全て)

全トリプルの組み合わせ

東京都を主語(Subject)に含むトリプル

ラベルに“大阪”を含むトリプル

LOD技術に関する参考資料

Semantic WebからLinked Dataへの変遷 Linked Open Dataで広がるデータ統合

萩野 達也,トーゴーの日シンポジウム2011,2011/10/5 http://events.biosciencedbc.jp/sympo/togo2011/program/2

Semantic Web Conferenceに見るLinked Open Dataの国際動向 古崎晃司,第1回LODチャレンジデーin大阪,2011/12/3 http://www.slideshare.net/KoujiKozaki/semantic-web-

conferencelinked-open-data

LODに関する入門資料 Linked Open Data Initiative(LODI)によるLOD連続講座のスライド http://linkedopendata.jp/?cat=17

2014/8/23 21

講演概要

ねらい

データをLODとして公開する方法を学ぶ

使用するツールは,LinkData.org

講演概要

LOD技術の概要

LinkData.orgを利用したLOD公開方法のチュートリアル+ハンズオン

2014/8/23 22

LODの構築から公開まで

データの準備

元となるデータを準備する

CSVやエクセルなど,機械処理しやすい形がよい

RDF化に利用するURIの準備

自分が管理できるURIを用意することが望ましい

データのLOD化(RDF化)

用意したデータをRDF形式に変換する

変換方法 変換ツールの利用:LinkData.org,GoogleRefine,etc. RDFエディタ(オントロジーエディタ)の利用:Protégé,法造,etc.

RDFデータをDBに登録して公開

2014/8/23 23

既存データをRDF化する方法

RDFデータを作成するツールを使用 Open Refine(http://openrefine.org/)+

RDF Refine(http://refine.deri.ie/) データを整備・公開するための多様な機能をサポート

Linked Data(http://linkdata.org/) テーブルデータをRDFに変換して公開することができるサイト

SparqlEPCU(http://lodcu.cs.chubu.ac.jp/SparqlEPCU/) LODの作成・活用のための支援サイト

CSVファイルをRDFとしての公開する機能もあり

StatLD(http://satolab.tiu.ac.jp/statld/) 統計Linked Dataの活用を中心としたツールを公開

一般のLinked Dataの作成にも使用可能

独自のプログラム用でRDFデータを作成

2014/8/23 24

LODチャレンジ2011アプリケーション部門 優秀賞

LODチャレンジ2012アプリケーション部門 優秀賞

LinkData.orgの特徴 できること

表形式のデータをRDFに変換し,サイト上で公開

変換にはエクセル形式の「ひな型ファイル」を利用

公開したデータを用いたアプリケーションをサイト上で開発する機能(LinkData.app)を提供

できないこと 複雑なRDFモデルをつくるのが難しい

RDFのスキーマ(RDFS,OWL)の定義が行えない

SPARQLエンドポイントは未提供

注意点 LinkDataでのデータ公開=(完全な)LODの公開ではない.

より良い形のRDFに変換する為の“コツ”がある

2014/8/23 25

2014/8/23 26

LinkData.orgを用いたLOD作成・公開の流れ

テーブルデータ作成

RDF形式へ変換

テーブルデータのひな形ファイルを作成

ひな形ファイルにデータを⼊⼒

ステップ1で作成したテーブルデータの

ファイルをアップロード&RDF形式への変換

RDFファイルが公開されダウンロード

可能に

ステップ ステップ ステップ

3ステップでRDFを公開できるRDFファイルを

ダウンロードして,トリプルストア

(RDF‐DB)に登録→SPARQLでの検索が可能に

※LinkDataでは未サポート

で,アプリケーションを作成・公開可能

http://linkdata.orgの内容を元に記載

SPARQLを利用したアプリケーションの開発・公開

作業①

作業②

作業③

作業④

使用するサンプルデータ

大阪市が公開しているオープンデータ「施設情報ポイントデータ(官公庁)」 http://www.city.osaka.lg.jp/toshikeikaku/page/0000250227.html

より入手可能

データの内容 「緯度・経度」を含む「施設情報(名称,住所,TEL,カテゴリ...など)

2014/8/23 27

表形式からRDF形式への変換イメージ

2014/8/23 28

各行(レコード)のID→主語(Subject)となるRDFリソースのURI(IRI)に

各列の項目名(ヘッダ行)→RDFリソースに結びつくプロパティに

ID_4965

官公庁/市の機関

住之江区役所

住之江区御崎3-1-..

http://www.city.osaka.lg.jp/suminoe/

34.60965135.4827

カテゴリ

施設名住所

HPのURL緯度

経度主語

(Subject) 述語(Property) 目的語(Object)

※目的語になるデータには,「URIで表されるリソース」と「文字列で表されるリテラル」がある.→目的語を他のリソースとすることで,複雑なグラフも表現可能(単純な表形式では難しい)

各セルの値→トリプルの目的語に

作業①:ひな型ファイルの作成「ひな型ファイル作成」画面へ

2014/8/23 29

「テーブルデータの作成」→「ひな型ファイルを作成」

作業①:ひな型ファイルの作成「全他の設定」を入力

2014/8/23 30

作業①:ひな型ファイルの作成「各列の設定」を入力

2014/8/23 31

入力した列数に応じて「列の設定」欄が表示される

未登録の「ネームスペース」を追加したいとき使用

列ごとに対応するプロパティの設定を入力する

作業①:ひな型ファイルの作成「各列の設定」を入力

2014/8/23 32

プロパティに関するキーワードや,プロパティのURIの一部などを入力すると候補が表示されるので選択する

候補が見つからないときは,自分で入力する(※詳細次項)

作業①:ひな型ファイルの作成プロパティ入力時の注意

2014/8/23 33

プロパティを「名前(文字列)」で入力すると,RDF変換時に,<http://linkdata.org/property/rdf1s1782i#%E6%96%BD%E8%A8%AD%E5%90%8D>

rdf:type rdf:Property ; rdfs:label “施設名”@ja .のように,linkdata.orgのURIを用いたプロパティとなる. 語彙をコントロールするために,URIで入力することを推奨.

ただし,その場合は,プロパティ名が設定できない.

日本語で入力されると,%エンコーディングされます. プロパティ定義でrdfs:labelが付与されますし, DBへの登録・検索など

に問題はありませんが,生成されるRDFファイルを直接見るときなどには,半角英語で入力した方が可読性が高くなります.

候補が見つからないときは,自分で入力する1.既存のLODで使われているプロパティを探して入力(推奨)

2.独自のプロパティを定義

作業②:ひな型ファイルへのデータ入力ひな型ファイルのダウンロード

2014/8/23 34

作業②:ひな型ファイルへのデータ入力ひな型ファイルへのデータ入力

2014/8/23 35

1)ひな形ファイルを開く 左端の列がID,それ以降が設定したプロパティとなっています.

2)元データのファイルを開く 3)元データの列を,1)のひな形ファイルに項目に合わせて並

べ替える 4)3)で並び替えたデータをコピーして,ひな形ファイルの該当

箇所にペーストする. 5)ひな形ファイルを保存

RDFリソースのURIとなる各行(レコード)のID

作業②:ひな型ファイルへのデータ入力データ入力時の注意点 URIとなる行の入力を「(URIでない)文字列」とすると,

<http://linkdata.org/resource/rdf1s1782i#111><http://www.w3.org/2000/01/rdf-schema#label> “111”@ja ;<http://www.w3.org/2000/01/rdf-schema#label> “東住吉区役所”@ja ;

のように,

リソースのURIがlinkdata.org...となり,rdfs:labelが付与されます.

→URIで入力することを推奨します.

リソースのURIをコントロールするため

rdfs:labelが(不用意に)複数付与されることを避けるため

2014/8/23 36

RDFリソースのURIとなる各行(レコード)のID

作業③:データのアップロード(RDF変換)アップロードするファイルの選択

2014/8/23 37

アップロードするファイルを「選択」or「ドラック&ドロップ」する

Webサイトで公開しているデータをURLで指定することも可(→定期的に自動で更新・RDF変換される?)

作業③:データのアップロード(RDF変換)アップロード先を選択

2014/8/23 38

2014/8/23 39

データ名を入力

必要であれば共同編集者を選択

作品情報の入力

公開範囲を選択

市町村のオープンデータを公開する時は入力→CityData.jpに反映される

作業③:データのアップロード(RDF変換)公開時のライセンス等を指定

2014/8/23 40

(備考:同じ作品に,同じファイル名をアップロードしようとすると,失敗することがある?)

作業③:データのアップロード(RDF変換)アップロードしたデータの登録

2014/8/23 41

作業④:RDFデータのダウンロード・公開RDFデータのダウンロード

2014/8/23 42

アップロード・RDF変換が完了するとデータがLinkData.org上で公開される

公開したデータは,形式を選択してダウンロードできる→RDF-DB登録用には「RDF(Turtle)」形式でダウンロードする

作業④:RDFデータのダウンロード・公開データの公開ページ

2014/8/23 43

公開したデータのダウンロード

ページ上でデータ(表形式)の内容確認

作業④:RDFデータのダウンロード・公開DBへのRDFデータの登録

2014/8/23 45

作業④:RDFデータのダウンロード・公開DBへ登録したRDFデータの確認

2014/8/23 46

DBに登録したデータの確認

その他の工夫①同じプロパティが複数の場合 1つのRDFリソースが「同じプロパティを複数」持つとき

テーブルデータの「同じURI」の行を複数追加し,プロパティの値が異なるセルにのみデータを入力する.

2014/8/23 47

ID_1

著者1

著者2

タイトル1

authorauthor

タイトル

同じURI

同じPropertyが複数

値が変わらないときは2つめ以降を空欄に

その他の工夫①-2(別方法)同じプロパティが複数の場合

2014/8/23 48

同じPropertyが複数列繰り返し定義する

1つのRDFリソースが「同じプロパティを複数」持つとき

同じプロパティを持つ「 大数」が分かっているときは,同じプロパティが入る列を繰り返し定義し,データを入力することも可.

空欄のセルが残ってもOK.

その他の工夫②複雑なグラフの扱い RDFリソースのObject(目的語)が更にトリプルを持つ(構造を持つ)とき

「(ひな型,および)テーブルデータ」を複数に分けて表現する

その際,Object(目的語)がURIとなるように注意

2014/8/23 49

ID_1著者_ID1

山田太郎

タイトル1

author名前

タイトル

①書誌情報用テーブルデータ

で表現

②著者(人名)用のテーブルデータで表現

やまだたろうふりがな

①のObjectと②のURIが一致するようにする

その他の工夫③外部のLODとのリンク

LODを有用なものとするためには,既に公開されている他のLODと「リンクする」が重要

LinkData.orgでは,テーブルデータにおいて,プロパティのObjectとして,外部のLODのURIを入力することでリンク可能

リンク先を見つけるためには,公開されているSPARQLエンドポイントを利用することも可能

簡易SPARQLツールhttp://sourceforge.jp/projects/easylod/では,文字列一致でのリンク先一括取得の機能を提供

2014/8/23 50

その他の工夫④スキーマの定義 LinkData.orgでは,「スキーマ(や語彙)」の定義が行えない

「各リソースのクラス」や「プロパティの定義」を行いたい場合は,多のツールで記述する.(スキーマ定義用のテーブルデータを用意することも可能だが…)

主なスキーマ定義 簡単なスキーマ(RDFS)であれば,RDF(Turtle)で直接記述しても良い

各RDFリソースには,rdf:typeでクラスを指定

プロパティ定義では,rdfs:domain(定義域), rdfs:range(値域)の定義

2014/8/23 51

プロパティ定義の例<http://example.org/property/author>

rdf:type rdf:Property ;rdfs:domain ex:Document;rdfs:range ex:Person.

リソースのクラス指定の例<http://example.org/data/001>

rdf:type ex:Person ;rdfs:label “山田太郎”@ja.

クラス定義の例<http://example.org/class/Person>

rdf:type rdfs:Class .

まとめ LinkData.orgを使ったLOD公開

比較的簡単な形式のデータのRDF変換に有用 より良い形式のRDFにするための注意点(コツ)

IDは,単なる文字列ではなく「URI」とする. プロパティ定義は,名前(文字列)だけでなくURIを用いる.

コントロール可能なURIとするために,自分で管理可能なURIを用いる リソース http://myweb.com/data/***

http://myweb.com/resource/*** など プロパティ http://myweb.com/propery/*** クラス http://myweb.com/class/***

より良いLODとするために サイト上だけではなく,RDF-DBなどでの公開を考える 外部データと「リンクする」ことを考える 可能であれば,スキーマ定義も行う

2014/8/23 52