ウェブのデータと検索の可能性
- 検索の手順:何をコンピュータに任せられるか
- 文書の検索と情報の検索
- 文書のウェブからデータのウェブへ
- エージェントが扱える(メタ)データ表現
- URIを用いたグローバルな識別
- データ属性と語彙の共有
- SPARQLクエリ言語
- SPARQLのプロトコルと結果フォーマット
- データはどこにあるのか
- XHTMLを活用した文書内データの精度の向上
- XSLTによる(メタ)データの抽出
- GRDDL:汎用的な抽出
- SPARQLの検索とプレゼンテーション
- 人間による試行錯誤からエージェントの推論へ
- 参照先
(※当日のデモは割愛します)
検索の手順:何をコンピュータに任せられるか
- どこに情報があるか
- データベース検索 → DB推薦? 一括検索?
- 文書検索 → 文書からデータを取り出すには
- 何をどう検索するか
- 適切な検索語句 → シソーラスや検索候補
- 適切な検索式 → フリーキーワード v.s. 多項目検索
- 結果をどう利用するか
- 検索結果を見る → より分かりやすいプレゼンテーション
- 結果を評価・判断する → ページランク、適合度、信頼度評価
- 継続検索 → 検索式の自動補正、絞込み
- 次のアクション → 別のサービスへの自動接続、結果からの推論
文書の検索と情報の検索
- 情報を知るためには
- 情報が記述されている文書(書籍、ウェブページ)を検索して内容を読む
- 情報を(あらかじめ整備されたデータベースなどで)直接調べる
- 文書の中の情報が検索できたら? 人間に代わってコンピュータが文書内から情報を取り出してくれたら?
- 2006年5月のユニバーサロン・セミナーで何が行われるか調べるために
- キーワードでユニバーサロンのページを検索し、セミナー情報を読む
- イベント情報データベースを検索する
- ユニバーサロンのページに記述された情報を「カレンダー情報」として抽出して検索する
文書のウェブからデータのウェブへ
- HTMLベースの文書のウェブ
- 半構造化文書の海
- いかに適切な(目的の情報が含まれる)文書を検索するか
- 多様なデータの集合体としてのウェブ
- 画像検索(マルチメディアデータへのポインタ)
- 株価、企業情報検索(データそのもの)
- 地図、カレンダー(現実世界のモデルの検索)
- エージェントが処理できるデータのウェブ
- URIで識別されるリソース
- 名前付きリンクによる(メタ)データと語彙の共有
- 文書の一部が独立したデータとして扱われる場合もある
エージェントが扱える(メタ)データ表現
- データの属性と値
- 属性:何を表すデータか(プロパティ)=開催日
- 値:データの内容=2006-05-11
- RDFによる汎用的なデータ表現
- 主語+述語(プロパティ)+目的語(値)
- このイベントの開催日は2006-05-11だ。
- 文書に含まれるデータの表現
- この文書のトピックはこのイベントだ。このイベントの開催日は2006-05-11だ。
URIを用いたグローバルな識別
- データの的確な処理には曖昧さのない識別が重要
- 一般的なエージェントは文脈による判断ができない
- 特定コミュニティの了解事項はグローバルには通用しない
- 対象をURIで識別
- 「このイベント」は文脈を共有しなければ通じない
- http://www.mainichi.co.jp/universalon/events/20060511
- データ属性の共通化
- 文書に記述された情報は「開催日」「日付」「date」などまちまち
- http://purl.org/dc/elements/1.1/date というURIで曖昧さなくプロパティを表す
- 人間が扱うには dc:date のような形で接頭辞を用いた短縮表記
データ属性と語彙の共有
- 個別サービスの検索
- ウェブ文書の詳細検索(日付、ドメイン、ファイルタイプetc.)
- OPAC、オンラインショップ、ウェブサービスetc.
- 対象属性、検索手続きは一般にサービス固有
- データの共通バスとしてのRDF
- URIで識別されるグローバルな語彙を用いる
- 語彙のマッピングにより異なるサービスを横断したデータ検索が可能
SPARQLクエリ言語
- ウェブデータのためのSQL
- SPARQL: RDFで記述されたデータの汎用クエリ(Query Language: 2006年4月に勧告候補)
- データのウェブから情報を取り出すためにサービスごとのAPIに依存していては限界がある
- データベースのSQLと同様に、ウェブサービス共通で使えるクエリ言語が必要
- SQLとよく似た構文
PREFIX
dc: <http://purl.org/dc/elements/1/1>SELECT
?item
?date
WHERE
{?item
dc:date?date
. }- 語彙の名前空間宣言
- 対象結果を選択するSELECT句
- 検索条件を示すWHERE句
SPARQLのプロトコルと結果フォーマット
- SPARQLプロトコル
- クエリのやり取りの方法をRESTなどで定義(Protocol: 2006年4月に勧告候補)
- クエリ結果フォーマット
- クエリの結果をXMLとして取り出すクエリのやり取りの方法をRESTなどで定義(Results XML Format: 2006年4月に勧告候補)
<sparql xmlns="..."> ... <results ordered="false" distinct="false"> <result> <binding name="
item
"><uri>http://...</uri></binding> <binding name="date
"><literal>2006-05-11</literal></binding> </result> ... </results> </sparql>- CONSTRUCT句を用いて任意のRDFグラフを返すこともできる
データはどこにあるのか
- イベント情報は
場所 文書のウェブでは データのウェブでは カレンダーDBにある サービスサイトを探して検索 エージェントがDBを検索 イベント紹介ページにある 文書を検索してから情報を調べる 文書内(から抽出した)データを検索
- データの大半はウェブ文書内にある
- データベース検索の精度は高いが、ウェブ全体では登録情報の量・範囲に限界
- 文書内のデータをエージェントが抽出できれば…
XHTMLを活用した文書内データの精度の向上
- 文書自身のメタデータ
- タイトル、見出し、link、meta、address、dfnなどメタデータを記述できる要素型
<
link
rev="made"
href
="mailto:webmaster@kanzaki.com" />
- 文書に含まれるデータ
- class、rel属性を適切に用いれば、文書内のデータ部分をマークできる
<p>ユニバーサロンセミナーを<em
class="date"
>2006-05-11</em>に開催します。</p>- 属性値の意味は基本的には文書作者ごとに異なる
- CMSなどのツールを用いれば、作者にあまり意識させずに属性付与が可能
- スキーマやプロファイルとの組み合わせでグローバルな情報へ
XSLTによる(メタ)データの抽出
- XSLTを用いてXHTMLからデータを抽出する
- XHTML固有の意味づけをRDFのグローバルなセマンティクスにマップする
- タイトル、見出し、link要素などからは直接RDFを生成可能
- ほぼどのXHTMLにも適用できる文書メタデータの抽出が可能
<xsl:template match="
h:link
[@rev='made'
]"> <foaf:maker
> <foaf:Person> <foaf:mbox
rdf:resource="{@href
}"/> </foaf:Person> </foaf:maker> </xsl:template>
- 任意の属性値にグローバルな役割を与える
- 作者定義の属性値には、作者がXSLTを提供することで役割をグローバル化できる
<xsl:template match="*[
@class='date'
]"> <dc:date
><xsl:value-of select="."/><dc:date> </xsl:template>
GRDDL:汎用的な抽出
- GRDDLとは
- Gleaning Resource Descriptions from Dialects of Languages
- 様々な言語(で記述された文書)からリソースの記述を拾い集める
- profile属性とlink要素でXSLTを結びつける
- link要素によるXSLTの直接指定
<head
profile
="http://www.w3.org/2003/g/data-view
"> <link
rel="transformation
" href="(XSLTのURI)" />- プロファイルにXSLTの指定を埋め込んで、間接的にリンクしても良い
- この場合はlink要素は不要
- 利用可能なXSLTがすでに提供されている
- hCardを含むXHTMLからRDF版vCardを抽出するXSLT(Norman Walsh)
- Creative Commonsライセンスを抽出するXSLT(W3C)
- 汎用的なRDF抽出XSLT
SPARQLの検索とプレゼンテーション
- メタデータの性質に応じた表現
- 検索結果を利用しやすくするには、適切な表現方法が重要
- メタデータ(SPARQLクエリ結果)自体は純粋なデータなので、状況に応じた柔軟な表現が可能
- SPARQLのCONSTRUCT句とXSLTの組み合わせ
- たとえばイベント情報なら…
- 日付に基づく情報の場合は、カレンダーによる表現がわかりやすい
PREFIX i: <http://www.w3.org/2002/12/cal/ical#> PREFIX dc: <http://purl.org/dc/elements/1.1/>
CONSTRUCT
{ _:ev a i:Vevent . _:ev i:dtstart _:dt . _:dt i:dateTime ?date . _:ev i:summary ?summary . } WHERE { ?ev dc:title ?summary . ?ev dc:date ?date . FILTER regex(?date, "^2006-05") }
人間による試行錯誤からエージェントの推論へ
- 検索アクションの補助
- 語彙の関連情報(シソーラス、オントロジー)、自然言語処理による容易な検索式
- より直感的で使いやすい入力インターフェイス
- 検索結果の判断
- 人間が判断しやすくするための適切なメタデータ:タイトルや要約、作者、更新日
- エージェントが自動的に評価・判断するためのメタデータと評価関数、推論規則
- コンピュータができる限り代行する
- 検索結果をコンピュータが判断して追加の検索や検索式の修正
- 検索結果を受け、次の適切なアクションを判断し、処理を自動的に継続する
参照先
- 参照したリソース
- SPARQL Query Language, by Eric Prud'hommeaux and Andy Seaborne (ed.)
<http://www.w3.org/TR/rdf-sparql-query/> - SPARQL Protocol, by Kendall Clark, Lee Feigenbaum and Elias Torres (ed.)
<http://www.w3.org/TR/rdf-sparql-protocol/> - SPARQL Results XML Format, by Dave Beckett and Jeen Broekstra (ed.)
<http://www.w3.org/TR/rdf-sparql-XMLres/> - Gleaning Resource Descriptions from Dialects of Languages (Team Submisstion)
<http://www.w3.org/TeamSubmission/grddl/> - hCardを含むXHTMLからRDF版vCardを抽出するXSLT
<http://norman.walsh.name/2005/12/12/examples/hcard2rdf.xsl> - Creative Commonsライセンスを抽出するXSLT
<http://www.w3.org/2003/12/rdf-in-xhtml-xslts/grokCC.xsl> - 汎用的なRDF抽出XSLT
<http://www.kanzaki.com/parts/xh2rdf.xsl>
- SPARQL Query Language, by Eric Prud'hommeaux and Andy Seaborne (ed.)