(57)【要約】【課題】データの記録に必要な記憶容量を低減するとともに、任意の時期におけるデータ内容の取得にかかる時間を短縮する。【解決手段】組織情報処理部１７０は、組織の構成員に関する組織情報の更新を記録するときに、この更新による組織情報の変化の程度に応じて、この更新の後のデータの全体であるスナップショットを組織情報リポジトリ１２０に記録するか、この更新の前後の組織情報の差分を表す差分情報を組織情報リポジトリ１２０に記録するかを決定する。【選択図】図２
2011002985.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
管理対象のデータの更新の内容を記憶手段に記憶させるときに、この更新による前記管理対象のデータの変化の程度に応じて、この更新の後のデータの全体情報を前記記憶手段に記憶させるのか、この更新における前記差分情報を前記記憶手段に記憶させるのかを決定する決定ステップ、
を実行させることを特徴とするデータ管理プログラム。
【請求項２】
前記決定ステップにおいて、前記変化の程度を表す値が予め設定された閾値以下である場合に、前記差分情報を第一記憶手段に記憶させることを決定する、
ことを特徴とする請求項１に記載のデータ管理プログラム。
【請求項３】
前記決定ステップにおいて、前記変化の程度を表す値が前記閾値よりも大きい場合に、前記全体情報を第二記憶手段に記憶させることを決定する、
ことを特徴とする請求項２に記載のデータ管理プログラム。
【請求項４】
前記管理対象のデータは、組織の構成員に関する情報を含み、
前記変化の程度を表す値は、前記管理対象のデータの更新において情報に変化のあった前記構成員の数に基づいて定められる、
ことを特徴とする請求項３に記載のデータ管理プログラム。
【請求項５】
ある時期の指定を受け付けた場合に、前記第二記憶手段中の前記全体情報のうち指定された時期以前で最も新しく前記第二記憶手段に記憶された全体情報と、この全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報と、を用いて、前記指定された時期における前記管理対象のデータを生成する生成ステップ、をさらに前記コンピュータに実行させる、
ことを特徴とする請求項３又は４に記載のデータ管理プログラム。
【請求項６】
前記組織の構成員に関する情報は、前記組織に含まれるグループのそれぞれに所属する構成員を表す情報と、前記組織における構成員の役割と、の少なくとも一方を含み、
規則記憶手段に記憶された、文書の運用の規則であって当該規則に関わる利用者を前記組織におけるグループ又は前記組織における役割で表す規則を参照するステップと、
ある時期の指定を受け付けた場合に、前記第二記憶手段に記憶された前記全体情報のうち指定された時期以前で最も新しく前記第二記憶手段に記憶された全体情報である最新全体情報と、この最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報と、を参照し、前記指定された時期における前記管理対象のデータを生成する生成ステップと、
前記生成ステップで生成した前記管理対象のデータを用いて、前記規則記憶手段に記憶された前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、
をさらに前記コンピュータに実行させる、
ことを特徴とする請求項４に記載のデータ管理プログラム。
【請求項７】
前記生成ステップにおいて、前記最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報において変化した旨が表されている前記グループ又は前記役割の集合と、前記規則に表された前記グループ又は前記役割の集合と、の間の積集合が空である場合は、前記最新全体情報を前記指定された時期における前記管理対象のデータとする、
ことを特徴とする請求項６に記載のデータ管理プログラム。
【請求項８】
前記生成ステップにおいて、前記積集合が空でない場合は、前記最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報が表す変化の内容に基づいて前記最新全体情報を変化させた結果のデータを前記指定された時期における前記管理対象のデータとする、
ことを特徴とする請求項７に記載のデータ管理プログラム。
【請求項９】
前記組織の構成員に関する情報は、前記組織に含まれるグループのそれぞれに所属する構成員を表す情報と、前記組織における構成員の役割と、の少なくとも一方を含み、
規則記憶手段に記憶された、文書の運用の規則であって当該規則に関わる利用者を前記組織におけるグループ又は前記組織における役割で表す規則と当該規則の有効期間を表す情報とを参照する参照ステップと、
前記規則記憶手段に記憶された前記規則の有効期間の間に前記第二記憶手段に記憶された前記全体情報のそれぞれについて、前記全体情報が表す前記管理対象のデータを用いて、前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、
前記有効期間の間に前記第一記憶手段に記憶された前記差分情報のそれぞれについて、前記差分情報において変化した旨が表されている前記グループ又は前記役割の集合と、前記規則に表された前記グループ又は前記役割の集合と、の間の積集合が空でない場合に、前記差分情報が前記第一記憶手段に記憶された時期における前記管理対象のデータであって前記第一記憶手段及び前記第二記憶手段を参照して生成されるデータを用いて、前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、をさらに前記コンピュータに実行させる、
ことを特徴とする請求項４に記載のデータ管理プログラム。
【請求項１０】
管理対象のデータの更新の内容を記憶手段に記憶させるときに、この更新による前記管理対象のデータの変化の程度に応じて、この更新の後のデータの全体情報を前記記憶手段に記憶させるのか、この更新の前後における差分情報を前記記憶手段に記憶させるのかを決定する決定手段、
を備えることを特徴とするデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理プログラム及びデータ管理装置に関する。
【背景技術】
【０００２】
データベースのバックアップにおいて、データベースの内容の変化を表す情報を記録する差分バックアップを行うことがある。例えば、データベースの内容の全体を記録するフルバックアップを一旦行い、フルバックアップを行った時点からのデータベースの内容の変化分について差分バックアップを行うことがある。
【０００３】
特許文献１には、データベース全体であるフルデータをバックアップするフルデータバックアップボリュームと、データベース更新分である差分データをバックアップする差分バックアップボリュームと、を含むライブラリ装置を備えるデータ記録システムが開示されている。特許文献１に記載のシステムにおいて、差分データの差分バックボリュームへの複数回のバックアップ毎に、フルデータのフルバックアップボリュームへのバックアップが行われる。このシステムは、次世代のフルバックアップ完了時にライブラリ装置における差分バックアップデータの領域を開放し、新規フルバックアップデータを記録する際に指定の世代よりも古い世代のバックアップデータが記録されているボリューム上の領域はオーバーライトにより再使用する。
【０００４】
特許文献２には、データベースに登録されている各オブジェクトの管理情報が保持され、随時更新されている管理テーブル部のバックアップを行ってデータベースを管理する技術が開示されている。特許文献２に記載の技術では、予め設定されたバックアップタイミングごとに、その時点での管理テーブルの内容のコピーをスナップショット情報として保存し、かつ、その時点での管理テーブルの内容を前回のバックアップタイミングに作成されたスナップショット情報と比較することにより、前回から今回までの間でのデータベースの変化内容を求め、その変化内容を表すバックアップ情報を作成して保存する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１９４９６４号公報
【特許文献２】特開２００１−３４４１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
予め設定された期間ごとにデータベースの差分バックアップを行う場合、毎回フルバックアップを行う場合と比較して、バックアップに必要な記憶容量はより少ない。しかしながら、毎回差分バックアップを行う場合には、任意の時期におけるデータベースの内容を取得するときに、差分バックアップの情報を用いて当該時期におけるデータベースの内容を再現する処理を行う必要がある。これに対して、毎回フルバックアップを行う場合には、任意の時期におけるデータベースの内容を取得するときに、当該時期におけるフルバックアップの情報を取得するだけで当該時期におけるデータベースの内容の全体を取得できるため、前述のような再現する処理を行う必要がない。したがって、任意の時期におけるデータベースの内容を取得するときは、フルバックアップを行う場合の方が差分バックアップを行う場合と比較して処理にかかる時間が短い。
【０００７】
本発明の目的は、管理対象のデータの更新を記録するときにデータの全体を毎回記録する場合と比較してデータの記録に必要な記憶容量を低減するとともに、データの変化分を毎回記録する場合と比較して任意の時期におけるデータ内容の取得にかかる時間を短縮することができるデータ管理プログラム及びデータ管理装置を提供することである。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、コンピュータに、管理対象のデータの更新の内容を記憶手段に記憶させるときに、この更新による前記管理対象のデータの変化の程度に応じて、この更新の後のデータの全体情報を前記記憶手段に記憶させるのか、この更新における前記差分情報を前記記憶手段に記憶させるのかを決定する決定ステップ、を実行させることを特徴とするデータ管理プログラムである。
【０００９】
請求項２に係る発明は、請求項１に係る発明において、前記変化の程度を表す値が予め設定された閾値以下である場合に、前記差分情報を第一記憶手段に記憶させることを決定する。
【００１０】
請求項３に係る発明は、請求項２に係る発明において、前記決定ステップにおいて、前記変化の程度を表す値が前記閾値よりも大きい場合に、前記全体情報を第二記憶手段に記憶させることを決定する。
【００１１】
請求項４に係る発明は、請求項３に係る発明において、前記管理対象のデータは、組織の構成員に関する情報を含み、前記変化の程度を表す値は、前記管理対象のデータの更新において情報に変化のあった前記構成員の数に基づいて定められる。
【００１２】
請求項５に係る発明は、請求項３又は４に係る発明において、ある時期の指定を受け付けた場合に、前記第二記憶手段中の前記全体情報のうち指定された時期以前で最も新しく前記第二記憶手段に記憶された全体情報と、この全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報と、を用いて、前記指定された時期における前記管理対象のデータを生成する生成ステップ、をさらに前記コンピュータに実行させる。
【００１３】
請求項６に係る発明は、請求項４に係る発明において、前記組織の構成員に関する情報は、前記組織に含まれるグループのそれぞれに所属する構成員を表す情報と、前記組織における構成員の役割と、の少なくとも一方を含み、規則記憶手段に記憶された、文書の運用の規則であって当該規則に関わる利用者を前記組織におけるグループ又は前記組織における役割で表す規則を参照するステップと、ある時期の指定を受け付けた場合に、前記第二記憶手段に記憶された前記全体情報のうち指定された時期以前で最も新しく前記第二記憶手段に記憶された全体情報である最新全体情報と、この最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報と、を参照し、前記指定された時期における前記管理対象のデータを生成する生成ステップと、前記生成ステップで生成した前記管理対象のデータを用いて、前記規則記憶手段に記憶された前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、をさらに前記コンピュータに実行させる。
【００１４】
請求項７に係る発明は、請求項６に係る発明において、前記生成ステップにおいて、前記最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報において変化した旨が表されている前記グループ又は前記役割の集合と、前記規則に表された前記グループ又は前記役割の集合と、の間の積集合が空である場合は、前記最新全体情報を前記指定された時期における前記管理対象のデータとする。
【００１５】
請求項８に係る発明は、請求項７に係る発明において、前記生成ステップにおいて、前記積集合が空でない場合は、前記最新全体情報が前記第二記憶手段に記憶された時期から前記指定された時期までの間に前記第一記憶手段に記憶された前記差分情報が表す変化の内容に基づいて前記最新全体情報を変化させた結果のデータを前記指定された時期における前記管理対象のデータとする。
【００１６】
請求項９に係る発明は、請求項４に係る発明において、前記組織の構成員に関する情報は、前記組織に含まれるグループのそれぞれに所属する構成員を表す情報と、前記組織における構成員の役割と、の少なくとも一方を含み、規則記憶手段に記憶された、文書の運用の規則であって当該規則に関わる利用者を前記組織におけるグループ又は前記組織における役割で表す規則と当該規則の有効期間を表す情報とを参照する参照ステップと、前記規則記憶手段に記憶された前記規則の有効期間の間に前記第二記憶手段に記憶された前記全体情報のそれぞれについて、前記全体情報が表す前記管理対象のデータを用いて、前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、前記有効期間の間に前記第一記憶手段に記憶された前記差分情報のそれぞれについて、前記差分情報において変化した旨が表されている前記グループ又は前記役割の集合と、前記規則に表された前記グループ又は前記役割の集合と、の間の積集合が空でない場合に、前記差分情報が前記第一記憶手段に記憶された時期における前記管理対象のデータであって前記第一記憶手段及び前記第二記憶手段を参照して生成されるデータを用いて、前記規則に表された前記グループ又は前記役割に対応する利用者を特定し、特定した利用者と前記規則とを関連づけて出力する出力ステップと、をさらに前記コンピュータに実行させる。
【００１７】
請求項１０に係る発明は、管理対象のデータの更新の内容を記憶手段に記憶させるときに、この更新による前記管理対象のデータの変化の程度に応じて、この更新の後のデータの全体情報を前記記憶手段に記憶させるのか、この更新の前後における差分情報を前記記憶手段に記憶させるのかを決定する決定手段、を備えることを特徴とするデータ管理装置である。
【発明の効果】
【００１８】
請求項１又は１０に係る発明によると、管理対象のデータの更新を記録するときにデータの全体を毎回記録する場合と比較してデータの記録に必要な記憶容量を低減するとともに、データの変化分を毎回記録する場合と比較して任意の時期におけるデータ内容の取得にかかる時間を短縮することができる。
【００１９】
請求項２に係る発明によると、差分情報を用いてデータ内容を再現する処理を行う必要があることの不利益よりも差分情報の記録によって記憶容量を低減できる利益の方が大きいとみなせる場合に、差分情報を記録することができる。
【００２０】
請求項３に係る発明によると、差分情報を記録する場合より多くの記憶容量を必要とすることの不利益よりも全体情報を記録することで任意の時期におけるデータ内容の取得にかかる時間を短縮できることの利益の方が大きいとみなせる場合に、全体情報を記録することができる。
【００２１】
請求項４に係る発明によると、組織における構成員の異動の規模に応じてデータを更新したときの、更新前のデータと更新後のデータとの変化の程度を表す値を決定できる。
【００２２】
請求項５に係る発明によると、指定された時期における管理対象のデータの全体の内容を取得できる。
【００２３】
請求項６に係る発明によると、指定された時期で、組織におけるどの利用者がどのように文書の運用に関わっていたかを特定できる。
【００２４】
請求項７に係る発明によると、差分情報が表す管理対象のデータの変化が文書の運用の規則の内容に関係ない場合に、差分情報を用いて管理対象のデータの全体の内容を再現する処理を省略できる。
【００２５】
請求項８に係る発明によると、差分情報が表す管理対象のデータの変化が文書の運用の規則の内容に関係ある場合にのみ、差分情報を用いて管理対象のデータの全体の内容を再現する処理を行うようにすることができる。
【００２６】
請求項９に係る発明によると、文書の運用の規則の有効期間において組織の構成員に関する情報が変化することで当該規則の内容が変化した場合に、当該規則の変化の履歴を取得できる。
【図面の簡単な説明】
【００２７】
【図１】文書管理システムの構成の例を示すブロック図である。
【図２】文書管理サーバの内部構成の概略の例を示すブロック図である。
【図３】文書管理テーブルの内容の例を示す図である。
【図４】ルール管理テーブルの内容の例を示す図である。
【図５】文書・ルール固定テーブルの内容の例を示す図である。
【図６】組織情報の内容の例を示す図である。
【図７】差分情報の内容の例を示す図である。
【図８】仮想バージョン管理テーブルの内容の例を示す図である。
【図９】ルール・組織固定テーブルの内容の例を示す図である。
【図１０】組織情報処理部が行う処理の手順の例を示すフローチャートである。
【図１１】指定日時における指定文書の適用ルールのルール内容を解釈する処理の手順の例を示すフローチャートである。
【図１２】指定日時における指定文書の適用ルールを特定する処理の手順の例を示すフローチャートである。
【図１３】適用ルールの解釈に用いる組織情報を決定する処理の手順の例を示すフローチャートである。
【図１４】ルールの履歴を求める処理の手順の例を示すフローチャートである。
【図１５】ルールの履歴を求める処理の部分的な手順の例を示すフローチャートである。
【図１６】ルールの履歴を求める処理の部分的な手順の例を示すフローチャートである。
【図１７】ルールの履歴の内容の例を示す図である。
【図１８】コンピュータのハードウエア構成の例を示すブロック図である。
【発明を実施するための形態】
【００２８】
以下、企業や自治体などの組織において利用される文書を管理する文書管理サーバを例にとり、本発明の一実施形態を説明する。
【００２９】
図１は、文書管理サーバを含むシステムの概略構成の例を示す図である。図１の例のシステムは、文書管理サーバ１０、人事情報管理サーバ２０、及びクライアント端末３０−１，３０−２，…（以下、クライアント端末３０と総称する）がネットワーク４０を介して互いに接続された構成を有する。
【００３０】
クライアント端末３０は、文書管理サーバ１０で管理される文書を利用する端末装置である。クライアント端末３０は、例えば、ユーザの指示に従って、文書管理サーバ１０で管理される文書に対して各種の操作（編集、印刷、削除など）を実行する。
【００３１】
人事情報管理サーバ２０は、図１の例のシステムを用いる組織の構成員（ユーザ）に関する情報を管理するサーバ装置である。人事情報管理サーバ２０は、例えば、各ユーザの識別情報、組織に含まれる各グループに所属するユーザ、及び、組織における各ユーザの業務上の役割などを記憶したデータベースを備える。
【００３２】
文書管理サーバ１０は、組織で利用される文書を管理する。図２に、文書管理サーバ１０の内部構成の概略の例を示す。文書管理サーバ１０の機能の一部が本発明の一実施形態の例のデータ管理装置として機能する。
【００３３】
図２を参照し、文書管理サーバ１０は、文書リポジトリ１００、ルールリポジトリ１１０、組織情報リポジトリ１２０、文書処理部１３０、ルール登録・編集部１４０、ルール履歴処理部１６０、及び組織情報処理部１７０を備える。
【００３４】
文書リポジトリ１００は、文書管理サーバ１０の管理対象の文書を記憶する。また、文書リポジトリ１００は、文書リポジトリ１００に記憶された文書に関する情報が登録された文書管理テーブルを記憶する。
【００３５】
図３は、文書管理テーブルの内容の一例を示す。図３の例の文書管理テーブルには、文書の識別情報である文書ＩＤに対応づけて、文書の属性を表す文書属性情報が登録されている。図３の例の表では、文書属性情報の項目は、文書バージョン、作成日時、ファイル名、文書種別、及び状態の各下位項目を含む。文書バージョンは、その文書のバージョン（版）を表し、１つの文書ＩＤに対して複数存在し得る。本例のシステムでは、文書ＩＤと文書バージョンとの組み合わせにより１つの文書が特定される。作成日時は、対応する文書バージョンの文書が作成された日時を表す。ファイル名は、対応する文書のファイルに対して付与された名称である。本例では、同一の文書ＩＤを有する文書には同一のファイル名が付与されている。文書種別は、対応する文書の種別を表す。図３の例では、文書種別の値は、「契約書」、「見積書」、及び「領収書」など、組織における文書の用途に基づいて設定されている。状態の項目の値は、文書の生成から廃棄までの間に文書が取り得る状態のいずれかを表す。図３の例では、状態の値は、組織において当該文書に関して行われる業務の流れの１つの段階あるいは作業に対応する。ここで、業務の流れとは、例えば、文書が「作成」された後、役職者により「承認」され、その後、「固定（された状態で保管）」される、といった、業務における文書に対する作業の流れを意味する。
【００３６】
なお、文書管理テーブルの態様は、図３に例示する態様に限られない。例えば、文書属性情報として、図３に例示する下位項目の他の情報を含んでいても良い。例えば、文書の作成者を表す情報や、文書リポジトリ１００における文書の格納位置を表す情報などを文書属性情報の一部として登録してよい。また例えば、図３の例では文書ＩＤとファイル名とが１対１に対応しているため、文書ＩＤ及びファイル名のいずれか一方の文書管理テーブルへの登録を省略してもよい。文書ＩＤを省略する場合、ファイル名を文書の識別情報として用いればよい。
【００３７】
再び図２を参照し、ルールリポジトリ１１０は、文書の運用の規則を表すルールに関する情報を記憶する。ルールリポジトリ１１０は、ルール管理テーブル及び文書・ルール固定テーブルを記憶する。
【００３８】
図４は、ルール管理テーブルの内容の一例を示す。図４の例の表では、ルールの識別情報であるルールＩＤに関連づけて、ルールバージョン、文書種別、作成日時、及びルール内容が登録されている。ルールバージョンは、１つのルールＩＤに対して複数存在し得る。本例のシステムでは、ルールＩＤとルールバージョンとの組み合わせにより、１つのルールが特定される。文書種別は、対応するルールに従って運用される文書の文書種別を表し、図３を参照して上述した文書種別に対応する。本例では、同一のルールＩＤを有するルールには同一の文書種別が対応づけられる。作成日時は、対応するルールバージョンのルールが作成された日時を表す。ルール内容は、対応するルールの適用対象の文書を運用する際の規則の内容を表す。図４の例の表において、ルール内容の項目には、アクセス権、状態、アクセス権マスク、状態遷移条件、及びトリガの各下位項目が登録される。
【００３９】
アクセス権の項目には、適用対象の文書に対するアクセス権の内容が設定される。アクセス権の内容は、例えば、文書に対する操作の実行主体を表す情報と、その実行主体に対して許可又は禁止される操作の種類と、を対応づける情報により表される。本例のシステムでは、文書に対する操作の実行主体を表す情報として、ユーザの識別情報であるユーザＩＤ、ユーザのグループの識別情報であるグループＩＤ、又はユーザの業務上の役割を表すロールの識別情報であるロールＩＤが用いられる。
【００４０】
状態の項目には、適用対象の文書が取り得る状態が登録され、この「状態」は、図３を参照して上述した文書の「状態」に対応する。状態の項目の値は、当該ルールの適用対象の文書が取り得る状態の値の集合（例えば、｛「作成中」，「校正中」，「承認済み」，「固定」｝など）として表されるものであってよい。
【００４１】
アクセス権マスクは、適用対象の文書が取り得る状態のそれぞれについて設定され、当該状態を有する文書のアクセス権の決定に用いられる情報である。例えば、ルールの適用対象の文書が特定の状態である場合、適用対象の文書に対するアクセス権として設定された上述のアクセス権と、当該状態に対して設定されているアクセス権マスクと、について論理演算のＡＮＤ演算を行って得られるアクセス権が、当該文書のアクセス制限に用いられる。
【００４２】
状態遷移条件は、適用対象の文書が１つの状態から他の１つの状態に遷移するための条件を表す。状態遷移条件は、例えば、１つの状態から次の状態へ遷移する日時を設定したものであってよい。あるいは、例えば、特定の主体（ユーザＩＤ、グループＩＤ、又はロールＩＤで表される）が特定の種類の操作を文書に対して実行することを状態遷移条件としてもよい。
【００４３】
トリガは、適用対象の文書に関してある条件が成立した場合に文書管理サーバ１０が実行する処理の内容を表す。トリガは、例えば、処理実行の条件と、実行される処理の内容と、の組により表される。例えば、処理実行条件として、適用対象の文書に対して特定の種類の操作が実行されたこと、あるいは、特定の主体によって特定の種類の操作が実行されたことを用いてもよい。また例えば、日時、又は、ある時期からの経過時間などによって処理実行条件を表してもよい。実行される処理の例としては、特定のユーザ又は特定のグループ若しくはロールのユーザに対する電子メールなどの通知情報の送信、及び予め設定された宛先へのＦＡＸ（ファクシミリ）送信などが挙げられる。
【００４４】
以上で説明したルール内容を定義する情報は、ユーザに関する情報を含む。例えば、アクセス権及びアクセス権マスクの定義において、操作の実行主体は、ユーザＩＤ、グループＩＤ、又はロールＩＤによって表される。また、状態遷移条件又はトリガの処理実行条件として、特定の主体が特定の種類の操作を実行するよう定義されているとき、その主体もまた、ユーザＩＤ、グループＩＤ、又はロールＩＤによって表される。さらに、例えば、トリガで実行される処理内容として、ユーザＩＤ、グループＩＤ、又はロールＩＤを指定して該当するユーザに対して通知情報を送信するよう定義されることもある。以上のように、ルール内容を定義する情報に含まれるユーザ、グループ、及びロールを、以下では、当該ルールの「関与者」と呼ぶ。
【００４５】
なお、ルール内容の態様は、図４を参照して上述したものに限られない。文書の運用に関して図４の例の他の規則を用いる場合は、その規則をルール内容としてルール管理テーブルに登録すればよい。また、文書の運用上必要がなければ、ルール内容の下位項目の一部の設定を省略してもよい。
【００４６】
図５は、ルールリポジトリ１１０に記憶される文書・ルール固定テーブルの内容の一例を示す表である。本例のシステムでは、原則として、ある時期に文書に適用されるルールは、文書の文書種別（図２）に対応するルールＩＤのルール（図４）のうち、当該時期で（作成日時が）最新のルールバージョンを有するルールである。文書・ルール固定テーブルは、文書に適用されるルールの例外を表すテーブルである。図５の例では、文書・ルール固定テーブルには、文書ＩＤと文書バージョンとの組に対応づけて、ルールＩＤとルールバージョンとの組が登録される。例えば、図５の例の表の２行目は、文書ＩＤが「Doc1」であり、文書バージョンが「1.0」である文書について、その文書の文書種別に対応するルールの最新バージョンにかかわらず、ルールＩＤが「Rule2」であり、ルールバージョンが「1.0」であるルールを適用して運用することを表す。
【００４７】
図２の説明に戻り、組織情報リポジトリ１２０は、人事情報管理サーバ２０から取得した情報に基づく組織情報を記憶する。本例のシステムにおける組織情報は、文書の運用に適用されるルールの関与者になり得るユーザ、グループ、及びロールに関する情報を含む。組織情報は、本発明の一実施形態の例のデータ管理装置による管理対象のデータの例である。
【００４８】
図６に、組織情報の内容の例を示す。図６（ａ）は、組織に含まれる各グループのグループＩＤと、各グループに所属するユーザのユーザＩＤと、を対応づけた表の例である。図６（ｂ）は、組織における役割を表すロールのロールＩＤと、各ロールを有するユーザのユーザＩＤと、を対応づけた表の例である。以下の説明において、組織情報は、図６（ａ）及び図６（ｂ）の例のように、各グループの所属ユーザのユーザＩＤと各ロールを有するユーザのユーザＩＤとを含むものとする。また、組織情報は、図６に例示する内容の情報に加えて、各ユーザ、各グループ、及び各ロールに対応づけられる情報を含んでいてよい。例えば、各ユーザＩＤと、当該ユーザの氏名や連絡先（電子メールアドレス、電話番号、ＦＡＸ番号など）などと、を対応づける情報を含んでいてよい。さらに、例えば、グループＩＤ又はロールＩＤと、当該グループ又はロールの名称や連絡先などと、を対応づける情報を含んでいてよい。
【００４９】
組織情報は、後に詳述するルール履歴処理部１６０におけるルールの解釈に用いられる。ここで、ルールの「解釈」とは、ルール内容を表す情報がグループＩＤ又はロールＩＤを含む場合に、当該ＩＤが表すグループ又はロールに対応するユーザを特定することを意味する。
【００５０】
なお、組織情報リポジトリ１２０中の組織情報は、人事情報管理サーバ２０のデータベース中の情報と必ずしも同一の内容を有するものでなくてよい。人事情報管理サーバ２０のデータベースには、例えば各ユーザの人事上の評価に関する情報など、文書の管理には必要ない情報も含まれ得る。組織情報は、人事情報管理サーバ２０のデータベースから文書の管理目的上必要な情報だけを抽出し、抽出した情報に基づいて生成される。
【００５１】
再び図２を参照し、組織情報リポジトリ１２０は、最新組織情報、スナップショット、差分情報、仮想バージョン管理テーブル、及びルール・組織固定テーブルを記憶する。
【００５２】
最新組織情報は、文書管理サーバ１０が人事情報管理サーバ２０から最後に取得した情報に対応する組織情報である。最新組織情報は、上述の図６の例のように、各グループ及び各ロールのユーザの情報を含む。
【００５３】
スナップショットは、ある時期における最新組織情報の複製である。ここで、ある「時期」とは、例えば、日付及び時分秒（例：６月１６日午前０時５分３０秒）、日付及び時（例：６月１６日午前０時５分）、あるいは日付（例：６月１６日）などによって表現される。なお、以下の説明において、ある「時期」を表す語として、「日時」又は「日付」を用いるが、これらの語は「時期」の表現の一例であって限定解釈されるべきものではない。例えば、以下の説明において「日時」の語により「時期」を表す部分を、「時分秒」を特定した「時期」の表現、又は、時を特定せずに日付だけを特定した「時期」の表現に置き換えてもよい。また、「日付」の語により「時期」を表す部分において、時や時分秒を特定した「時期」の表現を代わりに用いてもよい。スナップショットは、後に詳述する組織情報処理部１７０により生成される。
【００５４】
差分情報は、ある時期における最新組織情報と人事情報管理サーバ２０から取得した情報から生成される組織情報との間の差分を表す情報である。差分情報もまた、後に詳述する組織情報処理部１７０により生成される。
【００５５】
後述するが、本例の文書管理サーバ１０において、人事情報管理サーバ２０のデータベースの更新を組織情報リポジトリ１２０中の最新組織情報に反映させるときに、スナップショット又は差分情報が生成される。言い換えると、スナップショット又は差分情報は、組織情報リポジトリ１２０中の最新組織情報を、人事情報管理サーバ２０のデータベースの内容に対応する組織情報と同期させるときに生成される。そして、スナップショット及び差分情報のそれぞれに対して、識別情報が生成されて付与される。以下の説明では、スナップショット及び差分情報に付与される識別情報を「仮想組織バージョン」と呼ぶ。ここで、「仮想」の語を用いるのは、文書管理サーバ１０においてスナップショット又は差分情報を生成するタイミングが、人事情報管理サーバ２０のデータベース中の情報の新バージョンの生成のタイミング（つまり、人事情報管理サーバ２０のデータの更新のタイミング）から独立して決定される場合があるからである。
【００５６】
図７は、差分情報の内容の一例を示す表である。図７の例の表は、仮想組織バージョン、対象ＩＤ、操作、及び引数ＩＤの各項目を含む。対象ＩＤ、操作、及び引数ＩＤの組み合わせにより、対応する仮想組織バージョンの差分情報の内容が表される。対象ＩＤは、差分に関わる主体の識別情報を表し、本例では、ユーザＩＤ、グループＩＤ、又はロールＩＤにより表される。操作は、対象ＩＤにより表される主体の変化の態様を表す。引数ＩＤは、対象ＩＤがユーザＩＤである場合に、その変化に関わるグループ又はロールのＩＤを表す。例えば、図７の例の表の仮想組織バージョン「20090201」に対応する２つの行を参照し、その１行目は、ユーザ「user10」（対象ＩＤ）がグループ「GroupK」（引数ＩＤ）から「削除」（操作）されたことを表す。また、２行目は、ユーザ「user10」（対象ＩＤ）がグループ「GroupX」（引数ＩＤ）に「追加」（操作）されたことを表す。つまり、当該２つの行は、ユーザ「user10」がグループ「GroupK」から他のグループ「GroupX」へ異動したことを表す。また、仮想組織バージョン「20090214」に対応する行の３行目を参照すると、ユーザ「user17」（対象ＩＤ）がロール「Role3」（引数ＩＤ）に「追加」（操作）されたことがわかる。言い換えると、ユーザ「user17」がロール「Role3」の役割を果たすようになったことがわかる。さらに、仮想組織バージョン「20090301」に対応する５つの行の１行目は、グループ「GroupZ」（対象ＩＤ）が「作成」（操作）されたことを表す。つまり、組織において、新しいグループ「GroupZ」が作成されたことを表す。ここで、引数ＩＤは空に設定されている。
【００５７】
再び図２を参照し、組織情報リポジトリ１２０中の仮想バージョン管理テーブルは、スナップショット及び差分情報を管理するためのテーブルである。図８に、仮想バージョン管理テーブルの内容の一例を示す。図８の例の表には、仮想組織バージョンに対応づけて、適用日付、スナップショットの有無、及びデータ内容への参照情報が登録されている。適用日付は、対応する仮想組織バージョンが付与されたスナップショット又は差分情報により表される組織情報が有効になったとみなされる日付を表す。適用日付は、例えば、組織情報リポジトリ１２０中の最新組織情報を人事情報管理サーバ２０のデータベースの内容に同期させたとき、つまり、スナップショット又は差分情報が生成されたときの日付であってよい。この例の場合、適用日付は、人事情報管理サーバ２０においてデータベースの更新が行われた日付と必ずしも一致しなくてよい。あるいは、スナップショット又は差分情報が生成されたときの日付の代わりに、人事情報管理サーバ２０のデータベースの更新が行われた日付を、当該更新を反映したスナップショット又は差分情報の適用日付としてもよい。スナップショットの有無は、対応する仮想組織バージョンを付与されたスナップショットの有無を表す。スナップショットがない場合、その仮想組織バージョンは、差分情報に付与されていることになる。データ内容への参照情報は、対応する仮想組織バージョンが付与されたスナップショット又は差分情報の組織情報リポジトリ１２０における格納位置を表す。
【００５８】
なお、仮想バージョン管理テーブルの態様は、図８の例に限られない。例えば、各仮想組織バージョンについてスナップショット又は差分情報の区別を表す情報を登録しておきさえすれば、仮想組織バージョンのスナップショットの「有無」は登録しなくてもよい。また例えば、データ内容への参照情報を登録する代わりに、対応するスナップショット又は差分情報のデータ内容自体を登録しておいてもよい。
【００５９】
図９は、組織情報リポジトリ１２０に記憶されるルール・組織固定テーブルの内容の一例を示す。本例のシステムでは、ルールの解釈に用いられる組織情報は、原則として、当該ルールのルールバージョンの有効期間（当該ルールバージョンの作成日時から次のルールバージョンの作成日時までの期間）内の時期における仮想組織バージョンに対応する組織情報である。ルール・組織固定テーブルは、ルールの解釈に用いられる組織情報の例外を表す。図９の例では、ルールＩＤとルールバージョンとの組に対応づけて、仮想組織バージョンが登録される。例えば図９の例の表の２行目は、ルールＩＤが「Rule1」であり、ルールバージョンが「1.1」であるルールを解釈するときに、このルールの有効期間にかかわらず、仮想組織バージョン「20090214」に対応する組織情報を用いることを表す。
【００６０】
再び図２を参照し、文書処理部１３０は、文書に関する処理を行う。例えば、クライアント端末３０で新規作成された文書をクライアント端末３０からネットワーク４０を介して受け取り、受け取った文書を文書リポジトリ１００に記憶させると共に、当該文書の文書属性情報を文書管理テーブルに登録する。また、文書処理部１３０は、アクセス管理部１３２を備える。アクセス管理部１３２は、文書に対するアクセス制限を行う。アクセス管理部１３２は、例えば、クライアント端末３０からの文書に対するアクセス要求に応じて、要求対象の文書に対するアクセスの可否を決定する。アクセスの可否の決定は、例えば、要求対象の文書に適用されるルールの解釈を後述のルール履歴処理部１６０に依頼し、その解釈の結果に基づいて行う。
【００６１】
ルール登録・編集部１４０は、ルールリポジトリ１１０中の情報の登録及び編集を行う。例えば、クライアント端末３０及びネットワーク４０を介して、あるいは文書管理サーバ１０の図示しない入力装置を介して、ユーザ又はシステムの管理者などによる指示を受け、この指示に従って、ルール管理テーブルに新たなルールを登録したり、登録済みのルールのルール内容を変更したりする。また、ユーザ又はシステムの管理者などの指示に従って、文書・ルール固定テーブルの内容を変更することもある。
【００６２】
ルール履歴処理部１６０は、ルールの履歴に関する処理を行う。ルール履歴処理部１６０は、ルール解釈部１６２を備える。ルール解釈部１６２は、ルールリポジトリ１１０及び組織情報リポジトリ１２０を参照し、ルールの内容を解釈する。例えば、グループＩＤ又はロールＩＤを含むルール内容について、そのグループに所属するユーザ又はそのロールを有するユーザを特定する処理を行う。
【００６３】
ルール履歴処理部１６０は、例えば、過去の日時及び文書の指定を受け付け、指定された文書に指定された日時で適用されていたルールを特定し、特定したルールのルール内容をルール解釈部１６２で解釈させた結果を出力する。また例えば、ルールＩＤの指定を受け付け、指定されたルールＩＤのルール内容の変更の履歴を求める処理を行うこともある。また、ルール履歴処理部１６０は、例えば、文書処理部１３０がクライアント端末３０から文書のアクセス要求を受けた場合に、文書処理部１３０からの依頼に応じて、要求対象の文書に適用されるルールの内容をルール解釈部１６２で解釈した結果を文書処理部１３０に返すこともある。
【００６４】
組織情報処理部１７０は、組織情報リポジトリ１２０に情報を記録する（記憶させる）処理を行う。例えば、人事情報管理サーバ２０から取得した情報に基づいて生成した組織情報を最新組織情報として組織情報リポジトリ１２０に記録する。また、最新組織情報の記録の際に、上記で説明したスナップショット又は差分情報を生成し、仮想組織バージョンを付与して組織情報リポジトリ１２０に記録する。また例えば、図示しない入力装置を介してユーザ又は管理者からの指示を受け付けて、組織情報リポジトリ１２０中のルール・組織固定テーブルの内容を編集する処理を行うこともある。
【００６５】
以上、文書管理サーバ１０の構成の例を説明した。以下、文書管理サーバ１０で実行される処理の手順の例を説明する。
【００６６】
図１０は、組織情報処理部１７０が実行する処理の手順の例を示すフローチャートである。組織情報処理部１７０は、定期的に、あるいは、システムの管理者などによって指示されたタイミングで、図１０の例の手順の処理を実行する。
【００６７】
図１０を参照し、まず、組織情報処理部１７０は、ネットワーク４０を介して、人事情報管理サーバ２０が備えるデータベースを参照する（ステップＳ１０）。次に、人事情報管理サーバ２０のデータベースにおいて、組織情報リポジトリ１２０に記憶された最新組織情報に対応する情報からの変更があるか否かを判定する（ステップＳ１２）。この判定は、例えば、最新組織情報に含まれる各グループのユーザ及び各ロールのユーザが、人事情報管理サーバ２０のデータベースにおいて対応するグループ及びロールのユーザとして登録されているか否かを確認することで行えばよい。
【００６８】
ステップＳ１２の判定の結果、変更がなければ処理を終了し、変更があればステップＳ１４に進む。
【００６９】
ステップＳ１４では、組織情報処理部１７０は、人事情報管理サーバ２０のデータベースの内容に従って、組織情報リポジトリ１２０中の最新組織情報を更新する。例えば、図６（ａ）又は図６（ｂ）の例の表において、グループＩＤ又はロールＩＤに対応づけられるユーザＩＤを変更したり、グループＩＤ又はロールＩＤの追加あるいは削除を行ったりする。
【００７０】
次に、組織情報処理部１７０は、現在がスナップショットを記録する時期として管理者などにより予め設定された時期であるか否かを判定する（ステップＳ１６）。スナップショットを記録する時期としては、例えば、組織の運営上の期間（例えば、会計年度など）の区切りに相当する時期など、大幅な人事異動が生じて人事情報管理サーバ２０のデータベースの内容が大きく変更されることが予め判明している時期に設定しておく。設定の態様としては、例えば日時を用いてもよいし、あるいは、予め設定された基準時（前回のスナップショットの記録時など）からの経過期間を用いてもよい。
【００７１】
スナップショットを記録する時期である場合（ステップＳ１６でＹＥＳ）、組織情報処理部１７０は、更新後の最新組織情報の複製をスナップショットとして組織情報リポジトリ１２０に記録する（ステップＳ２４）。このとき、組織情報処理部１７０は、スナップショットに対し、仮想組織バージョンを生成して付与する。
【００７２】
スナップショットを記録する時期でない場合（ステップＳ１６でＮＯ）、組織情報処理部１７０は、組織情報の変化の程度を求める（ステップＳ１８）。ステップＳ１８において、本例では、ステップＳ１４での最新組織情報の更新の前後においてグループ又はロールに変更のあったユーザの数に基づいて、組織情報の変化の程度を表す値を求める。例えば、本例のシステムの全ユーザの数に対する、グループ又はロール変更のあったユーザの数の割合を求めて、求めた割合を組織情報の変化の程度を表す価とする。あるいは、グループ又はロールに変更のあったユーザの数自体を組織情報の変化の程度を表す価としてもよい。
【００７３】
そして、ステップＳ１８で求めた変化の程度を表す値が予め設定された閾値以下であれば（ステップＳ２０でＹＥＳ）、組織情報処理部１７０は、差分情報を生成して組織情報リポジトリ１２０に記録する（ステップＳ２２）。例えば、グループ間を異動したユーザに関し、異動したユーザのユーザＩＤを対象ＩＤとし、操作が「削除」、引数ＩＤが異動前のグループのグループＩＤである情報と、異動したユーザのユーザＩＤを対象ＩＤとし、操作が「追加」であって引数ＩＤが異動後のグループのグループＩＤである情報と、を差分情報として生成する（図７参照）。また、組織情報処理部１７０は、生成した差分情報に対して仮想組織バージョンを生成して付与する。
【００７４】
ステップＳ１８で求めた変化の程度を表す値が閾値を超えていれば（ステップＳ２０でＮＯ）、ステップＳ２４で、スナップショットの記録が行われる。このスナップショットには仮想組織バージョンが付与される。
【００７５】
差分情報の記録（ステップＳ２２）又はスナップショットの記録（ステップＳ２４）が行われると、組織情報処理部１７０は、差分情報又はスナップショットを仮想バージョン管理テーブル（図８参照）に登録する（ステップＳ２６）。ステップＳ２６では、例えば、組織情報処理部１７０は、まず、仮想バージョン管理テーブルにおいて、差分情報又はスナップショットに対して付与した仮想組織バージョンに対応するエントリを１つ生成する。そして、生成したエントリにおいて、適用日付、スナップショットの有無、及びデータ内容への参照情報の各項目の値を登録する。ステップＳ２６の後、図１０の例の手順の処理は終了する。
【００７６】
以上で説明した図１０の例の手順の処理では、最新組織情報を更新するとき、予め設定されたスナップショット記録時期である（ステップＳ１６でＹＥＳ）か、あるいは、組織情報の変化の程度を表す値が予め設定された閾値を超えている（ステップＳ２０でＮＯ）場合に、スナップショットを記録する（ステップＳ２４）。一方、スナップショット記録時期でなく（ステップＳ１６でＮＯ）、かつ、組織情報の変化の程度を表す値が閾値以下であれば（ステップＳ２０でＹＥＳ）、差分情報を記録する（ステップＳ２２）。言い換えると、図１０の例の手順の処理では、最新組織情報の更新の前後で組織情報の変化が大きいと考えられる場合にスナップショットを記録し、組織情報の変化が小さいと考えられる場合に差分情報を記録する。
【００７７】
また、図１０の例の手順の処理において、スナップショットを記録するか差分情報を記録するかを決定するための閾値（ステップＳ２０）が大きい程、差分情報を記録する場合が多くなり、この閾値が小さい程、スナップショットを記録する場合が多くなる。スナップショットよりも差分情報を多く記録した方が組織情報リポジトリ１２０において使用する記憶容量は少なくて済む。一方で、仮想組織バージョンに対応する組織情報を生成する後述の処理においては、差分情報よりもスナップショットを多く記録した方が処理速度は早くなる。したがって、この閾値は、組織情報リポジトリ１２０の記憶容量と後述の組織情報生成処理の計算量とを考慮しつつ、例えば組織の規模や管理方針などに応じて、システムの管理者により予め設定される。例えば、全ユーザに対する、変更のあったユーザの数の割合によって組織情報の変化の程度を表す場合、２．０％〜５．０％の範囲の値を閾値とする。また例えば、変更のあったユーザの数自体によって組織情報の変化の程度を表す場合、例えば、組織の規模に応じた人数を閾値として設定すればよい。
【００７８】
上述の例のように組織情報リポジトリ１２０に記録された組織情報を用いて、文書管理サーバ１０においてルールの解釈が行われる。
【００７９】
図１１は、ある文書について過去のある時期におけるルール内容を解釈する処理の手順の例を示すフローチャートである。例えば、クライアント端末３０及びネットワーク４０を介して、あるいは文書管理サーバ１０の図示しない入力装置を介して、ユーザ又は管理者の指示を受けた場合に、ルール履歴処理部１６０は図１１の例の手順の処理を開始する。
【００８０】
図１１を参照し、ルール履歴処理部１６０は、指定文書及び指定日時を取得する（ステップＳ３０）。ルール履歴処理部１６０は、例えば、クライアント端末３０又は文書管理サーバ１０の図示しない入力装置から、ユーザ又は管理者が指定した文書の文書ＩＤとユーザ又は管理者が指定した日時とを、それぞれ指定文書及び指定日時として取得する。
【００８１】
指定文書及び指定日時を取得すると、ルール履歴処理部１６０は、指定日時において指定文書に適用すべきルールを特定する（ステップＳ３２）。
【００８２】
図１２に、図１１のステップＳ３２の詳細手順の例を示す。図１１のステップＳ３２が開始されると、図１２の例の手順の処理が開始される。
【００８３】
図１２を参照し、ルール履歴処理部１６０は、文書リポジトリ１００の文書管理テーブル（図３参照）を参照し、指定日時における指定文書の文書バージョンを取得する（ステップＳ３２０）。例えば、指定文書の文書ＩＤに対応づけられた文書バージョンのうち、その作成日時が指定日時以前であって最も指定日時に近いバージョンを取得すればよい。
【００８４】
次に、ルール履歴処理部１６０は、ルールリポジトリ１１０の文書・ルール固定テーブル（図５参照）を参照し、指定文書の文書ＩＤとステップＳ３２０で取得した文書バージョンとの組が文書・ルール固定テーブルに登録されているか否かを判定する（ステップＳ３２２）。
【００８５】
指定文書の文書ＩＤと文書バージョンとの組が文書・ルール固定テーブル中に存在する場合（ステップＳ３２２でＹＥＳ）、当該文書ＩＤと文書バージョンとの組に対応づけて文書・ルール固定テーブルに登録されているルールＩＤとルールバージョンとの組によって特定されるルールを指定文書に適用するルールとする（ステップＳ３２４）。
【００８６】
指定文書の文書ＩＤと文書バージョンとの組が文書・ルール固定テーブル中に存在しない場合（ステップＳ３２２でＮＯ）、ルール履歴処理部１６０は、文書リポジトリ１００の文書管理テーブル（図３参照）において指定文書の文書ＩＤに対応づけられた文書種別を取得する（ステップＳ３２６）。そして、ルールリポジトリ１１０のルール管理テーブル（図４参照）を参照し、取得した文書種別及び指定日時の組合せに対応するルールＩＤ及びルールバージョンのルールを指定文書に適用するルールとする（ステップＳ３２８）。ステップＳ３２８では、例えば、ステップＳ３２６で取得した文書種別に対応づけられたルールＩＤのルールのうち、ルールバージョンの作成日時が指定日時以前であって指定日時に最も近いものを適用ルールとすればよい。
【００８７】
ステップＳ３２４又はステップＳ３２８で適用ルールを特定した後、図１２の例の手順の処理は終了し、処理は図１１のステップＳ３４に進む。
【００８８】
再び図１１を参照し、ステップＳ３４で、ルール履歴処理部１６０は、組織情報リポジトリ１２０を参照し、適用ルールのルールＩＤとルールバージョンとの組がルール・組織固定テーブル（図９参照）に登録されているか否かを判定する。
【００８９】
適用ルールがルール・組織固定テーブル中に存在すれば（ステップＳ３４でＹＥＳ）、ルール・組織固定テーブルにおいて適用ルールのルールＩＤとルールバージョンとの組に対応づけられた仮想組織バージョンを処理対象として取得する（ステップＳ３６）。
【００９０】
適用ルールがルール・組織固定テーブル中に存在しなければ（ステップＳ３４でＮＯ）、ルール履歴処理部１６０は、組織情報リポジトリ１２０中の仮想バージョン管理テーブル（図８参照）を参照し、指定日時における仮想組織バージョンを処理対象として取得する（ステップＳ３８）。ここでは、例えば、適用日付が指定日時以前であって指定日時に最も近い仮想組織バージョンを取得すればよい。
【００９１】
ステップＳ３６又はステップＳ３８で処理対象の仮想組織バージョンを取得すると、ルール履歴処理部１６０は、適用ルールの解釈に用いる組織情報を決定する（ステップＳ４０）。
【００９２】
図１３は、図１１のステップＳ４０の詳細手順の例を示すフローチャートである。図１１のステップＳ４０の処理が開始されると、図１３の例の手順の処理が開始される。
【００９３】
図１３の例の手順の処理が開始されると、ルール履歴処理部１６０は、まず、仮想バージョン管理テーブル（図８参照）を参照し、処理対象の仮想組織バージョンにスナップショットが存在するか否かを判定する（ステップＳ４００）。
【００９４】
スナップショットが存在する場合（ステップＳ４００でＹＥＳ）、処理対象の仮想組織バージョンに対応するスナップショットを取得して適用ルールの解釈に用いる組織情報とする（ステップＳ４１６）。当該スナップショットは、例えば、仮想組織バージョン管理テーブルにおいて処理対象の仮想組織バージョンに対応づけて登録されたデータ内容への参照情報を用いて、当該参照情報が表す組織情報リポジトリ１２０の格納位置から取得すればよい。
【００９５】
スナップショットが存在しない場合（ステップＳ４００でＮＯ）、ルール履歴処理部１６０は、処理対象の仮想組織バージョン以前で最新のスナップショットを取得する（ステップＳ４０２）。ステップＳ４０２では、例えば、仮想バージョン管理テーブルにおいて、処理対象の仮想組織バージョンの適用日付以前の適用日付を有し、かつ、スナップショットが存在する仮想組織バージョンのうち、適用日付が処理対象の仮想組織バージョンに最も近い仮想組織バージョンに対応するスナップショットを取得すればよい。
【００９６】
次に、ルール履歴処理部１６０は、ステップＳ４０２で取得したスナップショットの適用日付から処理対象の仮想組織バージョンの適用日付までの間に生成された差分情報を取得する（ステップＳ４０４）。ここでは、例えば、ステップＳ４０２で取得したスナップショットの適用日付から指定日時までの間の作成日時を有する仮想組織バージョンを仮想バージョン管理テーブルから抽出し、抽出した仮想組織バージョンのそれぞれに対応づけられた参照情報を用いて、各仮想組織バージョンの差分情報を組織情報リポジトリ１２０から取得すればよい。
【００９７】
そして、ルールリポジトリ１１０のルール管理テーブルにおいて適用ルールのルール内容を参照し、そのルール内容を定義する情報に含まれるユーザＩＤ、グループＩＤ及びロールＩＤを適用ルールの関与者として取得する（ステップＳ４０６）。
【００９８】
さらに、ステップＳ４０４で取得した差分情報に含まれる対象ＩＤの集合と、適用ルールの関与者の集合と、の積集合を求める（ステップＳ４０８）。
【００９９】
積集合が空でなければ（ステップＳ４１０でＮＯ）、積集合中の要素を対象ＩＤとして含む差分情報を、ステップＳ４０２で取得したスナップショットに対して適用する（ステップＳ４１２）。ここで、差分情報をスナップショットに対して「適用する」とは、差分情報が表す組織情報の変化に従って、スナップショットが表す組織情報を変更することを意味する。例えば、図７の例の差分情報の場合、差分情報に含まれる対象ＩＤ、操作、及び引数ＩＤの組み合わせに従って、スナップショットが表す組織情報を変更することを意味する。具体例として、差分情報が図７の例の表の仮想組織バージョン「20090214」の差分情報である場合、処理対象のスナップショットにおいて、グループＩＤ「GroupM」に関連づけられたユーザＩＤの中からユーザＩＤ「user25」を「削除」する（図７の表の４行目参照）。そして、グループＩＤ「GroupY」に関連づけられるユーザＩＤに「user25」を「追加」する（図７の表の５行目参照）。さらに、ロールＩＤ「Role3」に関連づけられるユーザＩＤに「user17」を「追加」する（図７の表の６行目参照）。ルール履歴処理部１６０は、ステップＳ４１２の処理の結果として得られる組織情報を、適用ルールの解釈に用いる組織情報とする。
【０１００】
積集合が空であれば（ステップＳ４１０でＹＥＳ）、ステップＳ４０２で取得したスナップショット（処理対象の仮想バージョン以前で最新のスナップショット）を適用ルールの解釈に用いる組織情報とする（ステップＳ４１４）。積集合が空であるということは、処理対象の仮想バージョン以前で最新のスナップショットが生成されてから処理対象の仮想バージョンまでの間に、適用ルールの関与者については組織情報が変更されなかったことを意味する。したがって、この場合は、差分情報が表す組織情報の変化は適用ルールの解釈に影響しない。このため、積集合が空である場合は差分情報をスナップショットに適用しない。
【０１０１】
ステップＳ４１２，Ｓ４１４，又はＳ４１６において、適用ルールの解釈に用いる組織情報を決定すると、図１３の例の手順は終了し、処理は、図１１のステップＳ４２へ進む。
【０１０２】
再び図１１を参照し、ステップＳ４２で、ルール履歴処理部１６０のルール解釈部１６２は、ステップＳ４０で決定した組織情報を用いて、適用ルールを解釈する。例えば、適用ルールにおいてグループＩＤ又はロールＩＤで表されている部分について、ステップＳ４０で決定した組織情報を参照し、当該グループＩＤに所属するユーザのユーザＩＤ又は当該ロールＩＤを有するユーザのユーザＩＤを特定する。
【０１０３】
そして、ルール履歴処理部１６０は、ステップＳ４２における解釈の結果を出力する（ステップＳ４４）。ステップＳ４４では、例えば、図１１の例の手順の処理の開始を指示したユーザのクライアント端末３０又は文書管理サーバ１０の図示しない表示装置に解釈の結果を表示させる。例えば、指定日時において指定文書に適用されるルールのルール内容と共に、そのルール内容に含まれるグループＩＤ又はロールＩＤに対応する各ユーザのユーザＩＤを表示させる。例えばルール内容に含まれるアクセス権を表示させる場合、許可される操作の種類ごとに、当該操作の実行を許可されたユーザのユーザＩＤを一覧表示させてもよい。また、以上で例示した態様の出力に代えて、あるいは、例示した態様の出力とともに、解釈の結果をルールリポジトリ１１０に記録してもよい。
【０１０４】
ステップＳ４４の後、図１１の例の手順の処理は終了する。
【０１０５】
以上、図１１から図１３を参照して説明した例の処理により、指定日時における指定文書の運用のルールの具体的な内容を表す情報が得られる。つまり、図１１のステップＳ４２における解釈の結果により、指定文書の運用におけるグループ又はロールの関与についての情報だけでなく、具体的にどのユーザＩＤのユーザが指定文書の運用にどのように関与していたかを表す情報が得られる。例えば、適用ルールのルール内容において、あるグループ又はロールのユーザに対して「閲覧」操作及び「編集」操作を行う権限を与える旨のアクセス権が定義されていた場合、図１１のステップＳ４２の結果、どのユーザＩＤのユーザが指定文書に対して「閲覧」操作及び「編集」操作を行うことができたかを表す情報が得られる。
【０１０６】
なお、図１１から図１３を参照して説明した例の処理では、指定日時として過去の日時を受け付けるが、ルール履歴処理部１６０は、現在日時における指定文書への適用ルールを解釈することもある。例えば、文書処理部１３０がクライアント端末３０から文書のアクセス要求を受けた場合、要求対象の文書を指定文書とし、現在日時を指定日時として適用ルールの解釈をルール履歴処理部１６０に依頼する。この例の場合、ルール履歴処理部１６０は、図１１の例の手順において、ステップＳ３４でＮＯに進んだ場合に、ステップＳ３８の処理を行わずに、組織情報リポジトリ１２０中の最新組織情報を取得して適用ルールの解釈に用いる組織情報とし、ステップＳ４２以下の処理を実行する。そして、ステップＳ４４では、適用ルールの解釈の結果を文書処理部１３０に対して出力する。この解釈の結果を用いて、文書処理部１３０のアクセス管理部１３２は、文書に対するアクセス制限を行う。
【０１０７】
以下、図１４から図１６を参照し、１つのルールＩＤのルール内容の変更の履歴を求める処理の手順の例を説明する。ルール内容は、例えば、その一部が管理者などにより書き換えられて新たなルールバージョンとしてルールリポジトリ１１０のルール管理テーブルに登録されることで、変更され得る。あるいは、例えば、ルール内容を定義する情報自体は変更されなくても、当該ルールの関与者について組織情報の変更があった場合、ルール内容の定義に含まれるグループＩＤ又はロールＩＤに対応するユーザＩＤは変更され得る。以下で説明する図１４から図１６の例の手順の処理では、あるルールについて、新しいバージョンの登録によるルール内容の変更及び組織情報の変更によるルール内容の変更の履歴が求められる。
【０１０８】
ルール履歴処理部１６０は、例えば、クライアント端末３０及びネットワーク４０を介して、あるいは文書管理サーバ１０の図示しない入力装置を介して、ユーザ又は管理者から、ルールＩＤを指定して当該ルールＩＤのルールの履歴を求めるよう指示された場合に、図１４の例の手順の処理を開始する。あるいは、例えば、文書を指定して当該文書に適用されるルールの履歴を求める指示を文書管理サーバ１０が受け付けた場合に、図１４の例の手順の処理を開始することもある。
【０１０９】
まず図１４を参照し、ルール履歴処理部１６０は、履歴を求める対象のルールのルールＩＤである指定ルールＩＤを取得する（ステップＳ５０）。ユーザ又は管理者がルールＩＤを指定した場合、そのルールＩＤを指定ルールＩＤとして取得すればよい。文書が指定された場合、指定された文書の文書種別を文書リポジトリ１００の文書管理テーブル（図３参照）から取得し、取得した文書種別に対応づけられたルールＩＤをルールリポジトリ１１０のルール管理テーブル（図４参照）から取得して指定ルールＩＤとすればよい。
【０１１０】
次に、ルール履歴処理部１６０は、ルールリポジトリ１１０のルール管理テーブルを参照して指定ルールＩＤのルールバージョンを１つ取得し、当該ルールバージョンと指定ルールＩＤとの組により特定されるルールを注目ルールとする（ステップＳ５２）。本例では、ステップＳ５２において、指定ルールＩＤのルールバージョンが複数ある場合、未処理のルールバージョンのうち作成日時が最も古いものを１つ選択して取得するものとする。
【０１１１】
注目ルールが得られると、ルール履歴処理部１６０は、注目ルールが組織情報リポジトリ１２０中のルール・組織固定テーブルに登録されているか否かを判定する（ステップＳ５４）。ここでは、注目ルールのルールＩＤとルールバージョンとの組がルール・組織固定テーブルに登録されているか否かを確認すればよい。
【０１１２】
注目ルールがルール・組織固定テーブルに存在する場合（ステップＳ５４でＹＥＳ）、ルール履歴処理部１６０は、ルール・組織固定テーブルにおいて注目ルールのルールＩＤとルールバージョンとの組に対応づけられた仮想組織バージョンを注目組織バージョンとして取得する（ステップＳ５６）。
【０１１３】
そして、ルール履歴処理部１６０は、注目組織バージョンの時期における組織情報を生成する（ステップＳ５８）。図１５に、図１４のステップＳ５８の詳細手順の例を示す。図１４のステップＳ５８の処理が開始されると、図１５の例の手順の処理が開始される。
【０１１４】
図１５を参照し、ルール履歴処理部１６０は、組織情報リポジトリ１２０中の仮想バージョン管理テーブルを参照して、注目組織バージョンに対応するスナップショットの有無を判定する（ステップＳ５８０）。
【０１１５】
スナップショットがあれば（ステップＳ５８０でＹＥＳ）、注目組織バージョンのスナップショットを組織情報リポジトリ１２０から取得する（ステップＳ５９６）。このスナップショットが注目組織バージョンの時期における組織情報である。ルール履歴処理部１６０は、注目組織バージョンの時期における組織情報を文書管理サーバ１０の一時的な記憶手段（図示しない。以下、「一時記憶」と呼ぶ。）に記録しておく。一時記憶には、図１４〜図１６の例の手順の処理の過程で生成される組織情報と当該組織情報に対応する仮想組織バージョンとが対応づけられて記憶される。一時記憶に記憶された組織情報は、その組織情報の記録以降に再び組織情報の生成を行う場合に用いられることがある。また、図１４〜図１６の例の手順の処理において、組織情報の生成が行われる度に、一時記憶中の組織情報及び対応する仮想組織バージョンは上書き保存される。なお、一時記憶は、図１４の例の手順の処理の開始時にルール履歴処理部１６０によって初期化されて空になる。
【０１１６】
スナップショットがなければ（ステップＳ５８０でＮＯ）、ルール履歴処理部１６０は、一時記憶中の組織情報に対応する仮想組織バージョンが注目組織バージョンより古いか否かを判定する（ステップＳ５８２）。
【０１１７】
一時記憶中の組織情報に対応する仮想組織バージョンが注目組織バージョンよりも古い場合（ステップＳ５８２でＹＥＳ）、一時記憶中の組織情報に対応する仮想組織バージョンと注目組織バージョンとの間にスナップショットが存在するか否かを判定する（ステップＳ５８４）。ステップＳ５８４の判定は、例えば、仮想バージョン管理テーブルを参照し、一時記憶中の組織情報に対応する仮想組織バージョンの適用日付から注目組織バージョンの適用日付までの間の適用日付を有する仮想組織バージョンのうち、スナップショットを有するものがあるか否かを確認することで行えばよい。
【０１１８】
一時記憶中の組織情報に対応する仮想組織バージョンと注目組織バージョンとの間にスナップショットが存在する場合（ステップＳ５８４でＹＥＳ）、又は、一時記憶中の組織情報に対応する仮想組織バージョンが注目組織バージョンよりも新しい場合（ステップＳ５８２でＮＯ）、ルール履歴処理部１６０は、注目組織バージョン以前で最新のスナップショットを組織情報リポジトリ１２０から取得する（ステップＳ５８６）。そして、取得したスナップショットから注目組織バージョンまでの差分情報を組織情報リポジトリ１２０から更に取得し（ステップＳ５８８）、この差分情報をステップＳ５８６で取得したスナップショットに適用する（ステップＳ５９０）。ルール履歴処理部１６０は、ステップＳ５９０の結果の組織情報を注目組織バージョンの時期における組織情報として一時記憶に記憶させる。
【０１１９】
一時記憶中の組織情報に対応する仮想組織バージョンと注目組織バージョンとの間にスナップショットが存在しない場合（ステップＳ５８４でＮＯ）、ルール履歴処理部１６０は、一時記憶中の組織情報に対応する仮想組織バージョンと注目組織バージョンとの間の仮想組織バージョンに対応づけられた差分情報を組織情報リポジトリ１２０から取得する（ステップＳ５９２）。そして、取得した差分情報を一時記憶中の組織情報に適用し（ステップＳ５９４）、この適用の結果の組織情報を注目組織バージョンの時期における組織情報として一時記憶に記憶させる。ステップＳ５８４でＮＯ判定される場合、一時記憶中の組織情報は、注目組織バージョン以前で最新のスナップショットよりも更に新しい組織情報の全体を表すものである。このため、一時記憶中の組織情報に対応する仮想組織バージョンから注目組織バージョンまでの仮想組織バージョンに対応づけられた差分情報を一時記憶中の組織情報に適用することで、注目組織バージョンの時期における組織情報が得られる。
【０１２０】
ステップＳ５９０，Ｓ５９４，又はＳ５９６において注目組織バージョンの時期における組織情報が得られると、図１５の例の手順の処理は終了し、処理は図１４のステップＳ６０へ進む。
【０１２１】
再び図１４を参照し、ステップＳ６０で、ルール履歴処理部１６０のルール解釈部１６２は、ステップＳ５８の処理で得られた組織情報を用いて注目ルールを解釈する。そして、解釈した結果のルール内容をルールリポジトリ１１０に記録する（ステップＳ６２）。ステップＳ６２では、ルール履歴処理部１６０は、記録するルール内容の識別情報を生成し、生成した識別情報とステップＳ６０の解釈の結果のルール内容とを関連づけて記録する。ルール内容の識別情報は、例えば、現在の処理対象のルールバージョンと注目組織バージョンとを含む文字列であってよい。以下、組織情報を用いて解釈した結果のルール内容に関連づけられる識別情報を「仮想ルールバージョン」と呼ぶ。ここで「仮想」の語を用いるのは、ユーザ又は管理者がルール内容を表す情報を書き換えて設定した「ルールバージョン」とは異なる種類の「バージョン」を「仮想ルールバージョン」が表すからである。
【０１２２】
ステップＳ６２の後、指定ルールＩＤのルールバージョンのうち未処理のものがあれば（ステップＳ９２でＹＥＳ）、ステップＳ５２以下の処理を繰り返し、未処理のものがなければ（ステップＳ９２でＮＯ）、図１４の例の手順の処理を終了する。
【０１２３】
以上、注目ルールがルール・組織固定テーブルに存在する場合（ステップＳ５４でＹＥＳ）の処理の例（ステップＳ５６〜Ｓ６２）を説明した。以下、注目ルールがルール・組織固定テーブルに存在しない場合（ステップＳ５４でＮＯ）の処理の例を説明する。
【０１２４】
注目ルールがルール・組織固定テーブルに存在しない場合、ルール履歴処理部１６０は、まず、注目ルールの有効期間を取得する（ステップＳ６４）。注目ルールの有効期間は、例えば、注目ルールのルールバージョンの作成日時から、注目ルールのルールバージョンの作成日時以降で当該作成日時に最も近い作成日時を有するルールバージョンの作成日時までの期間として求めればよい。
【０１２５】
次に、ルール履歴処理部１６０は、注目ルールの有効期間の始期における仮想組織バージョンを注目組織バージョンとする（ステップＳ６６）。組織情報リポジトリ１２０中の仮想バージョン管理テーブルを参照し、注目ルールの有効期間の始期以前で最も近い適用日付を有する仮想組織バージョンを取得して注目組織バージョンとすればよい。また、ここで、注目ルールの有効期間の始期は、注目ルールのルールバージョンの作成日時である。
【０１２６】
注目組織バージョンを決定すると、ルール履歴処理部１６０は、上記で説明したステップＳ５８，Ｓ６０，Ｓ６２の各処理と同様に、注目組織バージョンの時期における組織情報の生成（ステップＳ６８）、生成した組織情報を用いた注目ルールの解釈（ステップＳ７０）、及び解釈の結果のルール内容の記録（ステップＳ７２）の各処理を行う。その後、処理は、図１６のステップＳ７４に進む。
【０１２７】
図１６を参照し、ルール履歴処理部１６０は、注目ルールの有効期間中に未処理の仮想組織バージョンが存在するか否かを判定する（ステップＳ７４）。この判定は、例えば、組織情報リポジトリ１２０中の仮想バージョン管理テーブルを参照し、注目ルールの有効期間中の適用日付を有する仮想組織バージョンのうち、対応する組織情報の生成を行っていないものが存在するか否かを確認することで行えばよい。
【０１２８】
未処理の仮想組織バージョンがなければ（ステップＳ７４でＮＯ）、図１４のステップＳ９２（未処理のルールバージョンの有無の判定）に進む。
【０１２９】
未処理の仮想組織バージョンがあれば（ステップＳ７４でＹＥＳ）、未処理の仮想組織バージョンのうちの１つを注目組織バージョンとする（ステップＳ７６）。本例では、未処理の仮想組織バージョンが複数存在する場合、作成日時が最も古いものを１つ選択して注目組織バージョンとする。
【０１３０】
そして、注目組織バージョンにスナップショットがあれば（ステップＳ７８でＹＥＳ）、当該スナップショットを注目組織バージョンに対応する組織情報とし（ステップＳ８０）、一時記憶に記憶させる。
【０１３１】
注目組織バージョンにスナップショットがなければ（ステップＳ７８でＮＯ）、注目組織バージョンに対応づけられた差分情報を一時記憶中の組織情報に適用する（ステップＳ８６）。
【０１３２】
次に、ルール履歴処理部１６０は、注目組織バージョンの差分情報の対象ＩＤと注目ルールの関与者との積集合を求める（ステップＳ８８）。積集合が空であれば（ステップＳ９０でＹＥＳ）、ステップＳ７４以下の処理を繰り返し、積集合が空でなければ（ステップＳ９０でＮＯ）、処理はステップＳ８２に進む。
【０１３３】
ステップＳ８０の後あるいはステップＳ９０でＮＯに進むと、ルール履歴処理部１６０のルール解釈部１６２は、一時記憶中の組織情報を用いて注目ルールの内容を解釈する（ステップＳ８２）。そして、解釈の結果のルール内容に対して仮想ルールバージョンを付与し、当該仮想ルールバージョンと解釈結果のルール内容とを関連づけてルールリポジトリ１１０に記録する（ステップＳ８４）。ステップＳ８４の後、ステップＳ７４以下の処理を繰り返す。
【０１３４】
図１６の例のステップＳ７４〜Ｓ９０を含むループ処理において、注目ルールの有効期間中で未処理の仮想組織バージョンのうち古いものから順に注目組織バージョンとする（ステップＳ７６）。よって、当該ループ処理における注目組織バージョンは、前回の当該ループ処理実行時の注目組織バージョンの直後の仮想組織バージョンとなる。また、当該ループ処理では、注目組織バージョンのスナップショットの有無に関わらず、当該注目組織バージョンに対応する組織情報が一時記憶に記録される（ステップＳ７８，Ｓ８０，Ｓ８６）。なお、当該ループ処理が１つの注目ルールに対して初めて実行されるとき、一時記憶には、当該注目ルールの始期の組織仮想バージョンの時期における組織情報が記憶されている（図１４のステップＳ６４〜Ｓ７２）。以上より、当該ループ処理の実行時には、一時記憶中の組織情報は、常に、注目組織バージョンの直前の仮想組織バージョンに対応する組織情報である。したがって、注目組織バージョンに差分情報が対応づけられている場合（ステップＳ７８でＮＯ）、当該差分情報を一時記憶中の組織情報に適用することで注目組織バージョンの時期における組織情報が生成される（ステップＳ８６）。
【０１３５】
また、図１６の例の手順の処理では、注目組織バージョンの差分情報と注目ルールの関与者との積集合が空であれば（ステップＳ９０でＹＥＳ）、注目組織バージョンに対応する組織情報を用いた注目ルールの解釈（ステップＳ８２）及び解釈の結果のルール内容の記録（ステップＳ８４）は実行されない。上述の積集合が空である場合、注目組織バージョンの差分情報が表す組織情報の変化に伴ってルール内容が変化する（例えば、グループ又はロールに対応するユーザが変化する）ことがないからである。
【０１３６】
図１４〜図１６の例の手順の処理の結果、指定ルールＩＤのルール内容の変更の履歴がルールリポジトリ１１０に記録される。図１７に、図１４〜図１６の例の手順の処理の結果記録されるルール内容の変更の履歴の例を示す。図１７の例の表は、ルール内容の変更の履歴は、仮想ルールバージョンとルール内容の解釈の結果とを対応づけて表す。図１７では、ルール内容の下位項目のうちアクセス権の内容の解釈結果のみを図示し、他の下位項目の内容の解釈結果の図示は省略する。図１７の例の表の１行の情報は、注目組織バージョンに対応する組織情報を用いてルール内容を解釈した結果をルールリポジトリ１１０に記録する処理（図１４のステップＳ６２，Ｓ７２，図１６のステップＳ８４）において記録される情報である。図１７の例の表の仮想ルールバージョン「Rule5_1.0_20090201」の行を参照すると、アクセス権の内容の解釈結果において、「閲覧」操作の実行を許可された主体を表すグループＩＤ「GroupF」のグループに所属するユーザのユーザＩＤ｛user102, user105, user108, user109｝が含まれている。さらに、「閲覧」操作及び「編集」操作の実行を許可された主体を表すグループＩＤ「GroupG」のグループに所属するユーザのユーザＩＤ｛user200, user212, user214, user215, user216｝も解釈結果に含まれている。
【０１３７】
なお、図１７に例示する各仮想ルールバージョンは、そのルール内容の解釈に用いられたルールＩＤ、ルールバージョン、及び仮想組織バージョンを表す文字列を含む。例えば、仮想ルールバージョン「Rule5_1.0_20090201」は、ルールＩＤが「Rule5」であり、ルールバージョンが「1.0」であるルールを、仮想組織バージョン「20090201」の時期における組織情報を用いて解釈した結果のルール内容に付与されている。また、仮想ルールバージョン「Rule5_1.0_20090214」は、ルールＩＤ「Rule5」とルールバージョン「1.0」との組に対応する前述の例と同様のルールを、異なる仮想組織バージョン「20090214」の時期における組織情報を用いて解釈した結果のルール内容に付与されている。
【０１３８】
ルール履歴処理部１６０は、図１４〜図１６の例の手順の処理の終了後、ルールリポジトリ１１０に記録したルール内容の変更の履歴をユーザ又は管理者の指示に従って出力してもよい。例えば、図１４〜図１６の処理の実行を指示したユーザのクライアント端末３０にルール内容の変更の履歴を送信してもよいし、ユーザ又は管理者により指定された宛先に電子メールで送信してもよい。また例えば、文書管理サーバ１０の図示しない表示装置に図１７の例のような表を表示させてもよい。あるいは、文書管理サーバ１０に接続された印刷装置で印刷してもよい。
【０１３９】
上述の実施形態の例では、組織情報処理部１７０が組織情報リポジトリ１２０の最新組織情報を更新するときに、その更新における組織情報の変化の程度を表す値が予め設定された閾値以下であるか否かによって、差分情報を記録するかスナップショットを記録するかが決定される（図１０のステップＳ２０，Ｓ２２，Ｓ２４参照）。他の実施形態の例では、判定の閾値を２つ設定しておき、変化の程度を表す値と２つの閾値（第１閾値＜第２閾値とする）との関係に応じて、３種類の処理を実行してもよい。例えば、変化の程度を表す値が第１閾値以下である場合に差分情報を記録し、第２閾値を超えている場合にスナップショットを記録する。変化の程度を表す値が第１閾値を超えていて第２閾値以下である場合は、その旨をシステムの管理者に対して（例えば電子メールなどによって）通知し、差分情報及びスナップショットのいずれを記録するか、管理者の指示を受け付け、管理者の指示に従って差分情報又はスナップショットを記録する。この例の場合、管理者に対する通知を行った後、予め設定された期間内に管理者からの指示がなければ、管理者の指示を待たずにスナップショット又は差分情報を記録するように設定しておいてもよい。
【０１４０】
また、上述の実施形態の例の処理では、仮想バージョン管理テーブルを参照した組織情報の生成はルールとの関係で行われる（図１１〜図１３，図１４〜図１６）。ルールと関係なく仮想バージョン管理テーブルを参照した組織情報の生成を行ってもよい。例えば、過去の日時を指定された場合に、以下の手順で組織情報を生成する。まず、指定された日時における仮想組織バージョンを仮想バージョン管理テーブルから取得する。そして、図１３の例の手順においてルールに関する処理（ステップＳ４０６，Ｓ４０８，Ｓ４１０，Ｓ４１２，Ｓ４１４）を省略し、ステップＳ４０４の後、ステップＳ４０４で取得した差分情報をステップＳ４０２で取得したスナップショットに適用する処理を行うようにすると、仮想組織バージョンに対応する組織情報が生成される。
【０１４１】
また、上述の実施形態の例において、人事情報管理サーバ２０のデータベースから削除されたユーザ（つまり、組織の構成員でなくなったユーザ）に関する情報の少なくとも一部を組織情報の履歴（それぞれ仮想バージョンを有する差分情報及びスナップショット）から削除してもよい。組織の構成員でなくなったユーザに関する情報には、保持しておく必要のない情報も含まれることがあるからである。例えば、文書管理サーバ１０の組織情報処理部１７０は、人事情報管理サーバ２０のデータベースの内容の変更を調べるとき（図１０のステップＳ１０，Ｓ１２）に、人事情報管理サーバ２０のデータベースから削除されたユーザを特定し、そのユーザに関する情報の少なくとも一部を、最新組織情報、スナップショット、及び差分情報から削除する。削除する情報としては、例えば、当該ユーザの連絡先など、ルールの履歴の生成に必要ない情報を選択する。ユーザＩＤ、氏名、所属グループ、及びロールなど、ルールの履歴の生成に必要な情報は、削除せずに残しておいてよい。組織の構成員でなくなったユーザに関する情報のうち、どの情報を削除するか（又は、どの情報を残すか）について、管理者などによる設定を受け付けるようにしてもよい。なお、人事情報管理サーバ２０から削除されたユーザを特定したあと、予め設定された期間の経過を待ってから当該ユーザに関する情報の削除を行ってもよい。
【０１４２】
なお、以上では、組織情報を管理対象のデータとする場合の実施形態の例を説明した。しかしながら、管理対象のデータの更新の前後における当該データの変化の程度に応じて差分情報又はスナップショットを記録する処理（図１０参照）、及び仮想バージョンに対応するデータを生成する処理（図１３，図１５等参照）は、組織情報の他のデータを記憶したデータベースに対しても同様に適用してよい。
【０１４３】
以上で説明した文書管理サーバ１０は、典型的には、汎用のコンピュータにて上述の文書管理サーバ１０の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、ハードウエアとして、例えば図１８に示すように、ＣＰＵ（中央演算装置）８０、メモリ（一次記憶）８２、各種Ｉ／Ｏ（入出力）インタフェース８４等がバス８６を介して接続された回路構成を有する。また、そのバス８６に対し、例えばＩ／Ｏインタフェース８４経由で、ハードディスクドライブ（ＨＤＤ）８８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ９０が接続される。このようなドライブ８８又は９０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ＨＤＤ８８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。
【０１４４】
なお、以上では、文書管理サーバ１０の機能を１つのコンピュータで実現する場合の例を説明したが、上述の文書管理サーバ１０の機能を複数のコンピュータに分散して実現してもよい。
【符号の説明】
【０１４５】
１０  文書管理サーバ、２０  人事情報管理サーバ、３０  クライアント端末、４０  ネットワーク、８０  ＣＰＵ、８２  メモリ、８４  Ｉ／Ｏインタフェース、８６  バス、８８  ＨＤＤ、９０  ディスクドライブ、１００  文書リポジトリ、１１０  ルールリポジトリ、１２０  組織情報リポジトリ、１３０  文書処理部、１３２  アクセス管理部、１４０  ルール登録・編集部、１６０  ルール履歴処理部、１６２  ルール解釈部、１７０  組織情報処理部。
【図１】
2011002985.tif 000003
【図２】
2011002985.tif 000004
【図３】
2011002985.tif 000005
【図４】
2011002985.tif 000006
【図５】
2011002985.tif 000007
【図６】
2011002985.tif 000008
【図７】
2011002985.tif 000009
【図８】
2011002985.tif 000010
【図９】
2011002985.tif 000011
【図１０】
2011002985.tif 000012
【図１１】
2011002985.tif 000013
【図１２】
2011002985.tif 000014
【図１３】
2011002985.tif 000015
【図１４】
2011002985.tif 000016
【図１５】
2011002985.tif 000017
【図１６】
2011002985.tif 000018
【図１７】
2011002985.tif 000019
【図１８】
2011002985.tif 000020