|

本プロジェクトでは,
ユーザがWindows上で行なった操作履歴を保持し,それらの履歴から,ローカルディスクに保存された文書,画像,映像,音楽などのデータや,Web上
にあるデータを想起可能にするソフトウェア「俺デスク」を実装した.俺デスクは関連検索ツールとタイムラインビューアをユーザに提供する.
関連検索ツールとは,あるデータに関連するデータを検索できるツールである.俺デスクはユーザ操作の履歴情報に基づいてデータ間関連度を算出する.具体
的には参照時刻,テキスト内検索,クリップボードの利用履歴などが関連しあっているデータ同士ほど関連度が高くなる.ユーザ操作に基づいた関連度を用いる
ことで,検索システムはユーザに対して参照記憶に基づいた検索を提供できる.たとえば,ユーザは検索システムに対して「Wordを使って企画書を作成して
いたときに参照していたWebページを検索せよ」といった要求ができる.人間の記憶は連想からなるため,ユーザのデータ参照履歴の検索を効果的に支援でき
る.
関連検索ツールの画面を図2.5.1 関連検索ツール
に示す.ユーザはファイル名や文中のキーワードなどから目的のデータを検索できる.図の画面上では,検索結果が検索対象データと関連の強い順に表示され
る.キーワードとしてアクセス日時,ユーザの特定操作を入力できる.
図 2.5.1 関連検索ツール
また,Google Desktop
SDKを利用し,ファイル内に含まれている文字列も並列して,検索にかけることができる.具体的には「ファイルAに関連があって,地図という語句が含まれ
ているファイルを検索」といった要求が可能になる.
ユーザに対して関連するデータを探しやすくするために各種アプリケーション用にプラグインを作成した.たとえばInternet
Explorerにはツールバーを用意し,そこから現在見ているページに関連のあるデータを検索できる (図2.5.2 関連検索を行なうツールバー).
関連検索ツール内の属性アイコンとは,それぞれのデータにおいて過去のユーザ操作がどのような特徴をもっているかを示すアイコンである.俺デスクは過去
のユーザ操作からデータに図2.5.3 属性アイコンの属性アイコンを自動付与する.これは今後もっと増やし,機能も充実させる予定である.
図
2.5.2 関連検索を行なうツールバー
また,動的属性付与のアルゴリズムを応用し,ユーザコンテキストに応じてシステムが動的に各種の処理を行なうシステムを実装する予定である.たとえ
ば,ユーザが頻繁に閲覧し,一閲覧あたりの閲覧時間が短いWebページを「確認用ページ」と定義し,「確認用ページ」に分類されたページを常に監視し,変
更があったらユーザに知らせるといったことを想定している.
タイムラインビューアを図2.5.4時間帯を指定して必要な参照履歴情報を見つけるに示す.タイムラインビューアはユーザのデータ参照状況を視覚化した
ものである.タイムラインビューアは,横軸に時間をとり,データ参照時間をラインで表示し,その中央にユーザが実際に参照したWebページやドキュメント
のサムネイルを表示する.タイムラインビューアを使うことで「一昨日の夜中に参照していたレストランガイドをもう1回見たい」という要求が可能になる.縦
軸はデータ着目度を表しており,データ着目度が高いデータほど上に表示される.データ着目度とはユーザのデータに対する注目の度合いを示した指標である.
データ着目度は,データの参照時間や参照回数,選択文字列の反転回数などの計測結果から算出され,これらが大きいほど着目度は高くなる.これを利用して,
ユーザが過去に深く参照していたと思ったデータを探す場合は上側を探し,一瞬だけ参照したデータを探す場合は下側を探しに行くといった使い方ができる.
図
2.5.3 属性アイコン
図
2.5.4 時間帯を指定して必要な参照履歴情報を見つける
俺デスクのシステム構成を図2.5.5
俺デスクの全体構造に示す.俺デスクはOSとアプリケーションのイベントを取得し,それらをデータをメタ情報として保存する.そして,アプリケーションか
らの要求に応じて,メタ情報データベースからデータ間関連度とデータ着目度を算出する.そしてそれらの値を応用した関連検索ツールとタイムラインビューア
をユーザに提供する.
図
2.5.5 俺デスクの全体構造
俺デスクは基本的にOSのイベントをフックするが,それに加えてアプリ
ケーションのイベントもフックする.アプリケーションのイベントを監視するためには,アプリケーションごとにプラグインを作成しなければならない.これま
でMicrosoft Office,Internet Explorer,Mozilla
Firefox,OpenOffice.org,Skype用のプラグインを作成した.OSはWindows
2000/XPに対応し,開発言語はC++を用いた.データベースエンジンは提供ソフトウェアに組み込み可能なSQLiteを利用した.また,語彙のパ
ターンマッチングにはGoogle Desktop
SDKを用い,関連検索ツールのGUIはMFC,タイムラインビューアのGUIはDirectXで実装した.DirectXを利用する際,低速のマシンで
も動作するようにフレームレートを落とした.また,イベント監視対象となっていないアプリケーションも細かい指定はできないが検索対象にはできる.
俺デスクは付加的機能として,ユーザのフィードバックに基づいて要素と着目度の相関係数を求め,動的に重みを調整するフィルタ機構を持つ.データ着目度
の計算が常にユーザにとっての着目度と相関が高いとは限らないからである.たとえば,あるユーザが着目する資料に対して選択文字列反転をする癖があったと
しても,別のユーザにその癖があるとは限らない.そこで,ユーザが現在見ているデータに対して着目度を陽に入力できるようにした.システムはこれを利用し
てユーザ毎の着目度重みパラメータを自動調整するわけである.

|