• 検索結果がありません。

分散情報システム構成法 第5回 Semantic Webの基本とRDF

N/A
N/A
Protected

Academic year: 2021

シェア "分散情報システム構成法 第5回 Semantic Webの基本とRDF"

Copied!
30
0
0

読み込み中.... (全文を見る)

全文

(1)

Web Information System Design

No.10 セマンティックWebアプリケーションアークテクチャ

萩野 達也

(2)

セマンティック

Webとは

データのWeb

「文書のWeb」から「データのWeb」へ

メタデータ

メタデータ = 文書やデータに関するデータ

計算機可読なメタデータをアプリケーションで共有する

データの共有や統合を可能にする

文書・データ

メタデータ

about

理解

利用

アプリケーション

W3CセマンティックWebアクティビティ

http://www.w3.org/2001/sw/

「セマンティックWebはアプリケーションや組織などの境界を越えてデータを共有

し再利用することのできる共通のフレームワークを提供する」

(前回)

(3)

RDF

3

Resource Description Framework

データを三つ組みとして表す

三つ組み(Triple)

資源 - プロパティ - 値

主語 - 述語 - 目的語

有向グラフ

http://www.sfc.keio.ac.jp/~hagino/dis15

dc:title

資源

プロパティ

主語

述語

目的語

Web情報システム構成法

この資源(この授業のWebページ)のタイトルは「Web情報システム構成法」である.

(前回)

(4)

分散した情報の統合

RDFのグラフ構造のデータモデルにより異なるデータを

統合して扱うことができる

foaf:knows foaf:mbox foaf:name 萩野 達也 mailto:hagino@sfc... http://www.keio.ac... foaf:workplaceHomepage mailto:hsato@sfc... 佐藤 宏之 http://www.sfc.keio.ac.jp/~hagino/dis15 Web情報システム構成法 foaf:mbox foaf:name dc:title dc:creator rdf:type foaf:Person rdf:type シラバスに関するRDFデータ FOAF(Friend of a Friend)のデータ

(前回)

(5)

今回の内容

セマンティックWebアプリケーションアーキテクチャ

Web上に分散したデータをいかにして集めるのか

どのようにして統合するのか

どのようにして活用するのか

Keywords

Linked Open Data (LOD)

情報統合

データ統合

SPARQL

(6)

Linked Data と Linked Open Data(LOD)

オープンデータ

誰でもが利用して良いようにデータを

公開

する

政府のデータ,製品情報,など

Linked Data

事物(資源)の識別子としての

URI

を使う

データ記述の標準フォーマットである

RDF

を使う

共通のURI

を使うことでデータ同士を

リンク

して活用する

Linked Open Data

(7)

Linked Open Data(LOD)

(8)

Semantic Webアプリケーションのアーキテクチャ

システムの構成要素

RDFパーサ(解析)/シリアライザ(公開)

RDFデータストア

RDFのクエリエンジン

コンバータ/スクレイパ

上記を利用したアプリケーション

※ツールの多くは無償で入手できる

(9)

アーキテクチャ(

1)

9

データベースを用いた一般

的なアプリケーションのアー

キテクチャ

RDFアプリケーションのアー

キテクチャ

データベース

データベースエンジン (クエリエンジン)

アプリケーション

RDFデータストア

データベースエンジン (クエリエンジン)

グラフデータ

アプリケーション

(10)

アーキテクチャ(2)

RDF ファイル Webページ、エクセル表、 既存のデータベースなど データベースエンジン (クエリエンジン)

アプリケーション

RDFデータス トアで統合し て扱われる シリアライザ パーサ RDF ファイル RDFデータストア データベースエンジン (クエリエンジン) コンバータ/ スクレイパ 既存のデータを 取り込む ファイルの形 でも他のシス テムにデータ を渡せる 別システム 1つのデータストアにアクセスして得られ たデータに関連するデータを別のデータ ストアにアクセスして参照 RDF ファイル

(11)

RDFのテキスト形式は複数ある

