セマンティック・ウェブとコミュニティの連携
- コミュニティ連携の課題
- セマンティック・ウェブの技術を用いて
- セマンティック・ウェブのレイヤーケーキ
- セマンティック・ウェブの情報表現
- 結合・集積できるRDFのグラフ
- リソースをURI参照で識別
- リテラルとデータ型
- ストライピング:RDFのXML構文
- スキーマとオントロジー
- クラスによる概念・カテゴリの定義
- クラスによる概念・カテゴリの共有
- カテゴリ間の関係を利用した横断検索
- プロパティによる関係の記述
- 語彙のマッピングと共有
- 語彙間の関係を利用した横断検索
- オントロジーの共有
- インスタンスデータの記述と同一性
- データの公開と共有
- GRDDLで変換XSLTの位置を公開する
- メタデータをRSSで提供する
- RSSの生成と公開
- メタデータを利用したコミュニティの連携
コミュニティ連携の課題
- コミュニティごとにデータ記述の語彙が異なる
- データ識別のID体系が異なるので、同じデータを同定できない
- 同じ属性を「著者」「作者」「責任表示」などさまざまな"単語"で表現
- 汎用語彙は帯に短し襷に長し
- データ共有には共通の語彙が必要なことはわかるが...
- 様々なコミュニティの持つ語彙を取り込むと、語彙が複雑になりすぎる
- 単純化した語彙では、コミュニティが必要とする要件を満たさない
- データ公開と交換の方法が煩雑
- 特定の相手向けではなく、一般にデータを公開する標準的方法がない
- 異なった形式で記述されたデータを、自分のデータベースに取り込むためには、それぞれの形式ごとに変換フィルタが必要
- 未知のデータの場合は試行錯誤するしかない
セマンティック・ウェブの技術を用いて
- グローバルな識別子により、データ統合を容易にする
- URIでデータをグローバルに識別し、分散記述されたものも確実に統合できる
- プロパティにもURIを用いて、語彙の共有を実現する
- 汎用語彙とローカル語彙のマッピングを定義する
- データ交換のハブとなる共通語彙はシンプルなもの
- 各コミュニティは必要な語彙を定義
- 汎用語彙とコミュニティ語彙の関係をスキーマで記述し、連動させる
- 共通のフレームワークでデータを公開、交換する
- RDFを用いることで、予備知識なしにデータの交換が可能
- 各コミュニティのデータは、既存データベースのままでも可
- 公開に一般的なXHTMLを用いることも可能
- 既存データからRDFに変換するマッピングのみを定義
セマンティック・ウェブのレイヤーケーキ
- URI, XML, Unicodeといった蓄積を基盤に
- マシンが読める形でデータや知識を共有
- RDFによるマシンに理解できるデータ形式
- RDFS 、オントロジーによる語彙と知識の記述
- 推論規則と論理フレームワーク
- 述語論理、記述論理を用いた推論、高度な検索
- 結果をエージェントが判断して更に処理を継続
- 署名と証明と信頼
- なぜこの判断をしたかの論理的な証明
- 電子署名と暗号化によるデータの保証
セマンティック・ウェブの情報表現
- RDFによるデータのモデル
- 主語(S)-プロパティ(述語:P)-値(目的語:O)のトリプルを基本にしたモデル
- S P O.のトリプルは論理式 P(S,O) を表す
- グラフによるトリプルの表現
- ノード(円)とリンク(矢印)による有向ラベル付きグラフとして表現
- RDFではトリプルの集まりを「グラフ」と呼ぶ(図形グラフ表現とは別)
- グラフのつながりによる「意味ネットワーク」の表現
結合・集積できるRDFのグラフ
- 共通のノードを持つグラフは連結できる
- 同じノードから複数のアークを延ばすことができる
- あるトリプルの目的語は別のトリプルの主語にもなりうる
- グラフによってDBテーブルなど様々なデータモデルを表現できる
- 独立して記述されたグラフも結合できる
- グラフは誰がどこで記述してもよい(Anyone can say anything about anything )
- データの分散化とネットワークによる集約
- 部分的なデータの集合から未知の大きな情報を得ることが可能
リソースをURI参照で識別
- トリプルの各要素をURI参照で識別する
- 同音異義語などの曖昧さを避け、グローバルにリソースを識別する
- 分散してリソースを記述することが可能(グラフをグローバルに集約・併合できる)
- 人間にとっては長くて煩雑だが、マシンにとっては明確
- URI参照と名前付け
- URI参照によりリソースを間接的に名前付けする
- 名前をもたないノードは空白ノード
- 直接データを記述する場合は「リテラル」
リテラルとデータ型
- URI参照で名前付けされないデータそのもの
- リテラル=文字列として記述された内容自身がデータ
- リテラルも「リソース」の一種
- しかし、それ以上グラフを連結できない(トリプルの主語にならない)
- リテラルの言語情報
- プレーンリテラルは言語情報をもつことができる
- "Simphonie"@de, "交響曲"@ja など
- XML構文ではxml:lang属性で言語を示す
- プレーンリテラルは言語情報をもつことができる
- リテラルのデータ型
- "109"に「整数」「文字」などの型情報を与えることができる(型付リテラル)
- 基本的にはXMLスキーマデータ型を用いる
- "109"^^xsd:integer, "109"^^xsd:string など
- 計算機でのデータ処理やデータベース連動のために有効
ストライピング:RDFのXML構文
- XML構文はノードとアークのサンドイッチ
- ノードをrdf:Description要素で記述
- rdf:about属性でURI参照を与えて名前付けする
- アークをノード要素の子要素として記述(プロパティ要素)
- プロパティの修飾名を要素名とする
- リテラルの場合はプロパティ要素の内容(PCDATA)として記述
(例)
<rdf:Description rdf:about="urn:isbn:4-627-82931-0"> <dc:publisher> <rdf:Description rdf:about="http://example.org/publisher/Morkita"> </rdf:Description> </dc:publisher> </rdf:Description>
- ノードをrdf:Description要素で記述
スキーマとオントロジー
- クラス表現による概念の共有
- 分類の体系をサブクラスのツリーとして定義
- オントロジーでは、クラスメンバー集合の論理組み合わせなどで詳細定義が可能
- 異なる分類体系のクラスを互いのサブクラスとして関連付けられる
- プロパティ表現による関係性の共有
- リソースの関係を表す
- 定義域、値域によって結びつけるリソースの型情報を示す
- オントロジーでは推移型、対称型、関数型などの性質を加えることができる
- 独自語彙を汎用語彙のサブプロパティとすることで交換可能にする
- オントロジーの管理と共有
- ベースとなるオントロジーをインポートして、その上に独自オントロジーを構築
- owl:equivalentClassなど、異なる語彙を結びつけるためのメカニズム
- バージョン管理のための語彙で、改訂、発展を可能に
クラスによる概念・カテゴリの定義
- 分類にURIを与える
- 「本」「Book」という単語の代わりにhttp://example.org/terms/Book
- RDFのクラスとして表現
- リソースの「型」をrdfs:Classと表現することでRDFのクラスを表現
- rdf:typeは型を表す特別なプロパティ
- リソースのグループを「型」として表現できる
- 任意のリソースの「型」をrdf:typeでクラスに結びつける
クラスによる概念・カテゴリの共有
- サブクラスによる概念の体系化
- コミュニティ内の概念をサブクラスとして体系化
- 異なる分類体系の結びつき
- 異なるコミュニティの概念ともサブクラスによって結び付けられる
- 全てを対応付ける必要はなく、つながるためのポイントがあれば機能する
カテゴリ間の関係を利用した横断検索
- ツリーをさかのぼった検索対象の自動拡張
- あるカテゴリを対象に検索して見つからない場合、上位クラスを対象に再検索
- 同じ上位クラスの兄弟クラスも自動的に検索対象となる
- 異なる分類体系のデータも同時に検索
- サブクラス関係を使って、分類を読み替える
プロパティによる関係の記述
- データ属性を単語ではなくURIで定義する
- 「事後知識」による情報の追加
- RDFでは事前に語彙の意味を知らなくてもグラフを処理できる
- グラフにスキーマ定義を「あとで」追加すると、新しい関係が発見できる
語彙のマッピングと共有
- サブプロパティを使った語彙のマッピング
- 独自の語彙は、汎用語彙のサブプロパティとして定義しておく
- データ記述は独自語彙を用い、汎用語彙とのマッピングスキーマを公開
- 1対1のマップではなく、汎用語彙がハブとして機能する
語彙間の関係を利用した横断検索
- スキーマを用い、異なる語彙による関係もグラフに追加
(例)
{ex:author rdfs:subPropertyOf dc:creator . <urn:isbn:4-627-82931-0> ex:author "神崎正英" .} => {<urn:isbn:4-627-82931-0> dc:creator "神崎正英" .}
- 検索の属性を自動的に拡張
- ex:author欄で"神崎正英"を検索して見つからなければ、自動的にdc:creatorに範囲を拡張して検索
オントロジーの共有
- owl:importsによるオントロジーの取り込み
- 汎用オントロジーをベースに、それを拡張する形で語彙を構築できる
- サブクラス、サブプロパティの間接的な関係だけでなく、グラフを直接取り込む
- 推移的性質を持つ(インポート先にowl:importsがあれば、さらに取り込む)
- バージョン管理
- owl:priorVersion、owl:backwardCompatibleWithなどで旧版との関連を示す
- owl:DepricatedClassなどで、新しい語彙の利用を促す
- 語彙の統合と連動
- 複数のコミュニティで語彙を統合することが合意できたら…
- 推論エンジンを使ったオントロジー間の不整合性の検出
- owl:equivalentClass、owl:equivalentPropertyなどで、旧語彙によるデータをそのまま生かす
インスタンスデータの記述と同一性
- RDF/XMLを用いてメタデータを記述してみる
- プロパティは汎用的なダブリンコア;クラス、分類を独自の体系で
- クラスを型付ノード要素で表現
(例)
<ex:Book rdf:about="urn:isbn:4-627-82931-0"> <dc:title>RDF/OWL入門</dc:title> <dc:creator>神崎正英</dc:creator> <dc:subject rdf:resource="http://example.org/コンピュータ"/> <owl:sameAs rdf:resource="urn:nbn:jp:20730084"/> </ex:Book>
- 異なるコミュニティで記述されたリソースの同一性
- 同じ書籍について組織によって異なるIDで記述している
- owl:sameAsにより両者が同一のリソースであることを示す
データの公開と共有
- 規則性があれば、独自のXHTMLテーブルでもよい
- データベースの属性/RDFのプロパティを列に対応付ける
- 恣意的なデザイン上の調整をしない
ISBN タイトル 著者 主題 4-627-82931-0 RDF/OWL入門 神崎正英 コンピュータ - XHTMLテーブルからメタデータを取り出すXSLT
- XHTMLであることが必要
- 表のセマンティクスを推測するのは困難なので、作者が変換手段を提供
(例)
<xsl:template match="tr"> <ex:Book rdf:about="urn:isbn:{td[1]}"> <dc:title><xsl:value-of select="td[2]"/></dc:title> <dc:creator><xsl:value-of select="td[3]"/></dc:creator> <dc:subject rdf:resource="http://example.org/{td[4]}"/> </ex:Book> </xsl:template>
GRDDLで変換XSLTの位置を公開する
- メタデータ抽出のXSLTを指定する共通の方法
- Gleaning Resource Descriptions from Dialects of Languages(http://www.w3.org/TR/grddl/)
- prfile属性とlink要素でGRDDLを利用
- 変換に利用するXSLTの存在場所を指定する
(例)
<html xmlns="http://www.w3.org/1999/xhtml"> <head profile="
http://www.w3.org/2003/g/data-view
"> <title>ウェブ・アーカイブ</title> <link rel="transform
" href="http://www.keio.ac.jp/(XSLTのURL)" /> ... </head> <body> <table> <tr><td>ISBN</td><td>タイトル</td><td>著者</td>... ... </body> </html>
メタデータをRSSで提供する
- メタデータ交換に利用できる汎用コンテナ
- OSレベルでの普及が期待できるメタデータ配信の汎用コンテナ
- RSSリーダー:一般的な新着情報の公開; 変換ツール:メタデータの取り出し
- 名前空間を利用して、さまざまな語彙を組み合わせる
rss:
の語彙をRSSリーダー用に:linkで情報ページへrss:
語彙はDCのサブプロパティなので、変換できる
(例)
<rss:item rdf:about="urn:isbn:4-627-82931-0"> <rss:title>RDF/OWL入門</rss:title> <rss:link>http://sw.keio.ac.jp/book/01234.html</rss:link> <dc:creator>神崎正英</dc:creator> <dc:date>2005-09-22</dc:date> <dc:subject rdf:resource="http://example.org/コンピュータ"/> <rdf:type rdf:resource="http://example.org/terms/Book"/> </rss:item>
RSSの生成と公開
- XSLTプロセッサでRSSを自動生成
- XSLTをサーバー側で定期的に動かすことで、RSSを自動更新
- 収集側がいちいちデータ抽出するより効率的
- データベースから直接RSSを生成
- データベースからXHTMLを生成しているなら、最初からRSS/RDFも自動生成
- RSS自動発見の仕組み
- XHTMLページのリンク要素でRSSページの存在を示すことができる
<link rel="alternate" type="application/xml" href="(RSSのURI)" />
メタデータを利用したコミュニティの連携
- 共通語彙をハブにデータ収集と変換のルールを規定
- 一組のデータ+メタデータで、多くの組織と標準的にデータ共有