kby-1-j -...

30
知識ベース特論 1―Semantic Web(1)― 吉岡真治

Upload: others

Post on 22-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

知識ベース特論 第1回―Semantic Web(1)―

吉岡真治

Page 2: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

本講義のすすめかた

n トピックス

– Semantic Web and Ontology– 情報検索– テキストからの情報抽出とその応用– 大規模データのためのデータベース

n 授業資料(前日(火・金)の午後には公開)http://www-kb.ist.hokudai.ac.jp/~yoshioka/kb/

n 質問・レポートはメールで[email protected]

Page 3: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

今年のクラスについて

n University of MassachusettsのDavid Fisher先生の授業があります。

– 7月1日と3日– 関連イベント

• Indri Workshop (Indriの使い方を勉強する1日のワークショップ) David Fisher先生による

n 簡単なレポートや質問を授業の最後に行う。

Page 4: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

セマンティックWebとは

n セマンティックWebは様々なアプリケーションやコミュニティーを超えてデータの共有や再利用を支援するための枠組

– ウェブサイトhttps://www.w3.org/2001/sw/

– 2013年12月からは、W3C Data Activityという組織がこの内容に関する議論を行なっている。

Page 5: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Semantic Webの目指すもの

n インターネット上にある情報を組み合わせて利用可能な状態にする。

子供が体調が悪いがどうしよう?

医者が必要

近くで、今、開いている病院は?

A病院への行き方は?

病院への行き方を指示

A病院があいている。

•家庭の医学•簡単な医療知識の提供

病院のWWWページ•住所•診療時間

•交通機関•乗り換え案内のページ

Page 6: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

なぜ、意味的情報が必要なのか?

n テキストベースの情報検索

– キーワードを含むか含まないか• キーワードの役割を考慮しない

– ラーメン 札幌

» 札幌ラーメンの店(どこでも良い)» 札幌にあるラーメン屋» …

• 単語の曖昧性の解消– Bridge

» 橋» ブリッジ (トランプのゲーム)

n 人間が複数の情報を必要に応じて統合

– 住所→近くの駅→乗り換え案内への入力

Page 7: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Semantic Webを実現するためには

n 情報の構造化が必要

– 札幌は住所か店の名前か?– 必要なカテゴリーとしてはどんなものがあるのか?

n 表記の揺れの吸収

– 住所・場所などの異表記を統合– 体系的な語彙の整理

• オントロジー:計算機にとっての概念化の仕様

n 推論が必要

– 医者が必要→病院を探す

Page 8: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Semantic Web

n 人間が読んで理解しやすいWebページからコンピュータが理解できるWebページへ– 人間にとって理解しやすいページ

• きれいなレイアウト– 機械にとって理解しやすいページ

• 正確な内容を理解できるために、意味に関する厳密な記述が必要

Page 9: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Semantic Layer Cake (2002 version)

http://www.w3.org/2002/Talks/04-sweb/slide12-0.html

Page 10: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Semantic Webを支える技術Trust コンテクスト、プルーフ、暗号化と電子署名により、

エージェントが示した結果の信頼性を判断

Proof エージェントの処理の履歴、処理理由など、結果を導いた根拠を示す

(TBA)

Logic 一階述語論理などを用いた知識の記述と、それに基づくエージェントの処理

KIF, N3(?)

Rules 問い合わせ、フィルタリングを可能にする共通基盤としての論理の定義

RDQL, N3(?)

Ontology より精密な語彙の定義と、複数のスキーマの関係づけ・融合を可能にする推論

OWL, DAML+OIL

RDF Schema

語彙(クラス、プロパティ)を定義する手段の提供 RDF Schema

RDF MS 機械処理可能なメタデータの表現(データモデル) RDF Model & Syntax

XML/Namespace

処理が容易な記述言語(XML)と複数語彙の区別・混在を可能にするメカニズム(名前空間)

XML,XML-NS

URI/Unicode

