以上のような問題点を解決するため、統一したインターフェイスをユーザに提供し各電 子図書館の違いを吸収するシステムが必要である。また、検索コストを軽減するため、ユ ーザの検索要求にあわせて検索先の絞り込みを行う機能も必要である。得られた検索結果 は電子図書館ごとに異なっているため、同じ形式に統一することによって、検索結果の比 較を容易にする必要がある。しかし、このような機能を実現するために既存の電子図書館 に付加的な機能を追加することは現実的ではない。よって既存の電子図書館に手を加える ことなく上記の機能を提供することを目指す。
このようなサービスを提供するシステムとして筆者らはWWWベース横断検索システム [1][2][3]の開発を行ってきた。しかし、このシステムは一台のサーバでサービスを提供す るという一極集中型のアーキテクチャであったため、負荷が一台のマシンに集中しレスポ ンスが低下する可能性があった。これを解決するため、本稿で提案するシステムではアー キテクチャとしてマルチエージェント構成を採用し、共通するエージェント基盤を持つ複 数のマシン上にエージェントを分散することで、一台ごとのマシンの負荷を軽減しレスポ ンスの低下を防ぐことができるようにした。また、マルチエージェント構成で電子図書館 の絞り込みを行う場合、協調型エージェントモデルでは電子図書館を担当するエージェン ト間で調整を行う必要があり、そのための戦略を各エージェントで記述する必要がある。 本システムでは、各エージェントの知識を容易に記述できるように、入札による競合状況 を調整するエージェントが存在する競合型エージェントモデルを採用した。これにより、 電子図書館を新規に追加したり修正する場合、担当エージェントだけを追加、修正すれば よく、メンテナンスの際に他のエージェントに影響を及ぼさないので、検索サービスを休 止させる必要がない。競合型エージェントによる入札処理を用いた横断検索システムは、 (1)知識の分散による知識記述のメンテナンス性の向上(2)ユーザに適合した検索先 の選択(3)スケーラビリティの向上を特徴としている。
図 1 横断検索システム構成
横断検索システムは図 1に示す構成となっている。システムはサーバエージェント、図 書館エージェント、および検索エージェントの3種類からなる複数のエージェントにより 構成されている。ユーザインターフェイスはWWW(World Wide Web)ブラウザで提供 されており、ユーザは専用のツールをインストールすることなく通常のWWWブラウザの みで横断検索システムのサービスを利用することができる。
図 2にユーザインタフェースを示す。ユーザはまず左側の項目に検索条件を入力し、検 索を行う。サーバ側では、ユーザが入力した条件をもとに検索先の絞り込みを行い、候補 となる検索先をブラウザの右側に表示する。ユーザはこの検索先から必要な検索先を選択 して検索を行う。
サーバエージェントは横断検索システムに一つだけ存在し、ユーザの検索要求を一括し て受け付ける。また、ユーザが行った操作履歴の管理や検索先を絞り込むために行う入札 の管理を行う。
図書館エージェントは検索対象として利用できる電子図書館の数だけ存在しており、担 当の電子図書館の蔵書傾向、平均検索時間、サービス提供時間や図書館から得られる検索 結果を整形する知識を持っている。
検索エージェントは図書館エージェントごとに存在しており、ユーザが入力したキーワ ードを用いて実際に担当の電子図書館と通信を行い検索結果を収集する。各電子図書館で エージェント基盤が提供されている場合には、マイグレーションにより検索が行えるよう に、検索機能のみを持つサイズの小さいエージェントとなっている。
各エージェントの詳細について以下で述べる。
図 2 ユーザインターフェイス
(1) ユーザの要求に応じた画面遷移
(2) ユーザの操作履歴の管理
(3) 操作履歴に基づいたユーザの特徴の抽出
(4) 入札の管理と検索先の決定
(1)の処理ではサーバエージェントが各図書館エージェントに検索要求を出し、得られ た検索結果をもとに状況にあった検索画面を構成する。例えば、各電子図書館から得られ た検索結果の件数を表示したときにユーザが絞り込み検索を行った場合、追加したキーワ ードによって得られた検索結果の件数を表示する。また、特定の電子図書館の検索結果を 見ていたときに絞り込み検索を行った場合には、追加したキーワードによりその電子図書 館から得られた検索結果を表示する。このように検索を行った際のユーザの状況によって 表示する画面の決定を行う。(2)の処理ではユーザが入力した検索条件や選択したサー バ名などを履歴管理データベースに蓄積し、ユーザの検索履歴の管理を行う。(3)の処 理では蓄積しているユーザの操作履歴から各ユーザの検索行動における傾向を抽出する。 例えば、ユーザがすべての電子図書館から得られる検索結果を待つユーザか、早く検索結 果が返ってきた電子図書館だけを見て残りの検索は中断するユーザであるかなどである。 以後、ユーザの検索行動の傾向を「特殊検索条件」と呼ぶことにする。(4)の処理では ユーザが実際に入力した検索条件とサーバエージェントで作成した特殊検索条件を図書館 エージェントに送信し、入札により検索先の決定を行う。
(1) 図書館固有情報の管理
(2) 入札条件に応じた入札値の決定
(3) 検索エージェントへの検索依頼
(4) 検索結果の管理
(1)の処理では、図書館の蔵書傾向や平均的な応答時間などを管理する。これは入札値 を決定する際に利用する情報であり、図書館エージェントに蓄積されている。(2)の処 理ではサーバエージェントから送信された条件と図書館エージェントが管理している電子 図書館固有の情報を比較して条件を満たしている度合いに応じて入札値を決定し、サーバ エージェントへ返す。(3)の処理では、入札の結果、検索先として選ばれた図書館エー ジェントが、検索エージェントへ検索条件を送信する。(4)では、電子図書館から得ら れた検索結果を一時的に保存し、検索結果の画面を作成する際に利用する。
(1) 電子図書館への検索
(2) 検索処理の管理
検索エージェントはTCP/IPベースの複数のプロトコルに対応しており、(1)の処理では httpまたはtelnetいずれかのプロトコルを利用して電子図書館との通信を行う。検索手順 に関する情報は「スクリプト」と呼ぶ知識として検索エージェントが持つ。(2)の処理 では電子図書館との通信を管理し、通信途中でトラブルが発生した場合には、依頼のあっ た図書館エージェントにエラーを通知する。
図 3 特殊検索条件の作成方法
図 3に特殊検索条件の作成手順を示す。サーバエージェントでは、ユーザが選択した電 子図書館名や検索途中で行った操作履歴を履歴管理データベースに保存している。サーバ エージェントは、ユーザの操作履歴を履歴管理データベースから呼び出すことによりユー ザ操作履歴を作成し、サーバエージェント内のプロダクションシステムに読み込む。プロ ダクションシステムは、ルールにより動作を指定するモジュールであり、特殊検索条件を 作成するためのルールが記述されている。図 3の例では読み込まれた操作履歴にはユーザ が検索途中で中断を行ったことを示すstopが含まれているため、検索の開始から中断まで の平均時間を算出する。この値はユーザが検索を待つかどうかを示す特殊検索条件として 利用される。また、プロダクションシステムでは、得られた検索結果を閲覧するかどうか、 絞り込みを頻繁に行うユーザであるかどうかなどの傾向も特殊検索条件として作成する。
入札条件の作成は毎回の各検索ごとに行われ、検索対象として登録されているすべての 図書館エージェントに送信して入札を開始する。その後、サーバエージェントは図書館エ ージェントから入札値が送信されてくるまで待つ。
図 4 入札値の算出例
図書館エージェントでは、担当電子図書館固有の情報として蔵書傾向・検索時間・利用 時間という情報を持っており、サーバエージェントから送られてくる入札条件を満たすほ ど入札値が高くなるように設定されている。蔵書傾向とは各図書館における蔵書の分野ご との充実度を表すものである。例えば大学図書館などの場合、大学の学部や学科構成によ り蔵書に偏りが生じると考えられるため、検索条件に対する各電子図書館の適合度を推定 するのにこのような指標を用いることにする。検索時間は、本システムで検索を行ったと きにかかった検索時間の平均である。利用時間は、メンテナンスなどにより検索サービス が利用できないような場合に、利用できる時間を示したものである。実際の入札値の決定 方法について図 4を用いて説明する。
まず、ユーザが検索キーワードとして「流通」を入力した場合を考える。サーバエージ ェントでは、このユーザによる過去の一連の検索履歴より、検索結果が得られまでどの程 度待つユーザであるかどうかの推定を行い特殊検索条件を作成する。図 4の例では、待ち 時間が3分以内という特殊検索条件が作成される。サーバエージェントは「流通」という 検索条件と内部で作成した特殊検索条件をあわせて入札条件を作成し図書館エージェント へ送信する。一方、図書館エージェントは担当電子図書館固有の情報が入札条件を満たし ているかどうかの判断を行い、図書館エージェントごとに設定された入札値算出ルールに 従って、入札値を決定する。図 4の例では、検索条件のキーワードが蔵書傾向と一致した ので10点、さらに検索時間の待ち時間以内なので10点加算、利用時間内なので入札値 の減点なしで結局入札値は20点になる。その後、図書館エージェントは入札値をサーバ エージェントに送信する。
入札値はそれぞれの図書館エージェントで独自に決められるため、図書館エージェント 間で入札値の範囲にばらつきが生じる可能性がある。このため図書館エージェントはサー バエージェントに入札値と図書館エージェントが作成する入札値の上限値を一緒に送り、 サーバエージェント側でその入札値を正規化してばらつきを補正する。
図 5 同順位の処理例
図 5に、図書館エージェントから送られた入札値を正規化した後、複数の電子図書館で 同一になった場合の処理の一例を示す。サーバエージェントでは正規化した入札値が同じ であった場合、サーバエージェントで管理しているユーザの操作履歴をもとに図書館エー ジェント間に順位を付ける。例えばそのユーザが過去に同じキーワードで検索を行ったこ とがある場合には、過去に一度検索を行った電子図書館よりは新しい電子図書館を優先的 に選択するようにする。このため、入札条件に適合する度合いが同じ場合には新しい電子 図書館を優先的に検索対象とすることで、過去の検索とは異なった結果が得られるように している。
図 6 検索スクリプトの例
スクリプトには検索エージェントが送信する文字列と受信する文字列の2種類が書かれ ており、それぞれU>、S>で表されている。検索エージェントはU>で書かれた文字列を 電子図書館へ送信し、S>で書かれた文字列が帰ってくるまで待ち、先頭から末尾まで順番 に処理を行っていく。
スクリプトには文字列には%で挟まれた文字列が含まれているが、これは変数である。 例えば、図 6では%HOST%、%TITLE1%、%AUTH1%、%KWD1%などが変数である。 検索を行う際、外部から変数に代入される値が指定され、その文字列に置換することで実 際に送信する文字列を作成する。変数に代入する値が設定されていないときには、その変 数は削除される。
図 7 標準構造抽出知識の例
実際の検索結果から標準構造を抽出するため図 7のa)に示すようなPerl[8]の正規表現 で記述した知識を利用する。電子図書館より得られたすべての検索結果からこの知識を用 いてタイトル・著者名・出版者名の三つの項目を抽出する。ユーザへは抽出された各項目 より検索結果画面を構成し表示する。図 8に実際の検索結果の一例を示す。各検索結果の タイトルには結果が得られた電子図書館から提供されるその文献に関する詳細な情報へリ ンクが付けられている。
図 8 検索結果
以上のルールにより同一の文献であると判断された場合、図 9の1に示すように検索結 果は一つにまとめて表示される。文献情報の下には、その結果が得られた電子図書館名が 付加されており、各電子図書館ごとにその文献に関する詳細な情報が閲覧できるようにリ ンクがついている。
図 9 統合表示
図 10 メッセージ通信
一連の検索処理をエージェント間のメッセージの流れから説明する。図 10がメッセー ジの流れを示したものである。
(1) 検索条件の入力
ユーザがサーバーエージェントに対して、キーワード・タイトル・著者名・出版者名 を入力して検索を開始する。
(2) 入札の開始
サーバーエージェントが、操作履歴からユーザの検索行動の傾向を表す特殊検索条件 を作成し、入力された検索条件に付加して入札条件を作成する。また、入力された検索 条件は操作履歴管理データベースに保存され、特殊検索条件を作成するときや絞り込み 検索を行うときに利用される。
入札条件をシステムに存在するすべての電子図書館に通知し、サーバエージェントは 入札値が送り返されるのを待つ。
(3) 入札値の決定
図書館エージェントは送られてきた入札条件をもとに入札値の決定を行い、サーバエ ージェントに入札値を送信する。(図 4参照)
(4) 検索先の決定
各図書館エージェントから送られてきた入札値をもとにサーバエージェントは検索先 となる電子図書館を決定する。選択先として選ばれた電子図書館はユーザに通知される とともに、操作履歴データベースに追加する。サーバーエージェントは、検索先となっ た図書館エージェントに対して、検索を行うよう要求を送り結果が返ってくるまで待つ。
(5) 検索の依頼
検索先として選ばれた図書館エージェントは、ユーザが入力した検索条件を検索エー ジェントに送り、電子図書館の検索を要求する。その後、図書館エージェントは検索エ ージェントから検索結果が返ってくるまで待つ。
(6) 検索処理
検索エージェントは図書館エージェントから送られた検索条件とスクリプトを用いて 外部の電子図書館の検索を行う。そして、電子図書館でヒットした全件の検索結果を取 得する。
ネットワークの切断などにより外部の電子図書館と接続が行えなかった場合には、異 常が発生したとみなし、図書館エージェントにエラーを送信する。
(7) 検索の終了
検索エージェントがすべての検索結果を取得すると、検索エージェントは通信を終了 する。そして、得られた検索結果はすべて図書館エージェントに送信する。
(8) 検索件数の通知
図書館エージェントは、検索エージェントが送ってきた検索結果から標準構造の項目 を切り出し、検索結果の件数を算出する。図書館エージェントは切り出された標準構造 を一時的に保管し、先に検索件数のみサーバーエージェントへ通知する。
(9)検索結果の表示
サーバーエージェントは図書館エージェントから検索結果を受け取ると順次ユーザに 表示を行う。ユーザに表示する検索画面は、検索が終了した図書館名とそこから得られ た検索件数である。
以上の通信により、ユーザの検索要求に対して適切な検索先を絞り込んで検索を行い、 検索結果を表示することができる。図書館エージェントに対して一時的に保管されている 検索結果の標準構造を要求することにより、統合表示の際には再度検索を行うことなく、 サーバエージェントと図書館エージェントとの通信により統合表示による検索結果を作成 する。
(1) 競合型エージェントによる入札処理
競合入札による検索先選択機能により、ユーザの検索行動の傾向を表す特殊検索条件な どの変化する条件を入札条件として利用して図書館の選択を行えるようなった。このため、 検索条件の変化に対応がとりやすくなった。また、知識を管理するエージェントを切り分 けることができるので、システムに新たに電子図書館を登録したり、修正することが容易 となった。
(2) 知識の分散による知識記述のメンテナンス性の向上
競合型エージェントの入札処理により図書館エージェントに各図書館固有の情報を持た せて分散することができ、図書館エージェントの知識を独立に作成することができるため、 知識の作成や更新が容易である。
(3) ユーザに適合した検索先選択
ユーザの検索行動の傾向を一連の操作履歴より取得し入札処理により検索先を決定する ことで、ユーザの傾向を考慮した選択を行うことができる。このため、単純に検索結果が 多い電子図書館を選択するのではなく、ユーザの待ち時間などを考慮した電子図書館を選 択することができる。
(4) スケーラビリティの向上
マルチエージェントアーキテクチャを採用することで、共通のエージェント基盤を持つ 複数のマシン上にエージェントを分散することが可能となった。このため対象となる電子 図書館の数が増加した場合でも、マシンの台数を増やしてエージェントを分散配置するこ とで処理時間を一定に保つことが可能である。
蔵書傾向による検索先の選択精度について簡単な実験を行ったので表1に示す。表は5 つのキーワードについて、各電子図書館から得られた検索結果の件数をもとに順位付けを 行い、その順位を記入したものである。本システムで各キーワードを検索条件とした場合 に選択された電子図書館のうち件数順位が5位以内のものに白丸、6位以下のものには黒 丸を付けた。これをみると、上位5件の電子図書館のうち、約3件が選択されていること が分かり、蔵書傾向による選択が有効であることが確認できた。
以上のようなアプローチをとる関連した研究としては、Stanford UniversityのDigital Library project[4]がある。ここでは各データベースの違いを吸収するために、メタデータ の構築[5]や、プロトコルレベルでのデータベース検索方法の統一化であるInfo Bus[6]を 利用している。しかし、各電子図書館側で対応するメタデータやプロトコルを提供するた めにシステムの修正が必要である。本システムでは横断検索サーバ側による記述だけで吸 収することができるため、各電子図書館側の修正は一切必要ない。また、エージェントを 用いた横断検索システムであるミシガン大学の仲介エージェントによる統一的検索[7]があ る。しかし、電子図書館に固有な情報の管理のみを行っているため、ユーザの検索行動の 傾向まで取得していない。本システムでは、特殊検索条件によりユーザの検索行動の傾向 を用いた検索先の選択を行っている。
表 1 自動選択の精度実験結果
本研究はJIPDECによる次世代電子図書館システム研究開発事業の一環として行ってお り、次世代電子図書館システムのプロトタイプシステムとして実装する予定である。
[2] 柳本 豪一,柳生 弘之,山門 純,細見 格,「WWWベース図書館情報横断検索システ ム」,情報処理学会第54回, 1997
[3] 柳本 豪一,谷 幹也,市山 俊治,「検索先の自動選択を行うWWWベース横断検索シ ステム」,情報処理学会第56回, 1998
[4] Andreas Paepcke, Steve B. Cousins, Hector Garcia-Molina, Scott W. Hassen, Steven P. Ketchpel, Martin Roscheisen, and Terry Winograd, "Using Distributed Objects for Digital Library Interoperability",IEEE Computer, May 1996,pp.61-68
[5] Michelle Baldonado, Chenchuan K.Chang, Luis Gravano,and Andress peapcke,"The Stanford Digital Library Metadata Architecture",International Journal of Digital Libraries,1(2),February, 1997
[6] InterOP Protocol http://www-db.stanford.edu/testbed/interchange
[7] Daniel E. Atkins, William P. Brimingham, Edmund H. Durfee, Eric J. Glover, Elke A. Rundensteiner, Elliot Soloway, Jose M. Vidal, Raven Wallace, and Michael P. Wellman, "Toward Inquiry-Based Education Through Interacting Software Agent", IEEE Computer, May 1996,pp.69-76
[8] Perl http://www.perl.org/