(57)【特許請求の範囲】
【請求項１】
情報処理装置から、第１の文書に対して行われた操作の種類と、当該操作の結果である第２の文書と、を受信する受信手段と、
前記受信手段が受信した前記操作の種類が編集に該当しない場合には、前記操作の種類と当該操作の結果である第２の文書とを互いに対応づけて記憶装置に登録すると共に、前記第１の文書が前記記憶装置に既に登録されている場合には、前記第２の文書の親が前記第１の文書であることを示す派生関係を更に前記記憶装置に登録する制御を行う第１の登録制御手段と、
前記受信手段が受信した前記操作の種類が編集に該当する場合には、前記記憶装置に記憶された前記派生関係群が構成する木において前記第２の文書の先祖の文書のうち操作の種類が編集操作または登録操作である文書を起点文書として特定し、前記木における前記起点文書の子孫の中に操作の種類が編集操作である、前記第２の文書以外の文書が存在する場合には、前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録することを中止する制御を行う第２の登録制御手段と、
を備える文書管理装置。
【請求項２】
前記第２の登録制御手段は、前記受信手段が受信した前記操作の種類が編集に該当する場合には、前記記憶装置に記憶された前記派生関係群が構成する木において操作の種類が編集操作または登録操作である前記第２の文書に最も近い先祖の文書を前記起点文書として特定する、ことを特徴とする請求項１記載の文書管理装置。
【請求項３】
前記第２の登録制御手段が前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録することを中止した場合に、前記情報処理装置に対して、登録を中止した前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録するか否か指示を要求し、その要求に応じて前記情報処理装置から指示を受け付ける指示受付手段と、
前記指示受付手段から登録の旨の指示を受けた場合には、登録を中止した前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録する第３の登録手段と、
を備える請求項１又は２に記載の文書管理装置。
【請求項４】
前記受信手段が前記操作の種類と当該操作の結果である第２の文書とに対応づけてメモ情報を受信した場合に、前記操作の種類と当該操作の結果である第２の文書と前記派生関係とに対応づけて前記メモ情報を前記記憶装置に登録するメモ登録手段、を更に備え、
前記指示受付手段は、登録を中止していた前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録するか否か指示を要求する場合に、前記起点文書の前記木における子孫の中の、操作の種類が編集操作である文書に対応づけられたメモ情報を提供する、
ことを特徴とする請求項３記載の文書管理装置。
【請求項５】
前記第２の登録制御手段は、前記特定した文書の前記木における子孫の中に操作の種類が編集操作である、前記第２の文書以外の文書が存在しない場合には、前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録する、ことを特徴とする請求項１記載の文書管理装置。
【請求項６】
コンピュータを、
情報処理装置から、第１の文書に対して行われた操作の種類と、当該操作の結果である第２の文書と、を受信する受信手段、
前記受信手段が受信した前記操作の種類が編集に該当しない場合には、前記操作の種類と当該操作の結果である第２の文書とを互いに対応づけて記憶装置に登録すると共に、前記第１の文書が前記記憶装置に既に登録されている場合には、前記第２の文書の親が前記第１の文書であることを示す派生関係を更に前記記憶装置に登録する制御を行う第１の登録制御手段、
前記受信手段が受信した前記操作の種類が編集に該当する場合には、前記記憶装置に記憶された前記派生関係群が構成する木において前記第２の文書の先祖の文書のうち操作の種類が編集操作または登録操作である文書を起点文書として特定し、前記木における前記起点文書の子孫の中に操作の種類が編集操作である、前記第２の文書以外の文書が存在する場合には、前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録することを中止する制御を行う第２の登録制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理装置及びプログラムに関する。
【背景技術】
【０００２】
テキスト文書データや音声データ、マルチメディアデータなどの電子文書（以下単に文書とも呼ぶ）をサーバーに登録し、ユーザーの要求に応じてその文書を提供することが行われている。また、電子文書に対して一意な識別子を付与し、ユーザーが入力した識別子に対応する電子文書を提供するシステムも知られている。また、別の公知のシステムでは、電子文書を紙に印刷する場合に、電子文書の識別子をコード化して紙文書に埋め込み、紙文書を複写する際にその紙文書に埋め込まれた識別子を認識し、その識別子に対応した電子文書を取得し、紙に印刷する。
【０００３】
特許文献１に開示されたシステムでは、コンテンツコピー機は、コンテンツＩＤが埋め込まれたコンテンツのコピー原稿からコンテンツＩＤを読み取り、読み取ったコンテンツＩＤとコピーイベント属性の情報とをネットワークを介してコンテンツＩＤ管理センタへ送信する。コンテンツＩＤ管理センタは、受信したコンテンツＩＤからそのコンテンツの原本を取得し、新しいコンテンツＩＤを付与して、そのコンテンツＩＤとコピーイベント属性の情報とを記録し、その新しいコンテンツＩＤをコンテンツの原本に対して埋め込んでコピー要求元へ返す。コンテンツコピー機は、それをコピー結果として出力する。このシステムにおいて、コンテンツＩＤ管理センタは、コンテンツコピー機から受信したコンテンツＩＤに応じて、新たなコンテンツＩＤを発行した場合、その新しいコンテンツＩＤのコピー元が前述の受信したコンテンツＩＤであることを記録する（例えば特許文献１の第４１段落末尾）。
【０００４】
また特許文献２に開示されたシステムでは、文書にＩＤを対応づけておき、文書に対し閲覧/コピー/編集等の操作を行った際、新たなＩＤを発行し、操作後の文書に対応づけるＩＤをその新たなＩＤに変更する。そして、文書に新たに対応づけられたＩＤ、古いＩＤ、ユーザーや日時等の操作に関する各種属性、などを含むログ情報を記録している。このシステムでは、新旧のＩＤの対応関係から、ログ情報の派生関係を求めることができ、この派生関係を辿ることにより、文書の旧版や最新版を提供することが可能となる。
【０００５】
一方、一般的な話として、複数の人が同一の文書を共同編集する場合、ある人の編集結果が他の人の編集に反映されないケースがある。例えば、以下のようなケースがその一例である。すなわち、まずユーザーＡが共通リポジトリ上の文書Ｄを編集するために、自分のマシンに文書Ｄをコピーし、次にユーザーＢが、同様に、共通リポジトリ上の同じ文書Ｄを編集するために、自分のマシンに文書をコピーする。次にユーザーＡが文書Ｄを編集して文書Ｄａを生成し、更にその次にユーザーＢが文書Ｄを編集して文書Ｄｂを生成する。その後、ユーザーＡがその編集結果を反映させるため、文書Ｄａを共通リポジトリの文書Ｄに上書きする。更にその後、ユーザーＢが編集結果を反映させるため、文書Ｄｂを共通リポジトリの文書Ｄに上書きする。この例示の手順が行われたとき、最終的に共通リポジトリに格納される文書はＤｂであり、この文書にはユーザーＡが行った編集結果が反映されていない。
【０００６】
このような問題に対処するため、ＣＶＳ(Concurrent Versions System)というバージョン管理システムが開発されている。ＣＶＳでは、ファイルはサーバーでバージョン管理がなされており、サーバーからローカルマシンにファイルをコピーしてくる際、その時点におけるバージョン番号をローカルに記録しておく。ローカルのマシンで行った更新をサーバーに反映させる時、記録しておいたバージョン番号よりも新しいバージョンがサーバーに登録されていれば、警告を出してサーバーには反映させない。
【０００７】
また特許文献３には、ネットワーク上の複数のサーバー間において同一のオンラインドキュメントを共有するシステムにおいて、あるサーバーがドキュメントの編集を開始すると、その旨を他のサーバーに通知する。通知を受けたサーバーは、そのドキュメントをロックして編集できないようにする。
【０００８】
特許文献２のシステムにＣＶＳを応用する場合、ＣＶＳのバージョン番号をそのシステムのＩＤと、特定のバージョンの文書を特定のＩＤを持つログ情報と、新しいバージョンを新しいログ情報（元のＩＤに対応するログ情報から派生した新しいログ情報）と、それぞれ解することが考えられる。これによれば、「文書に対し編集が行われた場合に、旧ＩＤのログ情報に対し、そのログ情報から派生した別のログ情報が既に存在する場合には、警告を出す」という制御が可能になる。
【０００９】
【特許文献１】特開２００２−０１６７８８号公報
【特許文献２】特開２００７−４６４９号公報
【特許文献３】特開平１１−２７２５３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところが、特許文献２のシステムでは、編集以外の、例えば閲覧やコピー等の文書内容が更新されない操作でも、派生属性が生じてしまうため、他人の編集結果とは無関係なケースでも警告が出るという新たな問題が発生する。
【課題を解決するための手段】
【００１１】
本発明の１つの側面は、情報処理装置から、第１の文書に対して行われた操作の種類と、当該操作の結果である第２の文書と、を受信する受信手段と、前記受信手段が受信した前記操作の種類が編集に該当しない場合には、前記操作の種類と当該操作の結果である第２の文書とを互いに対応づけて記憶装置に登録すると共に、前記第１の文書が前記記憶装置に既に登録されている場合には、前記第２の文書の親が前記第１の文書であることを示す派生関係を更に前記記憶装置に登録する制御を行う第１の登録制御手段と、前記受信手段が受信した前記操作の種類が編集に該当する場合には、前記記憶装置に記憶された前記派生関係群が構成する木において前記第２の文書の先祖の文書のうち操作の種類が編集操作または登録操作である文書を起点文書として特定し、前記木における前記起点文書の子孫の中に操作の種類が編集操作である、前記第２の文書以外の文書が存在する場合には、前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録することを中止する制御を行う第２の登録制御手段と、を備える文書管理装置を提供する。
【００１２】
１つの態様では、前記第２の登録制御手段は、前記受信手段が受信した前記操作の種類が編集に該当する場合には、前記記憶装置に記憶された前記派生関係群が構成する木において操作の種類が編集操作または登録操作である前記第２の文書に最も近い先祖の文書を前記起点文書として特定する、ことを特徴とする。
【００１３】
別の態様では、文書管理装置は、前記第２の登録制御手段が前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録することを中止した場合に、前記情報処理装置に対して、登録を中止した前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録するか否か指示を要求し、その要求に応じて前記情報処理装置から指示を受け付ける指示受付手段と、前記指示受付手段から登録の旨の指示を受けた場合には、登録を中止した前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録する第３の登録手段と、を更に備える。
【００１４】
更に別の態様では、文書管理装置は、前記受信手段が前記操作の種類と当該操作の結果である第２の文書とに対応づけてメモ情報を受信した場合に、前記操作の種類と当該操作の結果である第２の文書と前記派生関係とに対応づけて前記メモ情報を前記記憶装置に登録するメモ登録手段、を更に備え、前記指示受付手段は、登録を中止していた前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置に登録するか否か指示を要求する場合に、前記起点文書の前記木における子孫の中の、操作の種類が編集操作である文書に対応づけられたメモ情報を提供する。
【００１５】
更に別の態様では、前記第２の登録制御手段は、前記特定した文書の前記木における子孫の中に操作の種類が編集操作である、前記第２の文書以外の文書が存在しない場合には、前記操作の種類と前記操作の結果である第２の文書と前記派生関係とを前記記憶装置へ登録する、ことを特徴とする。
【発明を実施するための最良の形態】
【００１６】
図１は、文書利用管理システムの概略構成の例を示すブロック図である。このシステムは、インターネットやローカル・エリア・ネットワーク等のネットワーク３０を介して接続された文書管理サーバー１０とクライアント端末２０−１，２０−２，・・・（以下、クライアント端末２０と総称する）から構成される。
【００１７】
クライアント端末２０の例について図２を用いて説明する。クライアント端末は、ユーザーが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複写機などがその一例である。クライアント端末２０は、図２に示すように、文書操作部２００及び登録処理部２１０を備える。
【００１８】
文書操作部２００は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示（ユーザーから見れば「閲覧」）、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図では、文書操作部２００を１つだけ示したが、それら個々の操作を別々の操作部（例えば、編集用のアプリケーション、読取制御用のアプリケーションなど）が担当してもよい。例えば、文書操作部２００がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部２００は、ユーザーの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部２００は、文書に対して操作を行った場合、その操作の結果を表す識別子（ＩＤ）付き文書３００を出力する。
【００１９】
ＩＤ付き文書３００は、図３に示すように、メタ情報３１０と文書内容３２０を含んだ電子文書である。文書内容３２０は、文書操作部２００の操作の結果生成された文書の内容データである。文書操作部２００が電子文書を作成・編集するためのソフトウエアであれば、文書内容３２０はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部２００が電子文書を印刷する装置であれば、文書内容３２０は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部２００が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容３２０は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【００２０】
メタ情報３１０は、文書管理のための情報であり、管理ＩＤ３１２，親ＩＤ３１４，及びログ情報３１６を含む。
【００２１】
管理ＩＤ３１２は、当該ＩＤ付き文書３００自体の一意な識別情報である。親ＩＤ３１４は、当該ＩＤ付き文書３００の親のＩＤ付き文書の管理ＩＤである。すなわち、本実施形態では、あるＩＤ付き文書と、このＩＤ付き文書に対して操作を加えた結果得られる新たなＩＤ付き文書とを、親と子の関係として取り扱う。第１のＩＤ付き文書を操作して第２のＩＤ付き文書が得られた場合、第１のＩＤ付き文書は第２のＩＤ付き文書の親であり、第２のＩＤ付き文書は第１のＩＤ付き文書の子である。したがって、例えば、管理ＩＤ「Ａ」のＩＤ付き文書を文書操作部２００で操作して、その結果得られた新たなＩＤ付き文書の管理ＩＤが「Ｂ」である場合、後者のメタ情報３１０における管理ＩＤ３１２は「Ｂ」であり、親ＩＤ３１４は「Ａ」である。このような親子の関係を、以下では「（管理ＩＤの）派生関係」という。
【００２２】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合（この場合、紙文書を読み取った画像を文書内容とするＩＤ付き文書が生成され、本システムに登録される）に生成されるＩＤ付き文書３００では、親ＩＤ３１４は空（すなわち、親は存在しない）となる。
【００２３】
ログ情報３１６は、当該ＩＤ付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた時刻、その操作の種別、その操作を指示したユーザー（操作者）などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録（本システムに新規の文書を登録すること）、閲覧、編集（文書内容の変更、更新）、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザーが文書操作部２００を用いて第１のＩＤ付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第２のＩＤ付き文書のログ情報３１６は、編集完了の時刻と、その編集を指示したユーザーの識別情報と、操作の種別として「編集」と、を含んだものとなる。
【００２４】
なお、文書操作部２００が、操作した文書を暗号化してもよい。この暗号化は、本システムに準拠した文書操作部２００ならば、復号できるようなものとする。この場合、文書操作部２００が出力するＩＤ付き文書３００の文書内容３２０は、暗号化されることにより、本システムに準拠した文書操作部２００でないと復号できなくなる。したがって、ＩＤ付き文書３００が操作される場合には文書操作部２００が用いられるので、文書操作部２００がその操作を検知し、その操作の内容が文書操作部２００から文書管理サーバー１０に通知される。なお、文書内容３２０だけでなく、後述するメタ情報３１０（またはその一部）に対しても暗号化を施してもよい。
【００２５】
図２の説明に戻り、文書操作部２００は、操作結果として上述のようなＩＤ付き文書３００を作成するために、ＩＤ割り当て部２０２及び派生関係組込部２０４を備える。ＩＤ割り当て部２０２は、操作結果のＩＤ付き文書３００に一意な管理ＩＤを付与する手段である。管理ＩＤは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するＩＤ付き文書３００（ただし管理ＩＤ３１２を除いたもの）のハッシュ値を求め、このハッシュ値をその文書３００のＩＤ付き文書とすればよい。ハッシュ関数としてSHA-256（SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である）などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理ＩＤを生成することができる。もちろん、システム内で一意な管理ＩＤを各クライアント端末２０で生成する方法は、これに限らない。管理ＩＤを、クライアント端末２０固有の識別情報を含むものとすれば、システム内で一意な管理ＩＤを各クライアント端末２０で生成することができる。
【００２６】
派生関係組込部２０４は、操作結果の文書に対しＩＤ割り当て部２０２が割り当てた新たな管理ＩＤ３１２と、その操作の元になった親文書の管理ＩＤである親ＩＤ３１４（新規登録の場合は、親ＩＤは無し）と、その操作についての履歴を表すログ情報３１６と、を含むメタ情報３１０を生成する。そして、派生関係組込部２０４は、そのメタ情報３１０を操作結果の文書内容に付加することにより、操作後のＩＤ付き文書３００を生成して出力する。
【００２７】
登録処理部２１０は、文書操作部２００が出力したＩＤ付き文書３００を文書管理サーバー１０に登録するための処理を実行する。このように各クライアント端末２０が、自ら実行した操作の結果であるＩＤ付き文書３００を文書管理サーバー１０に登録することにより、文書管理サーバー１０は各ＩＤ付き文書３００間の派生関係を把握することができる。
【００２８】
文書操作部２００が操作の結果出力するＩＤ付き文書３００は、通常の文書ファイルと同様、電子的にコピーしたり、電子メールに添付するなどの方法で他の人宛に送信したりすることができる。他の人からＩＤ付き文書３００を受け取った人が、自分のクライアント端末２０の文書操作部２００を用いてそのＩＤ付き文書３００を操作すると、その操作に応じて新たな管理ＩＤを付与されたＩＤ付き文書が生成されることになる。
【００２９】
また、文書操作部２００が電子文書を印刷する場合、管理ＩＤを生成し、その電子文書の印刷結果にその管理ＩＤを埋め込んでもよい。管理ＩＤの埋め込みは、例えば電子文書の印刷画像に、管理ＩＤを示すコード画像を重畳する等の方法で行うことができる。この場合、文書操作部２００は、その管理ＩＤや操作種別「印刷」等のメタ情報を含んだＩＤ付き文書を文書管理サーバー１０に登録する。なお、ＩＤ付き文書を印刷した場合には、そのＩＤ付き文書の管理ＩＤを親ＩＤ３１４として含んだＩＤ付き文書が生成される。印刷操作に対応するＩＤ付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データなどの印刷データを、文書内容３２０として組み込んでもよい。
【００３０】
また、管理ＩＤが埋め込まれた紙文書を文書操作部２００が読み取った場合、文書操作部２００は、その読み取り操作に対して新たな管理ＩＤを付与し、読み取り結果の画像を文書内容３２０として含んだＩＤ付き文書を生成して文書管理サーバー１０に登録する。このＩＤ付き文書の親ＩＤ３１４には、紙文書から読み取った管理ＩＤがセットされる。管理ＩＤが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。
【００３１】
次に、文書管理サーバー１０の例について説明する。文書管理サーバー１０は、システム内の複数のクライアント端末２０から送られてくるＩＤ付き文書３００を蓄積し、蓄積した情報に基づきユーザーに各種のサービスを提供する。図４に示すように、文書管理サーバー１０は、文書ＤＢ１００，派生関係ＤＢ１１０，文書登録部１３０，要求処理部１４０を備える。
【００３２】
文書ＤＢ１００は、クライアント端末２０から送られてきたＩＤ付き文書３００のうちの文書内容３２０を格納するデータベース（ＤＢ）である。文書ＤＢ１００に格納された各文書内容３２０は、一意な内容ＩＤにより管理される。内容ＩＤとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末２０が内容ＩＤを付与してもよく、この場合、内容ＩＤをメタ情報３１０に組み込んでもよい。
【００３３】
文書登録部１３０は、クライアント端末２０から受信したＩＤ付き文書の中の文書内容を文書ＤＢ１００に、メタ情報を派生関係ＤＢ１１０に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部１３２である。
【００３４】
派生関係ＤＢ１１０は、そのようなＩＤ付き文書３００のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図５に、派生関係ＤＢ１１０のデータ内容の一例を示す。図５に示した表における１行の情報が、１つのＩＤ付き文書３００に対応するメタ情報レコードである。この例では、各ＩＤ付き文書３００の管理ＩＤに対応づけて、親ＩＤ、操作種別、操作者、操作時刻、及び文書内容の内容ＩＤの各項目が登録されている。以上に挙げた項目のうち、管理ＩＤと親ＩＤのペア及び操作種別以外の項目は、例示したものに限られない。管理目的上必要な項目を記録すればよい。
【００３５】
なお、図５は派生関係ＤＢ１１０が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係ＤＢ１１０は、一般的なリレーショナルデータベースとして構築することもできるし、管理ＩＤを除くメタ情報を記述したＸＭＬ(eXtensible Markup Language)文書を、管理ＩＤをキーとして登録したデータベースとして構築することもできる。
【００３６】
図５に示した派生関係ＤＢ１１０のデータ内容は、図６のような木構造を成す。これは、管理ＩＤをノードとし、管理ＩＤ間の親子関係をエッジとする木構造である。
【００３７】
図５〜図６の例が示す文書の履歴を時系列順に説明すると、以下のようになる。この例は、あるユーザーがある文書を本システムに登録し、他のユーザーがその文書に対して追記、削除、変更などの編集操作を行う業務の流れを表している。
【００３８】
この例ではまず、文書の「登録」操作がユーザーＡのクライアント端末で実行される。「登録」操作は、文書管理サーバー１０に未登録の文書（すなわち、管理ＩＤを有していない文書）を当該サーバー１０に登録するための操作である。この操作に応じて管理ＩＤが"1"、親ＩＤが空、操作種別が「登録」であるメタ情報と、その文書の文書内容とを含むＩＤ付き文書"１"がユーザーＡのクライアント端末から文書管理サーバー１０に送られる。これに応じ、文書管理サーバー１０は、そのＩＤ付き文書"1"中の文書内容を文書ＤＢ１００へ、メタ情報を派生関係ＤＢ１１０にそれぞれ登録する。登録された文書内容は内容ＩＤ"Content1"に対応づけて管理される。
【００３９】
次に、ユーザーＢが自分のクライアント端末２０から文書管理サーバー１０にアクセスし、そのＩＤ付き文書"1"を複製する。この場合、文書管理サーバー１０は、ユーザーＢから指定されたＩＤ付き文書"1"の複製を作成し、その複製結果の文書に対して新たな管理ＩＤ"2"を付与することで、ＩＤ付き文書"2"を生成してユーザーＢに提供する。ＩＤ付き文書"2"には、管理ＩＤ"2"、親ＩＤ"1"、操作種別「編集」、操作者"Ｂ"などの項目を含んだメタ情報３１０が含まれる。このとき、派生関係ＤＢ１１０には、文書"1"から"2"が派生したことを示す派生関係が登録される。ＩＤ付き文書"2"の文書内容は、ＩＤ付き文書"1"と同じである。
【００４０】
次に、ユーザーＣがユーザーＡから配布されたＩＤ付き文書"1"に対して編集を行うと、図５に示す管理ＩＤ"3"のＩＤ付き文書が文書管理サーバー１０に登録される。この編集結果の登録の際に、本実施形態の文書登録部１３０は、その編集結果がユーザーＡにより最初に登録された文書に対する他の編集結果を無視したものになっているか否かを判定する。そして、他の編集結果を無視したものになっている場合には、その編集結果の登録を保留し、ユーザーＣに対して他者の編集を無視する可能性があることを警告する。この編集無視の警告処理については、後で詳しく説明する。
【００４１】
以上、派生関係ＤＢ１１０のデータ内容を例に取り、本システムにおける文書操作の情報の登録の様子を説明した。
【００４２】
図４の説明に戻り、要求処理部１４０は、クライアント端末２０からの管理ＩＤを含んだサービス要求に応じて、派生関係ＤＢ１１０を用いたサービスを提供する。要求処理部１４０が提供するサービスとしては、例えば、サービス要求中の管理ＩＤに対応する文書の最新版を検索するサービスがある。また別の例として、サービス要求中の管理ＩＤに対応する始祖の文書（オリジナル文書）又はその始祖についてのログ情報を提供するサービスを挙げることができる。また、別の例として、その管理ＩＤの来歴、すなわち始祖からその管理ＩＤまでに文書が経てきた操作の履歴（例えば誰がいつどんな操作をしたのかを示す情報のリスト）を提供するサービスもある。また、更に別の例として、管理ＩＤに対応するフォーム原本に対する、各ユーザーの記入結果を回収するサービスもある。
【００４３】
サービス要求は、クライアント端末２０に保持されたＩＤ付き文書に基づき発せられる。例えば、ユーザーがクライアント端末２０の文書操作部２００によりＩＤ付き文書を開いた場合に、文書操作部２００が、派生関係を用いたサービスのメニューを提供し、そのメニューの中からユーザーが所望するサービスの指定を受け付ける。そして、そのＩＤ付き文書の管理ＩＤと指定されたサービスを示すコードとを含むサービス要求を文書管理サーバー１０の要求処理部１４０に送信する。なお、管理ＩＤと、サービスを示すコード以外に、指示を行ったユーザーの識別情報や、ユーザーの入力した認証情報などといった他の情報を、クライアント端末２０から要求処理部１４０に送信するようにしてもよい。
【００４４】
また、別の例として、ＩＤ付き文書というオブジェクト種類に対して、そのようなサービスのメニューを対応づけてクライアント端末２０のオペレーティングシステムに登録しておいてもよい。
【００４５】
また別の例として、ユーザーによるサービスの指定を一つの「操作」と捉え、その「操作」に対して新たに管理ＩＤを付与することも考えられる。この場合、指定されたサービスのコードを操作種別として含み、指定の際に用いられた元のＩＤ付き文書の管理ＩＤを親ＩＤとして含んだＩＤ付き文書を生成し、このＩＤ付き文書をサービス要求として文書管理サーバー１０に送ってもよい。この場合、要求処理部１４０は、受け取ったＩＤ付き文書内の操作種別の情報に基づき提供すべきサービスを判定し、同じくＩＤ付き文書内の親ＩＤを、派生関係を遡る処理の起点とする。
【００４６】
要求処理部１４０は、クライアント端末２０からサービス要求を受けた場合、そのサービス要求中に指定された管理ＩＤを起点に、派生関係ＤＢ１１０に登録された管理ＩＤと親ＩＤとの派生関係が構成する木を走査（トラバース）し、その走査の結果得られた情報を用いて、ユーザーから要求されたサービスを実行する。
【００４７】
以上、実施形態のシステム構成について説明した。次に、文書登録部１３０の処理手順を、図７を参照して説明する。この手順は、クライアント端末２０からＩＤ付き文書を受信したときに実行される。この手順では、文書登録部１３０は、受信したＩＤ付き文書内の操作種別属性の値が「編集」であるか否かを判定する（Ｓ１）。「編集」でない場合は、そのＩＤ付き文書を文書ＤＢ１００及び派生関係ＤＢ１１０に登録する（Ｓ２）。一方、「編集」である場合は、そのＩＤ付き文書の親ＩＤ属性の値を管理ＩＤとして持つＩＤ付き文書（メタ情報）を派生関係ＤＢ１１０から特定する。そして、派生関係のなす木を受信したＩＤ付き文書から先祖方向に順に遡り、その遡及過程の中で最初に到達する操作種別が「編集」又は「登録」であるＩＤ付き文書を、起点文書として特定する（Ｓ３）。すなわち、このステップでは、受信した文書からみて、操作種別が「編集」又は「登録」である直近の先祖の文書を起点文書として特定している。
【００４８】
そして、特定した起点文書の子孫を周知の木の探索方式に従って探索し、それら子孫の中に操作種別が「編集」であるＩＤ付き文書を探索する（Ｓ４）。ここで、この手順の開始の契機となったＩＤ付き文書の操作種別は「編集」であるが、そのＩＤ付き文書はこの段階では文書ＤＢ１００及び派生関係ＤＢ１１０に登録されていないので、Ｓ４ではそのＩＤ付き文書以外のＩＤ付き文書の中から該当の文書が探索される。この探索の結果、該当の文書があるか否かを判定し（Ｓ５）、該当する文書がなければ、この手順の開始の契機として受信したＩＤ付き文書を文書ＤＢ１００及び派生関係ＤＢ１１０に登録する（Ｓ２）。一方、Ｓ５で該当する文書があると判定された場合は、この手順の開始の契機となったＩＤ付き文書の送信元であるクライアント端末２０に対し警告情報を送信する（Ｓ６）。警告情報は、例えば、そのＩＤ付き文書が既に行われた他の編集結果（すなわちＳ４で見つかった操作結果が編集である文書）を無視して編集されていることを示すメッセージである。この場合、文書管理サーバー１０は、その契機となったＩＤ付き文書を文書ＤＢ１００及び派生関係ＤＢ１１０に登録することを中止又は一時保留する。
【００４９】
以上のように、文書登録部１３０が実行する以上の手順では、同一の文書内容から派生した文書の中に、クライアント端末２０から受信したＩＤ付き文書とは別にその文書内容を編集した文書が存在する場合に、登録を要求した者に対して他の編集結果が存在する旨を通知する。これにより、当該他の編集結果を無視した編集結果（すなわちクライアント端末２０から受信したＩＤ付き文書）が登録されることによる不都合を低減できる。
【００５０】
また、この手順のＳ４では、編集又は登録以外の操作（すなわち文書内容が変更されない操作）は探索しないので、文書登録部１３０は、文書内容が変更されない操作がいくら過去になされていても、それについては警告を発しない。
【００５１】
また、図７の手順では、Ｓ３にて、クライアント端末２０から受信したＩＤ付き文書の親文書を含む先祖の中で、操作種別が編集（又は登録）である直近の文書を起点文書として特定し、この起点文書の子孫の中から操作種別が編集である文書を探した。このように操作種別が編集又は登録である直近の文書を起点文書とすることで、それより先祖の編集結果から派生した別の編集系列の文書群は考慮しないで済むため、探索範囲を狭めることができる。ただし、これは一例に過ぎず、直近でない先祖の、操作種別が編集（又は登録）である文書を起点文書としてもよい。
【００５２】
以上における操作種別「編集」とは文書内容が変更される操作一般を指す。したがって、操作種別の名称が「編集」でなくても、文書内容が変更される操作であれば、それは「編集」に該当する。同様に、操作種別「登録」とは、文書管理サーバー１０に未登録で、かつ親ＩＤを有しない文書を文書管理サーバー１０に登録する操作を指す。すなわち、文書管理サーバー１０に登録されている文書に対して文書内容の変更を行い、その結果を登録する場合の操作種別は「編集」となる。また、システムのデザインによっては、文書内容が変更される操作種別が複数存在する場合もあるが、その場合は、上述の手順のＳ４では、それら複数の操作種別のいずれかに該当する文書を探せばよい。Ｓ１についても同様に、ＩＤ付き文書の操作種別がそれら複数のうちのいずれかに該当するか否かを判定すればよい。
【００５３】
上述の手順を、図５及び図６に例示した文書操作の流れに適用した場合を考える。例えば、３番目の操作であるユーザーＣによる編集の際には、Ｓ１の判定結果がＹｅｓ（肯定）となり、Ｓ３で操作種別が編集又は登録である直近の文書である文書"1"が起点文書として特定される。しかし、文書"1"の子孫には、操作種別が「複製」である文書"2"が存在するのみであり、操作種別が「編集」である文書は存在しないので、Ｓ５の判定結果がＮｏとなり、Ｓ２でユーザーＣの編集結果である文書"3"が文書ＤＢ１００及び派生関係ＤＢ１１０に登録されることになる。
【００５４】
次に、図８及び図９に例示する文書操作の流れに対し、図７の手順を適用した場合について説明する。
【００５５】
図８及び図９に例示する流れでは、まずユーザーＡが文書"1"を文書管理サーバー１０に登録した後、その文書を編集している。次に、その編集結果である文書"2"をユーザーＢ及びＣがそれぞれ自分のクライアント端末２０に複製している（文書"3"及び文書"4"）。そして、ユーザーＢが、文書"3"に対して編集を行っている（文書"5"）。図９は、この段階での派生関係ＤＢ１１０のデータ内容を示している。
【００５６】
次に、ユーザーＣが文書"4"に対して編集を行った場合を考える。この場合、図７の手順のＳ１の判定結果がＹｅｓとなり、Ｓ３で操作種別が編集又は登録である直近の文書である文書"2"が起点文書として特定される。そして、文書"2"の子孫には、操作種別が「編集」である文書"5"が既に存在するので、Ｓ５の判定結果がＹｅｓとなる。したがって、ユーザーＣの編集結果は文書ＤＢ１００及び派生関係ＤＢ１１０には登録されず、Ｓ６でユーザーＣには編集無視の警告がなされることとなる。
【００５７】
次に、変形例を説明する。この変形例では、ユーザーが文書に対して行った操作について、そのユーザーのメモを入力する手段をクライアント端末２０に設ける。メモは、そのユーザー自身や他のユーザーに対する、その操作についての説明のために用いることができる。例えば、あるユーザーが、「登録」操作により文書管理サーバー１０に登録された文書を、特定の課のために編集した場合、その旨をメモとして入力することができる。入力されたメモは、文書操作部２００によりＩＤ付き文書に組み込まれ、文書管理サーバー１０の派生関係ＤＢ１１０に登録される。
【００５８】
そして、文書管理サーバー１０は、図１０に示すように、ユーザーに対して前述の編集無視の警告を行う場合（Ｓ５の判定結果がＹｅｓの場合）に、起点文書から派生した操作種別が「編集」である文書についてのメモ情報（該当する文書が複数ある場合はすべての該当文書について）を提供する（Ｓ６ａ）。また、この警告に対応づけて、処理の対象となっている当該ユーザーの編集結果を登録するか否かの指示を入力するためのユーザーインタフェース手段（例えばウェブページ上のボタンなど）をそのユーザー（のクライアント端末）に提供する。警告、メモ情報及びユーザーインタフェース手段を受け取ったユーザーは、そのメモ情報を参考にして、他の編集結果が存在するにもかかわらず自分の編集結果を文書管理サーバー１０に登録するか否かを判断し、ユーザーインタフェース手段に対してその判断の結果を入力する。文書管理サーバー１０は、そのユーザーの入力を受け取り、その入力が登録を指示するものであるか否かを判定する（Ｓ７）。そして、その入力が登録を指示するものであれば、処理対象のＩＤ付き文書を文書管理サーバー１０に登録する（Ｓ２）。一方、ユーザーの登録を指示するものでない場合は、処理対象のＩＤ付き文書を文書管理サーバー１０に登録せずに処理を終了する。
【００５９】
なお、図１０の処理手順のうち、上で説明しなかったステップの処理内容は、図７に示した同一符号のステップの処理内容と同様でよい。
【００６０】
図１０の手順による処理の具体例を、図１１及び図１２の操作の流れを例にとって説明する。
【００６１】
図１１及び図１２に例示する流れでは、まずユーザーＡが文書"1"を文書管理サーバー１０に登録している。次にユーザーＢが、その文書"1"を自分のクライアント端末２０に複製し、その複製結果の文書"2"に編集を施している。ここで、ユーザーＢは、その編集の結果が「ＹＹ課」という特定のグループに限定されるものであることを示すメモ情報を入力し、その結果、文書管理サーバー１０には、「ＹＹ課用」というメモ情報を含んだ文書"3"が登録されている。
【００６２】
その後、ユーザーＡが文書"1"に対して編集を行うと、その時点では既にその文書"1"（起点文書）の子孫に編集結果である文書"3"が存在するので、文書管理サーバー１０は、その文書"3"の存在とメモ情報「ＹＹ課用」とを通知するユーザーインタフェース画面（警告画面）をユーザーＡに提供する（Ｓ６ａ）。ユーザーＡは、メモ情報から、例えば、既に存在する編集結果の文書"3"が「ＹＹ課用」であるため自分の編集ではそれを考慮しなくてよいと判断することができる。この場合、ユーザーＡはそのユーザーインタフェース画面上で、編集結果の登録を指示する。この指示を受けた文書管理サーバー１０は、その編集結果（文書"4"）を文書ＤＢ１００及び派生関係ＤＢ１１０に登録する。
【００６３】
その後、ユーザーＡが文書"4"に対して更に編集を加えた場合、ユーザーＡのクライアント端末２０から文書管理サーバー１０に対して文書"5"が送信されることになる。この場合、文書"5"からみて、操作種別が編集又は登録である直近の先祖は文書"4"であり、これが起点文書となる。この場合、編集無視の監視の対象は文書"4"の子孫に限定されるので、文書"3"が存在しても、警告は発せられない。したがって、文書"5"は文書管理サーバー１０に登録されることとなる。
【００６４】
なお、起点文書の子孫にある操作種別が編集である文書にメモがない場合には、上述と同様にユーザーインタフェース画面を提供してユーザーから登録要否の指示を受けてもよいし、ユーザーの指示を受けずに自動的に登録を取りやめてもよい。
【００６５】
この変形例のように、メモ情報をユーザーに提供することで、ユーザーは、編集結果を登録してよいかどうかの判断を行うことができる。
【００６６】
以上に例示した実施形態及び変形例では、管理ＩＤの発行は各クライアント端末２０で行われていたが、この代わりに文書管理サーバー１０が管理ＩＤを発行してもよい。この場合、クライアント端末２０は、ＩＤ付き文書に対して操作を行った場合、操作前のＩＤ付き文書内の管理ＩＤを親ＩＤ３１４として含み、更にその操作についてのログ情報３１６と操作後の文書内容３２０とを含み、管理ＩＤ３１２は空欄の文書データを生成し、文書管理サーバー１０に送る。文書管理サーバー１０は、受け取った文書データに対して新たな管理ＩＤを付与し、この管理ＩＤとその文書データとに含まれる情報を、文書ＤＢ１００及び派生関係ＤＢ１１０に登録する。また、文書管理サーバー１０は、付与した管理ＩＤを当該文書データにセットすることによりＩＤ付き文書を生成し、これをクライアント端末２０に返す。クライアント端末２０は、操作前のＩＤ付き文書を、受け取ったＩＤ付き文書に置き換える。このように、文書管理サーバー１０が管理ＩＤを付与する構成でも、上述実施形態及び変形例の処理は同様に実行できる。
【００６７】
また以上の実施形態及び変形例では、管理ＩＤ３１２、親ＩＤ３１４、ログ情報３１６、及び文書内容３２０を含んだＩＤ付き文書３００がクライアント端末２０に保存されたが、この代わりに、クライアント端末２０は管理ＩＤしか持たず、その他の情報は文書管理サーバー１０に保存されるようにしてもよい。この場合、クライアント端末２０で文書を操作する場合、その文書に対応する管理ＩＤを文書管理サーバー１０に送り、文書管理サーバー１０からその文書を取得する。
【００６８】
ここで、文書管理サーバー１０が管理ＩＤを付与する場合は、その取得の操作に対応する管理ＩＤを文書管理サーバー１０が生成し、その管理ＩＤと文書とを対応づけてクライアント２０に提供するとともに、その取得操作についてのログ情報（操作時刻や操作者など）と、元の管理ＩＤ（すなわち親ＩＤ）と、付与した管理ＩＤとを派生関係ＤＢ１１０に記録する。クライアント端末２０は、文書管理サーバー１０に送信した管理ＩＤを、受け取った管理ＩＤに置き換えると共に、受け取った文書を開く。ユーザーは、開かれた文書に対して閲覧や編集などの操作を行う。クライアント端末２０は、文書に対する操作が完了すると、操作後の文書を管理ＩＤ及び当該操作についてのログ情報と共に文書管理サーバー１０に送る。文書管理サーバー１０は、受け取った文書に対して新たな管理ＩＤを付与して派生関係ＤＢ１１０に登録し、受け取った管理ＩＤを親ＩＤとして派生関係ＤＢ１１０に登録する。また、受け取ったログ情報及び操作後の文書を、派生関係ＤＢ１１０及び文書ＤＢ１００に登録する。そして、文書管理サーバー１０は、新たに付与した管理ＩＤをクライアント端末２０に返す。クライアント端末２０は、元の管理ＩＤを受け取った管理ＩＤで置き換える。以上のような処理により、操作間の派生関係が文書管理サーバー１０に蓄積されることになる。
【００６９】
一方、クライアント端末２０が管理ＩＤを付与する構成の場合は、文書管理サーバー１０は、クライアント端末２０から受け取った管理ＩＤに対応する文書をクライアントに返せばよい。クライアント端末２０は受け取った文書を開き、ユーザーがその文書を操作する。操作の完了後、クライアント端末２０はその操作結果の文書に対して新たな管理ＩＤを付与し、この管理ＩＤを含んだ前述のＩＤ付き文書と同様の情報を、文書管理サーバー１０に送る。そして、クライアント端末２０は、そのＩＤ付き文書のうち管理ＩＤのみを保存し、その他の情報を削除する。
【００７０】
以上に例示した実施形態及び各変形例の文書管理サーバー１０及びクライアント端末２０は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、図１３に示すように、ＣＰＵ１０００等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）１００２およびリードオンリメモリ（ＲＯＭ）１００４等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）１００６を制御するＨＤＤコントローラ１００８、各種Ｉ／Ｏ（入出力）インタフェース１０１０、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース１０１２等が、たとえばバス１０１４を介して接続された回路構成を有する。また、そのバス１０１４に対し、例えばＩ／Ｏインタフェース１０１０経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ１０１６、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ１０１８、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭ１００２に読み出されＣＰＵ１０００等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）等のハードウエア回路として構成してもよい。
【図面の簡単な説明】
【００７１】
【図１】文書利用管理システムの概略構成の例を示すブロック図である。
【図２】クライアント端末の内部構成の例を示すブロック図である。
【図３】ＩＤ付き文書のデータ構造の例を模式的に示す図である。
【図４】文書管理サーバーの内部構成の例を示すブロック図である。
【図５】派生関係ＤＢのデータ内容の例を示す図である。
【図６】ＩＤ付き文書の派生関係群がなす木構造を図式化して表す図である。
【図７】文書登録部の処理手順の一例を示すフローチャートである。
【図８】ＩＤ付き文書の派生関係群がなす木構造の別の例を図式化して表す図である。
【図９】図８の木構造に対応する派生関係ＤＢのデータ内容の例を示す図である。
【図１０】変形例における記入済みフォーム回収処理の手順の一例を示す図である。
【図１１】ＩＤ付き文書の派生関係群がなす木構造の別の例を図式化して表す図である。
【図１２】図１１の木構造に対応する派生関係ＤＢのデータ内容の例を示す図である。
【図１３】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００７２】
１０  文書管理サーバー、２０  クライアント端末、３０  ネットワーク、１００  文書ＤＢ、１１０  派生関係ＤＢ、１３０  文書登録部、１３２  派生関係登録部、１４０  要求処理部、２００  文書操作部、２０２  ＩＤ割り当て部、２０４  派生関係組込部、２１０  登録処理部、３００  ＩＤ付き文書。
【図１】
0005309664.tif 000002
【図２】
0005309664.tif 000003
【図３】
0005309664.tif 000004
【図４】
0005309664.tif 000005
【図５】
0005309664.tif 000006
【図６】
0005309664.tif 000007
【図７】
0005309664.tif 000008
【図８】
0005309664.tif 000009
【図９】
0005309664.tif 000010
【図１０】
0005309664.tif 000011
【図１１】
0005309664.tif 000012
【図１２】
0005309664.tif 000013
【図１３】
0005309664.tif 000014