リソースのグローバルな識別(URI)とグローバルなデータ表現(Unicode)

URI,Unicode

Page 11: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

新しいLayer Cake

n 更新版– by Dr, Tim Berners-Lee (2005)

http://www.w3.org/2005/Talks/0511-keynote-tbl/– by Dr. Steve Bratt (2007)

https://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/#(24)– Modification of Rules, SPARQL,…

Page 12: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

URI

n URI(Uniform Resource Identifier)– インターネット上でのリソースを特定するための記述– URL (Uniform Resource Locator)

• インターネット上のアクセス可能な場所を示す• 例:http://www.hokudai.ac.jp/

– URN(Uniform Resource Name)• 永続的で場所に依存しないリソース指定のために用意されているスキーム

• 例:URN:ISBN:4-8399-0454-5n IRI(Internationalized Resource Identifier)

– URIの中に Unicodeによる記述を許容する。n 参考資料

– http://www.w3.org/TR/uri-clarification

Page 13: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

Unicode

n 多言語を扱うためのコード体系– 従来の言語依存のコード体系では、複数の言語を含むページをうまく記述できない(中国語とアラビア語を同じテキストファイルに書くことができない)

– 全ての文字を2バイトで表現するUCS-2とその拡張として4バイトで表現するUCS-4が存在

