知識ベース特論 第
1回
―Semantic Web(1)―
本講義のすすめかた
n
トピックス
– Semantic Web and Ontology – 情報検索 – テキストからの情報抽出とその応用 – 大規模データのためのデータベース n
授業資料(前日
(火・金)の午後には公開)
http://www-kb.ist.hokudai.ac.jp/~yoshioka/kb/
n質問・レポートはメールで
[email protected]
今年のクラスについて
n
University of MassachusettsのDavid Fisher先生
の授業があります。
– 7月1日と3日 – 関連イベント
• Indri Workshop (Indriの使い方を勉強する1日のワ ークショップ) David Fisher先生による
セマンティック
Webとは
nセマンティック
Webは様々なアプリケーションやコ
ミュニティーを超えてデータの共有や再利用を支
援するための枠組
– ウェブサイト https://www.w3.org/2001/sw/ – 2013年12月からは、W3C Data Activityという組織がこ の内容に関する議論を行なっている。Semantic Webの目指すもの
nインターネット上にある情報を組み合わせて利用
可能な状態にする。
子供が体調が悪いが どうしよう? 医者が必要 近くで、今、開いて いる病院は? A病院への行き 方は? 病院への 行き方を 指示 A病院が あいている。 •家庭の医学 •簡単な医療 知識の提供 病院のWWWページ •住所 •診療時間 •交通機関 •乗り換え案内 のページなぜ、意味的情報が必要なのか?
nテキストベースの情報検索
– キーワードを含むか含まないか • キーワードの役割を考慮しない – ラーメン 札幌 » 札幌ラーメンの店(どこでも良い) » 札幌にあるラーメン屋 » … • 単語の曖昧性の解消 – Bridge » 橋 » ブリッジ (トランプのゲーム) n人間が複数の情報を必要に応じて統合
– 住所→近くの駅→乗り換え案内への入力Semantic Webを実現するためには
n情報の構造化が必要
– 札幌は住所か店の名前か? – 必要なカテゴリーとしてはどんなものがあるのか? n表記の揺れの吸収
– 住所・場所などの異表記を統合 – 体系的な語彙の整理 • オントロジー:計算機にとっての概念化の仕様 n推論が必要
– 医者が必要→病院を探すSemantic Web
n人間が読んで理解しやすい
Webページからコン
ピュータが理解できる
Webページへ
– 人間にとって理解しやすいページ • きれいなレイアウト – 機械にとって理解しやすいページ • 正確な内容を理解できるために、意味に関する厳 密な記述が必要Semantic Layer Cake (2002 version)
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新しい
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,…URI
n
URI(Uniform Resource Identifier)
– インターネット上でのリソースを特定するための記述 – URL (Uniform Resource Locator)
• インターネット上のアクセス可能な場所を示す • 例:http://www.hokudai.ac.jp/
– URN(Uniform Resource Name)
• 永続的で場所に依存しないリソース指定のために 用意されているスキーム
• 例:URN:ISBN:4-8399-0454-5
n
IRI(Internationalized Resource Identifier)
– URIの中に Unicodeによる記述を許容する。
n
参考資料
Unicode
n多言語を扱うためのコード体系
– 従来の言語依存のコード体系では、複数の言語を含 むページをうまく記述できない(中国語とアラビア語を 同じテキストファイルに書くことができない) – 全ての文字を2バイトで表現するUCS-2と その拡張として4バイトで表現するUCS-4が存在 • UCS-2の場合は、言語に依存する異体字などをひ とまとめにしている点などについて異論がある CJK統合漢字(日中韓の異体字がひとまとめに – UCS-2: すべての文字を2バイトで表現 • 扱える文字種が限られるため、異体字 (同じ漢字で 形が違う:日中韓ではよく用いられる)が一つのコー ドに割り当てられる – UCS-4: UCS-2の拡張で4バイトで文字を表現エンコーディングスキーム
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バイトの固定長 で表現される。
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 in 10 points
https://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
XML in 10 points (no longer exist)
https://www.w3.org/XML/1999/XML-in-10-points
1. 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 はライセンスフリーでプラットホーム独立であり、 しっかりしたサポートがありますXMLに至る歴史
n SGML(Standard Generalized Markup Language) – 構造化された文書を記述するための枠組み
– DTD(Document Type Definition)によるタグの定義とタグを用い た構造化
– DTDはユーザ側で作成可能であるが、完全なDTDを書くのには かなりの労力が必要
– 汎用性が高いが、記述が困難、パーザーの作成や利用するため のハードルが高い
n HTML(HyperText Markup Language)
– SGMLのサブセット+ネットワークへの拡張(ハイパーリンク) – シンプルなタグセット、覚えやすく、使いやすい
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のマークアップにおいて簡潔さの重要度は低い。XML開発の前提と方針
n前提
– ネットワークアプリケーションへの対応 – 構造化した文書の記述が容易 – 必要に応じてユーザが拡張が可能 n方針
– 文書の正当性の検証可能 – 文書の構造が記述でき、ユーザによる拡張が可能 ⇒ SGMLのタグの中からタグセットを厳選 – HTMLのようなハイパーリンクの機構を含むXMLの構成要素
n XML宣言 – XMLの文書であるという宣言 – XMLの基本タグセットと文法が利用可能 n DTD – ユーザが拡張するタグセット(省略可) n インスタンス – タグが付いたテキスト – XML宣言とDTDを用いて正当性がチェック – 拡張したタグセットをDTDとして与えるかどうかによって正当性の レベルを区分 • DTDあり:Valid • DTDなし:Well FormedXMLのインスタンス例
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>
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> が必須の属性を持つ
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>
XMLの利用方法
n文書の構造を利用した検索
– e-mailのアドレスが~の人といった検索を実現 – 単純な全文検索に比べ、検索範囲の絞込みが可能で あるため、高速でごみの少ない検索が実現 n柔軟なデータベースとしての利用
– 関係データベースでは、データ項目を一度決めてしま うと変更が困難 – Well Formedなインスタンスを扱う場合には、データ項 目の追加や削除が容易 – ただし、データの中身や記述されているデータの種類 などの情報に関するチェックが弱い ⇒ XML Scheme, XML Dataなどの拡張が検討され ているXML Namespace
https://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
XMLとWebアプリケーションの融合
nXSLによるXMLのHTMLへの変換
– データ構造に応じたHTMLの変換を支援 – データの管理とHTMLによるWebページの管理を整 理 nJavaなどのネットワークでよく用いられる言語に
対応するパーザーなどが配布されており、利用
への敷居が低い
nデータアクセスに対する標準化
– DOM(Document Object Model):データモデル – Simple API for XML(SAX):イベント駆動型API