(57)【要約】【課題】、サーバにアクセスできないクライアントが文書を操作し、操作後の文書をサーバにアクセスできる他のクライアントが更に操作して、サーバが文書の派生関係系列の一部を知らない状態となると、派生関係を辿る処理の結果が正しく得られない場合がある。【解決手段】クライアントから操作結果文書とその管理ＩＤ、及びその文書の操作前の管理ＩＤである親ＩＤを受け取った文書登録部１３０は、その文書を文書ＤＢ１００に、管理ＩＤと親ＩＤの組を派生関係ＤＢ１１０に登録する。文書登録部１３０は、受け取った親ＩＤを管理ＩＤとする組が派生関係ＤＢ１１０にない場合、又はその親ＩＤが孤立ノード記憶部１２０にある場合、受け取った管理ＩＤを孤立ノード記憶部１２０に登録する。派生関係検索処理を要求されると要求処理部１４０は、起点として指定された管理ＩＤが派生関係ＤＢ１１０にあれば、正しい処理結果が得られない可能性がある旨を回答する。【選択図】図４
2008165600.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、
受信した前記派生関係情報を記憶する派生関係記憶部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置。
【請求項２】
前記孤立情報記憶部に登録されている各識別情報について、当該識別情報の親の識別情報が前記派生関係記憶部に記憶されているという第１の条件と、当該派生関係情報における親の識別情報が前記孤立情報記憶部に登録されていないという第２の条件が共に満足される場合には、前記孤立情報記憶部から当該派生関係情報における子の識別情報を削除する削除部、
を更に備える請求項１記載の第２の情報処理装置。
【請求項３】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録するステップと、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録するステップと、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、
をコンピュータに実行させるためのプログラム。
【請求項４】
第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、
前記派生関係情報生成部が生成した前記派生関係情報を第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、
を備える第１の情報処理装置と、
前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置と、
を有する情報処理システム。
【請求項５】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、
受信した前記派生関係情報を記憶する派生関係記憶部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置。
【請求項６】
前記処理実行部は、
前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できた場合には当該識別情報が根に到達可能であると記録する記録部と、
前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡る処理の中で、前記記録部により根に到達可能であるとして記録された識別情報に到達した場合は、前記遡る処理を中止する中止部と、
を備える請求項５記載の第２の情報処理装置。
【請求項７】
情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、
前記派生関係情報生成部が生成した前記派生関係情報を第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、
を備える第１の情報処理装置と、
前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
テキスト文書データや音声データ、マルチメディアデータなどの電子文書（以下単に文書とも呼ぶ）をサーバに登録し、ユーザの要求に応じてその文書を提供することが行われている。また、電子文書に対して一意な識別子を付与し、ユーザが入力した識別子に対応する電子文書を提供するシステムも知られている。また、別の公知のシステムでは、電子文書を紙に印刷する場合に、電子文書の識別子をコード化して紙文書に埋め込み、紙文書を複写する際にその紙文書に埋め込まれた識別子を認識し、その識別子に対応した電子文書を取得し、紙に印刷する。
【０００３】
特許文献１に開示されたシステムでは、コンテンツコピー機は、コンテンツＩＤが埋め込まれたコンテンツのコピー原稿からコンテンツＩＤを読み取り、読み取ったコンテンツＩＤとコピーイベント属性の情報とをネットワークを介してコンテンツＩＤ管理センタへ送信する。コンテンツＩＤ管理センタは、受信したコンテンツＩＤからそのコンテンツの原本を取得し、新しいコンテンツＩＤを付与して、そのコンテンツＩＤとコピーイベント属性の情報とを記録し、その新しいコンテンツＩＤをコンテンツの原本に対して埋め込んでコピー要求元へ返す。コンテンツコピー機は、それをコピー結果として出力する。このシステムにおいて、コンテンツＩＤ管理センタは、コンテンツコピー機から受信したコンテンツＩＤに応じて、新たなコンテンツＩＤを発行した場合、その新しいコンテンツＩＤコピー元が前述の受信したコンテンツＩＤであることを記録する（例えば特許文献１の第４１段落末尾）。
【０００４】
また、特許文献２に示されるシステムでは、クライアント端末でログを収集し、その収集したログを、ネットワークを介してログサーバに送信し、前記ログサーバで受信したログを、このログサーバで保存、解析するようにしている。このシステムでは、クライアント端末は、ログサーバにログを送信することができない場合、ログをいったん記憶し、送信可能になったときにその記憶したログをログサーバに送信する。
【０００５】
【特許文献１】特開２００２−０１６７８８号公報
【特許文献２】特開２００３−０５８３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、識別情報を含んだ文書に対して操作を行い、その操作の結果の文書に対して新たな識別情報を組み込む方法では、前者の識別情報と後者の識別情報との間に親子関係すなわち派生関係を定義することができる。ある文書の操作結果に対して別の操作が行われることで更なる操作結果が得られる場合のように操作が連鎖すると、派生関係の系列が得られる。また、同じ識別情報の文書に対し別々の操作が加えられた場合、その識別情報の子孫は２つに分岐する。このような識別情報同士の派生関係の情報をサーバに集め、サーバがそれら派生関係の情報を用いて利用者にサービスを行うシステムが考えられる。このようなシステムにおいて、何らかの理由で派生関係の系列の一部において情報が欠けていると、派生関係の誤った情報により誤った処理結果が利用者に通知されてしまうことがある。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、受信した前記派生関係情報を記憶する派生関係記憶部と、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、を備える第２の情報処理装置である。
【０００８】
請求項２に係る発明は、請求項１に係る発明において、孤立情報記憶部に登録されている各識別情報について、当該識別情報の親の識別情報が前記派生関係記憶部に記憶されているという第１の条件と、当該派生関係情報における親の識別情報が前記孤立情報記憶部に登録されていないという第２の条件が共に満足される場合には、前記孤立情報記憶部から当該派生関係情報における子の識別情報を削除する削除部、を更に備える。
【０００９】
請求項３に係る発明は、第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録するステップと、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録するステップと、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、をコンピュータに実行させるためのプログラムである。
【００１０】
請求項４に係る発明は、第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、前記派生関係情報生成部が生成した前記派生関係情報を前記第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、を備える第１の情報処理装置と、前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その操作の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、を備える第２の情報処理装置と、を有することを特徴とする情報処理システムである。
【００１１】
請求項５に係る発明は、第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、受信した前記派生関係情報を記憶する派生関係記憶部と、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その操作の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、を備える第２の情報処理装置である。
【００１２】
請求項６に係る発明は、請求項５に係る発明において、前記処理実行部は、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できた場合には当該識別情報が根に到達可能であると記録する記録部と、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡る処理の中で、前記記録部により根に到達可能であるとして記録された識別情報に到達した場合は、前記遡る処理を中止する中止部と、を備える。
【００１３】
請求項７に係る発明は、情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、をコンピュータに実行させるためのプログラムである。
【００１４】
請求項８に係る発明は、第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、前記派生関係情報生成部が生成した前記派生関係情報を第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、を備える第１の情報処理装置と、前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その操作の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、を備える第２の情報処理装置と、を有することを特徴とする情報処理システムである。
【発明の効果】
【００１５】
請求項１に係る第２の情報処理装置によれば、孤立した派生関係の情報を管理しているので、その情報がある場合、派生関係情報群が表す木構造の走査において、正しい結果が得られない可能性がある旨を知らせることができる。
【００１６】
請求項２に係る第２の情報処理装置によれば、欠落していた派生関係の情報が第２の情報処理装置に登録された場合に、その登録を反映して正しく通知を送信することができる。
【００１７】
請求項３に係るプログラムによれば、孤立した派生関係の情報を管理しているので、その情報がある場合、派生関係情報群が表す木構造の走査において、正しい結果が得られない可能性がある旨を知らせることができる。
【００１８】
請求項４に係る情報処理システムによれば、孤立した派生関係の情報を管理しているので、その情報がある場合、派生関係情報群が表す木構造の走査において、正しい結果が得られない可能性がある旨を知らせることができる。
【００１９】
請求項５に係る第２の情報処理装置によれば、派生関係情報群が表す木構造の走査において根に到達できない場合に、正しい結果が得られない可能性がある旨を知らせることができる。
【００２０】
請求項６に係る第２の情報処理装置によれば、根まで遡れるか否かを本構成を有していない場合に比較して、早く判定できる。
【００２１】
請求項７に係るプログラムによれば、派生関係情報群が表す木構造の走査において根に到達できない場合に、正しい結果が得られない可能性がある旨を知らせることができる。  
【００２２】
請求項８に係る情報処理システムによれば、派生関係情報群が表す木構造の走査において根に到達できない場合に、正しい結果が得られない可能性がある旨を知らせることができる。
【発明を実施するための最良の形態】
【００２３】
図１は、文書利用管理システムの概略構成を示すブロック図である。このシステムは、インターネットやローカル・エリア・ネットワーク等のネットワーク３０を介して接続された文書管理サーバ１０とクライアント端末２０−１，２０−２，・・・（以下、クライアント端末２０と総称する）から構成される。
【００２４】
クライアント端末２０について図２を用いて説明する。クライアント端末２０は、ユーザが文書を操作するために用いる端末であり、パーソナルコンピュータ、デジタル複合機などがその一例である。クライアント端末２０は、文書操作部２００，登録処理部２１０，及び一時記憶部２２０を備える。文書操作部２００は、文書に対する操作を実行する手段である。文書に対する操作には、例えば、文書の表示（ユーザから見れば「閲覧」）、編集、印刷出力、紙文書の読み取り、紙文書の複写、等がある。図では、文書操作部２００を１つだけ示したが、それら個々の操作を別々の操作部（例えば、編集用のアプリケーション、読取制御用のアプリケーションなどといった別々のアプリケーション）が担当してもよい。例えば、文書操作部２００がワードプロセッサ等の電子文書を作成・編集するためのソフトウエアであれば、文書操作部２００は、ユーザの指示に応じて電子文書を表示したり、電子文書に編集を加えたりする。文書操作部２００は、文書に対して操作を行った場合、その操作の結果を表すＩＤ付き文書３００を出力する。
【００２５】
ＩＤ付き文書３００は、図３に示すように、メタ情報３１０と文書内容３２０を含んだ電子文書である。文書内容３２０は、文書操作部２００の操作の結果生成された文書の内容データである。文書操作部２００が電子文書を作成・編集するためのソフトウエアであれば、文書内容３２０はそのソフトウエアによる編集の結果生成される文書ファイルである。また、文書操作部２００が電子文書を印刷する装置であれば、文書内容３２０は、例えば、印刷される電子文書の内容データとすればよい。また、文書操作部２００が紙文書をスキャンする装置又は紙文書を複写する装置であれば、文書内容３２０は、例えば、その紙文書を読み取って得られる画像データとすればよい。
【００２６】
メタ情報３１０は、文書管理のための情報であり、管理ＩＤ３１２，親ＩＤ３１４，及びログ情報３１６を含む。
【００２７】
管理ＩＤ３１２は、当該ＩＤ付き文書３００自体の一意な識別情報である。親ＩＤ３１４は、当該ＩＤ付き文書３００の親のＩＤ付き文書の管理ＩＤである。すなわち、本実施形態では、あるＩＤ付き文書と、このＩＤ付き文書に対して操作を加えた結果得られる新たなＩＤ付き文書とを、親と子の関係として取り扱う。第１のＩＤ付き文書を操作して第２のＩＤ付き文書が得られた場合、第１のＩＤ付き文書は第２のＩＤ付き文書の親であり、第２のＩＤ付き文書は第１のＩＤ付き文書の子である。したがって、例えば、管理ＩＤ「Ａ」のＩＤ付き文書を文書操作部２００で操作して、その結果得られた新たなＩＤ付き文書の管理ＩＤが「Ｂ」である場合、後者のメタ情報３１０における管理ＩＤ３１２は「Ｂ」であり、親ＩＤ３１４は「Ａ」である。このような親子の関係を、以下では「（管理ＩＤの）派生関係」という。
【００２８】
なお、本システムに未登録の電子文書を新たに登録する操作を実行した場合や、未登録の紙文書をスキャン又は複写する操作を実行した場合（この場合、紙文書を読み取った画像を文書内容とするＩＤ付き文書が生成され、本システムに登録される）に生成されるＩＤ付き文書３００では、親ＩＤ３１４は空（すなわち、親は存在しない）となる。
【００２９】
ログ情報３１６は、当該ＩＤ付き文書が生成された際の操作についての、各種のログ項目の情報である。ログ項目には、例えばその操作が行われた時刻、その操作の種別、その操作を指示したユーザ（操作者）などがあるが、もちろんこれに限るものではない。操作の種別には、例えば登録（本システムに新規の文書を登録すること）、閲覧、更新（文書内容の変更）、印刷、スキャン、紙文書の複写、等がある。例えば、ユーザが文書操作部２００を用いて第１のＩＤ付き文書に対して編集を加え、編集完了の指示を行った場合、その結果生成される第２のＩＤ付き文書のログ情報３１６は、編集完了の時刻と、その編集を指示したユーザの識別情報と、操作の種別として「更新」と、を含んだものとなる。
【００３０】
図２の説明に戻り、文書操作部２００は、操作結果として上述のようなＩＤ付き文書３００を作成するために、ＩＤ割り当て部２０２及び派生関係組込部２０４を備える。ＩＤ割り当て部２０２は、操作結果のＩＤ付き文書３００に一意な管理ＩＤを付与する手段である。管理ＩＤは、少なくとも本システム内で一意な識別情報である必要がある。例えば、操作の結果生成するＩＤ付き文書３００（ただし管理ＩＤ３１２を除いたもの）のハッシュ値を求め、このハッシュ値をその文書３００のＩＤ付き文書とすればよい。ハッシュ関数としてSHA-256（SHA-256はNISTがFIPS180-2で定めた256ビットのハッシュ値を持つ暗号学的ハッシュ関数である）などのような耐衝突性を持つ暗号学的ハッシュ関数を用いれば、実用上十分な一意性を持つ管理ＩＤを生成することができる。もちろん、システム内で一意な管理ＩＤを各クライアント端末２０で生成する方法は、これに限らない。管理ＩＤを、クライアント端末２０固有の識別情報を含むものとすれば、システム内で一意な管理ＩＤを各クライアント端末２０で生成することができる。
【００３１】
派生関係組込部２０４は、操作結果の文書に対しＩＤ割り当て部２０２が割り当てた新たな管理ＩＤ３１２と、その操作の元になった親文書の管理ＩＤである親ＩＤ３１４（新規登録の場合は、親ＩＤは無し）と、その操作についてのログ情報３１６と、を含むメタ情報３１０を生成する。そして、派生関係組込部２０４は、そのメタ情報３１０を操作結果の文書内容に付加することにより、操作後のＩＤ付き文書３００を生成して出力する。
【００３２】
登録処理部２１０は、文書操作部２００が出力したＩＤ付き文書３００を文書管理サーバ１０に登録するための処理を実行する。このように各クライアント端末２０が、自ら実行した操作の結果であるＩＤ付き文書３００を文書管理サーバ１０に登録することにより、文書管理サーバ１０は各ＩＤ付き文書３００間の派生関係を把握することができる。
【００３３】
文書操作部２００が操作の結果出力するＩＤ付き文書３００は、通常の文書ファイルと同様、電子的にコピーしたり、電子メールに添付するなどの方法で他の人宛に送信したりすることができる。他の人からＩＤ付き文書３００を受け取った人が、自分のクライアント端末２０の文書操作部２００を用いてそのＩＤ付き文書３００を操作すると、その操作に応じて新たな管理ＩＤを付与されたＩＤ付き文書が生成されることになる。
【００３４】
また、文書操作部２００が電子文書を印刷する場合、管理ＩＤを生成し、その電子文書の印刷結果にその管理ＩＤを埋め込んでもよい。管理ＩＤの埋め込みは、例えば電子文書の印刷画像に、管理ＩＤを示すコード画像を重畳する等の方法で行うことができる。この場合、文書操作部２００は、その管理ＩＤや操作種別「印刷」等のメタ情報を含んだＩＤ付き文書を文書管理サーバ１０に登録する。なお、ＩＤ付き文書を印刷した場合には、そのＩＤ付き文書の管理ＩＤを親ＩＤ３１４として含んだＩＤ付き文書が生成される。印刷操作に対応するＩＤ付き文書には、印刷された画像を示すページ記述言語データやビットマップ画像データをなどの印刷データを、文書内容３２０として組み込んでもよい。
【００３５】
また、管理ＩＤが埋め込まれた紙文書を文書操作部２００が読み取った場合、文書操作部２００は、その読み取り操作に対して新たな管理ＩＤを付与し、読み取り結果の画像を文書内容３２０として含んだＩＤ付き文書を生成して文書管理サーバ１０に登録する。このＩＤ付き文書の親ＩＤ３１４には、紙文書から読み取った管理ＩＤがセットされる。管理ＩＤが埋め込まれた紙文書の複写の際には、上述した読み取り時と印刷時の処理が実行される。
【００３６】
ここで、ネットワーク３０に障害が生じていたり、クライアント端末２０とネットワーク３０の接続が断たれていたり、文書管理サーバ１０に障害が生じていたりする場合などのように、クライアント端末２０が文書管理サーバ１０にアクセスできない場合には、登録処理部２１０はＩＤ付き文書３００を文書管理サーバ１０に登録できない。このような場合に、文書操作部２００がＩＤ付き文書３００を出力すると、登録処理部２１０は、そのＩＤ付き文書３００を一時記憶部に２２０に保管し、後で文書管理サーバ１０にアクセス可能となったときにそのＩＤ付き文書をサーバ１０に登録する。
【００３７】
次に、文書管理サーバ１０について図４を用いて説明する。文書管理サーバ１０は、システム内の複数のクライアント端末２０から送られてくるＩＤ付き文書３００を蓄積し、蓄積した情報に基づきユーザに各種のサービスを提供する。文書管理サーバ１０は、文書ＤＢ１００，派生関係ＤＢ１１０，孤立ノード記憶部１２０，文書登録部１３０，要求処理部１４０及び派生関係検索部１５０を備える。
【００３８】
文書ＤＢ１００は、クライアント端末２０から送られてきたＩＤ付き文書３００のうちの文書内容３２０を格納するデータベースである。文書ＤＢ１００に格納された各文書内容３２０は、一意な内容ＩＤにより管理される。内容ＩＤとしては、例えば当該文書内容の暗号学的ハッシュ関数によるハッシュ値を用いてもよいが、これに限定されるものではない。クライアント端末２０が内容ＩＤを付与してもよく、この場合、内容ＩＤをメタ情報３１０に組み込んでもよい。
【００３９】
派生関係ＤＢ１１０は、そのようなＩＤ付き文書３００のうち、派生関係の情報を主としたメタ情報を蓄積するデータベースである。図５に、派生関係ＤＢ１１０のデータ内容の一例を示す。図５に示した表における１行の情報が、１つのＩＤ付き文書３００に対応するメタ情報レコードである。この例では、各ＩＤ付き文書３００の管理ＩＤに対応づけて、親ＩＤ、操作種類、操作者、操作時刻の各項目が登録されている。このうち、管理ＩＤと親ＩＤのペア以外の項目は、例示したものに限られない。管理目的上必要な項目を記録すればよい。
【００４０】
なお、図５は派生関係ＤＢ１１０が管理するデータを内容の観点から表現したものにすぎず、具体的な表現形式或いはデータベース形式を規定するものではない。例えば、派生関係ＤＢ１１０は、一般的なリレーショナルデータベースとして構築することもできるし、管理ＩＤを除くメタ情報を記述したＸＭＬ(eXtensible Markup Language)文書を、管理ＩＤをキーとして登録したデータベースとして構築することもできる。
【００４１】
なお、文書ＤＢ１００に登録された文書内容と派生関係ＤＢ１１０に登録されたメタ情報との対応関係は、図６に示すような対応関係情報により管理される。この対応関係情報は、管理ＩＤに対応づけて文書内容の内容ＩＤを記録したものである。対応関係情報は、文書ＤＢ１００が持っていてもよいし、派生関係ＤＢ１１０が持っていてもよい。
【００４２】
図５に示した派生関係ＤＢ１１０のデータ内容は、図７のような木構造を成す。これは、管理ＩＤをノードとし、管理ＩＤ間の親子関係をエッジとする木構造である。
【００４３】
図５〜図７の例が示す文書の履歴を時系列順に説明すると、以下のようになる。まず、文書管理サーバ１０に登録されていなかった文書の「登録」操作がuser1のクライアント端末で実行される。これに応じて管理ＩＤが"Doc1"、親ＩＤが空、操作種類が「登録」であるメタ情報と、その文書の文書内容とを含むＩＤ付き文書"Doc1"がuser1のクライアント端末から文書管理サーバ１０に送られる。これに応じ、文書管理サーバ１０は、そのＩＤ付き文書"Doc1"中の文書内容を文書ＤＢ１００へ、メタ情報を派生関係ＤＢ１１０にそれぞれ登録する。登録された文書内容は内容ＩＤ"Content1"に対応づけて管理される。ＩＤ付き文書"Doc1"はその後いずれかのクライアント端末上で操作され、その操作結果としてＩＤ付き文書"Doc2"が生成される。しかし、その時点ではそのクライアント端末が文書管理サーバ１０にアクセスできないため、ＩＤ付き文書"Doc2"は文書管理サーバ１０に送られない。その後、user2が、自分のクライアント端末でＩＤ付き文書"Doc2"を操作し、その操作結果のＩＤ付き文書"Doc3"が文書管理サーバ１０に登録される。この時点では、文書管理サーバ１０は、ＩＤ付き文書"Doc2"を受け取っていないので、未知の文書"Doc2"の更新結果がＩＤ付き文書"Doc3"であることを認識するのみであり、ＩＤ付き文書"Doc3"の始祖がＩＤ付き文書"Doc1"であることまでは把握できない。次にuser3が文書"Doc3"を閲覧し、その結果である文書"Doc4"を文書管理サーバ１０に登録するが、文書"Doc4"の文書内容は、文書"Doc3"の文書内容と同じである。次にuser2による文書"Doc3"の編集（「更新」）に応じて、編集結果の文書"Doc5"が文書管理サーバ１０に登録される。更にその後、user1により文書"Doc1"が編集され、編集結果の文書"Doc6"が文書管理サーバ１０に登録される。
【００４４】
孤立ノード記憶部１２０は、派生関係の木構造において、根まで到達できないノード（管理ＩＤ）を記憶するための記憶装置である。孤立ノード記憶部１２０を用いた処理については、後で詳しく説明する。
【００４５】
文書登録部１３０は、クライアント端末２０から受信したＩＤ付き文書の中の文書内容を文書ＤＢ１００に、メタ情報を派生関係ＤＢ１１０に、それぞれ登録する。そのうち、メタ情報の登録を担当するのが派生関係登録部１３２である。
【００４６】
要求処理部１４０は、クライアント端末２０からの管理ＩＤを含んだサービス要求に応じて、派生関係ＤＢ１１０を用いたサービスを提供する。要求処理部１４０が提供するサービスとしては、例えば、サービス要求中の管理ＩＤに対応する文書の最新版を検索するサービスがある。また別の例として、サービス要求中の管理ＩＤに対応する始祖の文書又はその始祖についてのログ情報を提供するサービスを挙げることができる。また、別の例として、その管理ＩＤの来歴、すなわち始祖からその管理ＩＤまでに文書が経てきた操作の履歴（例えば誰がいつどんな操作をしたのかを示す情報のリスト）を提供するサービスもある。
【００４７】
サービス要求は、クライアント端末２０に保持されたＩＤ付き文書に基づき発せられる。例えば、ユーザがクライアント端末２０の文書操作部２００によりＩＤ付き文書を開いた場合に、派生関係を用いたサービスのメニューを提供し、そのメニューの中からユーザが所望するサービスの指定を受け付け、そのＩＤ付き文書の管理ＩＤと指定されたサービスを示すコードとを含むサービス要求を文書管理サーバ１０の要求処理部１４０に送信する。
【００４８】
また別の例として、ユーザによるサービスの指定を一つの「操作」と捉え、その「操作」に対して新たに管理ＩＤを付与することも考えられる。この場合、指定されたサービスのコードを操作種別として含み、指定の際に用いられた元のＩＤ付き文書の管理ＩＤを親ＩＤとして含んだＩＤ付き文書を生成し、このＩＤ付き文書をサービス要求として文書管理サーバ１０に送ってもよい。この場合、要求処理部１４０は、受け取ったＩＤ付き文書内の操作種別の情報に基づき提供すべきサービスを判定し、同じくＩＤ付き文書内の親ＩＤを、派生関係を遡る処理の起点とする。
【００４９】
要求処理部１４０は、クライアント端末２０からサービス要求を受けた場合、そのサービス要求中に指定された管理ＩＤを検索条件の少なくとも１項目として含んだ検索要求を派生関係検索部１５０に送る。
【００５０】
派生関係検索部１５０は、要求処理部１４０からの検索要求に応じて、派生関係ＤＢ１１０に登録された管理ＩＤと親ＩＤとの派生関係が構成する木を走査（トラバース）し、その走査の結果得られた情報を要求処理部１４０に返す。要求処理部１４０は、その走査結果の情報を用いて、ユーザから要求されたサービスを実行する。
【００５１】
次に、本実施形態のシステムで行われる処理の内容を詳しく説明する。まず、図８を参照して、文書に対して操作が行われたときのクライアント端末の処理手順の一例を説明する。文書に対する操作が行われた場合、文書操作部２００は操作後の文書に対する管理ＩＤを生成する（Ｓ１）。そして文書操作部２００は、その操作に関する各種情報をオペレーティングシステムやその他のシステムから取得してメタ情報を生成し、そのメタ情報と操作後の文書内容とを含むＩＤ付き文書を生成し、そのＩＤ付き文書を登録処理部２１０に渡す（Ｓ２）。登録処理部２１０は、文書操作部２００からＩＤ付き文書を受け取ると、文書管理サーバ１０にアクセス可能であるかどうかを調べ（Ｓ３）、アクセス可能であればそのＩＤ付き文書を文書管理サーバ１０に登録し（Ｓ４）、そうでなければそのＩＤ付き文書を一時記憶部２２０に格納する（Ｓ５）。
【００５２】
次に、図９を参照して、登録処理部２１０によるリトライ処理の手順の例を説明する。この手順は、登録処理部２１０が起動されたタイミングや、その後定期的に到来するリトライタイミングなど、所定のタイミングで実行される。
【００５３】
この手順が呼び出されると、登録処理部２１０は、一時記憶部２２０の中にＩＤ付き文書が存在するかどうかを調べ（Ｓ１１）、存在しなければこの手順を終了する。存在すれば、文書管理サーバ１０にアクセス可能であるかどうかを調べ（Ｓ１２）、可能であれば一時記憶部２２０内のＩＤ付き文書を１つ取り出して文書管理サーバ１０に登録し（Ｓ１３）、登録した文書を一時記憶部２２０から削除する（Ｓ１４）。アクセス可能でなければこの手順を終了する。以上の処理を、一時記憶部２２０が空になるまで繰り返す。
【００５４】
次に、図１０及び図１１を参照して、クライアント端末２０からＩＤ付き文書を受信したときに文書管理サーバ１０の文書登録部１３０が実行する処理の例を説明する。この手順では、まず文書登録部１３０が、受信したＩＤ付き文書中の文書内容を文書ＤＢ１００に、メタ情報を派生関係ＤＢ１１０に、それぞれ登録する（Ｓ２１）。次に、文書登録部１３０（派生関係登録部１３２）は、そのＩＤ付き文書中の親ＩＤ３１４が派生関係ＤＢ１１０に「登録済み」であるか否かを判定する（Ｓ２２）。ＩＤが派生関係ＤＢ１１０に「登録済み」であるとは、そのＩＤの値を管理ＩＤとして持つメタ情報レコードが派生関係ＤＢ１１０内に存在することである。したがって、ステップＳ２２では、派生関係登録部１３２は、派生関係ＤＢ１１０における各メタ情報レコードの管理ＩＤの中に、ＩＤ付き文書中の親ＩＤ３１４の値と同じものが存在するかを調べる。存在すればその親ＩＤは「登録済み」である。
【００５５】
その親ＩＤが「登録済み」でない場合、そのＩＤ付き文書の管理ＩＤ（すなわちその親ＩＤの子）を孤立ノードＤＢ１２０に登録する（Ｓ２４）。このような状況は、文書管理サーバ１０が、未知（すなわち派生関係ＤＢ１１０に未登録）の文書から派生したＩＤ付き文書をクライアント端末２０から受け取ったときに生じる。この場合、文書管理サーバ１０は、受け取ったＩＤ付き文書に親があることは把握できるが、当該親より先の先祖については、当該親が派生関係ＤＢ１１０に登録されていないので把握できない。このように先祖を遡れない管理ＩＤは、先祖から離れて孤立しているという意味で、孤立ノードと呼ぶ。そのような孤立ノードを検出した場合に、それを孤立ノード記憶部１２０に登録するのである。図５〜図７の例で言えば、文書管理サーバ１０がＩＤ付き文書"Doc3"を受信した場合、ステップＳ２２の判定結果がＮｏ（否定）となり、管理ＩＤ"Doc3"が孤立ノード記憶部１２０に登録される。
【００５６】
また派生関係登録部１３２は、当該親ＩＤが孤立ノード記憶部１２０に登録されているか否かを調べる（Ｓ２３）。登録されていれば、親ＩＤが孤立ノードということなので、当然、当該管理ＩＤもその親ＩＤと同様先祖を遡ることができない。従って、派生関係登録部１３２は、当該管理ＩＤを孤立ノード記憶部１２０に登録する（Ｓ２４）。図５〜図７の例では、"Doc4"及び"Doc5"がこのケースに該当する。なお、ステップＳ２２とＳ２３はどちらを先に実行してもよい。
【００５７】
受信したＩＤ付き文書中に含まれる親ＩＤが派生関係ＤＢ１１０に登録済みであり且つ孤立ノード記憶部１２０に登録されていない場合、そのＩＤ付き文書の管理ＩＤから派生関係の木を遡って根に達することができる。このような場合の中には、今までクライアント端末２０から通知されず、派生関係ＤＢ１１０に登録されていなかったＩＤ付き文書が通知されてきた場合も含まれる。すなわち、クライアント端末２０の一時記憶部２２０に記憶されていたＩＤ付き文書が、登録処理部２１０のリトライ処理によりサーバ１０に送信されてきた場合である。例えば図５及び図７に示すような状態において、ＩＤ付き文書"Doc2"が文書管理サーバ１０に登録された場合が、このようなケースの一例である。このような場合、今まで孤立ノード記憶部１２０に記憶されていた管理ＩＤのなかに、上述のような欠落していたＩＤ付き文書の到来により、始祖（根）まで遡れるようになるものが出てくる場合がある。始祖まで遡れるようになった管理ＩＤは、もはや孤立していないので、孤立ノード記憶部１２０から削除する必要がある。そこで、派生関係登録部１３２は、孤立ノード記憶部１２０の保守処理を実行する（Ｓ２５）。この保守処理の手順の一例を、図１１に示す。
【００５８】
大略的に言えば、図１１の手順では、孤立ノード記憶部１２０に残った各管理ＩＤ群に対し、当該管理ＩＤの親ＩＤが派生関係ＤＢ１１０に登録済みであり、かつ当該管理ＩＤの親ＩＤが孤立ノード記憶部１２０内にない場合に、当該管理ＩＤを孤立ノード記憶部１２０から削除するというものである。このような処理を、再帰的に繰り返すことで、今回受信したＩＤ付き文書により先祖につながるすべての管理ＩＤを孤立ノード記憶部１２０から削除する。なお、図１１に示した手順はあくまで一例にすぎない。
【００５９】
詳しくは、派生関係登録部１３２は、孤立ノード記憶部１２０に残っているすべての管理ＩＤを対象リストに入れる（Ｓ２７）。対象リストは、すべての管理ＩＤを検査し終わったかを確認するために用いるリストである。次に、派生関係登録部１３２は、その対象リストが空か否かを判定し（Ｓ２８）、空でなければその中から１つ管理ＩＤを選んでそれを注目ＩＤとする（Ｓ２９）。そして、注目ＩＤの親ＩＤ（これは派生関係ＤＢ１１０から求めることができる）が派生関係ＤＢ１１０に登録済みか否か（Ｓ３０）、及び孤立ノード記憶部１２０内にあるか否か（Ｓ３１）を判定する。ステップＳ３０の判定結果がＹｅｓ且つステップＳ３１の判定結果がＮｏとなった場合、当該注目ＩＤは先祖につながったことになるので、その注目ＩＤを孤立ノード記憶部１２０から削除する（Ｓ３２）。例えば、図７の例では、ＩＤ付き文書"Doc2"が文書管理サーバ１０に登録された結果、"Doc2"が孤立ノード記憶部１２０から削除されると、"Doc3"についてのステップＳ３０の判定結果はＹｅｓ、ステップＳ３１の判定結果はＮｏとなり、"Doc3"もステップＳ３２で孤立ノード記憶部１２０から削除されることになる。
【００６０】
ステップＳ３２の後は、ステップＳ２７に戻り、ステップＳ３２での削除に応じて対象リストを更新する。すなわち、ステップＳ３２で新たに１つの管理ＩＤが先祖につながっていることが分かると、それ以前の処理で先祖につながっていないと判定された管理ＩＤも、つながっていると判定される可能性が出てくる。したがって、その時点で孤立ノード記憶部１２０に残っているすべての管理ＩＤを改めて対象リストに入れるのである。
【００６１】
ステップＳ３０及びＳ３１において、注目ＩＤの親ＩＤが派生関係ＤＢ１１０に未登録であるか、又は孤立ノード記憶部１２０内に存在すれば、注目ＩＤは依然として先祖にはつながっていないということになる。この場合、その注目ＩＤを対象リストから削除し（Ｓ３３）、ステップＳ２８に戻る。ステップＳ２８において対象リストが空と判定された場合、孤立ノード記憶部１２０にある管理ＩＤを調べ尽くしても、新たに孤立ノード記憶部１２０から削除される管理ＩＤはないということになる。すなわち、この場合、先祖につながる管理ＩＤはすべて孤立ノード記憶部１２０から削除されたことになるので、ここでこの処理を終了する。
【００６２】
なお、図１１に示した孤立ノード記憶部１２０の保守手順はあくまで一例に過ぎない。クライアント端末２０から受信したＩＤ付き文書に応じて先祖につながるようになった管理ＩＤをすべて孤立ノード記憶部１２０から削除できる手順であれば、どのような手順を用いてもよい。例えば、Ｓ２５の処理に入った際に、ステップＳ２１で受信したＩＤ付き文書の管理ＩＤの子が派生関係ＤＢ１１０に登録されているかどうかを調べ、子が登録されていれば、その子以下のすべての子孫を派生関係ＤＢ１１０から求め、それら子孫を孤立ノード記憶部１２０から削除してもよい。
【００６３】
次に、図１２を参照して、要求処理部１４０の処理手順の一例を説明する。この手順は、クライアント端末２０から、派生関係を用いたサービスを要求された場合に呼び出される。
【００６４】
この手順では、大略的に言えば、クライアント端末２０からのサービス要求に含まれる管理ＩＤから派生関係の木の根に遡れるか否かを判定し、遡れない場合は、その要求に対して正しい処理ができないことをクライアント端末２０に通知する。例えば図５及び図７の例では、"Doc4"に対応する文書の最新版（最も更新日時が新しい版）をクライアント端末２０から要求された場合、本来ならばその最新版は"Doc6"（"Content4"）であるが、"Doc2"の不在により"Doc4"からは根"Doc1"に到達できないので、最新版である"Doc6"を発見することができない。仮に、図７の状態で"Doc4"からたどり着ける最新版を探索すると、その探索結果は"Doc5"となるが、これは本当の最新版ではない。
【００６５】
図１２の手順では、クライアント端末２０からサービス要求を受けると、要求処理部１４０は、その要求に含まれる管理ＩＤが孤立ノード記憶部１２０内に存在するか否かを判定する（Ｓ４１）。存在しなければ、その管理ＩＤから派生関係の木の根に到達できる。この場合、要求処理部１４０は派生関係検索部１５０にその管理ＩＤを起点とする検索を依頼してその検索結果を取得する（Ｓ４２）。この依頼に応じ、派生関係検索部１５０は、派生関係ＤＢ１１０を参照してその管理ＩＤから順に派生関係を先祖方向へと遡る。そして、根、すなわち親ＩＤの値が空である管理ＩＤ（言い換えれば、「登録」イベントに対応する管理ＩＤ）に到達すると、更にその根を子孫方向へと下る。派生関係検索部１５０は、このような処理により、起点として指定された管理ＩＤが所属する木全体を求め、その木に属する各ノード（管理ＩＤ）の情報を検索結果として要求処理部１４０に返す。
【００６６】
要求処理部１４０は、クライアント端末２０から要求されたサービスを、その検索結果に基づいて実行し（Ｓ４３）、その処理の結果をクライアント端末２０に返す（Ｓ４４）。例えば、要求されたサービスが文書の最新版の提供であれば、検索結果に含まれる各管理ＩＤのうち、操作日時が最新である「更新」操作に対応するものを探索し、探索された管理ＩＤに対応する文書内容を含んだＩＤ付き文書をクライアント端末２０に返せばよい。また、要求されたサービスが、起点として指定された管理ＩＤに対応する文書の来歴の提供であれば、要求処理部１４０は、その起点から木の根までの各ノード（管理ＩＤ）についてのログ情報のリストを前述の検索結果に基づき求め、その結果をクライアント端末２０に返す。
【００６７】
なお、この例では、派生関係検索部１５０が、起点として指定された管理ＩＤが所属する木全体を求めたが、検索条件によっては必ずしも木全体を求める必要はない。例えば、起点が所属する木の根が分かればよいのであれば、その根を特定して検索結果として返せばよい。
【００６８】
ステップＳ４１で、要求対象の管理ＩＤが孤立ノード記憶部１２０内にあることが分かった場合、要求処理部１４０は、暫定的な処理結果をクライアント端末２０に返すか否かを判定する（Ｓ４５）。暫定的な処理結果とは、その管理ＩＤが属する部分木（この部分木は、根にはつながっていない）の範囲内で求められる処理結果のことである。例えば、暫定的な処理結果をクライアント端末２０に提供するか否かの設定項目を文書管理サーバ１０に設けておき、管理者がその項目を設定すればよい。この場合、ステップＳ４５の判定は、この設定項目の値に基づき行われる。また、暫定的な処理結果が必要か否かを要求元のユーザが指定してもよい。
【００６９】
暫定的な処理結果の提供が不要である場合は、要求処理部１４０は、正しい処理結果が求められない可能性があることを表したメッセージをクライアント端末２０に返し（Ｓ４６）、派生関係ＤＢ１１０の検索はせずに処理を終了する。そのメッセージを受けたクライアント端末２０は、そのメッセージを画面表示する。
【００７０】
暫定的な処理結果の提供を行う場合は、要求処理部１４０は、要求処理部１４０は派生関係検索部１５０にその管理ＩＤを起点とする検索を依頼してその検索結果を取得し（Ｓ４７）、クライアント端末２０から要求されたサービスを、その検索結果に基づいて実行し（Ｓ４８）、その処理の結果を、必ずしも正しくない暫定的な処理結果であることを表すメッセージと共に、クライアント端末２０に返す（Ｓ４９）。クライアント端末２０は、その処理結果をそのメッセージと共に画面表示する。ユーザは、提示された処理結果が正しくない可能性があることを、そのメッセージにより知ることができる。
【００７１】
以上、実施形態について説明した。次に実施形態の変形例について説明する。上記実施形態では、ＩＤ付き文書３００が文書管理サーバ１０に登録される際に、そのＩＤ付き文書が、派生関係の木の根から孤立しているか否かを判定した。これに対し、以下に説明する変形例では、要求処理部１４０がクライアント端末２０からサービス要求を受けたときに、そのような孤立判定を実行する。この変形例では、孤立ノード記憶部１２０は不要である。
【００７２】
この変形例の手順を、図１３を用いて説明する。この手順では、要求処理部１４０は、クライアント端末２０からサービス要求を受けると、そのサービス要求に示される起点の管理ＩＤを派生関係検索部１５０に渡して検索を依頼し、その検索結果を得る（Ｓ５１）。
【００７３】
派生関係検索部１５０は、図１４に示すように、その起点から派生関係ＤＢ１１０内の派生関係を先祖方向に遡り（Ｓ６１）、木の根に到達できた場合は、更にその根から子孫方向へと下ることで、その木に属するノード群を特定し、特定されたノード群の情報を検索結果として要求処理部１４０に返す。ここで、派生関係検索部１５０は、その検索過程で根まで到達できたかどうかを判定し（Ｓ６３）、到達できた場合は検索成功を返して（Ｓ６４）、更に検索結果を返す（Ｓ６６）。一方、根に到達できないことが判明した場合は、検索を中止し、検索失敗を返す（Ｓ６７）。木を遡る過程でノードの親が見つからない場合、すなわちそのノードの親ＩＤが派生関係ＤＢ１１０内に登録されていないことが分かった場合には、根に到達できないと判定できる。
【００７４】
なお、図１４の手順では、派生関係ＤＢ１１０内の各管理ＩＤに対して到達可能フラグを設けることで、根に到達する前に、根に到達可能かどうかを判別できるようにしている。すなわち、一度根まで到達可能と判明した管理ＩＤの到達可能フラグを「オン」にセットし（Ｓ６５）（初期値は「オフ」）、起点から先祖方向へ遡る過程（Ｓ６１）で到達可能フラグが「オン」であるノードに到達した場合（Ｓ６２）、それ以上の遡及はやめて、検索成功を返す（Ｓ６４）。
【００７５】
再び図１３の説明に戻ると、要求処理部１４０は、派生関係検索部１５０の回答が検索成功か否かを判定し（Ｓ５２）、検索成功であれば、受け取った検索結果を用いて処理を実行し（Ｓ５３）、その処理結果をクライアント端末２０に返す（Ｓ５４）。派生関係検索部１５０の回答が検索失敗であれば、要求処理部１４０は、正しい処理ができないことができない旨のメッセージをクライアント端末２０に返す。
【００７６】
なお、図１３では省略したが、検索失敗（根まで到達できない）の場合でも、検索できた範囲の情報に基づいて要求処理部１４０が暫定的な処理結果を求め、その暫定的な処理結果を、「暫定的である」ことを表すメッセージと共にクライアント端末２０に返してもよい。この場合、派生関係検索部１５０は起点が属する部分木の情報を要求処理部１４０に返し、要求処理部１４０はその部分木の範囲内で処理を実行する。また、根まで到達できない場合でも、サービス要求自体がその部分木の範囲内で正しい結果を出せるものである場合は、「暫定的である」旨のメッセージは返さなくてよい。例えば、サービス要求が「起点の直前の更新版から派生した中での最新版」の提供を求めるものである場合、その「直前の更新版」のノードがその部分木に含まれていれば、正しい結果を求めることができる。
【００７７】
以上に例示したシステムにおける文書管理サーバ１０は、典型的には、汎用のコンピュータにて上述の文書管理サーバの各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１５に示すように、ＣＰＵ（中央演算装置）４０、メモリ（一次記憶）４２、各種Ｉ／Ｏ（入出力）インタフェース４４等がバス４６を介して接続された回路構成を有する。また、そのバス４６に対し、例えばＩ／Ｏインタフェース４４経由で、ハードディスクドライブ４８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ５０が接続される。このようなドライブ４８又は５０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ４８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。クライアント端末２０についても同様である。
【図面の簡単な説明】
【００７８】
【図１】文書利用管理システムの概略構成の例を示すブロック図である。
【図２】クライアント端末の内部構成の例を示すブロック図である。
【図３】ＩＤ付き文書のデータ構造の例を模式的に示す図である。
【図４】文書管理サーバの内部構成の例を示すブロック図である。
【図５】派生関係ＤＢのデータ内容の例を示す図である。
【図６】管理ＩＤと文書内容の対応関係を示すデータの例を示す図である。
【図７】図５に例示したデータ内容が示す派生関係を図式化して示す図である。
【図８】文書に対して操作が行われたときのクライアント端末の処理手順の例を示すフローチャートである。
【図９】登録処理部の処理手順の例を示すフローチャートである。
【図１０】文書登録部の処理手順の例の一部を示すフローチャートである。
【図１１】文書登録部の処理手順の例の残りの部分を示すフローチャートである。
【図１２】要求処理部の処理手順の例を示すフローチャートである。
【図１３】変形例における要求処理部の処理手順の例を示すフローチャートである。
【図１４】変形例における派生関係検索部の処理手順の例を示すフローチャートである。
【図１５】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【００７９】
１０  文書管理サーバ、２０  クライアント端末、３０  ネットワーク、１００  文書ＤＢ、１１０  派生関係ＤＢ、１２０  孤立ノード記憶部、１３０  文書登録部、１３２  派生関係登録部、１４０  要求処理部、１５０  派生関係検索部、２００  文書操作部、２０２  ＩＤ割り当て部、２０４  派生関係組込部、２１０  登録処理部、２２０  一時記憶部、３００  ＩＤ付き文書。
【図１】
2008165600.tif 000003
【図２】
2008165600.tif 000004
【図３】
2008165600.tif 000005
【図４】
2008165600.tif 000006
【図５】
2008165600.tif 000007
【図６】
2008165600.tif 000008
【図７】
2008165600.tif 000009
【図８】
2008165600.tif 000010
【図９】
2008165600.tif 000011
【図１０】
2008165600.tif 000012
【図１１】
2008165600.tif 000013
【図１２】
2008165600.tif 000014
【図１３】
2008165600.tif 000015
【図１４】
2008165600.tif 000016
【図１５】
2008165600.tif 000017
【手続補正書】
【提出日】平成19年5月25日(2007.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、
受信した前記派生関係情報を記憶する派生関係記憶部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置。
【請求項２】
前記孤立情報記憶部に登録されている各識別情報について、当該識別情報の親の識別情報が前記派生関係記憶部に記憶されているという第１の条件と、当該識別情報の親の識別情報が前記孤立情報記憶部に登録されていないという第２の条件が共に満足される場合には、前記孤立情報記憶部から当該識別情報を削除する削除部、
を更に備える請求項１記載の第２の情報処理装置。
【請求項３】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録するステップと、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録するステップと、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、
をコンピュータに実行させるためのプログラム。
【請求項４】
第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、
前記派生関係情報生成部が生成した前記派生関係情報を第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、
を備える第１の情報処理装置と、
前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報を子とする派生関係情報が前記派生関係記憶部に記憶されていなければ、前記受信した派生関係情報における子の識別情報を孤立情報記憶部に登録する第１登録部と、
前記第１の情報処理装置から前記派生関係情報を受信したときに、その派生関係情報における親の識別情報が前記孤立情報記憶部に記憶されていれば、前記受信した派生関係情報における子の識別情報を前記孤立情報記憶部に登録する第２登録部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報が前記孤立情報記憶部に記憶されている場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置と、
を有する情報処理システム。
【請求項５】
第１の情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信する受信部と、
受信した前記派生関係情報を記憶する派生関係記憶部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置。
【請求項６】
前記処理実行部は、
前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できた場合には当該識別情報が根に到達可能であると記録する記録部と、
前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡る処理の中で、前記記録部により根に到達可能であるとして記録された識別情報に到達した場合は、前記遡る処理を中止する中止部と、
を備える請求項５記載の第２の情報処理装置。
【請求項７】
情報処理装置から文書の操作前の識別情報を親とし操作後の識別情報を子とする派生関係の情報を受信して派生関係記憶部に登録するステップと、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行するステップであって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信するステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
第１の識別情報を含んだ文書に対して操作部が操作を行った場合に、操作後の文書に対応する第２の識別情報を付与し、前記第１の識別情報が親で前記第２の識別情報が子であることを示す派生関係情報を生成する派生関係情報生成部と、
前記派生関係情報生成部が生成した前記派生関係情報を第２の情報処理装置に送信する送信部であって、前記派生関係情報が前記第２の情報処理装置へ送信できない場合は前記派生関係情報を一時保存部に保存し、前記派生関係情報が前記第２の情報処理装置へ送信可能となったときに前記一時保存部に保存された前記派生関係情報を前記第２の情報処理装置に送信する送信部と、
を備える第１の情報処理装置と、
前記第１の情報処理装置から受信した前記派生関係情報を記憶する派生関係記憶部と、
識別情報を含んだ処理指示を受けた場合に、その識別情報を起点として前記派生関係記憶部に記憶された派生関係情報群が表す識別情報群の木構造を走査し、その走査の結果を用いて前記処理指示に係る処理を実行する処理実行部であって、前記処理指示に含まれた識別情報を起点として前記木構造を先祖方向へ遡って根に到達できない場合には、正しい処理結果が得られない可能性があることを示す通知を、前記処理指示の発行元に送信する処理実行部と、
を備える第２の情報処理装置と、
を有する情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
請求項２に係る発明は、請求項１に係る発明において、孤立情報記憶部に登録されている各識別情報について、当該識別情報の親の識別情報が前記派生関係記憶部に記憶されているという第１の条件と、当該識別情報の親の識別情報が前記孤立情報記憶部に登録されていないという第２の条件が共に満足される場合には、前記孤立情報記憶部から当該識別情報を削除する削除部、を更に備える。