(57)【要約】【課題】  複数のデータベースを対象に文書検索を行うにあたり、短時間で適切な検索結果を適当量出力させることが可能な検索技術を提供する。【解決手段】  複数のデータベースを対象に文書の検索を行う情報処理装置であって、前記複数のデータベースのうち任意のデータベースに格納された文書を検索する手段（１１１）と、前記複数のデータベースに格納された文書へのアクセス情報を記録する手段（１０８）と、前記アクセス情報を用いて、前記手段（１１１）により検索された文書とアクセス順序の近い文書を抽出し、該アクセス順序に基づいて、前記手段（１１１）により検索された文書との関連度を算出する手段（１１２）と、前記手段（１１１）により検索された文書と、前記手段（１１２）により関連度の算出された文書とを検索結果として出力可能な手段（１１３）とを備える。【選択図】  図１
2006048536.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースを対象に文書の検索を行う情報処理装置であって、
前記複数のデータベースのうち任意のデータベースに格納された文書を検索する検索手段と、
前記複数のデータベースに格納された文書へのアクセス情報を記録する記録手段と、
前記アクセス情報を用いて、前記検索手段により検索された文書とアクセス順序の近い文書を抽出し、該アクセス順序に基づいて、前記検索手段により検索された文書との関連度を算出する算出手段と、
前記検索手段により検索された文書と、前記算出手段により関連度が算出された文書とを検索結果として出力可能な出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記検索手段により検索された文書を編集中に前記アクセス順序の近い文書へのアクセスがあったことを示すアクセス情報が前記記録手段により記録されていた場合には、前記算出手段は、所定の重み付けをして前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検索手段により検索された文書と前記アクセス順序の近い文書との間で複製が行われていた場合には、前記算出手段は、所定の重み付けをして前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記記録手段は、前記アクセス情報をＸＭＬ形式で記録することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記算出手段は、前記アクセス順序の近い文書のうち、前記検索手段により検索された文書へのアクセスから、一定時間内にアクセスされた文書について前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記算出手段は、前記アクセス順序の近い文書のうち、前記検索手段により検索された文書へのアクセスから、一定時間経過後にアクセスされた文書について所定の重み付けをして前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記算出手段は、前記アクセス順序の近い文書のうち、同一利用者によってアクセスされた文書について前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記算出手段は、前記アクセス順序の近い文書へのアクセスを行った利用者に応じて、所定の重み付けをして前記関連度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記任意のデータベースはユーザにより選択可能であることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
複数のデータベースを対象に文書の検索を行う文書検索方法であって、
前記複数のデータベースのうち任意のデータベースに格納された文書を検索する検索工程と、
前記複数のデータベースに格納された文書へのアクセス情報を記録する記録工程と、
前記アクセス情報を用いて、前記検索工程により検索された文書とアクセス順序の近い文書を抽出し、該アクセス順序に基づいて、前記検索工程により検索された文書との関連度を算出する算出工程と、
前記検索工程により検索された文書と、前記算出工程により関連度の算出された文書とを検索結果として出力可能な出力工程と
を備えることを特徴とする文書検索方法。
【請求項１１】
請求項１に記載の文書検索方法をコンピュータによって実現させるための制御プログラムを格納した記憶媒体。
【請求項１２】
請求項１に記載の文書検索方法をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の管理技術に関し、特に、複数のデータベースを対象に電子文書の検索を行う検索技術に関するものである。
【背景技術】
【０００２】
企業や公官庁のオフィスにおいては、オフィス環境のネットワーク化、デジタル化が進展しつつあり、様々な文書をワードプロセッサソフトウェアや、スプレッドシートソフトウェア、プレゼンテーションソフトウェア等のソフトウェアを利用して、電子文書として保管している。また、紙文書をスキャナ等のデバイスによって電子文書に変換して、保管することも行われている。
【０００３】
このようにオフィスでは多くの電子文書を保管する必要があり、このため、多くのオフィスでは文書管理システムを導入して、電子文書の効率的な管理を図っている（例えば、特許文献１参照）。
【特許文献１】特開２０００−３１５２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一つのデータベースで扱える文書数には限界があり、登録文書数が増大した場合には、データベースを分割し、複数のデータベースに分けて管理することとなる。また、莫大な文書数を対象に検索を行うと、検索効率が悪化する（検索時間がかかる）ことから、分散データベース環境を用意する場合もある。さらに、当初より文書管理システムの運用方針として、部署単位にデータベースを分割したり、文書の種類毎にデータベースを分割して運用する場合もある。このため、文書管理システムにおける電子文書の検索にあたっては、複数のデータベースを対象に行うことを考慮しておくことが重要となる。
【０００５】
ここで、分散された複数のデータベースの検索を行う文書管理システムとしては、例えば図３に示すシステムが考えられる。同図において、３０１〜３０３は文書管理サーバ、３０５はクライアントであり、相互にネットワーク３０４を介して接続されている。なお、同図においては説明を簡単にするために文書管理サーバとデータベースとが１：１に対応しており、また、ボリュームサーバは省略してある。
【０００６】
かかる文書管理システムにおいて、クライアント３０５から検索指示をした場合、各文書管理サーバはそれぞれのサーバに接続されたデータベースを対象として検索を行い、クライアント３０５では、各文書管理サーバでの検索結果をひとまとめにしたものを最終的な検索結果としてユーザに表示していた。しかしながら、このような検索方式を用いて複数のデータベースの検索を行う場合、以下のような問題がある。
【０００７】
まず、上記文書管理システムにおいて各データベースに対する各文書管理サーバの検索を逐次行っていくように構成すると、検索処理に要する時間が検索対象データベース数に応じて増大してしまう。一方、各文書管理サーバ３０１、３０２、３０３がそれぞれ並列に検索を行うよう構成した場合には、かかる問題は回避可能であるものの、検索処理時間の最もかかるデータベースからの検索結果を待たなければならず、処理時間の短縮には限界がある。
【０００８】
更に、各データベースごとに検索時のスコアリングの基準（スコアリングアルゴリズム）が異なっていた場合には、最終的な検索結果をクライアント３０５に表示するにあたり、スコアに応じて単純に結合してしまうと、適切なランキング（最終的な検索結果）が得られなくなってしまう。加えて、データベースの数が多い場合には、最終的な検索結果の数も増大してしまう（たとえば、１０のデータベースに接続している環境では、１つのデータベースから１００件の検索結果を受け取ると、最終的な検索結果が１０００件表示されることとなる）。
【０００９】
このように、複数のデータベースを対象に検索を行うにあたり、従来の検索方式を用いた場合、第一に検索対象のデータベースの増加に伴って処理時間が増大し、第二に最終結果として適切な結果が得られない場合があり、第三に検索対象のデータベースの増加に伴って最終結果が増大してしまうという問題がある。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、複数のデータベースを対象に文書検索を行うにあたり、短時間で適切な検索結果を適当量出力させることが可能な検索技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
複数のデータベースを対象に文書の検索を行う情報処理装置であって、
前記複数のデータベースのうち任意のデータベースに格納された文書を検索する検索手段と、
前記複数のデータベースに格納された文書へのアクセス情報を記録する記録手段と、
前記アクセス情報を用いて、前記検索手段により検索された文書とアクセス順序の近い文書を抽出し、該アクセス順序に基づいて、前記検索手段により検索された文書との関連度を算出する算出手段と、
前記検索手段により検索された文書と、前記算出手段により関連度が算出された文書とを検索結果として出力可能な出力手段とを備える。
【発明の効果】
【００１２】
複数のデータベースからなる分散データベース環境において文書検索を行うにあたり、短時間で適切な検索結果を適当量出力することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、必要に応じて添付図面を参照しながら本発明の各実施形態を詳細に説明する。
【００１４】
［第１の実施形態］
＜文書管理システムの構成＞
図２は、本発明の一実施形態にかかる情報処理装置（文書管理サーバ）を備える文書管理システムの構成を表す図である。同図において、２０１は文書管理サーバであり、データベース２０２を有している。文書管理サーバ２０１は、文書管理システム内での保管場所や、実文書データの保存場所、作成日、更新日、所有者などの文書属性、ユーザの操作やアクセスを記録しているログをデータベース２０２に保持している。２０３は、文書ボリュームサーバであり、文書の実データが保管される。ここに保管されたデータは、圧縮処理が施され効率的に保管される。ネットワーク２０４によって、クライアントＰＣ２０５や２０６と文書管理サーバ２０１、文書ボリュームサーバ２０３が接続される。クライアントＰＣ２０５、２０６から、ここには図示していない文書管理クライアントソフトウェアを通じて、サーバに文書データを保管したり、サーバから文書データを取得したりする。
【００１５】
例えば、クライアントＰＣ２０５から文書管理システムに文書データを登録する場合について説明する。クライアントＰＣ２０５上で、文書管理クライアントソフトウェアを起動して、文書管理サーバ２０１と接続する。文書管理システム内のフォルダを指定して、文書管理クライアントソフトウェアに対して文書データ登録指示を行うと、文書管理サーバ２０１は、フォルダに対するアクセス権があるか、当該文書を格納するだけの容量があるかなど文書登録を許可できるかを判定し、登録できる場合には、当該文書の作成日、更新日、所有者などの属性情報を文書管理サーバ２０１内のデータベース２０２に格納し、当該文書の実データを文書ボリュームサーバ２０３に格納する。このとき、実文書データの文書ボリュームサーバ２０３の保存場所が、文書管理サーバ２０１に通知され、この情報も保存される。更には、文書登録を行ったと言う記録もログとして保持される。また、クライアントＰＣ２０５上で、文書管理クライアントソフトウェアを介して文書ボリュームサーバ２０３から選択した文書を取得し、前記文書に対応するアプリケーションソフトウェアによって、編集することも可能である。前記文書を編集後は、更新された文書データが、前記文書ボリュームサーバ２０３に格納され、前記文書管理サーバ２０１に更新された情報が通知され、管理情報が更新される。
【００１６】
さらに、登録された文書に対して全文検索を行うためのインデックス作成を実行するため、光学的文字認識（ＯＣＲ）を用いてテキストを抽出したり、アプリケーションソフトウェアから直接テキストを抽出したりして全文検索の準備を行ってもよい。また、これらのテキスト抽出のタイミングは、文書登録時も構わないし、スケジューラで夜間等に一括して行っても構わない。
【００１７】
また、文書管理システムに更新される前の文書を保存しておくバージョン管理の仕組みを持つことができる。これは、指定された回数分の更新前の情報をデータベースに保持しておくものである。バージョン管理を行う場合は、複数の更新前の実文書と最新の実文書とを前記文書ボリュームサーバ２０３に格納し、前記文書管理サーバ２０１に当該文書に関するバージョン情報が記録される。また、文書登録時に文書の縮小画像を表示するためのサムネイルを生成するような仕組みがあってもよい。
【００１８】
文書管理システムには、多数の利用者によって多くの文書が登録されるため、文書を検索できる仕組みを具備している。検索方法としては、文書の名称、作成者、作成日、更新者などの文書の属性情報による検索、先に述べた画像から光学的文字認識による画像のテキスト化やアプリケーションソフトウェアにより生成された文書から直接テキストを抽出することによって作成されたインデックス情報に基づく全文検索などがある。利用者は、自分の求める文書を効率よく探索するために文書管理システムに用意されているこのような検索の仕組みを利用する。
【００１９】
文書管理サーバ２０１にあるデータベース２０２には、各文書に対する文書名等の属性情報、および全文検索のためのインデックス情報が格納されている。検索を行う際には、たとえば、リレーショナルデータベースであればＳＱＬによってデータベース２０２に対して検索を実行する。また、検索においては、検索キーの重要度に従って重み付けを行ったり、文書中に出現するキーワード数を計測したりしてスコアリングを行い、ランキングを決定する。
【００２０】
＜文書管理クライアントソフトウェア＞
図４は、文書管理クライアントソフトウェアの画面構成の一例である。ここで、本実施形態で説明する文書管理システムでは、文書の管理体系を複数のキャビネット、キャビネット内に複数のフォルダ、フォルダの中に複数の文書を保持しているものとする。また、フォルダは、内部に更にフォルダを持ってもよい。なお、図４中のキャビネットとはデータベースと同義であり、各キャビネット４０２，４０３は別々のデータベースで管理されている。
【００２１】
４０１は、前述した文書管理体系に基づいたツリー構造でのアクセスを行うためのビューを提供する。４０２や４０３は、キャビネットであり、内部に更にフォルダを含む。４０２は、キャビネットが閉じている状態であり、４０３はキャビネットが開いている状態を表す。閉じている場合は、キャビネットの横に「＋」が表示され、開いている場合は、キャビネットの横に「−」が表示される。この仕組みは、フォルダについても同様である。開いているキャビネットは、内部のフォルダが表示され、４０４のように表示される。表示欄４０５は、ビュー４０１においてキャビネットを選択した場合は、該キャビネット内に含まれるフォルダ一覧が表示され、フォルダを選択した場合は、そのフォルダに含まれる文書やフォルダが表示される。このときの表示方法は、表示欄４０５のように文書に対してサムネイルを表示し、フォルダはアイコン表示する形式であっても構わないし、あるいは、図示していないが、文書名やサイズ、ページ数、更新日など文書に付随する情報と共にリスト表示してもよい。また、その複合であってもよい。
【００２２】
また、表示欄４０５内の文書４０６を対応するアプリケーションを用いて開き、編集することが可能である。対応するアプリケーションとは、例えば、ワープロ文書であれば、対応するワープロアプリケーション、表計算文書であれば、対応する表計算アプリケーションを用いて編集する。ここで、文書とアプリケーションとの対応付けは、公知の技術であるオペレーティングシステムによるファイル名の拡張子とアプリケーションの対応付けの機能を利用することができる。
【００２３】
文書４０６を対応するアプリケーションで編集後に、文書管理クライアントソフトウェアでは、例えば、図５の確認のメッセージが表示される。利用者は、新規文書として保存（５０１）、文書を更新する（５０２）、更新をキャンセルする（５０３）の中から編集後の文書に対する処理を選択することができる。５０１を選択した場合には、文書管理システムの前記文書ボリュームサーバ２０３、前記文書管理サーバ２０１に新たに別文書として登録される。５０３を選択した場合は、更新処理を破棄し、文書の編集が無かったこととする。すなわち、文書の変更が、前記文書ボリュームサーバ２０３、前記文書管理サーバ２０１に反映されない。５０２を選択した場合は、変更後の文書に前記文書ボリュームサーバ２０３が置き換えられ、前記文書管理サーバ２０１に編集後の情報が格納される。
【００２４】
＜文書管理サーバの機能構成＞
図１は、本発明の一実施形態にかかる情報処理装置（文書管理サーバ）の機能構成を説明するためのブロック図である。キーボードやマウスなどのユーザ入力装置１０１から文書管理システムに文書の登録、削除、編集等文書に関わる操作の指令を与えると、ユーザ指示部１０２では当該指令を受けて、文書アクセス部１０５に制御を移す。また、検索の指示を与えた場合は、ユーザ指示部１０２で指令を受けて、検索部１０６に制御を移す。
【００２５】
はじめに文書登録処理について説明する。キーボードやマウスなどのユーザ入力装置１０１で登録対象の文書を選択し、登録の指示を与えると、ユーザ指示部１０２で指令を受けて、入力デバイス１０３から指定された文書が文書アクセス部１０５へ入力される。なお、入力デバイス１０３は、スキャナやデジタル複写機等の実機デバイスだけでなく、オペレーティングシステムのファイルシステムなどの仮想的なデバイスも含むものとする。文書アクセス部１０５は、ユーザの指示したデータベースにデータベース選択部１０７において、アクセス対象の文書管理データベース１１０および実文書データベース１０９を選択する。文書アクセス部１０５は、入力デバイス１０３より入力された文書を実文書データベース１０９へ格納し、実文書の保管場所、ユーザ情報、日付情報などの属性情報を文書管理データベース１１０に格納する。
【００２６】
なお、全文検索用のテキストのインデックス作成は、インデックス作成部１１４で行われる。インデックス作成部１１４では、イメージ文書であれば光学的文字認識（ＯＣＲ）を実行したり、アプリケーション文書であればその中から文字を抽出したりして、テキスト化を行って全文検索用のインデックスを作成して、文書管理データベース１０９に格納する。このインデックス作成部１１４の呼び出しは、文書登録時でも構わないし、スケジューラ等によって、文書管理システムがあまり利用されない夜間等の時間帯に行うようにしてもよい。
【００２７】
次に文書削除処理について説明する。キーボードやマウスなどのユーザ入力装置１０１で削除対象の文書を選択し、削除の指示を与えると、ユーザ指示部１０２で指令を受けて、文書アクセス部１０５に削除の指示が伝える。文書アクセス部１０５は、指定した文書が格納されているデータベースをデータベース選択部１０７で決定し、文書管理データベース１１０から文書の保管場所である実文書データベース１０９とその内部の位置を取得し、文書管理データベース１１０から当該文書情報を削除する。それとともに、取得した実文書データベース１０９の取得した位置にある当該文書の実文書データを削除する。
【００２８】
次に文書編集処理について説明する。文書管理システムにおける、文書の編集は、チェックアウト、チェックインの２つの指示によって制御される。つまり、文書の編集を行う場合は、キーボードやマウスなどのユーザ入力装置１０１で編集対象の文書を選択し、編集の指示を与えると、ユーザ指示部１０２で指令を受けて、文書アクセス部１０５にチェックアウトの指示が伝えられる。文書アクセス部１０５では、データベース選択部１０７で編集対象文書の管理データが格納されている文書管理データベース１１０にアクセスして、当該文書をチェックアウト（編集中）状態とし、実文書を実文書データベース１０９から取得して、出力デバイス１０４に渡す。これにより、編集のためのアプリケーションが実行されている状態となり、利用者が当該文書を編集することが可能である。このとき、文書管理データベース１１０中の当該文書に対する状態は、チェックアウト状態であり、他の利用者が当該文書にアクセスを試みても、文書管理データベース１１０が処理を拒絶する。なお、全ての文書操作について拒絶するのでなく、たとえば、読み取り専用で開くことを許可するようにして、編集状態にできないとういように部分的な操作についてのみ拒絶する仕組みにしてもよい。
【００２９】
編集を終了すると、ユーザ指示部１０２から文書アクセス部１０５へ当該文書のチェックインが指示される。編集の終了については、ユーザが明示的に指示してもよいし、アプリケーションの終了を検知するような仕組みでもよい。文書アクセス部１０５は、当該文書の格納先である文書管理データベースの当該文書のチェックアウト状態を解除するのと同時に、変更された文書を入力デバイス１０３から取得し、実文書データベース１０９の文書を更新する（置き換える）。さらに、たとえば、更新者や更新日付等の更新後の文書に対する属性情報を文書管理データベース１１０において更新する。
【００３０】
次に文書検索処理について説明する。文書の検索を実行する場合は、ユーザ指示部１０２より検索の指示が検索部１０６へ送信される。検索部１０６では、指定されたデータベースに対してデータベース選択部１０７で検索を実行するデータベースを選択し、管理情報データベース１１０に対して検索を実行する。検索の種類は、属性毎が一致する検索であったり、全文検索であったり、複数の検索の方式を実行することができる。得られた検索結果を検索部１０６でユーザに見やすい形式に変換して、出力デバイス１０４に送る。検索として文書管理データベース１１０で行うとしてが、別にサーバを用意して、検索エンジンを搭載して利用してもよい。
【００３１】
なお、データベース選択部１０７から文書管理データベース１１０へアクセスがあったときには、ログ管理部１０８によって全てのアクセスについて監視され、ログとして操作履歴を文書管理データベース１１０に保存している。
【００３２】
図１において、文書管理データベース１１０と実文書データベース１０９は一つずつしか図示していないが、複数存在して、データベース選択部１０７で指示に応じた適当なデータベースが選択されるようにしてもよい。
【００３３】
＜データベースの構成＞
図６を用いて、本発明の一実施形態にかかる文書管理サーバが備えるデータベース２０２の一例について説明する。図６は、３つの文書管理データベース（キャビネット）６０１、６０２、６０３からなり、各データベースには、それぞれ２つの文書情報が格納されている。文書管理データベース６０１には、文書Ａ（６０４）、文書Ｂ（６０５）、文書管理データベース６０２には、文書Ｃ（６０６）、文書Ｄ（６０７）、文書管理データベース６０４には、文書Ｅ（６０８）、文書Ｆ（６０９）の文書情報が格納されている。あるユーザが文書をＢ→Ｅ→Ｃ→Ｄの順番でアクセスを行ったとする（６１０）。このとき、特定の文書の次に開かれた文書を当該特定の文書に関連する可能性がある文書（関連文書）として、文書管理データベース１１０に格納されている各文書毎に持つ「関連文書アクセス情報」に記録する。
【００３４】
＜関連文書アクセス情報＞
図７に「関連文書アクセス情報」の一例を挙げる。各文書に対するアクセスがあった後アクセスされた文書がユーザ毎に記録される。なお、以下では関連文書アクセス情報をＸＭＬ形式で記録するものとして説明する。
【００３５】
７０１は、ルート要素であり関連文書を表している。このルート要素以下に、各ユーザのアクセス情報が記録される。ここでは、簡便に説明するためＸＭＬ宣言は省略している。図７においては、７０２と７０５がユーザ毎の情報となる。なお、図７の例では、同一ＸＭＬ内に複数ユーザのアクセス情報を記録しているが、ユーザ毎に別々のデータとして持っても構わない。ここで、７０２は、ユーザに関する情報を表すタグであり、ｉｄ属性とｇｒｏｕｐ属性を持つ。ｉｄ属性には、ユーザを識別するための固有の値であるユーザＩＤが入り、ｇｒｏｕｐ属性は、同じくユーザが属するグループを識別するための固有の値（グループＩＤ）が入る。７０５はユーザＩＤが０３５２１である別のユーザのアクセス情報である。７０３、７０４は関連文書に関する情報であり、このＤｏｃｕｍｅｎｔ要素のｏｒｄｅｒ属性が当該文書から数えて何番目にアクセスされたかを示す。たとえば、７０３は、ｏｒｄｅｒが１なので、この文書を開いた次にアクセスされたことになり、７０４は、ｏｒｄｅｒが２なので、さらに７０３の次にアクセスされたことになる。
【００３６】
なお、ここで述べているアクセスとは文書を開くことを表しているが、その他の操作（たとえば、属性の確認など）に対して記録を行うようにしてもよい。
【００３７】
Ｄｏｃｕｍｅｎｔ要素７０３、７０４には、ｏｒｄｅｒ以外に、ｎａｍｅ属性、ｉｄ属性、ｄａｔａｂａｓｅ属性、ｄｂｎａｍｅ属性、ｄａｔｅ属性、ｔｉｍｅ属性がある。ｎａｍｅ属性は文書名が記録され、Ｄｏｃｕｍｅｎｔ属性のｉｄ属性は文書を一意に決めるための値（文書ＩＤ）が記録され、ｄａｔａｂａｓｅ属性には、文書管理データベースの所在が示される。ここでは、一例としてＩＰアドレスを用いているがこの限りでなく、データベースを指定できるものであれば構わない。たとえば、ＩＰアドレスの代わりにデータソースネーム（ＤＳＮ）を用いてもよい。データベースとそのデータベース内での文書ＩＤが一意に決まると文書を特定できる。ｄｂｎａｍｅ属性は、データベースの名称であり、ｄａｔｅ属性、ｔｉｍｅ属性には、それぞれの文書をアクセスした日付と時間が記録される。また、ｏｒｄｅｒ属性が０であるＤｏｃｕｍｅｎｔ要素７０６は、当該文書に関する情報であり、アクセスした日付（ｄａｔｅ属性）と時間（ｔｉｍｅ属性）のみが記録されている。
【００３８】
なお、図７の例ではＸＭＬ形式で記述しているが、この限りでなく他のフォーマットでも構わない。また、当該文書に対するアクセスの後にアクセスされた文書２回分について記録しているが、さらに記録回数を増やしてもよいし、１回分だけ記録するようにしてもよい。また、当該文書に対するアクセス後だけでなく、アクセス前にアクセスしたものを記録するようにしてもよい。たとえば、図８の例では８０１の枠線部分のｏｒｄｅｒが−１となっている。ｏｒｄｅｒがマイナスのものは、当該文書に対するアクセスよりも前にアクセスされたものであるｋとを示している。
【００３９】
ここでアクセス情報の記録であるが、先に説明した図１において、全ての文書に対するアクセス記録がログ管理部１０８により監視され、ログ（ユーザ別アクセスリスト）として記録されている。このログ情報から、図７の関連文書に関する情報で必要な情報を取得する。ログ情報がユーザ毎に全て記録されているため、図８に示したような当該文書に対するアクセスよりも前にアクセスされた文書の情報なども取得することが可能となる。
【００４０】
「関連文書アクセス情報」は、文書管理データベース１１０に当該文書の属性情報として記録される。なお、上述のように記録にあたっては拡張性を持つＸＭＬが用いられるため、データベース構造を大きく変更することなく関連文書アクセス情報を持つことが可能となる。ただし、関連文書アクセス情報は、文書の属性情報としてではなく、専用のテーブルなどを設けて記録するようにしてもよいことはいうまでもない。
【００４１】
＜ユーザ別アクセスリスト＞
データベース選択部１０７では、ユーザ毎にアクセスした文書を記録している。このユーザ毎に記録される文書へのアクセス情報が、「ユーザ別アクセスリスト」であり、ＸＭＬ形式を利用して記録することができる。ただし、ＸＭＬに限るものではなく、他のフォーマットによって記録してもよい。「ユーザ別アクセスリスト」のルート要素は、ＡｃｃｅｓｓＵｓｅｒであり、ユーザを識別するユーザＩＤを指定するｉｄ属性とユーザが属するグループを識別するグループＩＤを指定するｇｒｏｕｐ属性とからなる（図７の７０２と同様）。その中には、アクセスの情報が、アクセスした文書順に記録される。このアクセスした文書の情報は、先に説明した図７の７０３，７０４と同様の情報（該ユーザがアクセスした順序を示すｏｒｄｅｒ属性と、ｎａｍｅ属性、ｉｄ属性、ｄａｔａｂａｓｅ属性、ｄｂｎａｍｅ属性、ｄａｔｅ属性、ｔｉｍｅ属性）を持つため、内容の詳細については、図７を参照されたい。
【００４２】
つまり、図７で説明した「関連文書アクセス情報」は、当該文書を中心として、ユーザが前後にアクセスした文書（とその順番）を記録したものであり、「ユーザ別アクセスリスト（ログ情報）」は、ユーザを中心として、アクセスした文書（とその順番）が記録されているものである。したがって、たとえば、関連文書アクセス情報を作成する際は、ユーザがアクセスした絶対的な順番を示すユーザ別アクセスリストのｏｒｄｅｒ属性を、文書を中心とした前後の相対的な順番を示す関連文書アクセス情報でのｏｒｄｅｒ属性に変更すれば、関連文書アクセス情報が容易に作成できる。
【００４３】
以下、本実施形態の説明として、「関連文書アクセス情報」とは、対象としている特定のユーザの情報のみを表すものとする。即ち、特定ユーザのＡｃｃｅｓｓＵｓｅｒ要素部分を対象とし、他ユーザに関する部分は対象外とする。
【００４４】
また、上述したユーザ別アクセスリストにおいては、単一ユーザの情報であり、複数ユーザがいる場合はユーザ別アクセスリストを複数持つ必要がある。複数ユーザをまとめて一つのアクセスリストで管理するような管理体系にしてもよい。
【００４５】
なお、この「ユーザ別アクセスリスト」での順番の記録は、先に図４において説明した文書管理クライアントソフトウェアの起動中を範囲として記録する。たとえば、文書管理クライアントソフトウェアを起動して、Ｂ→Ｅ→Ｃ→Ｄの順番でアクセスし、一度、文書管理クライアントソフトウェアを終了する。その後、再度文書管理クライアントソフトウェアを起動して文書Ｆにアクセスしたとしても、前回起動時の最後にアクセスのあった文書Ｄまでを関連した文書として取り扱うこととし、文書Ｆは別のアクセス記録として記録されるものとする。ただし、一定時間内であれば、文書管理クライアントソフトウェアを再起動した場合に、アクセス記録を残すようにしてもよい。
【００４６】
＜関連文書アクセス情報の更新処理の流れ＞
図１０のフローチャートを用いて、文書アクセス時における「関連文書アクセス情報」の更新処理について説明する。まず、ステップＳ１００１において、ログ管理部１０８が文書ｎへのアクセスを検知した場合には、ステップＳ１００２へ進む。ステップＳ１００２では、ユーザＩＤ、文書名、データベース名、アクセス時間などのアクセスログ情報が、対応するユーザの「ユーザ別アクセスリスト」に記録される。なお、ログをデータベース自身に持つ場合は、各文書管理サーバがアクセス情報を記録する。
【００４７】
ステップＳ１００３では、後にアクセスされた文書を記録する設定になっているか判定される。記録する必要があれば、ステップＳ１００４へ進み、記録する必要がなければ、ステップＳ１０１０へ進む。ステップＳ１００４では、ｌｏｏｐにｘを代入している。ここで、ｘは、ｘ番後にアクセスされた文書まで記録する設定になっていることを表す。ステップＳ１００５では、「ユーザ別アクセスリスト」に文書ｎから数えてｌｏｏｐ番前の文書記録が存在するか確認する。存在する場合は、ステップＳ１００６へ進み、存在しない場合は、ステップＳ１００８へ進む。
【００４８】
ステップＳ１００６では、「ユーザ別アクセスリスト」で、文書ｎよりｌｏｏｐ番前の文書情報を取得する。ここで、文書情報とは、どの文書管理データベースに格納されているかについての情報と文書を識別するためのＩＤ等から構成される文書属性である。ステップＳ１００７では、ステップＳ１００６で取得した文書情報からｌｏｏｐ番前の文書の「関連文書アクセス情報」に対して、ｌｏｏｐ番後にアクセスされた文書として、文書ｎを記録する。ステップＳ１００８では、ｌｏｏｐから１を引いた値をｌｏｏｐに設定し直して、次の文書情報取得の準備を行う。
【００４９】
ステップＳ１００９では、ｌｏｏｐがゼロであるか確認する。ゼロでなければ処理すべき文書があるので、ステップＳ１００６に戻る。ゼロであればステップＳ１０１０へ進む。
【００５０】
ステップＳ１００４からステップＳ１００９までを図１１を用いて説明すると、１１０５がユーザ別アクセスリストを概念的に表した図であり、文書ｎ（１１０１）が最後にアクセスされたものであるとする。その前にアクセスされたものは、文書ｍ（１１０２）、更に前が文書ｌ（１１０３）、更にその前が文書ｋ（１１０４）とする。
【００５１】
ｘをたとえば２とすると、最初のステップＳ１１０６の実行では、文書ｌの情報が取得される。次のステップＳ１００６の実行では、文書ｍの情報が取得されることになる。文書ｌから見ると、文書ｎは、２番後（次の次）にアクセスされた文書となり、文書ｍから見ると文書ｎは次にアクセスされた文書となる。即ち、ステップＳ１００７でこの情報が、各文書ｌ、文書ｍの「関連文書アクセス情報」に対して、文書ｎが後にアクセスされた文書として記録される。
【００５２】
ステップＳ１０１０では、前にアクセスされた文書を記録する設定になっているか判定される。記録する必要があれば、ステップＳ１０１１へ進み、記録する必要がなければ、終了する。ステップＳ１０１１では、ｌｏｏｐにｙを代入している。ここで、ｙは、ｙ番前にアクセスされた文書まで記録する設定になっていることを表す。ステップＳ１０１２では、「ユーザ別アクセスリスト」に文書ｎから数えてｌｏｏｐ番前の文書記録が存在するか確認する。存在する場合は、ステップＳ１０１３へ進み、存在しない場合は、ステップＳ１０１５へ進む。
【００５３】
ステップＳ１０１３では、「ユーザ別アクセスリスト」で、文書ｎよりｌｏｏｐ番前の文書情報を取得する。ここで、文書情報とは、どの文書管理データベースに格納されているのかと文書を識別するためのＩＤ等文書属性である。ステップＳ１０１４では、文書ｎの「関連文書アクセス情報」に−ｌｏｏｐ番前にアクセスされた文書としてステップＳ１０１３で取得した文書と文書情報を記録する。ステップＳ１０１５では、ｌｏｏｐから１を引いた値をｌｏｏｐに設定し直して、次の文書情報取得の準備を行う。
【００５４】
ステップＳ１０１６において、ｌｏｏｐがゼロであるか確認する。ゼロでなければ処理すべき文書があるので、ステップＳ１０１２に戻る。ゼロであれば処理を終了する。
【００５５】
ステップＳ１０１０からステップＳ１０１６までを先程と同じく図１１を用いて説明する。ｙをたとえば２とすると、最初のステップＳ１０１３では、文書ｌの情報が取得される。次のステップＳ１０１３では、文書ｍの情報が取得されることになる。文書ｎから見ると、文書ｌは２番前（前の前）にアクセスされた文書となり、文書ｍは直前アクセスされた文書となる。即ち、ステップＳ１０１４では、文書ｎの「関連文書アクセス情報」に対して、前にアクセスされた文書として文書ｌ、文書ｍが記録される。
【００５６】
＜検索処理の概要＞
ここで、ユーザＩＤが００１１０のユーザがデータベース６０１に対して所望のクエリで検索を実行した例を図１、図６、図７を用いて説明する。ユーザ指示部１０２より検索の指示が検索部１０６へ送信される。検索部１０６中の検索実行部１１１が指定した文書管理データベース６０１を探索するためにデータベース選択部１０７に制御を移す。データベース選択部１０７は、文書管理データベース１１０（図６の６０１に相当）を選択し、文書管理データベース１１０に対して検索を実行させる。検索の方式は、文書属性による検索であっても全文検索であってもよい。検索した結果、文書Ｂがヒットし、検索のスコアが３００であったとする。ここでは、説明を簡潔にするために検索結果の文書が一つであるが、当然複数の検索結果であっても構わない。
【００５７】
文書管理データベース１１０は、検索結果（ヒットした文書と適合度を示すスコア）と共に各ヒットした文書の「関連文書アクセス情報」を出力する。これらの結果を検索結果処理部１１２が受け取る。
【００５８】
検索結果処理部１１２は、以下の処理を行い関連文書の関連度を算出する。図７の関連文書アクセス情報を用いて説明する。まず、「関連文書アクセス情報」から自身のユーザに関する情報を選択する。この場合は、ＡｃｃｅｓｓＵｓｅｒ要素のｉｄ属性が００１１０のものである。アクセス順が当該文書（文書Ｂ）の次のもの（ｏｒｄｅｒ属性が１：文書Ｅ）に対して、関連度を１０、その次のもの（ｏｒｄｅｒ属性が２：文書Ｃ）に対して５を割り当てる。なお、この関連度は任意の正の数であれば構わない。１０や５の関連度数値は一例として挙げているものでこの数値に限るものではない。また、後述する式（２）を用いても構わない。
【００５９】
さらに、検索結果処理部１１２は、求めた関連度から関連文書のスコアを計算する。まず、各関連文書の関連度を［０，１］内の値になるよう正規化する。本実施形態の場合は、ヒットした文書に関連する関連文書が２文書あり、関連度の合計が１０＋５＝１５であるので、正規化された関連度は、文書Ｅは１０／１５となり、文書Ｃは５／１５となる。更に、次の評価式を用いて、各関連文書に対するスコアを計算する。
【００６０】
【数１】
2006048536.tif 000003
【００６１】
文書Ｅに対しては、（３００×１０／１５）−１＝１９９となり、文書Ｃに対しては、（３００×５／１５）−１＝９９となる。ここで、ｉｎｔとは、切り上げ、切り下げ、四捨五入等整数を求める関数とし、適当な整数化方法のいずれかを用いるようにすればよい。なお、上記評価式で、１を引いているのは、正規化された関連度が［０，１］をとり、それに元文書（ヒットした文書）のスコアをかけているため、１を引くことで必ず元文書より下位にランクされるようにしている。検索結果処理部１１２は、ヒットした文書およびそのスコア、関連文書およびここで求められたスコアを検索結果整形部１１３へ送信する。検索結果整形部１１３では、スコアを元に検索結果をソートして整形し、出力デバイス１０４へ出力する。なお、関連度の算出、正規化の手法、および上記評価式（１）は、本実施形態を説明するための一例であって、他の評価式等を用いても構わない。
【００６２】
また、上記の例では、ヒットした文書が一つであった場合を例にして説明したが、複数の文書がヒットし、その複数のヒットした文書のいくつかに同一の関連文書が含まれる場合がある。たとえば、文書管理データベース１１０を検索した際に、上述した文書Ｂに加えて文書Ａもヒットしたとする。文書Ａのスコアが９０であり、文書Ａの直後にアクセスされた文書は文書Ｃ（関連度１０）、その次にアクセスされた文書は文書Ｆ（関連度５）とする。（１）の評価式を用いて、正規化された関連度を計算すると文書Ｃは（９０×１０／１５）−１＝５９、文書Ｆは、（９０×５／１５）−１＝２９となる。したがって文書Ｃが共に関連文書として含まれることになる。本実施形態では、同一の関連文書が出てきた場合は最も高いスコアを採用することとし、上述した例では文書Ｂに関連する文書としてスコア９９が採用される。なお、文書Ｃのスコアを求める方法としては、その他に、ｉ）低いスコアを採用する（この場合は５９）、ｉｉ）平均値をスコアとする（この場合は７９）といった方法を用いるようにしてもよい。更に、ユーザあるいは、文書管理システムの管理者がこれらの方法の中から所望の方法を選択できるようにしてもよい。
【００６３】
また、図８で説明したように当該文書に対して前後にアクセスした文書を記録するようにしている場合、アクセスした距離（ｏｒｄｅｒ属性の絶対値）で関連度を前後で同一にしてもよいし、前後で関連度に差を設けてもよい。アクセスの前後に依らず同一の関連度を与える場合は、たとえば、
【００６４】
【数２】
2006048536.tif 000004
【００６５】
のような式を用いることができる。ここで、ｉｎｔとは、切り上げ、切り下げ、四捨五入等整数を求める関数とする。適当な整数化方法を選択できる。アクセスの前後に依らず距離１の場合は１０、距離２の場合は５となる。アクセスの前後でこの関連度の式を変えることで、アクセスの前後によって関連度の値を変えることもできる。
【００６６】
またアクセス時間の間隔に応じて重み付けを行なって関連文書のスコアを算出するようにしてもよい。例えば「関連文書アクセス情報」にはｄａｔｅ属性とｔｉｍｅ属性があるため、関連度を求める際に、一定時間、あるいは一定日時アクセス間隔が空いているものを対象外とする。これは、時間が空いてアクセスした場合は、関連性が薄いことが考えられるためである。たとえば、ｄａｔｅ属性、ｔｉｍｅ属性からα時間以上アクセスが無かったものは関連文書対象外として例えば重み０を乗算し、β時間以上α時間未満の場合には、関連度を下げるように重み付けを行う（例えば重み０．５を乗算する）ようにする（α＞β）。
【００６７】
＜検索処理の流れ＞
図１２のフローチャートを用いて、単一データベースの検索結果（「一次検索結果一覧」）から関連文書が含まれる検索結果（「最終ヒットリスト」）を生成する方法について説明する。
【００６８】
ここで、「最終ヒットリスト」とは、検索を行ったデータベースの検索結果のみならず、検索結果の文書に関連する文書に対して、実際に検索された文書のスコアと関連文書の関連度から、擬似的なスコアを算出して、利用者に提示する最終的な検索結果一覧のことである。
【００６９】
ステップＳ１２０１では指定したデータベースの検索を実行する。検索の方式は属性による検索であっても構わないし、全文検索であっても構わない。検索の方式、手法は任意であってよい。ステップＳ１２０２では、指定したデータベースから「一次検索結果一覧」を取得する。
【００７０】
ステップＳ１２０２で取得される「一次検索結果一覧」の一例として、図１３のような文書ＩＤ（１３０１）、文書名（１３０２）、スコア（１３０３）からなるテーブル形式が挙げられる。検索にヒットした文書をスコアでソートされたものとなる。なお、テーブルに限らず、ＸＭＬ形式であったり、他の形式であったりしても構わない。
【００７１】
ステップＳ１２０３では、ステップＳ１２０１の検索結果が存在するか確認する。存在していない（ヒットした文書がない）場合は、関連文書の検索を行うことができないので、処理を終了する。存在している場合は、ステップＳ１２０４へ進み、ｎに１を代入する。
【００７２】
ステップＳ１２０５では、「一次検索結果一覧」のｎ番目の文書（以下、文書ｎ）に対する「関連文書アクセス情報」を取得する。ステップＳ１２０６では、文書ｎに対して関連するすべての文書の関連度を計算する。ステップＳ１２０７では、ステップＳ１２０６で求められた関連度を元にして、文書ｎとその関連文書を「最終ヒットリスト」に埋め込んでいく最終ヒットリスト合成処理が行われる。ステップＳ１２０８では、ｎに１が足される。
【００７３】
ステップＳ１２０９では、「一次検索結果一覧」中の全ての文書を処理したかチェックする。全ての文書の処理が完了していなければ、ステップＳ１２０５へ戻る。一方、全ての文書について処理が終わっていれば、終了する。なお、ステップＳ１２０６の関連度計算やステップＳ１２０７最終ヒットリスト合成処理についてのフローチャートは、後述する。
【００７４】
＜関連度算出処理の流れ＞
図１４のフローチャートを用いて、ステップＳ１２０６の関連度を求める処理について説明する。ステップＳ１４０１からステップＳ１４１０では、まず関連文書の関連度を求める。ステップＳ１４０１では、εに１を代入する。εは、関連度に付けられる重み付けである。ステップＳ１４０２では、先の図１２のステップＳ１２０５で求められた文書ｎの「関連文書アクセス情報」から、関連度を求めていない関連文書を選択する。なお、図１４のフローチャートには図示していないが、ステップＳ１２０５で求められた「関連文書アクセス情報」に関連文書が存在しない場合は、図１４の処理はスキップされる。
【００７５】
ステップＳ１４０３では、ステップＳ１４０２で選択した関連文書の文書情報のアクセス時間が関連文書の対象外となる一定時間以上であるか否か判定される。より具体的には、関連のベースとなる文書（ｏｒｄｅｒ属性がゼロの文書）とステップＳ１４０２で選択した文書のｄａｔｅ属性及びｔｉｍｅ属性とをそれぞれ比較して、一定時間以上の差があるか調べる。もし、一定時間以上経ってからアクセスされている場合は、ステップＳ１４０８へ進む。
【００７６】
ステップＳ１４０８では、関連度ｒをゼロとする（関連なしとする）。関連文書対象外となる時間が経っていなければ、ステップＳ１４０４へ進む。ステップＳ１４０４では、ステップＳ１４０２で選択した文書情報のアクセス時間が重み付け対象の時間になっているかを判定する。重み付け対象でなければ、ステップＳ１４０７へ進み、重み付け対象であれば、ステップＳ１４０５へ進む。
【００７７】
ステップＳ１４０５では、関連のベースとなる文書とステップＳ１４０２で選択した文書のアクセス時間の差に応じて、重み付けｐi（０＜ｐi＜１）が選択される。ここで、ｉはアクセス時間の差に応じたインデックスとする。ステップＳ１４０６では、εにｐiを代入する。
【００７８】
ここで、ステップＳ１４０３からステップＳ１４０６までのアクセス時間による重み付けについて、より具体的な例を挙げて説明する。関連文書のベースとなるヒット文書（ｏｒｄｅｒ属性がゼロの文書）のｄａｔｅ属性が“２００４−０６−２５”、ｔｉｍｅ属性が“１７：４８：０５  ＋９００”であるとする。例えば、１２時間を超えてアクセスが無かった文書を関連対象外とする場合には、ｄａｔｅ属性が“２００４−０６−２６”、ｔｉｍｅ属性が“９：２１：０２  ＋０９００”の文書が関連文書対象外となる。
【００７９】
また、重み付けがなされる関連文書では、図１５に示すようなアクセス時間差に応じてｐiを決めるテーブルを用意する。図１５のテーブルはその一例である。アクセス時間差が１時間を超えて２時間以下の場合の重み付けｐ1は０．９であり、同様に、アクセス時間差が２時間を超えて３時間以下の場合の重み付けｐ2は０．８、アクセス時間差が３時間を超えて６時間以下の場合の重み付けｐ3は０．５、アクセス時間差が６時間を超えて１２時間以下の場合の重み付けｐ4は０．１となる。１２時間を超える場合は、前述のように関連文書対象外となる。
【００８０】
ステップＳ１４０７では、ステップＳ１４０２で選択した文書の関連度ｒを求める。関連度を求めるためには、例えば、先に示した式（２）などを利用する。ステップＳ１４０９では、関連度ｒに重み付けεを乗じて、整数化したものを最終的に算出された関連度として、「関連文書アクセス情報」のステップＳ１４０２で選択した当該関連文書に登録する。ここで、整数化する関数ｉｎｔは、先に説明したものと同様である。
【００８１】
ステップＳ１４１０では、「関連文書アクセス情報」のすべての関連文書に対して、関連度を求める処理を行ったかを判定し、関連度を求める文書が残っていればステップＳ１４０１に戻り、すべての文書について処理していれば、ステップＳ１４１１に進む。
【００８２】
ステップＳ１４１１では、すべての関連文書の関連度の和を求め、Ｓｕｍに代入する。ここでは説明の簡便化のため省略しているが、ステップＳ１４１１の後にＳｕｍがゼロの場合は、関連文書が全く無かったことになるため、ステップＳ１４１２以下のステップは実行されない。
【００８３】
ステップＳ１４１２からステップＳ１４１４では、ステップＳ１４０１からステップＳ１４１０で求められた最終的な関連度に基づいて各関連文書のスコアを求める処理である。ステップＳ１４１２は、先の図１２のステップＳ１２０５で求められた「関連文書アクセス情報」から、スコアを求めていない関連文書を選択する。ここで、「関連文書アクセス情報」には、ステップＳ１４０９で関連度が登録されている。
【００８４】
ステップＳ１４１３では、関連文書のスコアを求め、ステップＳ１４１２で選択した当該文書の「関連文書アクセス情報」にスコアを登録する。一例として、式（１）を用いたものを説明する。関連文書の関連度ｒを関連文書情報から取得し、ｒをステップＳ１４１１で求めたＳｕｍで割ったものを整数化し、関連のベースとなる文書のスコアＳ０を乗じたものから一を引いたものをスコアとする。より具体的には、式（１）を説明している部分を参照されたい。
【００８５】
ステップＳ１４１４では、すべての関連文書に対して、スコアを求める処理を行ったかを判定し、スコアを求める関連文書が残っていればステップＳ１４１２に戻り、すべての関連文書について処理していれば、終了する。
【００８６】
図１４のフローチャートにおいては、検索でヒットした文書に対して同一の関連文書が存在する（関連文書アクセス情報に複数の同一文書が存在する）場合がある。たとえば、図１７に示すようなアクセス順序で「関連文書アクセス情報」が作成され、文書Ｂが検索でヒットした文書であった場合、文書Ａが文書Ｂの前後でアクセスが行われている。図１４では、この場合にも、別々の関連文書として処理を行ってスコアを算出し、後述するＳ１２０７（詳細は図１６のフローチャート）の処理を行なう。本実施形態では、図１６に示されるように、同一関連文書の中でより高いスコアが採用される。このように、同一関連文書に対し個別にスコアを算出して、別の関連文書のごとく扱っても構わない。なお、関連度を求める際により関連度が高いものを予め抽出しておくようにしてもよい。また、同一の関連文書に対しては、関連度の和を取る等、ステップＳ１４０１からステップＳ１４１０の処理の中で複数の同一関連文書を一つにまとめる処理を採用するようにしてもよい。具体的には、ステップＳ１４０９で同一の関連文書が関連文書アクセス情報に存在した場合に、関連度の高いものを優先する処理や関連度の和をとる処理などを行えばよい。
【００８７】
＜最終ヒット合成処理の流れ＞
図１６のフローチャートでは、ステップＳ１２０７の最終ヒットリスト合成処理について説明する。ステップＳ１６０１では、ステップＳ１２０５で取得された「一次検索結果一覧」のｎ番目の文書ｎのスコアを「最終ヒットリスト」の対応するスコア位置に挿入する。当然ながら、一番最初は「最終ヒットリスト」には、文書が何も登録されていない。
【００８８】
ステップＳ１６０２では、文書ｎの「関連文書アクセス情報」から「最終ヒットリスト」への挿入処理が行われていない文書を選択する。ステップＳ１６０３では、ステップＳ１６０２で選択された関連文書のスコアを取得する。ステップＳ１６０４では、そのスコアがゼロであるか判定され、ゼロであれば、関連が無かった文書であることを意味するためステップＳ１６０９へ進み、次文書を処理する。ゼロでなければステップＳ１６０５へ進む。
【００８９】
ステップＳ１６０５では、最終ヒットリストにステップＳ１６０２で選択された文書が存在するか確認する。この確認の仕方としては、例えば文書ＩＤが同一かどうかで判定する方法などがある。同一の文書が存在していなければステップＳ１６０８へ進む。一方、同一文書が存在していればステップＳ１６０６へ進む。
【００９０】
ステップＳ１６０６では、「最終ヒットリスト」中に存在している同一文書のスコアがステップＳ１６０２で選択された文書のスコアと比較して、「最終ヒットリスト」中に存在している同一文書のスコアの方が等しいか大きい場合には、ステップＳ１６０９へ進む。逆に小さい場合には、ステップＳ１６０７へ進む。ステップＳ１６０７では、「最終ヒットリスト」中の同一文書の削除を行なう。ステップＳ１６０８では、ステップＳ１６０２で選択した文書を「最終ヒットリスト」の対応するスコア位置に挿入する。
【００９１】
ステップＳ１６０９では、「関連文書アクセス情報」のすべての関連文書に対して、「最終ヒットリスト」に配置する処理を行ったかを判定し、未処理の文書があればステップＳ１６０２に戻り、すべての文書に対して処理されていれば終了する。
【００９２】
なお、図１６のフローチャートにおいてはより高いスコアを持つ文書を優先するような処理について説明しているが、ステップＳ１６０６を最終文書リスト中に存在している同一文書のスコアがステップＳ１６０２で選択された文書のスコアと比較して、等しいか低いとすれば、より低いスコアを持つ文書を優先するようになり、また、重複して出現する文書に対して記録をしておき、最終的に平均値を計算して、最終ヒットリストに挿入することを行うようにしてもよい。
【００９３】
＜検索結果の表示＞
検索結果整形部１１３で出力される検索結果の一例を図９に示す。検索結果は、求められたスコア９０１、文書名９０２、データベース名９０３の各フィールドからなるリストとして領域９０４に表示される。図９では、前記の結果を例として用いて表示している。また、検索結果一覧の下部にあるボタンで領域９０４の中から選択した文書に対して動作を実行できる。「開くボタン」９０５を実行した場合は、選択された文書がアプリケーションによって開かれる。また、「移動ボタン」９０６は、選択された文書が存在するデータベースおよびその文書が格納されているディレクトリを文書管理クライアントソフトウェア上に表示する。「閉じるボタン」９０７は、検索結果を終了して閉じることを行う。これ以外にも、編集のためのボタンを設けたり、属性を編集するボタンを設けたり、通常の文書管理クライアントソフトウェアで可能なことを実現できるような仕組みを設けてもよい。また、選択できる文書は、一つに限らず複数選択できるようにしてもよい。
【００９４】
なお、本実施形態では、一つのデータベースの検索結果をのみを利用しているが、複数のデータベースからいくつか選択したものをまとめるようにしてもよい。まとめ方としては、それぞれの文書、関連文書のスコアを一つの検索結果として表示する方法がある。また、一つのデータベースの検索結果で選択された文書で、他のデータベースの絞り込み検索を行ってもよい。この場合、複数データベースの検索の高速化が実現できる。
【００９５】
以上の説明から明らかなように、本実施形態にかかる情報処理装置によれば、ユーザが文書にアクセスした順番に基づいて関連する文書を求め、当該アクセス順番に基づいて関連文書ごとに関連度を算出することにより、複数のデータベースからなる環境においても、単一のデータベースの検索を行うだけで、他のデータベースの文書を検索結果として提示させることが可能となる。
【００９６】
このため、データベースの数が増えても、すべてのデータベースを検索しなくても関連する文書を求めることができるので、検索の処理時間が短縮されることになる。また、アクセス順番に従って関連度を求めていることから、異なるデータベースから抽出された文書であっても、ひとまとめに関連文書を検索することが可能であり、さらに、最終的な検索結果の数がデータベースの数に依存して増大しすぎることもない。
【００９７】
［第２の実施形態］
上記第１の実施形態においては、アクセスの種類によって区別をせずに、すべて同一の関連度を用いていたが、アクセスの種類によって関連度を変えてもよい。本実施形態では、アクセスの種類、特に文書の編集状態がチェックアウトあるいはチェックインであるかに基づいて関連度を変更する例を説明する。
【００９８】
ある文書が編集を開始されて（チェックアウト）から編集を終了する（チェックアウト）までにアクセスされた文書は、関連して参照されている可能性が高いため、関連度が高いと捉えることができる。具体例を、図１８を用いて説明する。
【００９９】
図１８に示すように文書へのアクセス順番が、Ｂ→Ｅ→Ｃ→Ｄであったとする。ここで、文書Ｅは閲覧のために開くのではなく編集のために開くものとする（チェックアウト１８０１）。そして、文書Ｄを開く前に文書Ｅの編集を終了したとする（チェックイン１８０２）。このとき、文書Ｅに対して、文書Ｃはチェックアウト（編集中）に開かれた文書である。このようにチェックアウト中に参照された文書である場合には、関連文書アクセス情報に記録される。
【０１００】
具体的に説明すると、たとえば、図１８に示す順番でアクセスがあった場合、文書Ｂの関連文書アクセス情報は図７のようになる。文書Ｂから見た場合、文書Ｅのチェックアウト、チェックインは文書Ｂ自身が開かれた後で行われているため、記録されない。
【０１０１】
また、文書Ｅの文書アクセス情報は図１９のようになる。文書Ｅは自らチェックアウトし、文書Ｃはチェックアウト状態の時に開かれているので、Ｄｏｃｕｍｅｎｔ要素のｃｈｅｃｋｏｕｔ属性がｙｅｓとなる（１９０１）。また、文書Ｄは、チェックイン後に開かれているため、ｃｈｅｃｋｏｕｔ属性が存在していない。
【０１０２】
また、文書Ｃの関連文書アクセス情報は図２０のようになる。文書Ｃより前にアクセスされた文書Ｅがチェックアウト中であったので、ｃｈｅｃｋｏｕｔ属性がｙｅｓとなる（２００１）。一方、文書Ｄは文書Ｃからみてチェックアウトとは関係がないため、ｃｈｅｃｋｏｕｔ属性が存在しない。本実施形態では、説明の簡便化のため、文書Ｂ、文書Ｅに関しては後２回のアクセスについて記録し、文書Ｃに関しては前後一回のアクセスについて記録した関連文書アクセス情報を例示している。なお、チェックアウト状態に関係無い文書については、ｃｈｅｃｋｏｕｔ属性を記述していないが、記述して、ｎｏと言う値を持たせてもよい。
【０１０３】
チェックアウトされている状態を関連文書アクセス情報に記録するためのフローチャートは図２１に示すとおりである。なお、図１０と同様の処理については同一の参照番号を付し説明を割愛する。図１０とのフローチャートの違いは、ステップＳ１００７の後にステップＳ２１０１で当該文書がチェックアウト中か否かが判定され、チェックアウト中であれば、ステップＳ２１０２でｌｏｏｐ番前の文書が開かれているか確認する。開かれていなければステップＳ１００８へ進む。開かれていればステップＳ２１０３へ進み、ステップＳ２１０３においてｌｏｏｐ番前の関連文書アクセス情報に対して文書ｎがチェック中であることを記す（ｃｈｅｃｋｏｕｔ属性にｙｅｓをセットする）。また、ステップＳ２１０１でチェックアウト中でなければ記録する必要がないので、ステップＳ１００８へ進む。
【０１０４】
また、同様に、ステップＳ１０１４の後にステップＳ２１０４で当該文書がチェックアウト中か否かが判定され、チェックアウト中であれば、ステップＳ２１０５でｌｏｏｐ番前の文書が開かれているか確認する。開かれていなければステップＳ１０１５へ進む。開かれていればステップＳ２１０６へ進み、ステップＳ２１０６において文書ｎの関連文書アクセス情報に対して、ｌｏｏｐ番前の関連文書ｎがチェックアウト中に開かれていることを記す（ｃｈｅｃｋｏｕｔ属性にｙｅｓをセットする）。また、ステップＳ２１０４でチェックアウト中でなければ記録する必要がないので、ステップＳ１０１５へ進む。
【０１０５】
また、単にチェックアウト、チェックインされたと言う情報だけでなく、文書間で内容がコピーされたことを記録してもよい。ユーザ入力装置１０１に入力を監視する仕組みを設けて、文書管理システムから開かれた文書間で内容のコピーが行われたことを検知して関連文書アクセス情報に書き込むようにしてもよい。この監視を実現するためには、たとえば、オペレーティングシステム上でコピー操作を行ったデータをメモリ上に一時的に格納するための仕組みであるクリップボードを使うことができる。
【０１０６】
文書間コピーが行われた場合の関連文書アクセス情報の例を図２２に示す。先の図１８の順でアクセスされ、更に文書Ｂから文書Ｅへ内容のコピーが行われたものとする。また関連文書アクセス情報は、当該文書の後２回分のアクセス記録がなされるものとする。
【０１０７】
図２２に示すように、文書Ｂの関連文書アクセス情報の文書Ｅに関する情報には、ｃｏｐｙ属性があり、その内容がｔｏとなる（２２０１）。即ち文書Ｅに内容をコピーしたことを表している。また、文書Ｅには、本来記録対象外であるはずの文書Ｂから内容がコピーされているので、ｏｒｄｅｒ属性が空のＤｏｃｕｍｅｎｔ要素があり、文書Ｂについての情報が記載される。アクセス日時は対象外であるので、記述されないが、ｃｏｐｙ属性があり、その内容がｆｒｏｍとなっており、文書Ｂから内容がコピーされたことが分かる（２２０２）。
【０１０８】
チェックアウト状態や文書間コピーに応じた重み付けを設定した関連度の算出方法を説明するフローチャートを図２３に示す。これは、図１４のフローチャートとほぼ同じであるので、同一処理については同一の参照番号を付し説明は割愛する。ステップＳ２３０１でチェックアウト状態や文書間にコピーに応じた重み付けδが取得される。チェックアウト中に開いている文書や文書間コピーが行われた文書は関連度が強いと考えられるため、δ＞１となる。ステップＳ２３０３では、εにδを乗じて関連度を算出するための元になる重み付けを計算する。
【０１０９】
チェックアウト中の文書に対しては、ステップＳ１４０３で関連文書対象外にしたり、ステップＳ１４０４でアクセス時間に基づいて低い重み付けを付けることを行わないようにしてもよい。
【０１１０】
このように関連度を算出して、スコアを計算することで編集中に開かれた文書や文書間で内容のコピーの行われた文書に対して関連度をより高くすることができ、「最終ヒットリスト」においてそのような関連文書のスコアも高くすることができる。
【０１１１】
［第３の実施形態］
上記第１及び第２の実施形態では、自ユーザのみを対象として、「関連文書アクセス情報」を扱っていたが、自ユーザだけでなく、他ユーザの関連文書も検索対象としてもよい。これを実現するには、たとえば、図１４において、「関連文書アクセス情報」を自ユーザに限らず、すべてのユーザの関連文書を対象に行って関連度を算出すればよい。
【０１１２】
なお、単純に全ユーザの関連文書を対象とするのでなく、たとえば特定のユーザやグループのみを対象としたり、逆に対象外としたりしてもよい。また、自分だけ、あるいは特定のユーザやグループに対して一定の重み付けを与えることで、関連度に差を設ける仕組みがあってもよい。
【０１１３】
図２４のフローチャートを用いて、複数ユーザの関連文書アクセス情報の関連度をまとめる方法について説明する。ステップＳ２４０１では、当該文書の関連文書アクセス情報中において処理されていないＵｓｅｒＸの関連文書アクセス情報を取得する。上記第１の実施形態の図７で説明したように、一つの関連文書アクセス情報には、複数のユーザからのアクセス情報が記録されている。
【０１１４】
ステップＳ２４０２では、ＵｓｅｒＸが関連度に関して対象のユーザ、あるいはグループである判定される。対象ユーザ、グループでなければ、ステップＳ２４１０へ進む。一方、対象ユーザ、グループであればステップＳ２４０３へ進む。
【０１１５】
ステップＳ２４０３では、処理していない関連文書の関連度をステップＳ２４０１で取得したＵｓｅｒＸに対する関連文書アクセス情報から取得する。ステップＳ２４０４では、ＵｓｅｒＸが重み付け対象ユーザあるいは対象グループであるか否かが判定される。重み付け対象ユーザあるいは対象グループでなければ、ステップＳ２４０６へ進む。一方、重み付け対象ユーザあるいは対象グループであれば、ステップＳ２４０５へ進み、関連度に重み付けがなされる。
【０１１６】
ステップＳ２４０６では、すでに同一文書の関連度が算出されているかを判定する。同一文書が存在しておらず関連度が存在しない場合は、ステップＳ２４０８へ進み、ステップＳ２４０３で選択した関連文書の関連度の新規登録処理が行われる。ステップＳ２７０６で同一文書が存在すると判定された場合は、ステップＳ２４０７へ進み、関連度の加算処理を行う。ステップＳ２４０９では、ＵｓｒｅＸに対する関連文書を全て処理したか判断し、すべて処理されていなければステップＳ２４０３に戻り、全て処理されていれば、ステップＳ２４１０に進む。ステップＳ２４１０では、関連文書アクセス情報の全てのユーザを処理している場合は終了、まだ処理していないユーザがいれば、ステップＳ２４０１へ戻る。
【０１１７】
図２５を用いてより具体的な説明を行う。文書Ｂに対して、関連文書アクセス情報内にＵｓｅｒＸとＵｓｅｒＹの情報（関連度）があるとする（２５０１）。単純にユーザ毎の関連度を合計すると、２５０２のようにＵｓｅｒＸとＵｓｅｒＹそれぞれの文書の関連度の和となる。しかし、ＵｓｅｒＸに対して重み１．５を与えるとすると、２５０３で示されるように、文書Ｄは変わらず５であるが、文書Ｅが１０×１．５＝１５、文書Ｃが２×１．５＋１０＝１３となり、特定のユーザ、グループに応じて関連度を変えることができる。
【０１１８】
このようにユーザ毎の関連度に対して、重み付けや対象外にすることで、個別のユーザに依らない、より詳細なスコア付けを行うことができる。
【０１１９】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１２０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１２１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１２３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１２５】
【図１】本発明の一実施形態にかかる情報処理装置の機能構成を説明するためのブロック図である。
【図２】本発明の一実施形態にかかる情報処理装置を備える文書管理システムの構成を示す図である。
【図３】複数のデータベースの検索を行う文書管理システムの一例を示す図である。
【図４】文書管理クライアントソフトウェアの画面構成の一例を示す図である。
【図５】文書管理クライアントソフトウェアにおける、文書更新時のユーザインターフェイスの一例を示す図である。
【図６】本発明の一実施形態にかかる文書管理サーバが備えるデータベースの一例を示す図である。
【図７】関連文書アクセス情報の一例を示す図である。
【図８】関連文書アクセス情報の一例を示す図である。
【図９】検索結果整形部より出力される検索結果の一例を示す図である。
【図１０】関連文書アクセス情報の更新処理の流れを説明するフローチャートである。
【図１１】図１０のフローチャートの具体例を説明するための図である。
【図１２】単一データベースの検索結果から関連文書を含む検索結果を生成する処理の流れを示すフローチャートである。
【図１３】一次検索結果一覧の一例を示す図である。
【図１４】関連度を求める処理の流れを示すフローチャートである。
【図１５】アクセス時間による重み付けを決定するテーブルの一例を示す図である。
【図１６】最終ヒットリストの合成処理の流れを示すフローチャートである。
【図１７】同一関連文書の例を説明するための図である。
【図１８】所定の文書を編集中に他の文書にアクセスがあったことを説明するための図である。
【図１９】チェックアウト状態を表す関連文書アクセス情報の一例を示す図である。
【図２０】チェックアウト状態を表す関連文書アクセス情報の一例を示す図である。
【図２１】編集中の文書にアクセスされた文書に対する関連度を求める処理の流れを示すフローチャートである。
【図２２】文書間でコピーが行われた状態を表す関連文書アクセス情報の一例を示す図である。
【図２３】編集の状態に応じて関連度に重み付けを行う処理の流れを示すフローチャートである。
【図２４】文書にアクセスをした全ユーザの関連度の合計を求める処理の流れを示すフローチャートである。
【図２５】ユーザ毎の関連度の求め方を説明するための図である。
【図１】
2006048536.tif 000005
【図２】
2006048536.tif 000006
【図３】
2006048536.tif 000007
【図４】
2006048536.tif 000008
【図５】
2006048536.tif 000009
【図６】
2006048536.tif 000010
【図７】
2006048536.tif 000011
【図８】
2006048536.tif 000012
【図９】
2006048536.tif 000013
【図１０】
2006048536.tif 000014
【図１１】
2006048536.tif 000015
【図１２】
2006048536.tif 000016
【図１３】
2006048536.tif 000017
【図１４】
2006048536.tif 000018
【図１５】
2006048536.tif 000019
【図１６】
2006048536.tif 000020
【図１７】
2006048536.tif 000021
【図１８】
2006048536.tif 000022
【図１９】
2006048536.tif 000023
【図２０】
2006048536.tif 000024
【図２１】
2006048536.tif 000025
【図２２】
2006048536.tif 000026
【図２３】
2006048536.tif 000027
【図２４】
2006048536.tif 000028
【図２５】
2006048536.tif 000029