第 2 章 コンテンツ提示へのセマンティック Web 技術の応用
3.3 アプローチ
Web ページは,動画や画像,テキストなど多くのコンテンツで構成される.Web ページ を含む,Web 上の全てのコンテンツは,URI により一意性をもったリソースとして表現さ れ互いにリンクされる.図-3.2.1 に示した「りかまっぷ」で蓄積されているログからも分か るように,コンテンツへのアクセスは,他の何かのコンテンツへのアクセスの後に発生する.
つまり,あるコンテンツへのアクセスに,他のコンテンツが寄与していると考えられる.そ のため,あるコンテンツへのアクセス数だけでは,なぜアクセスが増えたのか,もしくは減 ったのかを判断する状況においては不十分である.なぜなら,他のコンテンツが別のコンテ ンツへのアクセスに寄与しているためである.本研究では,コンテンツの繋がりにもとづく 利用実績把握をコンテキストベースのログ分析と定義する.コンテキストベースでのログ 分析を実現するためには,図-3.2.1 に示すような CSV 形式でのログ蓄積では前後関係の推 測が必要となる.そこで本研究では,Web ページを含むコンテンツが URI で記述されてい ることと,URI で表現されたインスタンスを柔軟に繋ぐことができる RDF の特徴を組み合 わせた,コンテキストベースの利用実績把握手法を提案する.RDF で定義されるデータは インスタンスである「主語」と「目的語」を,関係性を定義する「述語」で繋いだ形で構成 され,トリプルデータと呼ばれる.Web ページや動画コンテンツをインスタンスとして定 義し,その関係から新しいインスタンスを生成し利用実績等を紐づければ,コンテンツの関 係ごとに利用実績を把握することができ,コンテキストベースのログ分析が可能となる.図
32
-3.3.1 にイメージを示す.例えば,ある Web ページ X に,ある動画 B が表示され,その関 連動画 C と D が表示されていた場合,Web ページ X と動画 B の組み合わせを示す新しい 関係インスタンス XB を生成し,この関係インスタンス XB に,再生回数等の情報を付与す る.また,Web ページ Y に動画 B が表示された場合は,関係インスタンス YB を生成し,
関係インスタンス YB を生成した上で再生回数を付与する.RDF では,目的語となったイ ンスタンスは,主語として定義し新しいトリプルデータを生成することができるため,この ような数珠繋ぎが可能となる.このように,コンテンツ同士の関係毎に関係インスタンスを 定義し,再生回数や表示回数等の利用実績を付与することで,利用実績に寄与したコンテン ツを分析することが可能となる.図-3.3.1 の例では,動画 B は,Web ページ X とのつなが りにおいては 90 回再生され,Web ページ Y とのつながりにおいては 200 回再生されたこ とが分析できる.図-3.3.1 の下部の例で示す通り,動画 C へのアクセスがどの動画との関 係が影響したことも分析可能である.
図-3.3.1 コンテキストベース分析を可能とするアプローチ
関連動画 動画B
動画C 動画D
WebページX
動画B WebページY
ページWeb
X 動画B
関係インスタンスXB
ページWeb
Y 動画B
関係インスタンスYB
90回 200回
再生回数 再生回数
動画B 動画C
関係インスタンスBC
30回
アクセス回数
表示 表示
関連
例)WebページXに動画Bと、
その関連動画C,Dが表示された場合 例)WebページYに動画Bが表示された場合
ログ分析用 拡張部分
ログ分析用 拡張部分 コンテンツ表示用
基本部分
コンテンツ表示用 基本部分
33
本研究で提案するアプローチを実現するためには,コンテンツの関係を示すインスタン ス生成処理と,利用実績を付与する処理が必要となるため,以下にてこれらのデータ処理に ついて詳述する.
3.3.1. コンテンツ関係を示すインスタンスの生成
3.1 章にて示したように,Web ページに表示されるコンテンツは,一つの Web サイトか らではなく,複数の Web サイトからデータを取得し表示されることは一般的になってきて いる.つまり,Web ブラウザで表示した Web ページ全体はある Web サーバーから取得し ているが,Web ページに表示されている動画等のコンテンツは,Web サーバーが違う Web サーバーから取得していることが想定される.他の Web サイトからコンテンツを取得し表 示できる理由の一つに,Web 上のコンテンツが URI で表記されたインスタンスとして存在 できることがあげられる.図-3.3.1 のイメージで示した Web ページ X や Y,動画 B や C,
D は全て URI 表記のインスタンスである.つまり,異なる Web サイトから取得される,
URI 表記されたインスタンス同士の関係を一意に特定できるインスタンスを生成すること が必要となる.
URI 表記された 2 つのインスタンスをもとに,一意となるインスタンスを生成する方法 として,本研究では SHA1 や MD5 等のハッシュ関数の活用を提案する.ハッシュ関数は,
PHP や node.js などのサーバーサイドプログラミング言語や,Javascript などのクライアン トサイドプログラミング言語,本研究が着目する RDF ストア用のクエリ言語である SPARQL でも標準的に利用可能であるため,本研究が提案するデータ処理は,サーバーサ イドやクライアントサイドなど幅広く適用可能である.図-3.3.2 に,2 つのインスタンスか ら , ハ ッ シ ュ 値 に よ り イ ン ス タ ン ス を 生 成 す る イ メ ー ジ を 示 す . 図 中 の
「6b3ec74fce58b93f5af35895e370c7154a6e55e1」は,「http://test1.or.jp/article1.html」と
「 http://test2.or.jp/videoX.mp4 」 を 結 合 し た 「 http://test1.or.jp/article1.html http://test2.or.jp/videoX.mp4」から SHA1 により生成したハッシュ値である.ハッシュ値 は文字列に過ぎないため,このハッシュ値をRDFデータとして利用可能にするため,つま りインスタンス化するため,http スキーマで記述されたネームスペース(例えば,http://log-test/)にハッシュ値を追加する.
34
図-3.3.2 ハッシュ値によるインスタンス生成イメージ
3.3.2. 利用実績の追加処理
本項では,ハッシュ化されたインスタンスに利用実績情報等を付与するデータ処理につ いて示す.図-3.3.3 は,利用実績等を追加したいインスタンスを特定し,「http://log-test/play_count」という述語を付与し,その目的語である数字を 1 足しているクエリ例を示 している.図-3.3.3 のクエリによるデータ処理イメージを,図-3.3.4 に示す.図-3.3.4 にあ るように,既に付与されている再生回数を変数として?original に格納し,1 を追加し て?renew という変数に格納した上で,新しいトリプルデータを生成している.そのため,
既に付与されている再生回数を事前に把握する必要なく更新することが可能である.なお,
図-3.3.3 や図-3.3.4 で例示した再生回数という述語(http://log-test/play_count)は,利用 回数や視聴回数,表示回数など,柔軟に定義することが可能である.
図-3.3.3 利用実績更新のための SPARQL クエリ WebページX
例)http://test1.or.jp/article1.html 動画B
例)http://test2.or.jp/videoX.mp4
関係インスタンスXB
例)http://log-test/6b3ec74fce58b93f5af35895e370c7154a6e55e1
WebページXに、動画Bを表示する際・・・
ハッシュ値の生成
(SHA1/SHA256/SHA384/SHA512/MD5など)
Delete
{<http://log-test/6b3ec74fce58b93f5af35895e370c7154a6e55e1> <http://log-test/play_count> ?original.
}insert {
<http://log-test/6b3ec74fce58b93f5af35895e370c7154a6e55e1> <http://log-test/play_count> ?renew.
} Where
{<http://log-test/6b3ec74fce58b93f5af35895e370c7154a6e55e1> <http://log-test/play_count> ?original.
BIND(xsd:integer(?original)+1 as ?renew) }
35
図-3.3.4 利用実績更新のための SPARQL クエリによるデータ処理イメージ