11

テキスト形式による表現(シリアライズ)

N-Triples

Notation3 (N3)

RDF/XML

Turtle

RDF/JSON

http://web.sfc.keio.ac.jp/~hagino/dis15

dc:title

Web情報システム構成法

萩野達也

dc:creator

以下のグラフ構造を持つデータをテ

キストで表現してみよう

(12)

N-Triplesによる表現

最も単純な形式

三つ組を直接書く

三つ組ごとに:リソース,プロパティ,値の順に並べて,「.」(ピリオド)で終

わる

URIは<>で囲み,リテラルは" "で囲む

<http://web.sfc.keio.ac.jp/~hagino/dis15> <http://purl.org/dc/terms/title> "Web情報システム構成法" . <http://web.sfc.keio.ac.jp/~hagino/dis15> <http://purl.org/dc/terms/creator> "萩野達也" .

参考:RDF Test Cases

3. N-Triples

(13)

N3による表現

Notation 3 RDF (略してN3)

N-Triplesの明快さを維持しつつ簡略化できる

TurtleはN3のサブセット

13

※Turtleでも同様

See:Tim Berners-Lee, Primer: Getting into RDF & Semantic Web using N3

http://www.w3.org/2000/10/swap/Primer.html

神崎正英, Notation3:RDFの簡易表記から論理表現まで

http://www.kanzaki.com/docs/sw/n3.html

@prefix dc: <http://purl.org/dc/terms/> .

<http://web.sfc.keio.ac.jp/~hagino/dis15> dc:title "Web情報システム構成法" ; dc:creator "萩野達也" .

(14)

RDF/XMLによる表現

参考:RDF/XML Syntax Specification (Revised)

http://www.w3.org/TR/REC-rdf-syntax/

神崎正英, RDF -- リソース表現のフレームワーク

http://www.kanzaki.com/docs/sw/rdf-model.html

<?xml version="1.0” encoding=“utf-8”?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc="http://purl.org/dc/terms/">

<rdf:Description

rdf:about="http://web.sfc.keio.ac.jp/~hagino/dis15">

<dc:title>Web情報システム構成法</dc:title>

<dc:creator>萩野達也</dc:creator>

</rdf:Description>

</rdf:RDF>

(15)

ブランクノード

15 

グラフ表現においてURIが与えられないノード

与えない方が表現の都合が良いことがある

システムが自動的に一意的なURIを割り当てる

匿名ノードとも呼ばれる

http://web.sfc.keio.ac.jp/~hagino/dis13

dc:title

分散情報システム構成法

萩野達也

foaf:name

foaf:mbox

mailto:hagino@sfc...

dc:creator

N3で表現 (Turtleでも同様)

※ブランクノードを主語とするトリプルは、主語を略して[述語 目的語]と表記することができる

@prefix dc: <http://purl.org/dc/terms/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . <http://web.sfc.keio.ac.jp/~hagino/dis15> dc:title "Web情報システム構成法" ;