• UCS-2の場合は、言語に依存する異体字などをひとまとめにしている点などについて異論があるCJK統合漢字(日中韓の異体字がひとまとめに

– UCS-2: すべての文字を2バイトで表現• 扱える文字種が限られるため、異体字 (同じ漢字で形が違う:日中韓ではよく用いられる)が一つのコードに割り当てられる

– UCS-4: UCS-2の拡張で4バイトで文字を表現

Page 14: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

エンコーディングスキーム

n UTF (Unicode (or UCS) Transformation Format)– UCSで定義される文字集合を記号列としてエンコーディングする手法

– よく用いられるエンコーディング• UTF-8:ASCIIコードとの親和性の高い8ビット(1バイト)単位の可変長エンコーディング

– ASCIIコードをそのまま扱うために、ASCIIコードは1バイトで扱えるようにしているが、多くの漢字が3バイトで表現されるため、日本語の場合には、ファイルサイズが大きくなる場合がある。

• UTF-16:16ビット(2バイト)単位の可変長エンコーディング

– UCS-2で表現される2バイト文字は全て2バイトの固定長で表現される。

Page 15: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XML (eXtensible Markup Language)とは?

n 拡張マークアップ言語

– W3Cの勧告– 文書や文書中のデータを構造を保持した形で記述

<?xml version=“1.0”?><!DOCTYPE school SYSTEM “school.dtd”><school><student id=“1900012”><name>Taro Johou</name><email>[email protected]</email>

</student><student id=“1900013”><name>Hanako Hokudai</name><mobile number=”090-xxxx-xxxx"/>

</student></school>

<!ELEMENT school(student)*><!ELEMENT student (name, (email | mobile))><!ATTLIST student id CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT mobile EMPTY><!ATTLIST mobile number CDATA #REQUIRED>

XMLの文書とDTD

Page 16: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XML in 10 pointshttps://www.w3.org/XML/1999/XML-in-10-points-19990327

1. XML is a method for putting structured data in a text file 2. XML looks a bit like HTML but isn't HTML 3. XML is text, but isn't meant to be read 4. XML is a family of technologies 5. XML is verbose, but that is not a problem 6. XML is new, but not that new 7.

8. These I don’t know yet.9.

10. XML is license-free, platform-independent and well-supported

Page 17: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XML in 10 points (no longer exist) https://www.w3.org/XML/1999/XML-in-10-points1. XML は構造化データをテキストファイルに記述する方法です

2. XMLはHTMLに似ていますがHTMLではありません3. XMLはテキストで書かれますが、必ずしも直接読むわけではありません

4. XMLには何種類もの技術が関係しています5. XMLの記述は冗長ですが、それは問題ではありません6. XMLは新しい技術ですが、考え方はそんなに新しいものではありません

7. XMLはHTMLをXHTMLへと導きました8. XMLはモジュラー(組みあわせ可能なもの)であります9. XMLはRDFやSemantic Webの基礎になるものです10. XML はライセンスフリーでプラットホーム独立であり、しっかりしたサポートがあります

Page 18: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLに至る歴史

n SGML(Standard Generalized Markup Language)– 構造化された文書を記述するための枠組み– DTD(Document Type Definition)によるタグの定義とタグを用いた構造化

– DTDはユーザ側で作成可能であるが、完全なDTDを書くのにはかなりの労力が必要

– 汎用性が高いが、記述が困難、パーザーの作成や利用するためのハードルが高い

n HTML(HyperText Markup Language)– SGMLのサブセット+ネットワークへの拡張(ハイパーリンク)– シンプルなタグセット、覚えやすく、使いやすい– 文書の構造を記述するにはタグセットが不充分

Page 19: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLの設計目標https://www.w3.org/TR/xml/n XMLはインターネットを使って簡単に仕えるべきである。n XMLは多様なアプリケーションをサポートする必要がある。

n XMLはSGMLと互換である。n XML文書を扱うプログラムは簡単にかけるべきである。n XMLに関するオプション要素は可能な限り0にするべきである。

n XML文書は人間が読むことができ、ある程度明快である。

n XMLの設計にあまり長い時間をかけない。n XMLの設計は定式的で簡潔である.n XML文書は簡単に記述できる必要がある。n XMLのマークアップにおいて簡潔さの重要度は低い。

Page 20: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XML開発の前提と方針

n 前提

– ネットワークアプリケーションへの対応– 構造化した文書の記述が容易– 必要に応じてユーザが拡張が可能

n 方針

– 文書の正当性の検証可能– 文書の構造が記述でき、ユーザによる拡張が可能⇒ SGMLのタグの中からタグセットを厳選

– HTMLのようなハイパーリンクの機構を含む

Page 21: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLの構成要素

n XML宣言– XMLの文書であるという宣言– XMLの基本タグセットと文法が利用可能

n DTD– ユーザが拡張するタグセット(省略可)

n インスタンス

– タグが付いたテキスト– XML宣言とDTDを用いて正当性がチェック– 拡張したタグセットをDTDとして与えるかどうかによって正当性のレベルを区分

• DTDあり:Valid• DTDなし:Well Formed

Page 22: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLのインスタンス例

n タグを用いた階層的なデータ定義

<?xml version=“1.0”?> :XML Declaration<!DOCTYPE school SYSTEM “school.dtd”> :reference to DTD<division> :division data<student id=“1900012”> :element of division (1st student)<name> Taro Johou </name> :element of student<email>[email protected]</email> :element of student

</student> :end of definition for 1st student<student id=“1900013”> :definition of 2nd student

<name>Hanako Hokudai</name><mobile number=”090-xxxx-xxxx"/>

</student></division> :end of definition for division

Page 23: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

DTDの例

n データ構造の定義

– Valid:データ構造に関するチェックがされているもの– Well Formed:文法が間違っていないもの

<!ELEMENT school(student)*> :schoolはstudentのエントリを複数個もつ

<!ELEMENT student (name, (email | mobile))> :studentはnameとe-mailもしくはmobileのエントリを持つ

<!ATTLIST employee id CDATA #REQUIRED> :employeeは必須の属性としてidを持ち、その属性はStringタイプである

<!ELEMENT name (#PCDATA)> :nameのタグで囲まれた中にデータが記述されるPCDATA(Parsed Character Dataに由来)

<!ELEMENT email (#PCDATA)> :nameと同じ<!ELEMENT mobile EMPTY> :urlはエントリを持たない<!ATTLIST mobile number CDATA #REQUIRED> が必須の属性を持つ

Page 24: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLの構成要素(まとめ)

n 複数のDTDを扱うときは名前空間の管理が可能

XML宣言DTD

インスタンス

文法:開始タグは終了タグで終わる必要がある。… … … …

基本タグ(予約語):DOCTYPE, ……

<?xml version=“1.0”?><!DOCTYPE school SYSTEM “school.dtd”><division><student id=“7900012”><name>情報 太郎</name><email>[email protected]</email>

</student><student id=“7900013”><name>北大 花子</name><mobile number=”090-xxxx-xxxx"/>

</student></division>

<!ELEMENT school(student)*><!ELEMENT student (name, (email | mobile))><!ATTLIST employee id CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT mobile EMPTY><!ATTLIST mobile number CDATA #REQUIRED>

Page 25: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLの利用方法

n 文書の構造を利用した検索– e-mailのアドレスが~の人といった検索を実現– 単純な全文検索に比べ、検索範囲の絞込みが可能であるため、高速でごみの少ない検索が実現

n 柔軟なデータベースとしての利用– 関係データベースでは、データ項目を一度決めてしまうと変更が困難

– Well Formedなインスタンスを扱う場合には、データ項目の追加や削除が容易

– ただし、データの中身や記述されているデータの種類などの情報に関するチェックが弱い⇒ XML Scheme, XML Dataなどの拡張が検討されている

Page 26: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XML Namespacehttps://www.w3.org/TR/xml-names/n Namespaceとは同一の要素名を持つXML文書を区別して取り扱うための方法– 同じ名前のタグは同じ意味

• title:本の題 <title>XML入門</title>• title:役職 <title>部長</title>

– 区別するために、<booktitle>などのタグを作っても良いが、煩雑になる。

– あるタグセットにおけるタグであることが分かればよい。• <book> <title> </title> <author> </author></book>• <employee><name></name><title></title></employee>

– Namespaceの利用n 例:

– http://www-kb.ist.hokudai.ac.jp/yoshioka:title– xmlns:yoshioka= http://www-kb.ist.hokudai.ac.jp/yoshioka

yoshioka:title

Page 27: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLとWebアプリケーションの融合

n XSLによるXMLのHTMLへの変換– データ構造に応じたHTMLの変換を支援– データの管理とHTMLによるWebページの管理を整理

n Javaなどのネットワークでよく用いられる言語に対応するパーザーなどが配布されており、利用への敷居が低い

n データアクセスに対する標準化

– DOM(Document Object Model):データモデル– Simple API for XML(SAX):イベント駆動型API

Page 28: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XPathhttp://www.w3.org/TR/xpathn XMLのノードの階層構造中の特定の部分を指定するための言語である。

n 詳細は、仕様を参照

– http://www.w3.org/TR/2007/REC-xpath20-20070123/

n ノードの階層構造を指定し、対応するノードを選択

n 使用例

– /html/head/title HTMLファイルのhead要素のtitle部分のノードを指定

– //a アンカータグのノードを指定– //a[@href=‘http://www.hokudai.ac.jp’]

http://www.hokudai.ac.jpへのアンカータグのノードを指定

Page 29: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

XMLのまとめ

n XMLは非常に実利的な規格であり、有用な枠組みであると考えられる。

n ただし、実際にデータを共有する枠組みとして利用するためには、共通の基盤となるDTDが不可欠であるが、この開発はそんなに容易ではない。

Page 30: kby-1-j - 互換モードyoshioka/kb/kby-1-j.pdfnXML文書を扱うプログラムは簡単にかけるべきである。nXMLに関するオプション要素は可能な限り0にするべき

まとめ

n Semantic Web– 多様なコンピュータで共有可能なテキストを記述する枠組

– Semantic Webを支える技術• 様々な階層の技術の積み重ねによる実現

n 具体的な技術の紹介

– URL/Unicode– XML/Namespace– XPath