(57)【要約】【課題】ある文書から派生した別の文書についての情報を利用者に提供するための技術を提供する。【解決手段】操作結果文書とその管理ＩＤ、その文書の操作前の管理ＩＤである親ＩＤ、及びその文書の文書属性をクライアントから受信した文書登録部１３０は、管理ＩＤ、親ＩＤ、ログ情報、文書内容を派生関係ＤＢ１１０、文書ＤＢ１００に登録する。要求処理部１４０は、指定文書の管理ＩＤと、指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示をクライアントから受けると、派生関係ＤＢ１１０に登録された文書のうち、指定された検索条件を満たす文書についての情報を検索結果として提供する。【選択図】図４
2008257317.tif 000002
【特許請求の範囲】
【請求項１】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録する登録部と、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする第１の情報処理装置。
【請求項２】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を情報処理装置から受け取って記憶部に登録する登録部と、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする第１の情報処理装置。
【請求項３】
前記登録部は、前記第２の文書が開示対象であるか否かを示す開示属性情報を情報処理装置からさらに受け取って前記第２の文書と対応づけて記憶部に登録し、
前記検索結果出力部は、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たし、かつ開示対象であることを示す開示属性情報と対応づけられた文書についての情報を検索結果として出力することを特徴とする請求項１又は２に記載の第１の情報処理装置。
【請求項４】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録するステップと、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項５】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、
を備えることを特徴とする第２の情報処理装置。
【請求項６】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、
を備えることを特徴とする第２の情報処理装置。
【請求項７】
前記通知条件取得部は、前記指定文書に関連する文書についての情報を通知させる時期を指定する条件をさらに含む通知条件を取得し、
前記検索指示部は、前記通知条件において指定された時期に、前記第１の情報処理装置に対して前記検索指示を行うことを特徴とする請求項５又は６に記載の第２の情報処理装置。
【請求項８】
前記第１の情報処理装置から提供された検索結果を通知させる通知部をさらに備え、
前記通知条件取得部は、前記検索結果を通知させる方法を指定する条件をさらに含む通知条件を取得し、
前記通知部は、前記通知条件で指定された方法で前記検索結果を通知させることを特徴とする請求項５から７のいずれか１項に記載の情報処理装置。
【請求項９】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信するステップと、
指定文書に関連する文書についての情報を通知させる通知条件であって、前記指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得するステップと、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行うステップと、
をコンピュータに実行させるためのプログラム。
【請求項１０】
第１の情報処理装置と第２の情報処理装置とを備え、
前記第２の情報処理装置は、
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を前記第１の情報処理装置に送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、を備え、
前記第１の情報処理装置は、
前記派生関係の情報を前記第２の情報処理装置から受け取って記憶部に登録する登録部と、
前記検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、及びプログラムに関する。
【背景技術】
【０００２】
サーバに電子文書が登録されたシステムにおいて、登録済みの電子文書に対して更新がなされた場合に、その旨を利用者に通知する技術が開発されている。
【０００３】
特許文献１には、複数の利用者によって共有利用されている電子文書ファイルの変化情報を表示させる電子文書管理装置が開示されている。電子文書管理装置は、記憶装置において電子文書ファイルの削除、新規追加、又は更新がされたことを検出すると、検出した電子文書ファイルの情報を利用者の指定した形式で表示させる。
【０００４】
特許文献２には、コンテンツサーバに記憶された情報コンテンツのデータの更新をデータ受信端末へ通知するデータ更新通知サーバが開示されている。データ更新通知サーバは、指定された情報コンテンツを記憶したコンテンツサーバにネットワークを介して所定の周期でアクセスし、当該指定された情報コンテンツのデータの更新の有無を確認する。当該情報コンテンツのデータの更新が検知されると、データ更新通知サーバはその旨をデータ受信端末へ通知する。
【０００５】
特許文献３には、ユーザ端末上のチェック対象のコンテンツがコンテンツ提供者サイト上で更新されたことを通知するコンテンツ提供装置が開示されている。コンテンツ提供装置は、ユーザ端末上のチェック対象のコンテンツの情報が、当該チェック対象のコンテンツを提供するコンテンツ提供者サイト上の該当するコンテンツの情報と比較して最新であるか否かを逐次判定する。ユーザ端末内に最新でないコンテンツがある場合に、コンテンツ提供装置はその旨をユーザ端末に対して逐次通知する。
【０００６】
特許文献１−３に記載の技術は、いずれも、文書或いはコンテンツ自体に生じた変化をユーザに通知する技術である。
【０００７】
【特許文献１】特開平９−２２３０５６号公報
【特許文献２】特開２００１−３５０６６７号公報
【特許文献３】特開２００２−３２８８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ある文書に対していつ、誰が、どのような操作を行ったかというような文書に対する操作に基づく文書の状態変化の経過（派生関係）に関する情報を検索条件に従って検索し、検索結果を出力することを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録する登録部と、指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、を備えることを特徴とする第１の情報処理装置である。
【００１０】
請求項２に係る発明は、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を情報処理装置から受け取って記憶部に登録する登録部と、指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、を備えることを特徴とする第１の情報処理装置である。
【００１１】
請求項３に係る発明は、請求項１又は２に係る発明において、前記登録部は、前記第２の文書が開示対象であるか否かを示す開示属性情報を情報処理装置からさらに受け取って前記第２の文書と対応づけて記憶部に登録し、前記検索結果出力部は、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たし、かつ開示対象であることを示す開示属性情報と対応づけられた文書についての情報を検索結果として出力する。
【００１２】
請求項４に係る発明は、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録するステップと、指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力するステップと、をコンピュータに実行させることを特徴とするプログラムである。
【００１３】
請求項５に係る発明は、文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信する送信部と、指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、を備えることを特徴とする第２の情報処理装置である。
【００１４】
請求項６に係る発明は、文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を送信する送信部と、指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、を備えることを特徴とする第２の情報処理装置である。
【００１５】
請求項７に係る発明は、請求項５又は６に係る発明において、前記通知条件取得部は、前記指定文書に関連する文書についての情報を通知させる時期を指定する条件をさらに含む通知条件を取得し、前記検索指示部は、前記通知条件において指定された時期に、前記第１の情報処理装置に対して前記検索指示を行う。
【００１６】
請求項８に係る発明は、請求項５から７のいずれか１項に係る発明において、前記第１の情報処理装置から提供された検索結果を通知させる通知部をさらに備え、前記通知条件取得部は、前記検索結果を通知させる方法を指定する条件をさらに含む通知条件を取得し、前記通知部は、前記通知条件で指定された方法で前記検索結果を通知させる。
【００１７】
請求項９に係る発明は、文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信するステップと、指定文書に関連する文書についての情報を通知させる通知条件であって、前記指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得するステップと、前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行うステップと、をコンピュータに実行させるためのプログラムである。
【００１８】
請求項１０に係る発明は、第１の情報処理装置と第２の情報処理装置とを備え、前記第２の情報処理装置は、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を前記第１の情報処理装置に送信する送信部と、指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、を備え、前記第１の情報処理装置は、前記派生関係の情報を前記第２の情報処理装置から受け取って記憶部に登録する登録部と、前記検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、を備えることを特徴とする情報処理システムである。
【発明の効果】
【００１９】
請求項１に係る発明によると、ある文書に対して行った操作の結果から派生した別の文書についての情報を指定された派生関係の検索条件に基づき利用者に提供することができる。
【００２０】
請求項２に係る発明によると、ある文書に対して行った操作の結果から派生した別の文書についての情報を指定された派生関係および操作に関する情報の検索条件に基づき利用者に提供することができる。
【００２１】
請求項３に係る発明によると、情報処理装置からの開示属性情報に応じて、ある文書から派生した別の文書についての情報を提供するか否かを制御することができる。
【００２２】
請求項４に係る発明によると、ある文書に対して行った操作の結果から派生した別の文書についての情報を指定された派生関係の検索条件に基づき利用者に提供することができる。
【００２３】
請求項５に係る発明によると、利用者は、ある文書に対して行った操作の結果から派生した別の文書についての情報を派生関係の検索条件に従い検索し通知させる条件を設定でき、検索された結果を指定された通知条件に従って通知させることができる。
【００２４】
請求項６に係る発明によると、利用者は、ある文書に対して行った操作の結果から派生した別の文書についての情報を派生関係および操作関連情報の検索条件に従い検索し通知させる条件を設定でき、検索された結果を指定された通知条件に従って通知させることができる。
【００２５】
請求項７に係る発明によると、ある文書に対して行った操作の結果から派生した別の文書についての情報を通知させる時期を指定することができる。
【００２６】
請求項８に係る発明によると、ある文書に対して行った操作の結果から派生した別の文書についての情報を通知させる方法を指定することができる。
【００２７】
請求項９に係る発明によると、利用者は、ある文書に対して行った操作の結果から派生した別の文書についての情報を派生関係の検索条件に従い検索し通知させる条件を設定でき、検索された結果を指定された通知条件に従って通知させることができる。
【００２８】
請求項１０に係る発明によると、利用者は、ある文書に対して行った操作の結果から派生した別の文書についての情報を検索し通知させる条件を設定でき、検索された結果を指定された通知条件に従って通知させることができる。
【発明を実施するための最良の形態】
【００２９】
図１は、文書利用管理システムの概略構成を示すブロック図である。このシステムは、インターネットやローカル・エリア・ネットワーク等のネットワーク３０を介して接続された文書管理サーバ１０とクライアント端末２０−１，２０−２，・・・（以下、クライアント端末２０と総称する）から構成される。
【００３０】
クライアント端末２０について図２を用いて説明する。クライアント端末は、ユーザが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複合機（複写機機能、ファクシミリ機能、印刷機能を有する画像形成装置）などがその一例である。クライアント端末２０は、図２に示すように、文書操作部２００、登録処理部２１０、文書状態変化通知処理部２２０、及び記憶装置２３０を備える。
【００３１】
文書操作部２００は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示（ユーザから見れば「閲覧」）、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図２では、文書操作部２００を１つだけ示したが、それら個々の操作を別々の操作部（例えば、編集用のアプリケーション、読取制御用のアプリケーションなど）が担当してもよい。例えば、文書操作部２００がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部２００は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部２００は、文書に対して操作を行った場合、その操作の結果を表すＩＤ付き文書３００を出力する。
【００３２】
ＩＤ付き文書３００は、図３に示すように、メタ情報３１０と文書内容３２０を含んだ電子文書である。文書内容３２０は、文書操作部２００の操作の結果生成された文書の内容データである。文書操作部２００が電子文書を作成・編集するためのソフトウエアであれば、文書内容３２０はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部２００が電子文書を印刷する装置であれば、文書内容３２０は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部２００が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容３２０は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【００３３】
メタ情報３１０は、文書管理のための情報であり、管理ＩＤ３１２，親ＩＤ３１４，及びログ情報３１６を含む。
【００３４】
管理ＩＤ３１２は、当該ＩＤ付き文書３００自体の一意な識別情報である。親ＩＤ３１４は、当該ＩＤ付き文書３００の親のＩＤ付き文書の管理ＩＤである。すなわち、本実施形態では、あるＩＤ付き文書と、このＩＤ付き文書に対して操作を加えた結果得られる新たなＩＤ付き文書とを、親と子の関係として取り扱う。第１のＩＤ付き文書を操作して第２のＩＤ付き文書が得られた場合、第１のＩＤ付き文書は第２のＩＤ付き文書の親であり、第２のＩＤ付き文書は第１のＩＤ付き文書の子である。したがって、例えば、管理ＩＤ「Ａ」のＩＤ付き文書を文書操作部２００で操作して、その結果得られた新たなＩＤ付き文書の管理ＩＤが「Ｂ」である場合、後者のメタ情報３１０における管理ＩＤ３１２は「Ｂ」であり、親ＩＤ３１４は「Ａ」である。このような親子の関係を、以下では「（管理ＩＤの）派生関係」という。
【００３５】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合（この場合、紙文書を読み取った画像を文書内容とするＩＤ付き文書が生成され、本システムに登録される）に生成されるＩＤ付き文書３００では、親ＩＤ３１４は空（すなわち、親は存在しない）となる。
【００３６】
ログ情報３１６は、当該ＩＤ付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた日時、その操作の種別、その操作を指示したユーザ（操作者）などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録（本システムに新規の文書を登録すること）、閲覧、編集、更新（更新版の登録）、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザが文書操作部２００を用いて第１のＩＤ付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第２のＩＤ付き文書のログ情報３１６は、編集完了の日時と、その編集を指示したユーザの識別情報と、操作の種別として「編集」と、を含んだものとなる。
【００３７】
ここでログ情報３１６に組み込まれる操作の種別は、ログ記録の目的での分類に従った種別であり、文書操作部２００が実行する操作の種別そのものでなくてもよい。例えば、文書操作部２００が実行する複数の操作の種別を、同じ１つのログ記録目的の操作種別に対応づけてもよい。例えば、文書編集アプリケーション上でＩＤ付きの電子文書に編集を加え操作メニュー上で「更新版として登録」を指示した場合も、スキャナで管理ＩＤ付きの紙文書を読み取り読取制御用アプリケーションの操作メニュー上で「読み取った文書を承認版として登録」を指示した場合も、ログ情報３１６に組み込まれる操作種別の値は「更新」となる。
【００３８】
文書操作部２００が生成するメタ情報３１０の具体例を以下に示す。
【００３９】
[例１]
<metadata sid="Doc2" date="2006-01-10T10:20:00" method="register" user="user1" pid="null"/>
【００４０】
ここでsid属性は管理ＩＤ、date属性は操作日時、method属性は操作種別である。また、user属性は操作を指示したユーザのユーザ識別情報であり、pid属性は親ＩＤを示す。例１のmethod属性値"register"は（文書管理サーバ１０に未登録の）新規文書の登録操作を示す操作種別名である。新規文書の登録なので、親ＩＤを示すpid属性の値は親ＩＤがないことを示す"null"に設定されている。親ＩＤがないことを示す属性を明示的に組み込む代わりに、親ＩＤがない場合はpid属性を省略することとしてもよい。
【００４１】
また、ログ情報３１６の中には、当該ＩＤ付き文書３００が公開（共有）対象であるか否かを示す「公開」属性を組み込んでもよい。例えば公開対象とするＩＤ付き文書の「公開」属性値を「１」とし、公開対象としないＩＤ付き文書の「公開」属性値は「０」とすると、「公開」属性が「０」であるＩＤ付き文書は、当該文書を生成するための操作を行った操作者や管理者等の特権的なユーザ以外には、公開されない。
【００４２】
なお、「公開」属性の値は、操作の種別に従って決定する。公開属性値を決める基準となる操作の種別は、文書操作部２００が実行した操作の種別でも、ログ記録目的の分類に従った操作の種別でもよい。いずれを用いるかは、文書操作部２００に設定されていればよい。
【００４３】
ログ情報３１６の中に「公開」属性を組み込んだ場合に、文書操作部２００が生成するメタ情報３１０の具体例を以下に示す。
【００４４】
[例２]
<metadata sid="Doc5" date="2006-10-11T23:45:00" method="update" user="user1" pid="Doc2" shared="1"/>
【００４５】
例２は、ユーザ識別情報が"user1"であるユーザが、管理ＩＤ"Doc2"である文書を編集して「更新版として登録」する操作を行った場合に生成されるメタ情報３１０である。ここで、method属性値"update"は更新操作を示している。この例は、更新操作により登録された文書は公開対象とする場合の例であり、shared属性値は公開対象であることを示す値「１」となっている。
【００４６】
図２の説明に戻り、文書操作部２００は、操作結果として上述のようなＩＤ付き文書３００を作成するために、ＩＤ割り当て部２０２及び派生関係組込部２０４を備える。ＩＤ割り当て部２０２は、操作結果のＩＤ付き文書３００に一意な管理ＩＤを付与する手段である。管理ＩＤは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するＩＤ付き文書３００（ただし管理ＩＤ３１２を除いたもの）のハッシュ値を求め、このハッシュ値をその文書３００のＩＤ付き文書とすればよい。ハッシュ関数としてSHA-256（SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である）などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理ＩＤが生成される。もちろん、システム内で一意な管理ＩＤを各クライアント端末２０で生成する方法は、これに限らない。管理ＩＤを、クライアント端末２０固有の識別情報を含むものとすれば、システム内で一意な管理ＩＤが各クライアント端末２０で生成される。
【００４７】
派生関係組込部２０４は、操作結果の文書に対しＩＤ割り当て部２０２が割り当てた新たな管理ＩＤ３１２と、その操作の元になった親文書の管理ＩＤである親ＩＤ３１４（新規登録の場合は、親ＩＤは無し）と、その操作についてのログ情報３１６と、を含むメタ情報３１０を生成する。ここで、派生関係組込部２０４は、文書操作部２００が実行する個々の操作の種別が、ログ記録目的上の操作種別のどれに対応するかを表す対応関係の情報を保持しており、この情報を用いることでログ情報３１６に組み込む操作種別の値を求める。また、派生関係組込部２０４は、操作種別ごとに当該種別の操作の結果である文書を公開対象とするか否かを示す情報を保持しており、この情報に基づきshared属性値を決定する。そして、派生関係組込部２０４は、そのメタ情報３１０を操作結果の文書内容に付加することにより、操作後のＩＤ付き文書３００を生成して出力する。
【００４８】
文書操作部２００がアプリケーションソフトウエアである場合、ＩＤ割り当て部２０２及び派生関係組込部２０４は、そのソフトウエアに対して追加される、いわゆるプラグイン(plug-in)プログラムとして実現してもよい。
【００４９】
登録処理部２１０は、文書操作部２００が出力したＩＤ付き文書３００を文書管理サーバ１０に登録するための処理を実行する。このように各クライアント端末２０が、自ら実行した操作の結果であるＩＤ付き文書３００を文書管理サーバ１０に登録することにより、文書管理サーバ１０は各ＩＤ付き文書３００間の派生関係を把握する。
【００５０】
文書状態変化通知処理部２２０は、文書管理サーバ１０に対して指定文書と検索条件とを特定する検索指示を行う。指定文書はユーザによって指定される文書であり、この指定文書に関連する文書についての情報が、文書管理サーバ１０において検索されて提供される。ある文書に関連する文書についての情報を得ることをユーザが望む場合、ユーザは、その文書を指定文書として設定する。検索条件は、どのような文書についての情報を検索するかを定義する条件である。指定文書と検索条件とを特定する検索指示を文書状態変化通知処理部２２０から受けた文書管理サーバ１０は、指定文書に関連する文書であって検索条件を満たす文書についての情報を含む検索結果をクライアント端末２０に提供する。文書状態変化通知処理部２２０は、この検索結果を文書管理サーバ１０から受け取ると、受け取った検索結果を利用者に通知するための処理を行う。文書状態変化通知処理部２２０は、通知条件取得部２２２、検索指示部２２４、検索結果取得部２２６、及び通知部２２８を備える。
【００５１】
通知条件取得部２２２は、文書状態変化通知処理部２２０で行われる処理で用いられる通知条件を取得する。通知条件は、指定文書を決定する条件と検索条件とを含む。指定文書を決定する条件は、例えば、クライアント端末２０の記憶装置２３０又はクライアント端末２０が接続されている他のクライアント端末やサーバなどの端末の記憶装置上のファイルシステムにおいて、ある特定のフォルダに記憶される文書を指定文書とするように設定される。また例えば、ある特定の種類の文書を指定文書とする、という条件であってもよい。また、特定の管理ＩＤの文書を指定文書とする条件であってもよい。検索条件は、指定文書と検索対象の文書との間に存在すべき派生関係を定義する派生関係の条件を含む。この派生関係の条件については後に詳細に説明する。また、検索条件は、文書に対して行われた操作に関連する条件を含んでいてもよい。操作に関連する条件は、例えば、操作の種別、操作時刻、及び操作者などを特定する条件である。
【００５２】
また、通知条件は通知時期の指定を含んでいてもよい。通知時期とは、文書状態変化通知処理部２２０が通知処理を行うタイミングである。通知時期の指定により、例えば、一定の時間間隔（例えば、６０分、１８０分）で通知を行ったり、ある時刻に通知を行ったりするように設定する。例えば、夜間などユーザがクライアント端末２０を利用しない時間帯に通知処理を行うように設定してもよい。また例えば、通知時期は、時刻や時間間隔とは関係なく、クライアント端末２０の利用状況などに基づいて設定されるものであってもよい。例えば、ユーザがクライアント端末２０の利用を開始するログオン処理を行ったときに通知処理を行うように通知時期を設定してもよい。
【００５３】
また、通知条件は通知方法の指定を含んでいてもよい。通知方法とは、文書状態変化通知処理部２２０が文書管理サーバ１０から取得した検索結果をユーザに通知する方法である。例えば、通知方法には、クライアント端末２０の表示画面のある表示領域に検索結果を表示（ウィンドウ表示）させること、クライアント端末２０の表示画面上で指定文書を表すアイコンの表示形式を変更させること、及び検索結果を含む電子メールの送信などがある。通知方法の指定により、文書管理サーバ１０から提供された検索結果をユーザの望む方法でユーザに通知させる。
【００５４】
通知条件取得部２２２は、例えば、通知条件を記述した設定ファイルを読み込むことで通知条件を取得する。通知条件の設定ファイルの記述内容の例を以下に示す。
【００５５】
[例３]
C:\check\readuser, decendant and method=read, 180, window
【００５６】
例３において、１つ目の","の前までの文字列"C:\check\readuser"は、クライアント端末２０の記憶装置２３０内のファイルシステムにおいて"C:\check\readuser"で示されるフォルダ内に記憶されたＩＤ付き文書を指定文書とする、という条件を表し、これは、指定文書を決定する条件である。１つ目の","と２つ目の","との間の文字列"decendant and method=read"は検索条件を表す。この検索条件のうち、"decendant"の部分は、文書間の派生関係を表す木構造において指定文書の子孫に該当する文書を検索対象とする、という派生関係の条件を表す。また、検索条件のうち、"method=read"の部分は、操作の種別が「閲覧」である文書を検索するよう設定する条件を表す。よって、検索条件"decendant and method=read"は、「指定文書の子孫に該当する文書」かつ「操作の種別が「閲覧」である文書」という条件を意味する。２つ目の","と３つ目の","との間の数字"180"は、１８０分間隔で通知を行うように指定する通知時期の条件を表し、３つ目の","以降の文字列" window "は、検索結果をウィンドウ表示させるように指定する通知方法の条件を表す。
【００５７】
検索指示部２２４は、通知条件取得部２２２から受け取った通知条件に従って、文書管理サーバ１０に対して検索指示を行う。
【００５８】
検索結果取得部２２６は、文書管理サーバ１０からの検索結果を受け取って、受け取った検索結果を通知部２２８に渡す。
【００５９】
通知部２２８は、検索結果取得部２２６から受け取った検索結果を、通知条件取得部２２２から受け取った通知条件で指定された通知方法で利用者に通知する処理を行う。
【００６０】
記憶装置２３０は、文書操作部２００が操作した文書などを記憶する。
【００６１】
文書操作部２００が操作の結果出力するＩＤ付き文書３００は、通常の文書ファイルと同様、電子的にコピーされたり、電子メールに添付するなどの方法で他の人宛に送信されたりする。電子メール送信用のソフトウエアは、この例では本システムに準拠していないので、この送信操作はＩＤ付き文書には反映されず、したがって文書管理サーバ１０にも記録されない。他の人からＩＤ付き文書３００を受け取った人が、自分のクライアント端末２０の文書操作部２００を用いてそのＩＤ付き文書３００を操作すると、その操作に応じて新たな管理ＩＤを付与されたＩＤ付き文書が生成されることになる。
【００６２】
また、文書操作部２００が電子文書を印刷する場合、管理ＩＤを生成し、その電子文書の印刷結果にその管理ＩＤを埋め込んでもよい。管理ＩＤの埋め込みは、例えば電子文書の印刷画像に、管理ＩＤを示すコード画像を重畳する等の方法で行う。また、用紙がＲＦＩＤ(Radio Frequency Identifier)タグを備えている場合、そのＲＦＩＤタグに管理ＩＤを書き込んでもよい。このように印刷を行った場合、文書操作部２００は、その管理ＩＤや操作種別「印刷」等のメタ情報を含んだＩＤ付き文書を文書管理サーバ１０に登録する。なお、ＩＤ付き文書を印刷した場合には、そのＩＤ付き文書の管理ＩＤを親ＩＤ３１４として含んだＩＤ付き文書が生成される。印刷操作に対応するＩＤ付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データをなどの印刷データ、又は印刷された文書ファイルを、文書内容３２０として組み込んでもよい。
【００６３】
また、管理ＩＤが埋め込まれた紙文書を文書操作部２００が読み取った場合、文書操作部２００は、その読み取り操作に対して新たな管理ＩＤを付与し、読み取り結果の画像を文書内容３２０として含んだＩＤ付き文書を生成して文書管理サーバ１０に登録する。このＩＤ付き文書の親ＩＤ３１４には、紙文書から読み取った管理ＩＤがセットされる。管理ＩＤが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。
【００６４】
次に、文書管理サーバ１０について説明する。文書管理サーバ１０は、システム内の複数のクライアント端末２０から送られてくるＩＤ付き文書３００を蓄積し、蓄積した情報に基づきユーザに各種のサービスを提供する。図４に示すように、文書管理サーバ１０は、文書ＤＢ１００、派生関係ＤＢ１１０、文書登録部１３０、及び要求処理部１４０を備える。
【００６５】
文書ＤＢ１００は、クライアント端末２０から送られてきたＩＤ付き文書３００のうちの文書内容３２０を格納するデータベースである。文書ＤＢ１００に格納された各文書内容３２０は、一意な内容ＩＤにより管理してもよい。内容ＩＤとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末２０が内容ＩＤを付与してもよく、この場合、内容ＩＤをメタ情報３２０に組み込んでもよい。また、内容ＩＤの代わりに、その文書内容３２０を、当該文書内容に対応するＩＤ付き文書３００の管理ＩＤと対応づけて文書ＤＢ１００に格納してもよい。
【００６６】
文書登録部１３０は、クライアント端末２０から受信したＩＤ付き文書の中の文書内容を文書ＤＢ１００に、メタ情報を派生関係ＤＢ１１０に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部１３２である。
【００６７】
派生関係ＤＢ１１０は、そのようなＩＤ付き文書３００のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図５に、派生関係ＤＢ１１０のデータ内容の一例を示す。図５に示した表における１行の情報が、１つのＩＤ付き文書３００に対応するメタ情報レコードである。この例では、各ＩＤ付き文書３００の管理ＩＤに対応づけて、親ＩＤ、ノードアドレス、操作種別、操作者、及び操作日時の各項目が登録されている。このうち、管理ＩＤと親ＩＤのペア以外の項目は、例示したものに限られない。管理目的上必要な項目を記録すればよい。また、操作種別、操作者、及び操作日時については既に説明した。ノードアドレスは、ＩＤ付き文書間の派生関係が構成する木において、当該管理ＩＤ（ＩＤ付き文書）に対応するノードの位置を示している。ノードアドレスの表記において「／」が木の深さ階層の区切りを示し、番号が同じ親から派生した兄弟同士の間での順番を示す。例えばノード「／１」は新規文書登録の操作により登録された文書に対応する根ノードを示す。また、ノード「／１／１」は根ノード「／１」の１番目の子、ノード「／１／２」は根ノード「／１」の２番目の子を示す。なお、煩雑さを避けるため、図５には、１つの根ノード「／１」から派生した１つの木に属するメタ情報レコード群しか示していないが、文書管理サーバ１０には、例えば根「／１」から派生する木と根「／２」から派生する木のように、複数の木のメタ情報レコード群が登録され得る。また、図５に示す例では、上記で説明した「公開」属性の項目は含まれない。例えば本システムの利用者が限られている場合など、登録されたすべての文書を公開対象としてよい場合は、「公開」属性の設定を省略してすべての文書を公開対象として扱ってもよい。
【００６８】
なお、図５は派生関係ＤＢ１１０が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係ＤＢ１１０は、一般的なリレーショナルデータベースとして構築してもよいし、管理ＩＤを除くメタ情報を記述したＸＭＬ(eXtensible Markup Language)文書を、管理ＩＤをキーとして登録したデータベースとして構築してもよい。
【００６９】
図５に示した派生関係ＤＢ１１０のデータ内容は、図６のような木構造を成す。これは、管理ＩＤをノードとし、管理ＩＤ間の親子関係をエッジとする木構造である。
【００７０】
図５及び図６の例が示す文書の履歴を時系列順に説明すると、以下のようになる。まず、文書管理サーバ１０に登録されていなかった文書の「登録」操作がuser1のクライアント端末で実行される。「登録」操作は、文書管理サーバ１０に未登録の文書（すなわち、管理ＩＤを有していない文書）を当該サーバ１０に登録するための操作である。この操作に応じて管理ＩＤが"Doc1"、親ＩＤが空、操作種別が「登録」であるメタ情報と、その文書の文書内容とを含むＩＤ付き文書"Doc1"がuser1のクライアント端末から文書管理サーバ１０に送られる。これに応じ、文書管理サーバ１０は、そのＩＤ付き文書"Doc1"中の文書内容を文書ＤＢ１００へ、メタ情報を派生関係ＤＢ１１０にそれぞれ登録する。ここで、文書管理サーバ１０は、操作種別が「登録」であり、親ＩＤが空なので、当該ＩＤ付き文書が、文書管理サーバ１０内に既に登録済みのＩＤ付き文書の子ではなく、新たな木の根（始祖）であると判断し、それに従ってノードアドレスの値（この例では「／１」）を設定する。なお、以下では、識別のために、登録された文書内容を内容ＩＤ"Content1"で表すことにする。その後、user1は、登録したＩＤ付き文書を他のユーザuser2，user3，・・・に配布する。この配布は、例えば、電子メールにそのＩＤ付き文書を添付して各ユーザに送信することにより、行う。
【００７１】
その後、他のユーザuser2が自分のクライアント端末の文書操作部２００でＩＤ付き文書"Doc1"を閲覧する。閲覧されるのは内容ＩＤ"Content1"の文書内容である。クライアント端末は、閲覧の結果としてＩＤ付き文書"Doc2"を生成し、文書管理サーバ１０に登録される。このＩＤ付き文書のメタ情報における管理ＩＤは"Doc2"であり親ＩＤは"Doc1"である。また操作者はuser2であり、操作種別は「閲覧」である。また、「閲覧」操作では文書内容は変更されないので、文書内容は"Content1"のままである。このように文書内容が変更されない操作を行った場合、クライアント端末２０は、文書内容を省略したＩＤ付き文書を文書管理サーバ１０に送ってもよい。文書管理サーバ１０は、受け取ったＩＤ付き文書の親ＩＤの値から、当該文書"Doc2"が文書"Doc1"の子であることを認識し、しかも最初の子であるので、文書"Doc2"のノードアドレスを「／１／１」とする。
【００７２】
なお、この操作の前にuser2のクライアント端末２０内にあったＩＤ付き文書"Doc1"は、この操作に伴い、派生関係組込部２０４によりＩＤ付き文書"Doc2"に置き換えられる。この置き換え処理では、派生関係組込部２０４は、元のＩＤ付き文書"Doc1"のうち、メタ情報３１０の管理ＩＤ３１２を新たに発行したＩＤ"Doc2"へ変更すると共に、元の文書"Doc1"の管理ＩＤ"Doc1"を親ＩＤ３１４の値にセットする。また、派生関係組込部２０４は、ログ情報３１６中の操作種別の値を今回の操作の種別である「閲覧」に変更し、操作時刻の値をその閲覧の日時に変更し、操作者の値をuser2に変更する。なお、「閲覧」操作によっては文書の内容は変化しないので、文書内容３２０は、"Content1"のままである。
【００７３】
このようにＩＤ付き文書"Doc1"は、閲覧されると、閲覧後のＩＤ付き文書"Doc2"に置き換えられる。したがって、その置き換えの後は、ＩＤ付き文書"Doc1"自体はそのクライアント端末２０には存在せず、その代わりにＩＤ付き文書"Doc2"が存在することとなる。
【００７４】
続いて、user2が閲覧した後のＩＤ付き文書"Doc2"を電子メールなどによって受け取った他のユーザuser3が、クライアント端末の文書操作部２００でＩＤ付き文書"Doc2"を閲覧し、その閲覧結果のＩＤ付き文書"Doc3"が文書管理サーバ１０に登録される。閲覧されるのは内容ＩＤ"Content1"の文書内容である。この操作の前にuser3のクライアント端末２０内にあったＩＤ付き文書"Doc2"は、この操作に伴い、派生関係組込部２０４によりＩＤ付き文書"Doc3"に置き換えられる。この置き換え処理では、派生関係組込部２０４は、元のＩＤ付き文書"Doc2"のうち、メタ情報３１０の管理ＩＤ３１２を新たに発行したＩＤ"Doc3"へ変更すると共に、元の文書"Doc2"の管理ＩＤ"Doc2"を親ＩＤ３１４の値にセットする。また、派生関係組込部２０４は、ログ情報３１６の操作時刻の値をその閲覧の日時に変更し、操作者の値をuser3に変更する。ログ情報３１６の操作の種別の値は「閲覧」のままである。なお、今回の操作も閲覧なので、文書内容３２０は変化しない。
【００７５】
次に、user1から配布されたＩＤ付き文書"Doc1"がuser8のクライアント端末の文書操作部２００で編集される。クライアント端末は、その編集結果の文書内容"Content2"を含み、親ＩＤが"Doc1"であり、操作種別の値が「編集」である新たなＩＤ付き文書"Doc4"を生成し、文書管理サーバ１０に登録する。user8のクライアント端末のＩＤ付き文書"Doc1"は、このＩＤ付き文書"Doc4"に置き換えられる。
【００７６】
次に、ＩＤ付き文書"Doc2"をuser4がクライアント端末の文書操作部２００で閲覧し、その結果のＩＤ付き文書"Doc5"が文書管理サーバ１０に登録される。user4のクライアント端末のＩＤ付き文書"Doc2"は、この閲覧結果のＩＤ付き文書"Doc5"に置き換えられる。さらにその後、ＩＤ付き文書"Doc5"がuser6のクライアント端末の文書操作部２００で閲覧され、その結果のＩＤ付き文書"Doc6"が文書管理サーバ１０に登録される。user6のクライアント端末のＩＤ付き文書"Doc5"は、この閲覧結果のＩＤ付き文書"Doc6"に置き換えられる。
【００７７】
図５及び図６は、この時点での派生関係ＤＢ１１０内の、"Doc1"から派生する文書或いは操作の様子を示している。
【００７８】
以上、派生関係ＤＢ１１０のデータ内容を例に取り、本システムにおける文書操作の情報の登録の様子を説明した。
【００７９】
図４の説明に戻り、要求処理部１４０は、クライアント端末２０からの管理ＩＤを含んだサービス要求に応じて、派生関係ＤＢ１１０を用いたサービスを提供する。要求処理部１４０が提供するサービスとしては、例えば、サービス要求中の管理ＩＤに対応する文書の最新版を検索するサービスがある。また別の例として、サービス要求中の管理ＩＤに対応する始祖（根）の文書又はその始祖についてのログ情報を提供するサービスがある。また、別の例として、その管理ＩＤの来歴、すなわち始祖からその管理ＩＤまでに文書が経てきた操作の履歴（例えば誰がいつどんな操作をしたのかを示す情報のリスト）を提供するサービスもある。また、派生関係ＤＢ１１０に登録された属性項目についての検索条件の指定を受け付け、その検索条件を満足するＩＤ付き文書のリストを提供するサービスもある。なお、上述の最新版を検索するサービスは、「操作日時が最新である」という検索条件についての検索結果を提供するサービスと捉えてもよい。また、上述の始祖の文書の情報を提供するサービスは、「ノードアドレスが根を示す文書」という条件についての検索結果を提供するサービスと捉えてもよい。
【００８０】
サービス要求は、クライアント端末２０に保持されたＩＤ付き文書に基づき発せられる。例えば、ユーザがクライアント端末２０の文書操作部２００によりＩＤ付き文書を開いた場合に、文書操作部２００が、派生関係を用いたサービスのメニューを提供し、そのメニューの中からユーザが所望するサービスの指定を受け付ける。そして、そのＩＤ付き文書の管理ＩＤと指定されたサービスを示すコードとを含むサービス要求を文書管理サーバ１０の要求処理部１４０に送信する。このとき、ユーザ識別情報や操作日時などの属性項目についての検索条件を指定するユーザインタフェース画面を提供し、この画面を介して入力された検索条件を併せて要求処理部１４０に送信してもよい。また、管理ＩＤと、サービスを示すコード、検索条件以外に、指示を行ったユーザの識別情報や、ユーザの入力した認証情報などといった他の情報を、クライアント端末２０から要求処理部１４０に送信するようにしてもよい。
【００８１】
また別の例として、ユーザによるサービスの指定を一つの「操作」と捉え、その「操作」に対して新たに管理ＩＤを付与することも考えられる。この場合、指定されたサービスのコードを操作種別として含み、指定の際に用いられた元のＩＤ付き文書の管理ＩＤを親ＩＤとして含んだＩＤ付き文書を生成し、このＩＤ付き文書をサービス要求として文書管理サーバ１０に送ってもよい。この場合、要求処理部１４０は、受け取ったＩＤ付き文書内の操作種別の情報に基づき提供すべきサービスを判定し、同じくＩＤ付き文書内の親ＩＤを、派生関係を遡る処理の起点とする。
【００８２】
要求処理部１４０は、クライアント端末２０からサービス要求を受けた場合、そのサービス要求中に指定された管理ＩＤを起点に、派生関係ＤＢ１１０に登録された管理ＩＤと親ＩＤとの派生関係が構成する木を走査（トラバース）し、その走査の結果得られた情報を用いて、ユーザから要求されたサービスを実行する。
【００８３】
以下、本実施形態のシステムにおける文書の状態変化を通知する処理について説明する。
【００８４】
クライアント端末２０の通知条件取得部２２２は、通知条件を取得する処理を行う。例えば、通知条件取得部２２２は、図７に示すような画面を表示装置に表示させ、ユーザの入力を受け付ける。ユーザは、この画面表示に従って通知条件を設定する。
【００８５】
図７に示す画面表示において、「通知方法」の項目では、ユーザは、上述の通知方法を指定する。図７に示す例では、「通知ウィンドウ」、「メール」、及び「アイコン」が通知方法の選択肢として挙げられている。「通知ウィンドウ」が指定されると、通知部２２８は、クライアント端末２０の表示画面に検索結果を表すウィンドウを表示させる。「メール」が指定されると、通知部２２８は、指定された電子メールアドレスに対して、検索結果を含む電子メールを送信する処理を行う。「アイコン」が指定されると、通知部２２８は、クライアント端末２０の表示画面上で指定文書を表すアイコンの表示形式を変更する処理を行う。
【００８６】
「スケジュール」の項目では、ユーザは、上述の通知時期を設定する。図７の例では、「ログオン時」に設定されているので、クライアント端末２０の利用開始時にユーザがログオン処理をしたときに通知処理が行われる。
【００８７】
「チェック対象」の項目では、ユーザは、指定文書を決定する条件を設定する。図７の例では、「全てのローカルディスク」に設定されており、クライアント端末２０の記憶装置２３０内に記憶されたＩＤ付き文書がすべて指定文書となる。
【００８８】
「チェック条件」の項目では、ユーザは、上述の検索条件を設定する。図７には、検索条件として、「操作者」、「派生関係」、及び「操作種別」の３つの項目を設定する場合の例を示す。「操作者」の項目では、ＩＤ付き文書を生成する操作を行ったユーザを指定する。「操作種別」の項目では、ＩＤ付き文書が生成された操作の種類を指定する。「派生関係」の項目では、指定文書と検索対象の文書との間に存在すべき派生関係の条件を指定する。この派生関係の条件は、文書管理サーバ１０の派生関係ＤＢ１１０内のレコードが表す木構造において、指定文書のノードとどのような位置関係にあるノードに対応する文書を検索対象とするかを定義する条件である。例えば、図７において、「派生文書」が選択されると、派生関係の条件として「指定文書の子孫に該当する文書」という条件が設定され、「登録文書」が選択されると、「指定文書と同じ木に属する文書」という条件が設定される。図７の例において、「オリジナル文書」が選択された場合に設定される派生関係の条件の内容については後述する。派生関係の条件は、図７に例示したものに限らず、例えば、「指定文書と指定文書の始祖となる文書との間の経路に含まれる文書」など、木構造におけるノード間の関係を指定する条件であればよい。
【００８９】
検索条件として、図７の例で挙げた項目以外の項目についての条件を設定してもよい。例えば、操作時刻に関する条件を設定してもよい。操作時刻に関する条件は、例えば、「操作時刻が最も新しい文書」、「操作時刻が最も古い文書」、「指定文書の操作時刻と最も近い操作時刻の文書」、及び「指定文書の操作時刻よりも後の操作時刻の文書」などの条件である。
【００９０】
ユーザが検索条件を指定する際には、検索条件の各項目を論理式で組み合わせた条件としてもよい。図７の例では、「操作者」、「派生関係」、及び「操作種別」の項目については、ユーザが選択するとＡＮＤ条件で検索条件に組み込まれる。「操作者」の項目で複数のユーザを指定した場合は、複数のユーザのうちの誰か（ＯＲ条件）又は全員（ＡＮＤ条件）が操作を行ったことを操作者の条件とする。同様に、「操作種別」の項目で複数の操作種別を指定した場合も、ＯＲ又はＡＮＤで複数の操作種別を組み合わせた条件を操作種別の条件として設定する。
【００９１】
「通知内容」の項目は、検索結果を通知する場合に提供する情報の内容を指定する項目である。図７の例では、「１つでもあれば」又は「総数」をユーザが選択するようになっている。「１つでもあれば」が指定されると、例えば、チェック条件に該当する文書が１つでも存在すればその文書についての情報が通知される。「総数」が指定されると、チェック条件に該当する文書の総数が通知される。「総数」が指定された場合にも、チェック条件に該当する文書の総数だけでなく、該当文書についての情報を通知内容に含めてもよい。図７には示していないが、そのような条件設定を受け付けるようにしてもよい。
【００９２】
通知条件取得部２２２は、ユーザによって設定された通知条件を受け付けて、受け付けた通知条件を検索指示部２２４及び通知部２２８に渡す。
【００９３】
検索指示部２２４は、通知条件取得部２２２から受け取った通知条件で指定された通知時期に文書管理サーバ１０に対して検索指示を行う。この検索指示の処理では、検索指示部２２４は、まず、通知条件に含まれる指定文書を決定する条件に従って、指定文書の管理ＩＤを取得する。例えば、記憶装置２３０内の指定されたフォルダに含まれるＩＤ付き文書の管理ＩＤを取得する。その後、検索指示部２２４は、指定文書の管理ＩＤと、検索条件を定義する情報と、を文書管理サーバ１０に送信する。
【００９４】
以下、クライアント端末２０の検索指示部２２４からの検索指示（サービス要求）を受け取った場合の文書管理サーバ１０の要求処理部１４０の処理手順を説明する。まず、要求処理部１４０は、検索指示で特定される検索条件に含まれる派生関係の条件に従って、この派生関係の条件で定義された派生関係を指定文書との間に有する文書を検索対象とする検索処理を実行する。例えば、検索条件において「指定文書の子孫に該当する文書」という派生関係の条件が含まれていれば、図８及び図９に例示する手順の処理を実行する。以下、図８及び図９を参照し、派生関係ＤＢ１１０内のデータ内容が図５及び図６に例示したものである時に、user2のクライアント端末２０から、ＩＤ付き文書"Doc2"を指定文書とし、「指定文書の子孫に該当する文書」という派生関係の条件と、「操作種別が「閲覧」である文書」という条件と、を含む検索条件を特定して検索指示が行われた場合を具体例として用いて説明する。
【００９５】
図８を参照すると、まずステップＳ１で、要求処理部１４０は、クライアント端末２０から受け取ったサービス要求（検索指示）から、指定文書の管理ＩＤを取り出し、その管理ＩＤを注目ＩＤにセットする。次に、ステップＳ２で、要求処理部１４０は、派生関係ＤＢ１１０を参照し、注目ＩＤの子ＩＤを検索する。派生関係ＤＢ１１０のうちその注目ＩＤを「親ＩＤ」の値として持つレコードの「管理ＩＤ」が、注目ＩＤの子ＩＤである。次に、ステップＳ３で、注目ＩＤの子ＩＤが検索できたか否かを判定する。子ＩＤがあれば、ステップＳ４で、要求処理部１４０は、それら子ＩＤごとに、図９に示すような子孫探索処理を実行する。ステップＳ３で、注目ＩＤの子ＩＤがないと判定された場合は、ステップＳ４の処理を行わずにステップＳ５に進む。
【００９６】
ステップＳ４の子孫探索処理が開始されると、図９のステップＳ１１で、要求処理部１４０は、当該子ＩＤを注目ＩＤとする。次に、ステップＳ１２で、要求処理部１４０は、その注目ＩＤに対応するレコードを派生関係ＤＢ１１０から取得する。ステップＳ１３では、ステップＳ１２で取得したレコードを中間結果リストに入れる。中間結果リストは、要求された処理の処理結果を求めるための材料となる情報を蓄積するために構築されるリストである。
【００９７】
ステップＳ１４で、要求処理部１４０は、注目ＩＤの子ＩＤを検索し、ステップＳ１５で、子ＩＤが検索できたか否かを判定する。子ＩＤがあれば、要求処理部１４０は、それら各子ＩＤについて、それぞれステップＳ４の子孫探索処理を再帰的に実行する。すべての子ＩＤについての子孫探索処理が終了すると、当該注目ＩＤについての処理が終了する。ステップＳ１５で子ＩＤがないと判定された場合も、当該注目ＩＤについての処理は終了する。
【００９８】
再び図８を参照し、注目ＩＤのすべての子ＩＤについてステップＳ４の子孫探索処理が終了すると、中間結果リストには、注目ＩＤに対応する文書から派生した文書に対応するレコードが蓄積されていることになる。注目ＩＤが図５の"Doc2"である場合、中間結果リストには、管理ＩＤ"Doc3"、"Doc5"、及び"Doc6"のレコードが蓄積される。要求処理部１４０は、ステップＳ５で、中間結果リストから検索条件を満たすレコードを選択する。例えば、検索条件として「操作種別が「閲覧」である」という条件が設定されている場合に、中間結果リストに管理ＩＤ"Doc3"、"Doc5"、及び"Doc6"のレコード（操作種別はすべて「閲覧」）が蓄積されていると、中間結果リスト内のすべてのレコードが選択される。ステップＳ６では、ステップＳ５で選択されたレコードに対応する文書についての情報を検索結果として提供する。ここで、要求処理部１４０は、対応する文書の内容を提供してもいいし、対応する文書のレコードの特定の項目の内容を提供してもよい。ステップＳ５で選択されたレコードの内容をすべてクライアント端末２０へ送ってもよい。また、ステップＳ５において中間結果リスト内に検索条件を満たすレコードが存在しなかった場合は、ステップＳ６で、検索条件を満たす文書が見つからなかった旨を表す情報をクライアント端末２０へ送る。
【００９９】
クライアント端末２０の検索結果取得部２２６は、文書管理サーバ１０から検索結果の提供を受けて、受け取った検索結果を通知部２２８へ渡す。通知部２２８は、通知条件で指定された方法に従って、検索結果を通知させる処理を行う。例えば、検索結果として、図８のステップＳ５で選択されたレコードの内容が提供され、通知方法として図７の例の「通知ウィンドウ」が設定されていたとする。通知部２２８は、検索結果のレコードの内容に基づいて、例えば図１０のような表示ウィンドウをクライアント端末２０の表示画面に表示させる処理を行う。図１０は、指定文書がＩＤ付き文書"Doc2"であり、「指定文書の子孫に該当する文書」という派生関係の条件と、「操作種別が「閲覧」である文書」という条件と、を含む検索条件が設定されていた場合に文書管理サーバ１０から提供された検索結果を表示する表示ウィンドウの例である。通知方法として図７の例の「メール」が指定されていた場合は、通知部２２８は、例えば図１０に表示される「user3が2006年10月01日11時05分に閲覧」、「user4が2006年10月01日11時45分に閲覧」、及び「user6が2006年10月01日13時35分に閲覧」の文を含む電子メールの送信をクライアント端末２０の電子メール送受信アプリケーションに対して指示する。通知方法として、図７の例の「アイコン」が指定されていた場合は、ＩＤ付き文書"Doc2"を表すアイコンとしてクライアント端末２０の表示画面上に表示されるアイコンを通常と異なる色で表示させるようにしたり、当該アイコンの画像に例えば「閲覧」の文字を重畳して表示させるようにしたりする。
【０１００】
以上では、図５に例示する内容のデータのように、レコードの項目として「公開」属性を含まないデータが派生関係ＤＢ１１０に登録されている場合の処理について説明した。派生関係ＤＢ１１０には、図１１に例示するように、レコードの項目として「公開」属性を含むデータが登録されている場合もある。派生関係ＤＢ１１０にレコードの項目として「公開」属性が登録されている場合、要求処理部１４０は、後述の例のように「公開」属性を利用した処理を行う。図１１には、あるユーザがアンケート記入用の文書であるアンケートフォームを登録し、登録されたアンケートフォームを他のユーザがダウンロード取得して記入し、記入済みのアンケートフォームを登録した場合の文書の履歴の例を示す。図１２は、図１１のデータ内容がなす木構造を表す図である。
【０１０１】
この例では、まず、user1がアンケートフォームの「登録」操作を行う。この例では、「登録（新規登録）」する操作、及び「更新（更新版として登録）」する操作によって本システムに登録される文書を公開対象とする。user1の「登録」操作により、管理ＩＤが"Doc1"で、「公開」属性値が公開対象であることを示す「１」であるＩＤ付き文書が生成され、その文書内容が文書ＤＢ１００に登録され、ＩＤ付き文書"Doc1"に対応するレコードが派生関係ＤＢ１１０に登録される。次に、user2が、自分のクライアント端末２０の文書操作部２００によって、管理ＩＤ"Doc1"の文書を文書管理サーバ１０から「取得」する操作を行う。ここで、「取得」操作とは、クライアント端末２０の文書操作部２００によって、文書管理サーバ１０の記憶装置及び他のクライアント端末２０の記憶装置などに記憶されたＩＤ付き文書をダウンロードしたり、複製したりする操作を表す。user2による「取得」操作によって、親ＩＤが"Doc1"であり、「公開」属性値が公開対象でないことを示す「０」であるＩＤ付き文書"Doc2"が生成され、文書管理サーバ１０に登録される。その後、user2がＩＤ付き文書"Doc2"のアンケートフォームに対して記入を行って記入済みアンケートフォームを「更新版として登録」する操作を行うと、親ＩＤを"Doc2"とし、「公開」属性値が「１」であるＩＤ付き文書"Doc3"が生成されて文書管理サーバ１０に登録される。次に、user3がＩＤ付き文書"Doc1"を「取得」すると、「公開」属性値が「０」であるＩＤ付き文書"Doc4"が文書管理サーバ１０に登録され、user4がＩＤ付き文書"Doc1"を「取得」すると、「公開」属性値が「０」であるＩＤ付き文書"Doc5"が文書管理サーバ１０に登録される。次に、user4がＩＤ付き文書"Doc5"に対して「編集」操作を行うと「公開」属性値が「０」であるＩＤ付き文書"Doc6"が文書管理サーバ１０に登録される。その後、user3は、ＩＤ付き文書"Doc4"に記入して「更新版として登録」する操作を行い、その操作結果のＩＤ付き文書"Doc7"が、「公開」属性値を「１」として文書管理サーバ１０に登録される。さらにその後、user4がＩＤ付き文書"Doc6"に記入して「更新版として登録」する操作を行うと、その操作結果のＩＤ付き文書"Doc8"が、「公開」属性値を「１」として文書管理サーバ１０に登録される。
【０１０２】
図１１及び図１２に示すような操作が行われた状況で、アンケートフォームを登録したuser1が、他のユーザによって記入済みのアンケートの文書についての情報を収集することを望む場合がある。この場合、user1は、クライアント端末２０において、ＩＤ付き文書"Doc1"を指定文書とし、「指定文書の子孫に該当する文書」という派生関係の条件と、「操作種別が「更新（更新版として登録）」である文書」という条件と、を含む検索条件を設定すれば、user1が登録したアンケートフォームに対して記入済みのアンケートの文書についての情報を文書管理サーバ１０から検索結果として受け取る。
【０１０３】
以下、図１１に例示する内容のデータが派生関係ＤＢ１１０に登録されている場合に、要求処理部１４０が、ＩＤ付き文書"Doc1"を指定文書とし、「指定文書の子孫に該当する文書」という派生関係の条件と、「操作種別が「更新（更新版として登録）」である文書」を含む検索条件と、を特定する検索指示をクライアント端末２０から受けた場合の処理について説明する。
【０１０４】
図１１の例のようにレコードの項目として「公開」属性を含むデータが派生関係ＤＢ１１０に登録されている場合、要求処理部１４０は、図８を参照して説明した処理を行うが、ステップＳ４の子孫探索処理において、図９に例示する手順の処理の代わりに、図１３に例示する手順に従った処理を行う。図１３を参照すると、図９に示す処理のステップＳ１１及びステップＳ１２の処理と同様に、子ＩＤを注目ＩＤとして設定し（ステップＳ１１）、注目ＩＤに対応するレコードを派生関係ＤＢ１１０から取得した（ステップＳ１２）後、ステップＳ４０で、取得したレコードの「公開」属性が「１」であるか否かを判定する。取得したレコードの「公開」属性が「１」であれば、ステップＳ１３に進み、「公開」属性が「０」であれば、ステップＳ１３の処理を行わずにステップＳ１４に進む。図１３において、ステップＳ１３以降の処理は、図９を参照して説明したステップＳ１３以降の処理と同様である。ステップＳ４０の判定処理が行われることで、図１３に示す子孫探索処理（図８のステップＳ４）の終了後、中間結果リストには、「公開」属性が「１」であるレコードのみが入ることになる。図１１の文書"Doc1"を指定文書とする上述の例では、図８のステップＳ４の後、中間結果リストには、管理ＩＤ"Doc3"、"Doc7"、及び"Doc8"のレコードが蓄積されている。図８のステップＳ５では、「公開」属性が「１」であるレコードの中から、検索条件を満たすレコードが選択される。図１１を参照する上述の例では、検索条件として「操作種別が「更新（更新版として登録）」である文書」という条件が設定されており、中間結果リストに蓄積されたレコード（管理ＩＤ"Doc3"、"Doc7"、及び"Doc8"）の操作種別はすべて「更新」である。したがって、本例では、ステップＳ５において、中間結果リスト内のすべてのレコード（管理ＩＤ"Doc3"、"Doc7"、及び"Doc8"）が選択される。次に、ステップＳ６では、ステップＳ５で選択されたレコードに対応する文書についての情報が検索結果として提供される。
【０１０５】
以上、派生関係の条件として、「指定文書の子孫に該当する文書」という条件が設定された場合の要求処理部１４０の処理について説明した。次に、派生関係の条件として「指定文書と同じ木に属する文書」という条件が設定された場合の要求処理部１４０の処理について説明する。要求処理部１４０は、クライアント端末２０から受けた検索指示において、派生関係の条件として「指定文書と同じ木に属する文書」という条件が設定されている場合、図１４に例示する手順の処理を行う。
【０１０６】
図１４において、図８と同様の処理には同様の符号を付す。ステップＳ１で、要求処理部１４０は、クライアント端末２０から受け取ったサービス要求（検索指示）から、指定文書の管理ＩＤを取り出し、その管理ＩＤを注目ＩＤにセットする。次に、ステップＳ２０で、要求処理部１４０は、注目ＩＤに対応するレコードを派生関係ＤＢから取得する。そして、ステップＳ２１で、そのレコード中の操作種別の項目が「登録」であるか否かを判定する。操作種別が「登録」であれば、ステップＳ２に進み、操作種別が「登録」でなければステップＳ２２に進む。
【０１０７】
ステップＳ２２では、要求処理部１４０は、ステップＳ２１で取得されたレコード中の親ＩＤの項目に登録されている管理ＩＤを注目ＩＤにセットし、処理は再びステップＳ２０に戻る。このステップＳ２０からステップＳ２２のループは、サービス要求中の管理ＩＤから派生関係の木構造を遡り、大本（根）である文書の「登録」操作を見つけるための処理を表す。ステップＳ２１の判定結果がＹｅｓとなった場合、そのときの注目ＩＤは、根である「登録」操作に対応する。図５の例で、指定文書が管理ＩＤ"Doc2"であった場合、管理ＩＤ"Doc2"から木構造を遡ることで、最終的に、根である管理ＩＤ"Doc1"に到達する。
【０１０８】
図１４において、ステップＳ２以下の処理は図８及び図９を参照して説明した処理と同様である。図５の例で指定文書が管理ＩＤ"Doc2"であった場合、図１４のステップＳ４の処理が終了した時点で、中間結果リストには、指定文書"Doc2"と同じ木に属する文書のレコードが、つまり図５に示すレコードのすべてが含まれる。ここで、例えば、「操作種別が「編集」の文書」かつ「操作時刻が最新の文書」という検索条件が設定されていた場合、図１４のステップＳ５では、図５の管理ＩＤ"Doc4"のレコードが選択され、ステップＳ６でＩＤ付き文書"Doc4"についての情報が提供される。この例では、指定文書に関連する最新版の文書が提供されることになる。また、派生関係ＤＢ１１０に登録されるレコードが「公開」属性の項目を含む場合は、図１４のステップＳ４では、図１３を参照して説明した「公開」属性を考慮する子孫探索処理を行う。
【０１０９】
派生関係の条件の他の例として、派生関係の木構造において、検索の境界を設定し、これらの境界で区切られた範囲内で検索を行う例が考えられる。
【０１１０】
説明のための事例として、図１５及び図１６に示すような派生関係を考える。この例は、あるユーザが申請書などのフォーム（ひな形文書）を本システムに登録し、他のユーザがそのフォームに対して記入を行い、記入済みフォームを本システムに登録する業務の流れを示す。この場合に派生関係ＤＢ１１０に記録されるデータの内容の例を図１５に示す。図１５に例示する派生関係ＤＢ１１０の内容は、図１６のような木構造を成す。
【０１１１】
図１５に示す例では、user1がクライアント端末２０の文書操作部２００で、申請書などのフォームを作成し、管理ＩＤ"Doc1"のＩＤ付き文書として文書管理サーバ１０に登録する。その後、user1は、ＩＤ付き文書"Doc1"を編集し、その結果のＩＤ付き文書"Doc2"が登録される。次に、user2がＩＤ付き文書"Doc1"を「取得」する操作を行うことで、ＩＤ付き文書"Doc3"が登録される。その後、user3がＩＤ付き文書"Doc1"を「取得」し、ＩＤ付き文書"Doc4"が登録される。次に、user1が申請書フォームであるＩＤ付き文書"Doc2"を「更新」してＩＤ付き文書"Doc5"が登録される。その後、ＩＤ付き文書"Doc5"をuser4が「取得」すると、ＩＤ付き文書"Doc6"が登録される。また、user2は、自分が取得した申請書フォーム（ＩＤ付き文書"Doc3"）に対して記入し、記入済みの申請書フォームを「更新版として登録」する操作を行い、その結果、ＩＤ付き文書"Doc7"が文書管理サーバ１０に登録される。さらにその後、user1がＩＤ付き文書"Doc5"に対して申請書フォームを更新し、「更新版として登録」する操作を行って、ＩＤ付き文書"Doc8"が文書管理サーバ１０に登録される。図１５及び図１６に示す例では、図１１及び図１２の例と同様、文書を本システムに新規に「登録」する操作、及び「更新版として登録」する操作が行われた場合に、「公開」属性の値が「１」に設定される。
【０１１２】
図１５及び図１６の例では、派生関係の木構造の中に検索境界を設定可能としている。検索境界を表すため、図１５に示す例では、ＩＤ付き文書のメタ情報に「境界」属性を組み込んでいる。ある文書の「境界」属性の値が「１」であれば、その文書とその親との間が検索境界であることを示す。ある文書の「境界」属性の値が「０」であれば、その文書とその親とは同じ検索範囲に属する。どのような種別の操作の結果を検索境界とするかは、文書操作部２００にあらかじめ登録されている。図１５の例では、クライアント端末２０の文書操作部２００で、文書を「登録」する操作、及び文書を「取得」する操作が行われた場合に、「境界」属性が「１」に設定される。この「境界」属性が「１」に設定されると、ＩＤ付き文書とその親ＩＤに対応する文書とが、派生関係としてはつながっているが、文書としては別系統のものであることを示す。
【０１１３】
例えば、図１５に示すＩＤ付き文書"Doc3"のメタ情報レコードは、以下の例４に示すようなものとなる。
【０１１４】
[例４]
<metadata sid="Doc3" pid="Doc1" date="2006-10-11T09:11" method="download" user="user2" shared="0" unrelated="1"/>
【０１１５】
この例において、unrelated属性が「境界」属性である。また、例４で、method属性値の"download"は「取得」操作を表す。
【０１１６】
図１５及び図１６の例のように、あるユーザが特定の形式の文書（以下「オリジナル文書」と呼ぶ）を作成して文書管理サーバ１０に登録し、他のユーザが文書管理サーバ１０に登録されたオリジナル文書をダウンロード操作などにより取得し、取得したオリジナル文書に対して記入を行い、記入後の文書を文書管理サーバ１０に登録する状況が考えられる。このような状況で、オリジナル文書を作成して登録したユーザが当該オリジナル文書を適宜編集し、更新版として登録する操作を行うとすると、オリジナル文書に対して記入を行う他のユーザは、オリジナル文書の更新版の存在の確認、及び最新版のオリジナル文書の入手などを望むことがある。このような場合に本実施形態では、例えば図７に示した通知条件設定のための表示画面において、派生関係の条件としてユーザが「オリジナル文書」を選択すると、オリジナル文書に対する更新に関する情報を通知させる。
【０１１７】
以下、図１５及び図１６の例において、ユーザuser3が、自分が「取得」操作を行った申請フォーム（文書"Doc4"）を指定文書とし、派生関係の条件として図７に例示した表示画面において「オリジナル文書」を選択した場合の処理の例について説明する。ユーザが「オリジナル文書」を選択すると、派生関係の条件として、「「取得」先の文書（「取得」操作に対応する文書の親文書）の子孫である部分木において、検索境界で区切られる範囲に含まれる文書」という条件が設定され、検索条件としては、「操作種別が「更新」である文書」という条件が設定される。図１５及び図１６の例で、文書"Doc4"を指定文書とした場合、その「取得」先の文書（文書"Doc1"）の子孫である部分木において、検索境界で区切られる範囲に含まれる文書（文書"Doc2"、"Doc5"、及び"Doc8"）が検索対象となる。
【０１１８】
派生関係の条件として「オリジナル文書」が選択された場合の要求処理部１４０が行う処理の例を図１７に示す。まずステップＳ１で、サービス要求中の管理ＩＤを注目ＩＤとする。次に、ステップＳ２０で、注目ＩＤに対応するレコードを派生関係ＤＢ１１０から取得する。ステップＳ３０で、要求処理部１４０は、ステップＳ２０で取得したレコードの「境界」属性の値が「１」であるか否かを判定する。「境界」属性の値が「０」であれば、ステップＳ３１で、レコード中の親ＩＤを注目ＩＤとして設定し、ステップＳ２０の処理に戻る。「境界」属性の値が「１」であれば、ステップＳ３２でレコード中の親ＩＤを注目ＩＤとして設定し、ステップＳ２に進む。ステップＳ２０，Ｓ３０，Ｓ３１の処理ループで、派生関係の木構造において指定ＩＤに対応する文書から、「境界」属性の値が「１」であるレコードまで遡る。ステップＳ２以降の処理は、図８及び図１４を参照して説明した処理と同様である。
【０１１９】
図１８に、「境界」属性が設定される場合に、図１７のステップＳ４の子孫探索処理で行われる処理手順の例を示す。図１７のステップＳ４の子孫探索処理が開始されると、ステップＳ１１で当該子ＩＤを注目ＩＤとし、ステップＳ１２で、その注目ＩＤに対応するレコードを派生関係ＤＢ１１０から取得する。次に、ステップＳ５０で、取得したレコードの「境界」属性が「１」であるか否かを判定する。「境界」属性が「１」であれば、ステップＳ４０以降の処理を行わずに子孫探索処理を終了する。「境界」属性が「０」であれば、ステップＳ４０に進む。次に、ステップＳ４０では、ステップＳ１２で取得されたレコードの「公開」属性が「１」であるか否かを判定する。「公開」属性が「１」であればステップＳ１３に進み、「公開」属性が「０」であればステップＳ１３の処理を行わずにステップＳ１４に進む。ステップＳ１３以降の処理は、図９及び図１３を参照して説明したステップＳ１３以降の処理と同様である。図１８に例示する子孫探索処理では、「境界」属性が「１」であるレコードの子孫については探索を行わない。なお、派生関係ＤＢ１１０内のレコードが「公開」属性の項目を含まない場合は、図１８の子孫探索処理において、ステップＳ５０で「境界」属性が「０」である場合に、ステップＳ４０の「公開」属性の値の判定を行わずにステップＳ１３に進む。
【０１２０】
図１７を参照し、ステップＳ４の子孫探索処理（図１８）の処理が終了した時点で、中間結果リストには、派生関係の木構造を指定文書から遡って最初に検索境界の設定された文書の親文書が含まれる部分木であって検索境界で区切られる部分木に属する文書に対応するレコードのうち、「公開」属性が「１」であるレコードが含まれていることになる。ステップＳ５で、この中間結果リスト中のレコードから、検索条件を満たすレコードを選択する。ここでは、検索条件として「操作種別が「更新」である文書」という条件が設定されているので、図１５及び図１６の文書"Doc4"が指定文書である場合、文書"Doc5"及び"Doc8"に対応するレコードが選択される。「操作時刻が最新である文書」という条件を検索条件としてユーザがさらに設定しておけば、ステップＳ５で、操作種別が「更新」であり、かつ操作時刻が最新のレコードが選択される。次に、ステップＳ６で、要求処理部１４０は、ステップＳ５で選択されたレコードに対応する文書についての情報をクライアント端末２０へ送る。
【０１２１】
図１５及び図１６に示す例のように「取得」操作で検索境界が設定される場合に、ユーザが派生関係の条件として「オリジナル文書」を選択すると、図１７及び図１８を参照して説明した処理が行われ、検索境界が設定された文書の親文書を含み、検索境界で区切られた部分木に含まれる文書を検索対象として検索が行われる。例えば、user3が管理ＩＤ"Doc4"を指定文書とした場合、親文書（"Doc1"）以下の文書のうち「更新」操作が行われたのは文書"Doc5"、"Doc7"、及び"Doc8"である。しかし、"Doc7"の親文書である"Doc3"は、「境界」属性が「１」に設定されているので、文書"Doc7"は中間結果リストに入らない。上述のように「取得」操作で検索境界を設定すると、申請フォーム自体が変更される「更新」操作と、ユーザが申請フォームに記入する「更新」操作と、が区別される。状況に応じて「取得」操作以外の操作について「境界」属性を「１」に設定してもよい。
【０１２２】
以上に例示した実施形態及び変形例では、管理ＩＤの発行は各クライアント端末２０で行われていたが、この代わりに文書管理サーバ１０が管理ＩＤを発行してもよい。この場合、クライアント端末２０は、ＩＤ付き文書に対して操作を行った場合、操作前のＩＤ付き文書内の管理ＩＤを親ＩＤ３１４として含み、更にその操作についてのログ情報３１６と操作後の文書内容３２０とを含み、管理ＩＤ３１２は空欄の文書データを生成し、文書管理サーバ１０に送る。文書管理サーバ１０は、受け取った文書データに対して新たな管理ＩＤを付与し、この管理ＩＤとその文書データとに含まれる情報を、文書ＤＢ１００及び派生関係ＤＢ１１０に登録する。また、文書管理サーバ１０は、付与した管理ＩＤを当該文書データにセットすることによりＩＤ付き文書を生成し、これをクライアント端末２０に返す。クライアント端末２０は、操作前のＩＤ付き文書を、受け取ったＩＤ付き文書に置き換える。このように、文書管理サーバ１０が管理ＩＤを付与する構成でも、上述実施形態及び変形例の処理は同様に実行される。
【０１２３】
また以上の実施形態及び変形例では、管理ＩＤ３１２、親ＩＤ３１４、ログ情報３１６、及び文書内容３２０を含んだＩＤ付き文書３００がクライアント端末２０に保存されたが、この代わりに、クライアント端末２０は管理ＩＤしか持たず、その他の情報は文書管理サーバ１０に保存されるようにしてもよい。この場合、クライアント端末２０で文書を操作する場合、その文書に対応する管理ＩＤを文書管理サーバ１０に送り、文書管理サーバ１０からその文書を取得する。また、別の例として、クライアント端末２０が保持するＩＤ付き文書３００の中には管理ＩＤ３１２と文書内容３２０とが含まれ、親ＩＤ３１４及びログ情報３１６は含まれないようにしても良い。この場合、サーバがその管理ＩＤ３１２に対応づけて親ＩＤ３１４とログ情報３１６を持つようにすれば良い。
【０１２４】
ここで、文書管理サーバ１０が管理ＩＤを付与する場合は、その取得の操作に対応する管理ＩＤを文書管理サーバ１０が生成し、その管理ＩＤと文書とを対応づけてクライアント端末２０に提供するとともに、その取得操作についてのログ情報（操作時刻や操作者など）と、元の管理ＩＤ（すなわち親ＩＤ）と、付与した管理ＩＤとを派生関係ＤＢ１１０に記録する。クライアント端末２０は、文書管理サーバ１０に送信した管理ＩＤを、受け取った管理ＩＤに置き換えると共に、受け取った文書を開く。ユーザは、開かれた文書に対して閲覧や編集などの操作を行う。クライアント端末２０は、文書に対する操作が完了すると、操作後の文書を管理ＩＤ及び当該操作についてのログ情報と共に文書管理サーバ１０に送る。文書管理サーバ１０は、受け取った文書に対して新たな管理ＩＤを付与して派生関係ＤＢ１１０に登録し、受け取った管理ＩＤを親ＩＤとして派生関係ＤＢ１１０に登録する。また、受け取ったログ情報及び操作後の文書を、派生関係ＤＢ１１０及び文書ＤＢ１００に登録する。そして、文書管理サーバ１０は、新たに付与した管理ＩＤをクライアント端末２０に返す。クライアント端末２０は、元の管理ＩＤを受け取った管理ＩＤで置き換える。以上のような処理により、操作間の派生関係が文書管理サーバ１０に蓄積されることになる。
【０１２５】
一方、クライアント端末２０が管理ＩＤを付与する構成の場合は、文書管理サーバ１０は、クライアント端末２０から受け取った管理ＩＤに対応する文書をクライアントに返せばよい。クライアント端末２０は受け取った文書を開き、ユーザがその文書を操作する。操作の完了後、クライアント端末２０はその操作結果の文書に対して新たな管理ＩＤを付与し、この管理ＩＤを含んだ前述のＩＤ付き文書と同様の情報を、文書管理サーバ１０に送る。そして、クライアント端末２０は、そのＩＤ付き文書のうち管理ＩＤのみを保存し、その他の情報を削除する。
【０１２６】
以上に例示したシステムにおける文書管理サーバ１０は、典型的には、汎用のコンピュータにて上述の文書管理サーバの各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１９に示すように、ＣＰＵ（中央演算装置）４０、メモリ（一次記憶）４２、各種Ｉ／Ｏ（入出力）インタフェース４４等がバス４６を介して接続された回路構成を有する。また、そのバス４６に対し、例えばＩ／Ｏインタフェース４４経由で、ハードディスクドライブ（ＨＤＤ）４８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ５０が接続される。このようなドライブ４８又は５０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ４８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。クライアント端末２０についても同様である。
【図面の簡単な説明】
【０１２７】
【図１】文書利用管理システムの概略構成の例を示すブロック図である。
【図２】クライアント端末の内部構成の例を示すブロック図である。
【図３】ＩＤ付き文書のデータ構造の例を模式的に示す図である。
【図４】文書管理サーバの内部構成の例を示すブロック図である。
【図５】派生関係ＤＢのデータ内容の例を示す図である。
【図６】図５に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図７】通知条件の設定を受け付けるための表示画面の例を示す図である。
【図８】要求処理部の処理手順の一例を示すフローチャートである。
【図９】要求処理部の処理手順の一部の詳細な手順の例を示すフローチャートである。
【図１０】文書管理サーバから提供された検索結果を表示するウィンドウを表示した表示画面の例を示す図である。
【図１１】変形例における派生関係ＤＢのデータ内容の例を示す図である。
【図１２】図１１に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図１３】要求処理部の処理手順の一例を示すフローチャートである。
【図１４】要求処理部の処理手順の一部の詳細な手順の例を示すフローチャートである。
【図１５】変形例における派生関係ＤＢのデータ内容の例を示す図である。
【図１６】図１５に例示したデータ内容における管理ＩＤ群がなす木構造を図式化して表す図である。
【図１７】要求処理部の処理手順の一例を示すフローチャートである。
【図１８】要求処理部の処理手順の一部の詳細な手順の例を示すフローチャートである。
【図１９】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【０１２８】
１０  文書管理サーバ、２０  クライアント端末、３０  ネットワーク、１００  文書ＤＢ、１１０  派生関係ＤＢ、１３０  文書登録部、１３２  派生関係登録部、１４０  要求処理部、２００  文書操作部、２０２  ＩＤ割り当て部、２０４  派生関係組込部、２１０  登録処理部、２２０  文書状態変化通知処理部、２２２  通知条件取得部、２２４  検索指示部、２２６  検索結果取得部、２２８  通知部、２３０  記憶装置、３００  ＩＤ付き文書。
【図１】
2008257317.tif 000003
【図２】
2008257317.tif 000004
【図３】
2008257317.tif 000005
【図４】
2008257317.tif 000006
【図５】
2008257317.tif 000007
【図６】
2008257317.tif 000008
【図７】
2008257317.tif 000009
【図８】
2008257317.tif 000010
【図９】
2008257317.tif 000011
【図１０】
2008257317.tif 000012
【図１１】
2008257317.tif 000013
【図１２】
2008257317.tif 000014
【図１３】
2008257317.tif 000015
【図１４】
2008257317.tif 000016
【図１５】
2008257317.tif 000017
【図１６】
2008257317.tif 000018
【図１７】
2008257317.tif 000019
【図１８】
2008257317.tif 000020
【図１９】
2008257317.tif 000021
【手続補正書】
【提出日】平成19年9月14日(2007.9.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録する登録部と、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする第１の情報処理装置。
【請求項２】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を情報処理装置から受け取って記憶部に登録する登録部と、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする第１の情報処理装置。
【請求項３】
前記登録部は、前記第２の文書が開示対象であるか否かを示す開示属性情報を情報処理装置からさらに受け取って前記第２の文書と対応づけて記憶部に登録し、
前記検索結果出力部は、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たし、かつ開示対象であることを示す開示属性情報と対応づけられた文書についての情報を検索結果として出力することを特徴とする請求項１又は２に記載の第１の情報処理装置。
【請求項４】
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を情報処理装置から受け取って記憶部に登録するステップと、
指定文書と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を特定する検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項５】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、
を備えることを特徴とする第２の情報処理装置。
【請求項６】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報及び前記操作に関する情報である操作関連情報を送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件及び前記操作関連情報についての条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、
を備えることを特徴とする第２の情報処理装置。
【請求項７】
前記通知条件取得部は、前記指定文書に関連する文書についての情報を通知させる時期を指定する条件をさらに含む通知条件を取得し、
前記検索指示部は、前記通知条件において指定された時期に、前記第１の情報処理装置に対して前記検索指示を行うことを特徴とする請求項５又は６に記載の第２の情報処理装置。
【請求項８】
前記第１の情報処理装置から提供された検索結果を通知させる通知部をさらに備え、
前記通知条件取得部は、前記検索結果を通知させる方法を指定する条件をさらに含む通知条件を取得し、
前記通知部は、前記通知条件で指定された方法で前記検索結果を通知させることを特徴とする請求項５から７のいずれか１項に記載の情報処理装置。
【請求項９】
文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信するステップと、
指定文書に関連する文書についての情報を通知させる通知条件であって、前記指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得するステップと、
前記通知条件を取得するステップにおいて取得された前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行うステップと、
をコンピュータに実行させるためのプログラム。
【請求項１０】
第１の情報処理装置と第２の情報処理装置とを備え、
前記第２の情報処理装置は、
第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を前記第１の情報処理装置に送信する送信部と、
指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得する通知条件取得部と、
前記通知条件取得部が取得した前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行う検索指示部と、を備え、
前記第１の情報処理装置は、
前記派生関係の情報を前記第２の情報処理装置から受け取って記憶部に登録する登録部と、
前記検索指示に応じて、前記記憶部に登録された派生関係群に含まれる文書のうち、前記検索条件を満たす文書についての情報を検索結果として出力する検索結果出力部と、
を備えることを特徴とする情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
請求項９に係る発明は、文書間の派生関係の情報を記憶する第１の情報処理装置に対して、第１の文書を親とし、前記第１の文書に対して行った操作の結果生成された第２の文書を子とする派生関係の情報を送信するステップと、指定文書に関連する文書についての情報を通知させる通知条件であって、前記指定文書を決定する条件と、前記指定文書と検索対象の文書との間に存在すべき派生関係を定義する条件を含む検索条件と、を含む通知条件を取得するステップと、前記通知条件を取得するステップにおいて取得された前記通知条件に従って、前記指定文書と前記検索条件とを特定する検索指示を前記第１の情報処理装置に対して行うステップと、をコンピュータに実行させるためのプログラムである。