<第一実施形態>
図1は、第一実施形態における文書検索システムの概略構成の例を示す図である。図1の例の文書検索システムは、文書管理サーバ10、ログ管理サーバ20、クライアント端末30、および画像形成装置40がネットワーク50を介して互いに接続された構成を有する。文書管理サーバ10は、文書検索システムで検索される文書を管理する。ログ管理サーバ20は、クライアント端末30および画像形成装置40において文書に対して実行された操作の履歴(ログ)を管理する。また、第一実施形態では、ログ管理サーバ20は、データベースに記憶されたログを用いて、指定された文書に関連する文書を検索する。クライアント端末30は、電子文書に対する操作を実行する端末装置であり、例えばPC(Personal Computer)などの情報処理装置であってよい。画像形成装置40は、文書の画像の形成を伴う機能を有する装置であり、紙文書に関する操作を実行する。画像形成装置40は、例えば、電子文書の印刷、紙文書のコピー、スキャン、およびFAX(ファクシミリ)送信のうちの1以上の機能を有する装置であってよい。ネットワーク50は、例えばインターネットやLAN(Local Area Network)などの通信手段であってよい。なお、図1には、クライアント端末30および画像形成装置40を1つずつ図示するが、文書検索システムは、クライアント端末30および画像形成装置40をそれぞれ複数含んでいてよい。
図2に、文書管理サーバ10の内部構成の概略の例を示す。文書管理サーバ10は、文書DB(データベース)12、文書登録部14、および文書取得部16を備える。
文書DB12は、文書の識別子と、当該文書の内容を特定するための情報と、を対応づけて記憶する記憶手段である。図3に、文書DB12のデータ内容の一例を示す。
図3を参照し、文書DB12には、各文書の文書IDに対応づけて、文書タイプおよび文書パスの各項目の値が登録されている。文書IDは、各文書に対して付与される、システム内で一意な識別子である。文書IDとして、例えば、UUID(Universal Unique Identifier)を用いる。文書タイプは、文書の種類(文書に含まれるデータの種類等)を表す情報である。文書パスは、文書本体のファイルを記憶した記憶手段における格納位置を表す。文書本体のファイルは、文書DB12に格納されていてもよいし、文書管理サーバ10とネットワーク50を介して接続された他の情報処理装置が備える記憶手段に格納されていてもよい。いずれにしても、文書パスは、文書本体のファイルを取得可能とする参照情報であればよい。
再び図2を参照し、文書登録部14は、文書DB12に未登録の文書を文書DB12に新規登録する。例えば、文書登録部14は、文書ID、文書タイプ、および文書本体のデータをクライアント端末30または画像形成装置40から受信すると、文書本体のデータを含むファイルを文書DB12または他の情報処理装置の記憶手段に記憶させると共に、文書DB12において新たなレコードを生成する。この新たなレコードにおいて、クライアント端末30または画像形成装置40から受信した文書IDおよび文書タイプの値が設定され、受信した文書本体のデータのファイルの格納位置が文書パスの値として設定される。なお、クライアント端末30または画像形成装置40から文書本体のデータを受信する代わりに、文書本体のファイルの格納位置を受信し、受信した格納位置を新たなレコードの文書パスとしてもよい。
文書取得部16は、文書DB12を参照し、指定された文書IDの文書の実体データ(文書本体のデータ)を取得する。例えば、文書取得部16は、クライアント端末30または画像形成装置40などの外部装置から文書IDを指定した文書取得要求を受信すると、指定された文書IDの文書DB12中のレコードにおける文書パスを参照して当該文書IDの文書の実体データを取得し、取得した実体データを要求元の外部装置に対して返送する。
なお、文書DB12に登録されて文書管理サーバ10の管理対象となる文書は、電子文書および紙文書の両方の形態を取り得る。
図4に、電子文書の構成の例を模式的に示す。図4を参照し、電子文書60は、文書本体62および文書属性情報64を含む。文書本体62は、電子文書60の文書内容を表すデータである。文書本体62は、例えば、テキストデータ、画像データ、または音声データなどの各種のデータである。あるいは、文書本体62は、テキスト、画像、および音声などの複数の種類のデータを含んでいてもよい。文書属性情報64は、文書60に付与された文書IDを含む。文書属性情報64は、文書IDの他に、電子文書60の作成者、作成日時、更新日時、文書タイプ、およびファイル名などの情報を含んでいてよい。
図5に、紙文書の構成の例を模式的に示す。図5を参照し、紙文書70は、文書本体72および機械可読コード74を用紙に印刷したものであってよい。紙文書70は、例えば、電子文書60を画像形成装置40において用紙に印刷することで生成される。文書本体72は、紙媒体上に印刷された画像であり、紙文書70の内容を表す。機械可読コード74は、バーコードやQRコードなど、情報処理装置により読み取り可能な符号であり、少なくとも文書IDを表す。機械可読コード74は、文書IDだけでなく、紙文書70の作成者や作成日時などを含む文書属性情報も表していてよい。なお、紙文書の態様は、図5の例に限らず、例えば、文書本体72の背景として、文書IDを含む文書属性情報を透かし様に埋め込んで印刷したものであってもよい。紙文書は、文書IDを含む文書属性情報を情報処理装置により読み取り可能な方法で用紙に印刷したものであれば、その具体的な態様は上記の例に限られない。
次に、図6を参照し、ログ管理サーバ20について説明する。ログ管理サーバ20は、文書に対して実行された操作のログを管理すると共に、本発明の第一実施形態の例における文書検索装置として機能する。図6の例のログ管理サーバ20は、ログDB22、検索条件DB24、ログ登録部26、および文書検索部28を備える。
ログDB22は、クライアント端末30および画像形成装置40において文書に対して実行された操作のログを記憶する記憶手段である。
図7に、ログDB22のデータ内容の一例を示す。図7の例の表の各行は、1つの文書に対して実行された1回の操作のログの情報を表すログレコードに対応する。図7の例の各ログレコードは、操作日時、マシン種別、マシンID、ユーザID、文書ID、および操作種類の各項目の値を含む。操作日時は、文書に対する操作が実行された日時を表す。マシン種別は、文書に対する操作を実行した装置の種類(クライアント端末30または画像形成装置40)を表す。図7の例では、文字列「PC」がクライアント端末30を表し、文字列「MFP」が画像形成装置40を表す。マシンIDは、操作が行われた装置を特定するための識別子であり、装置固有の情報である。マシンIDとしては、例えば、各クライアント端末30および各画像形成装置40が固有に有するネットワークインターフェースのMACアドレス(Media Access Control Address)を用いればよい。あるいは、装置毎のシリアル番号などを用いてもよい。本例では、MACアドレスおよび装置の機種名など、装置を特定する情報を連結して、ハッシュ関数(SHA1)に入力して得られた値をマシンIDとしている。ユーザIDは、ユーザの識別情報である。ユーザIDは、例えば、クライアント端末30または画像形成装置40において、その利用開始時にユーザ認証を行い、ユーザからの入力を受け付けて取得される。なお、本例のシステムでは、クライアント端末30ではユーザ認証を行ってユーザIDを取得するが、画像形成装置40ではユーザ認証を行わず、ユーザIDを取得しない。よって、図7の例の表において、マシン種別が画像形成装置40を表す「MFP」であるレコードのユーザIDは空欄(-)である。文書IDは、各ログレコードが表す操作の対象となった文書の文書IDである。文書IDの詳細は上述したとおりである。操作種類は、対応する文書IDの文書に対して行われた操作の内容を表す。図7に例示する操作種類は、(文書DB12への文書の)登録、オープン(クライアント端末30のアプリケーションで電子文書を開くこと)、クローズ(クライアント端末30のアプリケーションで電子文書を閉じること)、プリント(電子文書の印刷)、(紙文書の)コピー、(紙文書の)スキャン、FAX(紙文書のFAX送信)である。図7に例示しない操作種類として、例えば、文書の(添付ファイルとしての)電子メール送信、およびクライアント端末30上での文書の保存場所の変更などが挙げられる。
なお、図7の表は、ログDB22のデータ内容の一例に過ぎず、ログDB22において図7の項目の一部を省略してもよい。例えば、マシン種別は登録しなくてもよい。また例えば、図7のように各ログレコードにマシンIDの値が登録されていれば、ユーザIDの登録は省略してよい。あるいは、クライアント端末30だけでなく画像形成装置40においても常にユーザ認証を行い、操作を行ったユーザのユーザIDが必ず取得されるシステムの場合、各ログレコードにユーザIDの値を登録してマシンIDの登録を省略してよい。ログDB22の各ログレコードには、操作日時、文書ID、および操作種類と共に、操作を実行した主体(装置またはユーザ)を識別可能とする情報が含まれていればよい。また、ログDB22において、図7に示す項目の他の項目をさらに含んでいてもよい。例えば、操作に関連する情報として、操作種類が「FAX」の場合のFAXの送信先、操作種類が電子メール送信の場合の電子メールの送信先、および操作種類が文書の保存場所の変更である場合の変更後の保存場所などを表す情報をログレコードの1項目として含んでいてよい。あるいは、文書IDの他に、文書のファイル名など、文書の属性情報の一部をログレコード中に含んでいてもよい。
再び図6を参照し、検索条件DB24は、文書検索部28がログDB22中のログレコードを検索するときに用いる検索条件を記憶する記憶手段である。ここで、検索条件は、ログDB22の中から、あるログレコードに関連するログレコードを検索するための条件である。検索条件DB24のデータ内容は、例えばシステムの管理者などにより予め設定される。
図8に、検索条件DB24のデータ内容の一例を示す。図8の表の各行は、1つの検索条件の情報を表すレコードに対応する。図8の表の各レコードは、条件ID、検索条件、およびログ関連度の各項目の値を含む。条件IDは、検索条件の識別子である。検索条件は、ログレコード間に「関連がある」と判定するための条件である。例えば、条件ID「0001」の検索条件「PC上で同時にオープン」は、それぞれ異なる文書IDを含む2つのログレコードが、同一のPC(つまりクライアント端末30)上で、同時に、操作種類「オープン」の操作が実行されたことを表す場合に、これら2つのログレコード間に関連があると判定することを表す。なお、操作の実行が「同時」であるとは、2つのログレコードの操作日時が同一である場合に加えて、2つのログレコードの操作日時の差が予め設定された時間の範囲内(例えば、1分以内など)である場合も含む。本実施形態の例では、「同時」の条件を含むすべての検索条件について、「同時」であるか否かの判定のための時間の範囲が同一の値に設定されているとする。変形例では、検索条件に応じて異なる時間の範囲に設定しておいてもよい。ログ関連度は、対応する検索条件を満たすログレコード間の関連の程度を示す値である。図8の例の表では、ログ関連度の数値が大きい程、関連の程度が高いことを表す。例えば、同一のクライアント端末30上で同時にオープンされた文書同士より、同じ電子メールに添付されて送信された文書同士の方が、対応するログレコード間の関連の程度が高いと考えられる。よって、図8の表では、検索条件「PC上で同時にオープン」のログ関連度「1」よりも、検索条件「PC上でメールに同梱して送信」のログ関連度「2」の方が大きく設定されている。同様に、同時にFAX送信された文書同士、およびクライアント端末30上で同一のフォルダに格納された文書同士は、対応するログレコード間の関連の程度が比較的高いと推測される。よって、図8の例では、検索条件「PC上で同じフォルダに格納」および「MFP上で同時に同一番号に対してFAX送信」のログ関連度は「2」に設定されている。図8では、ログ関連度の値として「1」および「2」だけを例示する。しかしながら、より結びつきが強い(関連の程度が高い)と判断される場合は、ログ関連度として3以上の値を設定してもよいし、より結びつきは弱いけれども関連があるかもしれない検索条件に対しては、0〜1の間の値をログ関連度として設定してもよい。
図6の説明に戻り、ログ登録部26は、文書に対して操作を実行したクライアント端末30または画像形成装置40から当該操作のログを受信し、ログDB22に登録する処理を行う。ログ登録部26は、例えば、操作のログを受信すると、ログDB22において新たなログレコードを生成し、生成した新たなログレコードの各項目(図7参照)の値を、受信したログに含まれる値に設定する。
文書検索部28は、ログDB22および検索条件DB24を参照し、指定された文書(指定文書)の文書IDを含む文書検索要求に応じて、指定文書に関連する文書の文書IDを検索する。文書検索要求は、例えばクライアント端末30によって行われ、文書検索部28は、検索結果の文書IDを要求元のクライアント端末30に対して返送する。文書検索部28は、関連ログ抽出部280、ログ関連度合計算出部282、文書関連度算出部284、および結果送信部286を含む。
関連ログ抽出部280は、ログDB22中のあるログレコードに関連するログレコードをログDB22から抽出する処理を行う。例えば、関連ログ抽出部280は、指定文書の文書IDを含むログDB22中のログレコードのそれぞれについて、当該ログレコードとの間で検索条件DB24に登録された検索条件を満たすログレコードを抽出する。抽出されたログレコードに含まれる文書IDは、指定文書に関連する文書の文書IDであると言える。また、関連ログ抽出部280は、指定文書に関連する文書の文書IDそれぞれについて、さらに、当該文書IDを含む各ログレコードとの間で検索条件DB24中の検索条件を満たすログレコードを抽出することもある。
以下の説明では、指定文書の文書IDを含むログレコードを基に関連ログ抽出部280が抽出したログレコードに含まれる文書IDの文書を、指定文書に「直接的に」関連する文書と呼ぶ。また、指定文書に直接的に関連する文書の文書IDを含むログレコードを基に関連ログ抽出部280が抽出したログレコードに含まれる文書IDの文書(ただし、指定文書を除く)を、指定文書に「間接的に」関連する文書と呼ぶ。例えば、ある文書Xが指定文書である場合に、文書Xの文書IDを含むログレコードとの間で検索条件を満たすログレコードとして、文書Yの文書IDを含むログレコードが抽出されたとする。さらに、文書Yの文書IDを含むログレコードとの間で検索条件を満たすログレコードを抽出し、抽出されたログレコードに、指定文書Xおよび文書Zの文書IDが含まれていたとする。この例の場合、文書Yを、指定文書Xに「直接的に」関連する文書と呼び、文書Zを、指定文書Xに「間接的に」関連する文書と呼ぶ。また、文書Zは、文書Yに「直接的に」関連する文書であると言える。
ログ関連度合計算出部282は、関連ログ抽出部280が抽出したログレコードに含まれる文書IDごとに、各ログレコードが満たす検索条件に対応するログ関連度の合計を算出する。上述の指定文書X、文書Y、および文書Zの例を用いて、ログ関連度の合計の算出処理の具体例を説明する。まず、関連ログ抽出部280により、指定文書Xのログレコードを基に文書Yのログレコードが複数抽出されたとする。これらの複数のログレコードのそれぞれについて、ログ関連度合計算出部282は、指定文書Xのログレコードとの間で満たされた検索条件に対応づけられたログ関連度を検索条件DB24から取得する。例えば、指定文書Xのログレコードとの間で検索条件「PC上で同時にプリント」を満たす文書Yのログレコードについてログ関連度「1」を取得し、検索条件「PC上でメールに同梱して送信」を満たす文書Yのログレコードについてログ関連度「2」を取得する(図8参照)。そして、ログ関連度合計算出部282は、取得したログ関連度の合計を求める。指定文書Xおよび文書Yに関する本例では、取得したログ関連度「1」および「2」の合計である「3」を求める。このように求めた合計を、以下では、「指定文書Xと文書Yとの間の」ログ関連度の合計と言う。同様に、文書Yに関連する文書Zについても、ログ関連度合計算出部282は、抽出された文書Zの各ログレコードが文書Yのログレコードとの間で満たす検索条件に対応するログ関連度を取得し、取得したログ関連度の合計を求める。求めた合計は、文書Yと文書Zとの間のログ関連度の合計である。
文書関連度算出部284は、指定文書に直接的に関連する文書および間接的に関連する文書のそれぞれについて、指定文書との間の関連の程度を表す文書関連度を算出する。文書関連度算出部284は、ログ関連度合計算出部282が求めた文書間のログ関連度の合計を用いて文書関連度の算出を行う。文書関連度算出部284の処理の詳細は後述する。
結果送信部286は、指定文書に直接的に関連する文書および間接的に関連する文書の文書IDと、当該文書について算出された指定文書との間の文書関連度と、を対応づけて、文書検索要求の要求元のクライアント端末30または画像形成装置40に対して送信する。結果送信部286は、さらに、より大きい文書関連度に対応づけられた文書ID程より高い優先順位で表示手段に表示することを指示する表示制御情報を送信してもよい。
次に、図9を参照し、クライアント端末30の構成を説明する。クライアント端末30は、文書操作部32、操作監視部34、文書登録処理部36、検索処理部38、および表示部39を備える。
文書操作部32は、電子文書に対する操作を実行する手段である。電子文書に対する操作には、例えば、電子文書のファイルのオープン、クローズ、編集、印刷(画像形成装置40に対して印刷要求を行うこと)、および電子メール送信等がある。図9では、文書操作部32を1つだけ示すが、それら個々の操作を別々の操作部(例えば、編集用のアプリケーション、電子メール送受信用のアプリケーションなど)が担当してもよい。例えば、文書操作部32がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部32は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。
操作監視部34は、文書操作部32の動作を監視して、電子文書に対して実行される操作を監視する。操作監視部34は、文書操作部32により電子文書に対して操作が実行されると、その操作に関する情報を取得して操作のログを生成し、生成したログをログ管理サーバ20に対して送信する。生成されるログには、例えば、図7を参照して説明したログDB22のログレコード中の各項目の値が含まれる。操作監視部34は、例えば、クライアント端末30を実現するPCにインストールされたOS(Operating System)のAPI(Application Programming Interface)を監視することで、電子文書に対して実行される操作に関する情報を取得する。また例えば、OSで発生するイベントを監視することで、電子文書に対して実行される操作に関する情報を取得してもよい。また、操作対象の電子文書に文書IDが割り当てられていない場合、つまり、操作対象の電子文書が文書管理サーバ10の文書DB12に未登録である場合、操作監視部34は、文書登録処理部36に対して、当該電子文書の文書管理サーバ10への登録処理を依頼してもよい。
文書登録処理部36は、本システムに未登録の電子文書を文書管理サーバ10に登録する処理を行う。例えば、文書登録処理部36は、操作監視部34からの登録処理の依頼を受けた場合に、新たな文書IDを生成し、生成した文書IDを操作対象の電子文書の文書属性情報に格納した上で、当該電子文書を文書管理サーバ10に対して送信する。この電子文書を受け取った文書管理サーバ10において、上述のように文書登録部14により文書DB12への当該電子文書の登録が行われる。あるいは、例えば、文書登録処理部36は、文書管理サーバ10への電子文書の登録をユーザが明示的に指示した場合にのみ、指示された電子文書に対して新たな文書IDを割り当てて文書管理サーバ10に登録するようにしてもよい。なお、文書登録処理部36は、文書IDを含む文書属性情報と文書本体とを含む電子文書全体を文書管理サーバ10に送信する代わりに、文書属性情報と当該電子文書の格納場所を表す情報とを送信してもよい。
検索処理部38は、文書の検索に関する処理を行う。例えば、検索処理部38は、文書の指定をユーザに促す表示画面を表示部39に表示させ、図示しない入力手段を介して、指定文書を特定するユーザの指示を取得する。そして、指定文書の文書IDを含む文書検索要求をログ管理サーバ20の文書検索部28に対して行い、これに応じてログ管理サーバ20から返送された検索結果を表示部39に表示させる。ログ管理サーバ20から取得した検索結果に含まれる文書IDの文書の取得要求を文書管理サーバ10に対して行い、当該文書IDの文書の内容を表示部39に表示させてもよい。検索処理部38により、指定文書に関連する文書の情報が表示部39に表示される。
表示部39は、クライアント端末30で行われる処理の結果を表示する表示装置である。表示部39は、例えば、文書操作部32を実現するアプリケーションソフトウエアの操作画面や、文書操作部32による操作結果を表示したり、検索処理部38がログ管理サーバ20から取得した検索結果を表示したりする。表示部39は、例えば、液晶ディスプレイなどの表示装置により実現される。
図10に、画像形成装置40の概略構成の例を示す。画像形成装置40は、文書画像処理部42、操作監視部44、文書登録処理部46、および表示部49を備える。
文書画像処理部42は、文書に対する、画像の形成を伴う操作を実行する。文書画像処理部42は、例えば、図示しないスキャナ装置により紙文書を読み取って当該紙文書の画像データを含む電子文書を生成し、生成した電子文書を予め設定された格納場所またはユーザにより指定された格納場所に格納する(紙文書のスキャン)。文書画像処理部42は、さらに、紙文書をスキャンして生成した画像データを図示しない印刷装置により用紙に印刷して出力したり(紙文書のコピー)、紙文書をスキャンして生成した画像データをFAX送信したりする機能を有していてもよい。また、文書画像処理部42は、電子文書の印刷要求をクライアント端末30から受信して、受信した印刷要求に含まれる電子文書を用紙に印刷することもある(電子文書の印刷)。
紙文書のスキャン、コピーおよびFAX送信など、紙文書の読み取りを伴う操作を行う場合、文書画像処理部42は、読み取った紙文書の画像データにおいて文書IDを含む文書属性情報の機械可読コードが含まれているか否かを判定する。機械可読コードが含まれていれば、当該機械可読コードを解釈して文書IDを含む文書属性情報を抽出する。そして、当該文書ID等を文書属性情報64として含み、読み取った紙文書の画像データを文書本体62として含む電子文書60を生成する。この文書ID付きの電子文書60を、予め設定された格納場所またはユーザに指定された格納場所に格納したり、印刷出力したり、FAX送信したりする。機械可読コードが含まれていなければ、読み取った紙文書の画像データを含み、文書IDの付与されていない電子文書を生成する。また、文書ID付きの紙文書のコピーまたは電子文書の印刷を行う場合など、文書ID付きの電子文書を印刷出力する場合、文書画像処理部42は、文書IDを含む文書属性情報の機械可読コードを生成し、生成した機械可読コードを当該電子文書の文書本体の画像と共に用紙に印刷する。
操作監視部44は、文書画像処理部42の動作を監視し、文書画像処理部42が紙文書に対して実行する操作を監視する。操作監視部44は、クライアント端末30の操作監視部34と同様、文書に対して実行された操作に関する情報を取得して操作のログを生成し、生成したログをログ管理サーバ20に対して送信する。このとき、操作対象の文書の文書IDとしてログに含まれるのは、文書ID付きの紙文書を読み取った画像データ中の機械可読コードを解釈して得られた文書IDである。操作種類としては、スキャン、コピー、およびFAX送信などが挙げられる。なお、本実施形態の例では、クライアント端末30からの印刷要求に従って電子文書を印刷出力した場合、画像形成装置40の操作監視部44は、この印刷操作のログのログ管理サーバ20への登録を行わない。クライアント端末30が画像形成装置40に対して印刷要求を行ったときに、当該クライアント端末30において、電子文書の印刷操作を表すログをログ管理サーバ20に登録するためである。
また、操作監視部44は、文書画像処理部42において文書IDが付与されていない紙文書をスキャンして、当該紙文書の画像データを文書本体とする電子文書が生成された場合、文書登録処理部46に対し、当該電子文書の文書管理サーバ10への登録処理を依頼する。
文書登録処理部46は、本システムに未登録の文書を文書管理サーバ10に登録する処理を行う。例えば、文書登録処理部46は、操作監視部44からの登録処理の依頼を受けて、新たな文書IDを生成し、生成した文書IDを、文書画像処理部42における紙文書のスキャンにより生成された電子文書の文書属性情報に格納した上で、当該電子文書を文書管理サーバ10に対して送信する。この電子文書を受け取った文書管理サーバ10において、上述のように文書登録部14により文書DB12への当該電子文書の登録が行われる。あるいは、文書登録処理部46は、例えば、文書IDが付与されていない紙文書のスキャンと共にスキャン後の電子文書の文書管理サーバ10への登録をユーザが指示した場合にのみ、当該電子文書に対して新たな文書IDを割り当てて文書管理サーバ10に登録する処理を行ってもよい。なお、文書登録処理部36は、文書IDを含む文書属性情報と文書本体とを含む電子文書全体を文書管理サーバ10に送信する代わりに、文書属性情報と当該電子文書の格納場所を表す情報とを送信してもよい。
表示部49は、ユーザに対して提示される情報を表示する。表示部49は、例えば、液晶ディスプレイなどの表示装置により実現される。
以下、第一実施形態の例のシステムにおける文書検索処理の例を説明する。
図11は、ログ管理サーバ20の文書検索部28が行う処理の手順の例を示すフローチャートである。文書検索部28は、例えば、指定文書の文書IDを含む文書検索要求をクライアント端末30から受信した場合に、図11の例の手順の処理を開始する。
まず、文書検索部28は、文書検索要求に含まれる指定文書の文書IDを注目IDとする(ステップS2)。
次に、注目IDについて、文書検索部28の関連ログ抽出部280およびログ関連度合計算出部282による関連文書検索処理が行われる(ステップS4)。ステップS4では、指定文書に直接的に関連する文書が検索され、指定文書とこれに直接的に関連する文書との間のログ関連度の合計が算出される。図12に、図11のステップS4の詳細手順の例を示す。図11のステップS4が開始されると、図12の例の手順の処理が開始される。
図12を参照し、まず、文書検索部28は、注目IDを含むログレコードをログDB22から取得し、取得したログレコードのうちの1つを選択する(ステップS40)。注目IDの文書に対して複数回の操作が実行されてそのログがログDB22に記録されていれば、ステップS40では、複数のログレコードが取得され、それらのうちの1つが選択される。
次に、関連ログ抽出部280により、ステップS40で選択されたログレコードとの間で、検索条件DB24に登録された検索条件を満たすログレコードが抽出される(ステップS42)。ステップS42で抽出されたログレコードに含まれる文書IDは、注目IDの文書に直接的に関連する文書の文書IDである。
ステップS42の処理は、例えば、以下の手順により行われる。まず、選択されたログレコードの操作日時を参照し、当該操作日時の前後で予め設定された時間の範囲内(例えば、1分以内)の操作日時を有するログレコードのうち、注目ID以外の文書IDを含むログレコードをログDB22から取得する。この「予め設定された時間の範囲」は、検索条件DB24中の検索条件において操作が「同時」に実行されていると判定する条件として予め設定された時間の範囲である。次に、取得したログレコードの中から、マシンIDおよびユーザIDの少なくとも一方がステップS40で選択されたログレコードと共通するログレコードを抽出する。このように抽出したログレコードのそれぞれと、ステップS40で選択された注目IDのログレコードと、の間で検索条件DB24に登録された各検索条件が満たされるか否かを判定し、検索条件を満たすログレコードを抽出する。このとき、抽出したログレコードのそれぞれに対応づけて、満たされた検索条件の条件IDを一時記憶手段(図示しない)に記憶しておく。
なお、ステップS42の処理の詳細な手順は必ずしも上述の順番のとおりでなくてもよい。検索条件DB24中の各検索条件を評価して、ステップS40で選択したログレコードとの間で検索条件を満たすログレコードを抽出しさえすればよい。
ステップS42で検索条件を満たすログレコードが存在せず、ログレコードの抽出に失敗した場合(ステップS43でNO)、処理はステップS50へ進む。ステップS50の詳細は後述する。
ステップS42でログレコードの抽出に成功すると(ステップS43でYES)、ログ関連度合計算出部282により、ステップS44,S46,S48を含むループ処理が行われる。このループ処理は、関連ログ抽出部280が抽出したログレコードに含まれる文書IDごとに、当該文書IDと注目IDの文書との間のログ関連度の合計を求めるための処理である。
まず、ログ関連度合計算出部282は、関連ログ抽出部280がステップS42で抽出したログレコードのうちの1つを選択する(ステップS44)。
次に、ログ関連度合計算出部282は、ステップS44で選択したログレコードに対応づけて一時記憶手段に記憶された条件IDを用いて、検索条件DB24から当該条件IDに対応づけられたログ関連度を取得する。このログ関連度は、ステップS44で選択したログレコードとステップS40で選択された注目IDのログレコードとの間で満たされる検索条件に対応づけられたログ関連度である。そして、取得したログ関連度を、注目IDとステップS44で選択したログレコードに含まれる文書IDXとの組に対するログ関連度の合計S(注目ID,文書IDX)に加算する。なお、当該文書IDXについて初めて処理する場合は、取得したログ関連度をS(注目ID,文書IDX)の値とする(以上、ステップS46)。
ステップS46の後、関連ログ抽出部280がステップS42で抽出したログレコードのすべてについて処理済でなければ(ステップS48でNO)、ステップS44に戻って未処理のログレコードから1つを選択してステップS46の処理を行う。抽出したログレコードのすべてについて処理済であれば(ステップS48でYES)、処理はステップS50に進む。
ステップS50では、注目IDを含むログレコードのすべてについて処理済であるか否かが判定される。処理済みでなければ(ステップS50でNO)、処理はステップS40に戻り、未処理の注目IDのログレコードを1つ選択して、ステップS42以下の処理がさらに実行される。すべて処理済であれば(ステップS50でYES)、図12の例の手順の処理は終了する。
図12の例の手順により、注目IDの文書に直接的に関連する文書の文書IDが取得される。さらに、取得された文書IDごとに、注目IDの文書との間のログ関連度の合計が算出される。
指定文書の文書IDを注目IDとする図12の例の関連文書検索処理が終了すると、文書検索部28は、その結果として得られた文書IDおよび当該文書IDについて算出されたログ関連度の合計を直接関連リストに登録する(ステップS6)。直接関連リストは、指定文書に直接的に関連する文書の情報を一時的に記録しておくためのリストであり、一時記憶手段に記憶される。一つの具体例として、指定文書の文書IDが文書Aであるとし、文書Aを注目IDとする関連文書検索処理(ステップS4,図12)の結果、文書Aに直接的に関連する文書IDとして文書Bおよび文書Cが得られたとする。また、文書Aと文書Bとの間のログ関連度の合計が「5」、文書Aと文書Cとの間のログ関連度の合計が「4」であったとする。この例では、直接関連リストには、文書Bと対応するログ関連度の合計「5」との組、および、文書Cと対応するログ関連度の合計「4」との組が登録される。
次に、直接関連リスト中の文書IDのうちの1つを注目IDとし(ステップS8)、関連文書検索処理が実行される(ステップS4´)。ステップS4´では、直接関連リスト中の文書IDの文書に直接的に関連する文書、つまり、指定文書に間接的に関連する文書が検索される。ステップS4´の処理の詳細手順は、上述の図12の例の手順のとおりであってよい。ただし、図12のステップS42において、注目IDとの間でログ関連度の合計を算出済みの文書IDを含むログレコードについては、検索条件を満たしていても抽出の対象としない。例えば、上述の具体例において、直接関連リスト中の文書Bを注目IDとして関連文書検索処理(ステップS4´,図12)を行う場合、図12のステップS42では、文書Bのログレコードとの間で検索条件を満たすログレコードとして、指定文書Aのログレコードが抽出され得る。しかしながら、文書B(注目ID)と指定文書Aとの間のログ関連度の合計は、すでに算出済みで直接関連リストに登録されているので、ここでは、指定文書Aのログレコードは抽出の対象としない。
ステップS4´の処理の結果の文書IDおよび当該文書IDについて算出されたログ関連度の合計は、間接関連リストに登録される(ステップS10)。間接関連リストは、指定文書と間接的に関連する文書の情報を一時的に記録しておくためのリストであり、一時記憶手段に記憶される。上述の具体例を再び用い、文書Bを注目IDとするステップS4´の処理の結果、関連文書の文書IDとして文書Cおよび文書Dが得られたとすると、間接関連リストには、文書Cおよび文書Dが文書Bに対応づけて登録される。さらに、文書Cおよび文書Dそれぞれに対応づけて、各文書C,Dと文書Bとの間のログ関連度の合計が間接関連リストに登録される。
その後、直接関連リスト中の文書IDのうち未処理のものがあれば(ステップS12でNO)、ステップS8以下の処理を繰り返す。直接関連リストに文書Bおよび文書Cが登録される上述の具体例において、文書BについてステップS8,S4´,S10の処理を行った後、未処理の文書Cについて、ステップS8以下の処理が行われる。文書Cを注目IDとして関連文書検索処理(ステップS4´,図12)を行う場合、図12のステップS42において、文書Cとの間のログ関連度の合計がすでに算出されている文書A,Bのログレコードは抽出の対象外となる。本例において、文書A,Bのログレコードの他に文書Cのログレコードとの間で検索条件を満たすものがログDB22中に存在しないとする。よって、文書Cを注目IDとする本例の関連文書検索処理では、図12のステップS43で常にNO判定され、処理結果の文書IDおよびログ関連度の合計は得られず、ステップS10で間接関連リストに追加登録される情報はない。
ステップS10の後、直接関連リスト中の文書IDのすべてについて処理済であれば(ステップS12でYES)、処理はステップS14に進む。
ステップS14では、文書関連度算出部284により、直接関連リストおよび間接関連リストに含まれる各文書IDの文書と指定文書との間の文書関連度が算出される。ステップS14で、文書関連度算出部284は、まず、直接関連リストおよび間接関連リストを用いて、文書間の関係を表すグラフを生成する。指定文書を文書Aとする上述の具体例では、文書B,Cを含む直接関連リストと、文書Bに関連する文書として文書C,Dを含む間接関連リストと、を用いて、例えば図13の例のようなグラフが生成される。
図13を参照し、グラフの各ノードは各文書に対応し、ノード間を結ぶ辺(矢印)は、対応する文書間に直接的な関連があることを表す。また、各辺に記載された数値は、当該辺で接続される文書間のログ関連度の合計を表す。文書関連度算出部284は、例えば、以下の手順により図13の例のグラフを生成する。まず、直接関連リストを参照し、指定文書Aおよびこれに直接的に関連する文書B,Cにそれぞれ対応するノードを生成し、文書A,B間のログ関連度の合計(図13では、「5」)および文書A,C間のログ関連度の合計(図13では、「4」)の値を、対応する各辺に設定する。次に、間接関連リストを参照し、文書Bに直接的に関連する文書C,Dにそれぞれ対応するノードを生成し、文書B,C間のログ関連度の合計(図13では、「8」)および文書B,D間のログ関連度の合計(図13では、「3」)の値を、対応する各辺に設定する。
図13の例のようなグラフを生成すると、文書関連度算出部284は、指定文書と、グラフ中の他の文書のそれぞれと、の間の文書関連度を算出する。指定文書と他の文書Iとの間の文書関連度は、例えば、次のように算出される。文書関連度算出部284は、まず、生成したグラフにおいて、指定文書と文書Iとを結ぶ経路rtをすべて求める。そして、各経路rtの長さL(rt)、つまり、各経路rtにおける指定文書と文書Iとの間の距離を求める。この「距離」は、グラフにおいて経路rtに含まれる辺の数を指す。さらに、各経路rtにおいて、文書Iに直接的に関連する文書J(文書Iから指定文書に向かって経路rtを辿ったときに最初に現れる文書)と、文書Iと、の間のログ関連度の合計S(文書I,文書J)を求める。そして、各経路rtについて、以下の式(1)で表される値を算出し、算出した値をすべての経路rtに関して合計した値を、指定文書と文書Iとの間の文書関連度とする。
S(文書I,文書J)/L(rt) 式(1)
式(1)の値は、文書Iと文書Jとの間のログ関連度の合計Sが大きい程大きくなり、経路rtにおける文書Iと文書Jとの間の距離Lが大きい程小さくなる。
以下、図13の例のグラフを参照し、文書間の文書関連度を算出する手順の具体例を説明する。指定文書Aと文書Bとの間の文書関連度の場合、文書間を結ぶ経路として、A→BおよびA→C→Bの2つがグラフ中に存在する。経路A→Bについては、式(1)の値は、
ログ関連度の合計S(文書B,文書A)/距離L(A→B)=5/1=5
となる。また、経路A→C→Bについては、式(1)の値は、
ログ関連度の合計S(文書B,文書C)/距離L(A→C→B)=8/2=4
となる。したがって、指定文書Aと文書Bとの間の文書関連度は、9(=5+4)となる。
また、指定文書Aと文書Cとに関し、これらの文書間を結ぶ経路は、A→C,A→B→Cの2つである。各経路について次のように式(1)の値が算出される。
ログ関連度の合計S(文書C,文書A)/距離L(A→C)=4/1=4
ログ関連度の合計S(文書C,文書B)/距離L(A→B→C)=8/2=4
したがって、指定文書Aと文書Cとの間の文書関連度は、8(=4+4)となる。
さらに、指定文書Aと文書Dとについて、これらの文書間を結ぶ経路は、A→B→D,A→C→B→Dの2つであり、各経路についての式(1)の算出結果は、
ログ関連度の合計S(文書D,文書B)/距離L(A→B→D)=3/2=1.67
ログ関連度の合計S(文書D,文書B)/距離L(A→C→B→D)=3/3=1
となる。よって、指定文書Aと文書Dとの間の文書関連度は、2.67(=1.67+1)となる。
以上、図13を参照する具体例では、図11のステップS14により、指定文書Aと各文書B,C,Dとの間の文書関連度は、それぞれ、9,8,2.67と算出される。
再び図11の例の手順の説明に戻り、文書関連度の算出(ステップS14)が終了すると、文書検索部28の結果送信部286は、ステップS14で算出した文書関連度を、対応する文書IDと共に文書検索要求の要求元のクライアント端末30に対して送信する(ステップS16)。図13を参照する上述の具体例では、算出された文書関連度9,8,2.67と、各文書関連度に対応する文書IDである文書B,文書C,文書Dが結果送信部286により送信される。本例では、さらに、文書関連度がより大きい文書IDの文書についての情報程より高い優先順位で表示部39に表示することを指示する表示制御情報が送信される。ステップS16の後、図11の例の手順の処理は終了する。
なお、図11の例では、直接関連リスト中の文書に直接的に関連する文書を、指定文書に間接的に関連する文書として間接関連リストに登録しているが、これに加えて間接関連リスト中の文書に直接的に関連する文書が存在する場合は、それらの文書も間接関連リストに登録するようにしてもよい。この場合、それらの文書も含めてログ関連度と文書関連度を算出するようにすればよい。
図11の例の手順の処理の結果、文書検索要求の要求元のクライアント端末30は、指定文書に(直接的にあるいは間接的に)関連する文書の文書IDと、関連する各文書と指定文書との間の文書関連度と、をログ管理サーバ20の文書検索部28から受信する。要求元のクライアント端末30の検索処理部38は、例えば、ログ管理サーバ20から受信した文書IDと対応する文書関連度とを、指定文書についての検索結果として表示部39に表示させる。本例では、検索処理部38は、結果送信部286から送信された表示制御情報に従って、より大きい文書関連度に対応する文書IDを優先して表示部39に表示させる。
図14に、クライアント端末30の表示部39に表示される検索結果の表示画面の例を示す。図14の例の表示画面300において、枠302には、指定文書の文書IDが示される。指定文書の文書IDは、ユーザにより指定される。例えば、ユーザがマウスなどの入力装置を介して選択ボタン304を押すと、ファイルの選択を受け付ける表示画面(図示しない)が表示され、この表示画面に従ってユーザが選択したファイルの文書を指定文書とする。指定文書の文書IDは、ユーザが選択したファイルから取得すればよい。指定文書の選択の後、マウスなどにより検索ボタン306が押されると、クライアント端末30は、指定文書の文書IDを含む文書検索要求をログ管理サーバ20に対して行い、これに応じてログ管理サーバ20において上述の文書検索処理が行われ、その検索結果がクライアント端末30で受信される。検索結果は、表示画面300では、ログ管理サーバ20から受信した各文書IDと、当該文書IDに対応する(指定文書との間の)文書関連度と、を対応づける表308として表示される。表308において、対応する文書関連度の大きい文書IDから順に表示されている。このように、文書関連度は、検索結果の表示における関連文書の優先順位として用いられてよい。また、表308に示される文書IDをユーザがマウスなどの入力装置により選択すると、クライアント端末30は、当該文書IDの文書について文書管理サーバ10に対して文書取得要求を行って当該文書IDの文書の文書内容を取得し、表示部39に表示させてもよい。
また、検索結果の表示の態様の他の例として、図14に示す表308において、検索結果として受信した文書IDと共に、あるいは、文書IDの代わりに、文書IDのファイル名など、当該文書IDの文書の文書属性情報を表示させてもよい。この例の場合、クライアント端末30は、検索結果として受信した各文書IDを文書管理サーバ10に対して送信し、各文書IDに対応づけて文書DB12に登録された属性情報の提供を要求する。そして、この要求に応じて文書管理サーバ10から返送された属性情報を表308において文書関連度と対応づけて表示させる。
以下、第一実施形態の変形例を説明する。以上の説明では、文書検索要求を行うのはクライアント端末30であり、図10の例の画像形成装置40は、クライアント端末30の検索処理部38に相当する要素を備えない。変形例では、画像形成装置40は、図9を参照して上述した検索処理部38と同様の検索処理部を備えていてもよい。この場合、例えば、画像形成装置40において、ユーザの指示に応じて、文書IDが付与された紙文書をスキャン読み取りし、その紙文書の機械可読データから取得された文書IDを指定文書の文書IDとしてログ管理サーバ20の文書検索部28に対して文書検索要求を行えばよい。ログ管理サーバ20から返送される検索結果は、画像形成装置40の表示部49に表示されてよい。このとき、表示部49に表示される表示画面の態様は、クライアント端末30の表示部39に関して説明した図14の例と同様であってよい。
また、ログ管理サーバ20が備える文書検索部28の文書関連度算出部284の処理(図11のステップS14)の変形例として、文書間の関連を表すグラフにおいて指定文書と文書Iとを結ぶ各経路rtについて、上記の式(1)で表される値を算出する代わりに、次の式(2)で表される値を算出してもよい。
S(文書I,文書J)/2L(rt) 式(2)
本変形例では、指定文書と文書Iとの間の文書関連度として、各経路rtについて算出した式(2)の値の合計を求める。
文書関連度算出部284の処理の他の変形例として、指定文書と文書Iとを結ぶ経路rtのうち、距離L(rt)が予め設定された閾値を超える経路について式(1)または式(2)の値の算出の対象から除外してもよい。この閾値を例えば「2」とした場合、図13の例のグラフにおいて、指定文書Aと文書Dとの間を結ぶ2つの経路A→B→D,A→C→B→Dのうち、距離Lが閾値「2」を超える経路A→C→B→Dについては、式(1)または式(2)の値を算出しない。この例の場合、距離Lが閾値「2」以内である経路A→B→Dのみについて式(1)または式(2)の値を算出し、算出した値を指定文書Aと文書Dとの間の文書関連度とする。
<第二実施形態>
第一実施形態では、クライアント端末30または画像形成装置40が指定文書を特定した文書検索要求を行う度に、指定文書に(直接的にあるいは間接的に)関連する文書の検索およびログ関連度の合計の算出が行われる(図11)。第二実施形態では、ログDB22にログレコードが登録される度に、当該ログレコード中の文書IDの文書に直接的に関連する文書および当該文書についてのログ関連度の合計を求め、関連する文書およびログ関連度の合計を当該ログレコード中の文書IDに対応づけて文書管理サーバ10の文書DB12に登録しておく。そして、クライアント端末30または画像形成装置40による文書検索要求が行われると、文書DB12において各文書IDに対応づけて登録された関連文書の文書IDおよびログ関連度の合計を用いて、指定文書に関連する文書の検索が行われる。
第二実施形態のシステム全体の構成は、第一実施形態のシステムの例として示した図1と同様であってよい。第二実施形態では、第一実施形態におけるログ管理サーバ20の文書検索部28の機能が、ログ管理サーバ20および文書管理サーバ10に分散して実現される。なお、第二実施形態において、クライアント端末30および画像形成装置40の構成は、第一実施形態と同様であってよい。
図15は、第二実施形態におけるログ管理サーバ20の概略構成の例を示すブロック図である。図15において、図6と同様の構成要素には図6と同様の符号を付し、その詳細な説明を省略する。
図15の例のログ管理サーバ20は、文書検索部28の代わりに関連文書検索部29を備える点で、図6の例のログ管理サーバ20と異なる。
関連文書検索部29は、ログ登録部26によりログDB22に新たなログレコードが登録されると、当該ログレコードに含まれる文書IDの文書に直接的に関連する文書を検索する処理を行う。関連文書検索部29は、関連ログ抽出部290、ログ関連度合計算出部292、および結果登録処理部294を備える。関連ログ抽出部290およびログ関連度合計算出部292は、それぞれ、ログDB22に新たに登録されたログレコード中の文書IDを注目IDとして、図6に例示する文書検索部28の関連ログ抽出部280およびログ関連度合計算出部282と同様の処理を行う。結果登録処理部294は、注目IDと、関連ログ抽出部290が抽出したログレコード中の文書ID(以下、関連文書の文書IDと呼ぶ)と、当該文書IDについてログ関連度合計算出部292が算出したログ関連度の合計と、を文書管理サーバ10に対して送信し、文書DB12に登録するための処理を行う。
図16に、第二実施形態における文書管理サーバ10の概略構成の例を示す。図16において、図2と同様の構成要素には図2と同様の符号を付し、その詳細な説明を省略する。
図16の例の文書管理サーバ10は、図2に例示する構成要素に加えて、関連文書登録部18および文書検索部19を備える点で、図2の例の文書管理サーバ10と異なる。
関連文書登録部18は、ログ管理サーバ20の結果登録処理部294から受信した注目ID、関連文書の文書ID、およびログ関連度の合計を用いて文書DB12を更新する。
図17を参照し、関連文書登録部18の処理の例を説明する。図17は、第二実施形態における文書DB12のデータ内容の一例である。図17の例の表は、図3の例の表の各項目に加えて、「関連文書」の項目を備える。また、関連文書の項目は、下位項目として、文書IDおよびログ関連度合計の各項目を含む。関連文書登録部18は、文書DB12において、ログ管理サーバ20から受信した注目IDと関連文書の文書IDそれぞれとの組について、ログ管理サーバ20から受信した関連文書の各文書IDに対応するログ関連度の合計を登録する。例えば、関連文書登録部18は、注目IDを「文書ID」の項目(図17の例の表の第1列)の値として含むレコードにおいて、「関連文書」の下位項目の「文書ID」の値として、ログ管理サーバ20から受信した関連文書の文書IDが登録済みであるか否かを確認する。登録済みの文書IDについては、当該レコードにおいて当該文書IDに対応づけられた「ログ関連度合計」の値に、ログ管理サーバ20から受信した当該文書IDに対応するログ関連度の合計を加算する。未登録の文書IDについては、当該レコードにおいて「関連文書」の下位項目の「文書ID」および「ログ関連度合計」の値として、当該未登録の文書IDと、ログ管理サーバ20から受信した当該文書IDに対応するログ関連度の合計を設定する。
さらに、関連文書登録部18は、ログ管理サーバ20から受信した関連文書の各文書IDを「文書ID」の項目の値として含む文書DB12の各レコードにおいて、「関連文書」の下位項目の「文書ID」の値として注目IDが登録済みであれば、当該注目IDに対応づけて登録された「ログ関連度合計」の値に、ログ管理サーバ20から受信した対応するログ関連度の合計を加算する。「関連文書」の下位項目の「文書ID」の値として注目IDが未登録であれば、当該レコードにおいて、「関連文書」の「文書ID」および「ログ関連度合計」の値として、注目IDおよびログ管理サーバ20から受信した対応するログ関連度の合計を設定する。
関連文書登録部18の処理により、文書DB12において、ある文書Xのレコードで関連文書として文書Yおよびそのログ関連度の合計Sが登録されると、文書Yのレコードにおいても関連文書として文書Xおよびログ関連度の合計Sが登録される。また、文書Yのレコードで関連文書Xに対応づけて登録されるログ関連度の合計Sは、文書Xのレコードで関連文書Yに対応づけて登録されるログ関連度の合計Sと同じ値となる。
図16の説明に戻り、文書検索部19は、文書検索要求で特定された指定文書に関連する文書の検索を行う。文書検索部19は、文書関連度算出部190および結果送信部192を備える。
文書関連度算出部190は、文書DB12を参照し、指定文書と直接的に関連する文書および間接的に関連する文書のそれぞれについて、指定文書との間の文書関連度を算出する。文書関連度算出部190は、例えば、図13に示すようなグラフの生成に必要な情報を文書DB12から取得し、第一実施形態に関して図11のステップS14および図13を参照して説明したのと同様の処理を行って、指定文書と他の各文書との間の文書関連度を算出する。文書関連度算出部190の処理の詳細は後述する。
結果送信部192は、文書検索要求を行ったクライアント端末30または画像形成装置40に対し、文書関連度算出部190による処理の結果を送信する。結果送信部192の処理は、第一実施形態におけるログ管理サーバ20が備える文書検索部28の結果送信部286と同様であってよい。
以下、第二実施形態のシステムにおいて実行される処理の手順の例を説明する。
図18に、ログ管理サーバ20のログDB22に新たなログが登録されるときの処理の手順の例を示す。クライアント端末30または画像形成装置40から操作のログを受信したログ管理サーバ20において、受信したログをログ登録部26がログDB22に登録すると、関連文書検索部29は、図18の例の手順の処理を開始する。
まず、関連文書検索部29は、新たにログDB22に登録されたログレコード中の文書IDを注目IDとする(ステップS60)。
次に、関連文書検索部29の関連ログ抽出部290は、検索条件DB24を参照し、新たに登録されたログレコードとの間で検索条件を満たすログレコードをログDB22から抽出する(ステップS62)。ステップS62の処理は、図12のステップS42を参照して説明した処理と同様であってよい。
ステップS62でログレコードの抽出に失敗すると(ステップS64でNO)、関連文書検索部29は、図18の例の手順の処理を終了する。
ステップS62でログレコードの抽出に成功すると(ステップS64でYES)、抽出されたログレコードに対して、図12のステップS44,S46,S48と同様の処理を行い、抽出されたログレコードに含まれる文書IDごとに、注目IDとの間のログ関連度の合計を求める。
ステップS62で抽出されたログレコードに含まれる文書IDのすべてについて注目IDとの間のログ関連度の合計を求める処理が終了すると(ステップS48でYES)、求めたログ関連度の合計を用いて、文書管理サーバ10の文書DB12の更新が行われる(ステップS66)。ステップS66において、ログ管理サーバ20の関連文書検索部29に含まれる結果登録処理部294は、注目IDと、注目IDに関連する各文書IDについて求めたログ関連度の合計と、を文書管理サーバ10に対して送信する。これを受信した文書管理サーバ10において、関連文書登録部18は、図17を参照して上記で説明したとおりに、文書DB12のデータ内容を更新する。つまり、文書DB12において、注目IDを「文書ID」の項目の値として含むレコードと、関連文書の文書IDを「文書ID」の項目の値として含むレコードと、について、注目IDと関連文書の各文書IDとの組に対応づけられるログ関連度の合計の値を更新する。
ステップS66の後、図18の例の手順の処理は終了する。図18の例の手順により、注目IDと関連ログ抽出部290が抽出した各文書IDとが互いに関連文書として文書DB12に登録される。この文書DB12の関連文書の情報を用いて、文書管理サーバ10の文書検索部19により、指定文書に関連する文書の検索が行われる。
図19に、文書検索時の処理の手順の例を示す。文書管理サーバ10の文書検索部19は、クライアント端末30または画像形成装置40から文書検索要求を受けた場合に、図19の例の手順の処理を開始する。
まず、文書検索部19の文書関連度算出部190は、文書検索要求に含まれる指定文書の文書IDに対応づけて文書DB12に登録された関連文書の文書IDおよびログ関連度の合計の組を文書DB12から取得し、取得した文書IDおよびログ関連度の合計の組を直接関連リストに登録する(ステップS3)。文書DB12が図17の例のデータ内容を含むとし、指定文書の文書IDが「40ffaaa4-0fb6-4634-85bf-bba45bc941b5」であるとすると、ステップS3で直接関連リストに登録されるのは、当該文書IDの関連文書の文書IDおよびログ関連度の合計の組:(197a4aeb-db25-f017-0079-bb8c73cb2d65,30)および(3D367908-928F-3C13-8B93-5E1718820F6D,4)である。
次に、直接関連リスト中の各文書IDに対応づけられた関連文書の文書IDのうち、指定文書の文書ID以外のものを間接関連リストに登録する(ステップS5)。図17に例示する文書ID「197a4aeb-db25-f017-0079-bb8c73cb2d65」,「3D367908-928F-3C13-8B93-5E1718820F6D」が直接関連リストに登録される上述の例の場合、「197a4aeb-db25-f017-0079-bb8c73cb2d65」については、この文書IDに対応づけられた関連文書の文書IDのうち、指定文書の文書IDでないもの「80229D66-528B-4A90-AD80-6FB9927058D3」と、対応するログ関連度の合計「13」が文書DB12から取得され(図17参照)、間接関連リストに登録される。また、直接関連リスト中のもう1つの文書ID「3D367908-928F-3C13-8B93-5E1718820F6D」についても同様に、指定文書の文書IDの他の関連文書の文書IDおよびログ関連度の合計が文書DB12から取得され(図17には図示しない)、間接関連リストに登録される。
以上のステップS3,S5によって得られる直接関連リストおよび間接関連リストは、第一実施形態に関して図11を参照して説明した手順においてステップS12までの処理が終了した時点で得られる直接関連リストおよび間接関連リストと同様のものとなる。
なお、図19の例では、直接関連リスト中の文書に直接的に関連する文書を、指定文書に間接的に関連する文書として間接関連リストに登録しているが、これに加えて間接関連リスト中の文書に直接的に関連する文書が存在する場合は、それらの文書も間接関連リストに登録するようにしてもよい。この場合、それらの文書も含めてログ関連度を算出して間接関連リストに登録するようにすればよい。
ステップS5の後、文書関連度算出部190は、図13を参照して説明した図11のステップS14と同様の処理により、直接関連リストおよび間接関連リストに含まれる各文書IDの文書と、指定文書と、の間の文書関連度を算出する(ステップS14)。
ステップS14の後、文書検索部19の結果送信部192は、文書検索要求を行ったクライアント端末30または画像形成装置40に対し、ステップS14の算出の結果を検索結果として送信する(ステップS16)。この結果送信処理も図11のステップS16と同様の処理であってよい。ステップS16の後、図19の例の手順の処理は終了する。
なお、図19のステップS16で結果送信部192が送信した検索結果を受信したクライアント端末30または画像形成装置40における処理は、第一実施形態に関して説明した例と同様であってよい。
以下、第二実施形態の変形例を説明する。以上で説明した第二実施形態の処理の例では、ログDB22に新たなログが1つ登録される度に、ログ管理サーバ20において図18の例の手順の処理が実行される。変形例の処理では、予め定められた時間間隔で、その時間の間にログDB22に新たに登録されたログのそれぞれに対し、図18の例の手順の処理を実行してもよい。あるいは、例えば、システムの管理者などにより指示されたタイミングで、ログDB22中のログレコードのうち未処理のものについて図18の例の手順の処理を実行してもよい。
他の変形例では、文書DB12において関連文書の文書IDに対応づけてログ関連度の合計を登録する代わりに、検索条件DB24において検索条件に対応づけられたログ関連度と、当該ログ関連度の検索条件が満たされた回数と、を登録しておいてもよい。図20は、本変形例の場合の文書DB12のデータ内容の例である。図20の表は、「関連文書」の項目の下位項目として、「ログ関連度合計」の代わりに、「頻度」および「ログ関連度」を含む点の他は、図17の例の表と同様である。「ログ関連度」は、検索条件DB24において検索条件に対応づけられたログ関連度の値を表す。「頻度」は、対応する「文書ID」と「関連文書」の「文書ID」との組に関し、対応する「ログ関連度」の値に対応づけられた検索条件を満たすログレコードの組が検索された回数を表す。例えば、図20の表における文書ID「40ffaaa4-0fb6-4634-85bf-bba45bc941b5」と関連文書の文書ID「197a4aeb-db25-f017-0079-bb8c73cb2d65」との組を参照すると、ログ関連度「2」の頻度は「15」であり、ログ関連度「1」の頻度は「0」である。これは、ログ管理サーバ20の関連文書検索部29の処理において、この文書IDと関連文書の文書IDとの組に関し、検索条件DB24においてログ関連度「2」に対応づけられた検索条件を満たすログレコードの組がログDB22から検索された回数が「15」回であり、ログ関連度「1」に対応づけられた検索条件を満たすログレコードの組が検索された回数が「0」回であったことを表す。
図20を参照する変形例におけるログ管理サーバ20の関連文書検索部29は、図18の例の手順において、ステップS46(満たされた検索条件のログ関連度をログ関連度合計Sに加算)の代わりに、注目ID、ステップS44で選択したログレコード中の文書IDX、および満たされた検索条件のログ関連度の値の組に対応づけられたカウンタの値を1だけ増加させる処理を行えばよい。これにより、検索条件に対応づけられたログ関連度の値ごとに、注目IDのログレコードとの間で検索条件を満たすログレコードが検索された回数が求められる。また、ステップS66では、ログ関連度の合計を文書管理サーバ10の文書DB12に登録する代わりに、注目IDおよび文書IDXの組に対応するレコードにおいて、各ログ関連度に対応する頻度の値を更新すればよい。頻度の値の更新は、例えば、文書管理サーバ10の関連文書登録部18において、文書DB12中の該当のレコードに登録済みの頻度の値に、ログ管理サーバ10から受信した頻度の値を加算することで行われる。
また、図20を参照する変形例において、文書管理サーバ10の文書検索部19に含まれる文書関連度算出部190は、2つの文書の間のログ関連度の合計を求める際に、例えば、当該2つの文書の文書IDの組(文書IDと関連文書の文書IDとの組)を含む文書DB12中のレコードを参照し、「ログ関連度」の各値と対応する「頻度」の各値との積を求め、求めた積の和を当該2つの文書間のログ関連度の合計とする。また、本変形例において、文書検索部19は、文書DB12中の「ログ関連度」および「頻度」の値を用いて、指定文書の関連文書の表示の優先順位を求めることもある。例えば、複数の関連文書について、文書関連度算出部190が算出した、指定文書との間の文書関連度が同一の値である場合、文書検索部19は、これらの複数の関連文書の「ログ関連度」および「頻度」の各値を文書DB12から取得される。そして、これらの複数の関連文書のうち、最大の「ログ関連度」に対応づけられた「頻度」の値が大きい文書ほど、検索結果の表示における優先順位を高く設定する。設定された優先順位は、結果送信部192により、検索結果(関連文書の文書IDおよび指定文書との間の文書関連度)と共に、文書検索要求の要求元のクライアント端末30または画像形成装置40に対して送信される。
なお、上述の第一実施形態、第二実施形態、およびこれらの実施形態の各種の変形例において、検索結果の文書を表示させるときに、既存のDRM(Digital Rights Management)技術を用いて、検索結果の文書に対するアクセス権を持たないユーザに対しては、その文書の文書内容を表示させないようにしてもよい。
また、以上の説明では、文書検索部の検索結果として得られる指定文書の関連文書の文書IDを、文書検索要求の要求元のクライアント端末30または画像形成装置40に送信する。第一実施形態および第二実施形態のいずれにおいても、文書検索部は、関連文書の文書IDを基に文書管理サーバ10の文書DB12を参照して関連文書の文書内容を取得し、取得した文書内容を要求元のクライアント端末30または画像形成装置40に送信してもよい。
以上で説明した文書管理サーバ10およびログ管理サーバ20は、典型的には、汎用のコンピュータにて上述の各装置の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図21に示すように、CPU(中央演算装置)90、メモリ(一次記憶)91、各種I/O(入出力)インタフェース92等がバス93を介して接続された回路構成を有する。また、そのバス93に対し、例えばI/Oインタフェース92経由で、HDD(ハードディスクドライブ)94やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ95が接続される。このようなドライブ94又は95は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、HDD94等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。
なお、以上では、文書管理サーバ10およびログ管理サーバ20のそれぞれを1台のコンピュータで実現するものとして説明した。しかしながら、文書管理サーバ10およびログ管理サーバ20のそれぞれの機能を、複数台のコンピュータに分散させて実現してもよい。あるいは、文書管理サーバ10およびログ管理サーバ20の両方の機能を1台のコンピュータに実現してもよい。