dc:creator [ foaf:name "萩野達也" ;

(16)

RDF Validator

W3C RDF Validation Service

http://www.w3.org/RDF/Validator/

RDF/XMLのチェックと視覚化

(17)

RDF Validation Service

17

Webブラウザ

から利用可能

入力

直接

ファイル

URL

出力

解析結果

三つ組

グラフ

(18)

<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.jpschema/"> <rdf:Description rdf:about="http://example.jp/doc.html"> <s:creator> <rdf:Description> <s:name>藤沢太郎</s:name> <s:Email>taro@example...</s:Email> </rdf:Description> </s:creator> </rdf:Description> </rdf:RDF> <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.jp/schema/"> <rdf:Description rdf:about="http://example.jp/doc.html"> <s:creator s:name="藤沢太郎" s:Email="taro@example..." /> </rdf:Description> </rdf:RDF> rdf:RDF rdf:Description rdf:about=“…doc.html” s:creator rdf:Description s:name s:Email s:creator s:name="藤沢太郎"

XMLパーサによる解析

(ツ リー構造のデータモデル)

RDFパーサによる解析

(グラフ構造のデータモデル) …doc.html 藤沢太郎 taro@example... 藤沢太郎 taro@example... s:name s:Email s:creator …doc.html 藤沢太郎 taro@example... s:name s:Email s:creator rdf:RDF rdf:Description rdf:about=“…doc.html” RDFパーサにかけると両者が 同じ意味を持っていることを 機械が判別できる XMLパーサにかけただけだと、 要素の値や親子関係、属性の値を 抽出することができるが、両者が同じ意味を 持っているということを機械が判別できない 同じ意味を異なる表現で表した XMLで記述されたRDF

(a) fujisawa.rdf

(b) fujisawa2.rdf

RDFパーサによるグラフ構造の解析

※シリアライザは逆にRDFグラフ構造のデータモデル からテキストを生成

(19)

RDFのデータストア/データベース

19

格納されたRDFデータは統合される

SPARQLなどのクエリ言語により検索す

ることが可能になる

複数のデータ集合の統合が基本機能とし

て備わっている

リレーショナルデータベースの場合,通常,

アプリケーション側でデータベースに格納さ

れている形式に応じて問い合わせを行ない,

結果をまとめる処理を行っている

RDFデータストアの場合,すべてのデータ

はRDF

オープンソースから製品までさまざまな

データストアが公開されている

データベースエンジン (クエリエンジン)

アプリケーション

RDFデータス トアで統合し て扱われる

(20)

クエリ

RDFのクエリ言語とは

セマンティックWebのアプリケーションで利用されるRDFのクエリエ

ンジンへのアクセス(入出力)を規定

データベースで管理されるグラフ構造のRDFデータからURIやリテラル

値などの情報やサブグラフを取得

RDFクエリエンジン

(セマンティックWebの

ミドルウェア)

アプリケーションプログラム

RDFデータベース

API

http://www.example... /swbook http://www.example... /swbook セマンティックWeb入門 dc:title SELECT ?title WHERE dc:title dc:creator 藤沢太郎

?title

クエリとデータベース 中のRDFのグラフ構造 がマッチ

クエリの結果

title

セマンティックWeb入門 変数titleの値としてリテラ ル値:セマンティックWeb 入門が返される

(21)

SPARQL

21

SPARQL Protocol and RDF Query Language

グラフベースのクエリ言語(トリプルパターンマッチング)

グラフ

(RDFデータベース内のデータ)

グラフパターン

(クエリ)

who

whom

addrm

_:1

_:2

"[email protected]"

クエリ結果

(グラフパターンの変数 who,

whom,addrmの値を提示)

(22)

SPARQLクエリ仕様(複数マッチング)

SELECT節

 値を取得したい変数の名前を記述

WHERE節

 変数を含んだグラフパターン(トリプルパターン)

@prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Johnny Lee Outlaw" .

_:a foaf:mbox <mailto:[email protected]> . _:b foaf:name "Peter Goodguy" .

_:b foaf:mbox <mailto:[email protected]> .

PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name, ?mbox

WHERE { ?x foaf:name ?name . ?x foaf:box ?mbox }

データ

クエリ

name mbox

"Johnny Lee Outlaw" <mailto:[email protected]> "Peter Goodguy" <mailto:[email protected]>

クエリ結果

変数

トリプル

パターン

(23)

SPARQLクエリ仕様(値の制約)

23

@prefix dc: <http://purl.org/dc/terms/> . @prefix : <http://example.org/book/> . @prefix ns: <http://example.org/ns#> . :book1 dc:title "SPARQL Tutorial" . :book1 ns:price 42 .

:book2 dc:title "The Semantic Web" . :book2 ns:price 23 .

データ

クエリ

クエリ結果

値の制約

(priceの値

が30.5未満

のパターンの

みマッチ)

PREFIX dc: <http://purl.org/dc/terms/> PREFIX ns: <http://example.org/ns#> SELECT ?title ?price

WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }

title

price

(24)

SPARQLクエリ仕様(オプショナルマッチング)

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . _:a rdf:type foaf:Person .

_:a foaf:name "Alice" .

_:a foaf:mbox <mailto:[email protected]> . _:b rdf:type foaf:Person .

_:b foaf:name "Bob" .

データ

クエリ

クエリ結果

PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox

WHERE { ?x foaf:name ?name .

OPTIONAL { ?x foaf:mbox ?mbox }

}

オプショナルパター

ン(このパターンが

マッチしなくても結

果は得られる)

name mbox "Alice" <mailto:[email protected]> "Bob"

(25)

DBpediaのSPARQLエンドポイント

25

DBpedia

Wikipediaから構造化データを抽出しWeb上で使えるようにした

もの

http://dbpedia.org/

DBpediaデータにクエリを発行できるSPARQLエンドポイ

ント

http://dbpedia.org/sparql

日本語版のDBpediaも公開された

http://ja.dbpedia.org/

実際にSPARQLクエリを発行して動作を確認してみたい

(26)

コンバータ/スクレイパ

コンバータ

別の形式のデータをRDFに変換するツール

例:エクセルの表データ,関係データベース

スクレイパ

構造化された情報をWebページから抽出するツール

(27)

構造化データを

Webページに埋め込む

27

構造化データ(メタデータ)をWebページに埋め込むための仕様

RDFa

http://www.w3.org/TR/rdfa-core/

Microdata

http://www.w3.org/html/wg/drafts/microdata/master/

microformats

http://microformats.org/

John knows

<a

about="mailto:[email protected]"

rel="foaf:knows"

href="mailto:[email protected]">Sue</a>.

HTMLに左記のようなRDFa

の記述が埋め込まれている

場合

John knows

Sue

.

Webブラウザで

人間が見ると

<mailto:[email protected]> foaf:knows <mailto:[email protected]> .

RDFaの仕様を解釈できる機械は以下のメ

タデータを読み取ることができる

(28)

Webページに埋め込まれた構造化データの活用

構造化データがWebページに記述されていると、ページを参

照したアプリケーション(機械)がそれを利用できる

Googleは収集したWebページの構造化データを読み取ってい

検索結果に表示する文字列(スニペット)といっしょに適切なプロパ

ティ(属性)情報を表示させている

リッチ スニペット(microdata,microformats,RDFa,データ ハイライ

ター)

http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=9

9170&topic=1088472&ctx=topic

構造化データテストツールを用いると、Webページに埋め込まれて

いる構造化データを確認できる

http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=1

73839&topic=1088473&ctx=topic

(29)

Semantic Webのアーキテクチャに基づく

アプリケーション開発

29

Semantic Web Development Tools

http://www.w3.org/2001/sw/wiki/Tools

Semantic Webのアーキテクチャを支えるパーサやデータスト

ア、また開発環境に関連したツールなどの情報がまとめられ

ている

(30)

まとめ

Linked Open Data

RDFのデータをオープンなライセンスの下に公開し、異なる

データ同士をリンクして活用する試みとして注目を集める

セマンティックWebアーキテクチャ

RDFパーサ

RDFデータストア

SPARQL検索

参照

関連したドキュメント

FSIS が実施する HACCP の検証には、基本的検証と HACCP 運用に関する検証から構 成されている。基本的検証では、危害分析などの

法制執務支援システム(データベース)のコンテンツの充実 平成 13

第1条

(5) 帳簿の記載と保存 (法第 12 条の 2 第 14 項、法第 7 条第 15 項、同第 16

ON Semiconductor及びONのロゴは、Semiconductor Components Industries, LLC

情報 システム Web サービス https://webmail.kwansei.ac.jp/ (https → s が 必要 ).. メール

SFP冷却停止の可能性との情報があるな か、この情報が最も重要な情報と考えて

最後に,本稿の構成であるが,本稿では具体的な懲戒処分が表現の自由を