(57)【特許請求の範囲】
【請求項１】
文書と当該文書の種類とを指定する登録要求を受け付けた場合に、当該指定された文書の種類に対応して予め設定された１以上の項目の情報を当該指定された文書から抽出し、抽出した各項目の情報と前記登録要求が行なわれた時間を表す時間情報とを当該指定された文書の文書識別情報に関連付けて記憶手段に登録する第一登録手段と、
複数の前記文書識別情報を指定する出力要求を受け付けた場合に、出力文書の書式を予め定めた書式情報であって前記項目のうちの１以上を当該出力文書に含めることを指定する書式情報を参照して、前記書式情報で指定された各項目について、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち前記時間情報が表す時間が最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む出力文書を生成して出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第一登録手段は、前記指定された文書の種類をさらに前記文書識別情報に関連付けて前記記憶手段に登録し、
前記書式情報は、さらに、前記出力文書に含めることを指定する各項目について、どの種類の文書から抽出された情報を前記出力文書に含めるかを指定し、
前記出力手段は、前記書式情報で指定された各項目について、前記出力要求に含まれる文書識別情報であって前記書式情報で指定された文書の種類に対応する文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む前記出力文書を生成して出力する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記出力文書に含まれる項目の情報に対する変更指示を受け付けた場合に、前記変更指示に従って前記出力文書中の前記項目の情報を変更する変更手段と、
前記変更手段による変更対象の項目の情報の抽出元である文書の文書識別情報に関連付けて、当該変更対象の項目の変更後の情報と前記変更指示が行なわれた時間を表す情報とを登録する第二登録手段と、
をさらに備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記出力手段は、さらに、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された項目の情報のうち、前記書式情報で指定された項目の情報を用いて、予め設定された規則に従って求められる情報を含む前記出力文書を生成して出力する、
ことを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記出力手段は、さらに、前記記憶手段において、前記出力文書の生成のために参照したことがある情報を前記出力文書の生成のために参照したことのない情報と区別可能にする情報を登録する、
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
文書と当該文書の種類とを指定する登録要求を受け付けた場合に、当該指定された文書の種類に対応して予め設定された１以上の項目の情報を当該指定された文書から抽出し、抽出した各項目の情報と前記登録要求が行なわれた時間を表す時間情報とを当該指定された文書の文書識別情報に関連付けて記憶手段に登録する登録ステップと、
複数の前記文書識別情報を指定する出力要求を受け付けた場合に、出力文書の書式を予め定めた書式情報であって前記項目のうちの１以上を当該出力文書に含めることを指定する書式情報を参照して、前記書式情報で指定された各項目について、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち前記時間情報が表す時間が最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む出力文書を生成して出力する出力ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、固定文および当該固定文に対応する識別子と、複数の可変文と、当該各可変文の中から所定の識別子に対応する可変文を生成するための規則とを記憶する記憶手段を参照して、固定文に対応する識別子を検索すると共に、上述の規則に従って当該検索された識別子に対応する可変文を生成し、生成した可変文と上述の固定文とを組み合わせて文書を作成する技術が開示されている。
【０００３】
特許文献２には、文書の入力テンプレート中に記述されたデータベース問い合わせ命令によって指定されたキーでデータベースを検索し、文書の出力テンプレート中の指定された埋め込み位置に、上述の検索結果のデータを埋め込むことで文書を作成する技術が開示されている。
【０００４】
特許文献３には、ある文章の一部を他の文章に取り込んだ後に、当該ある文章が編集された場合に、その編集結果を当該他の文章に反映させる技術が開示されている。特許文献３に記載の技術では、ある文章（Ａ）の文書データを他の文章（Ｂ）に取込む際に、当該文書データの位置情報を文書データに付加した上で文章（Ｂ）に取込ませておき、後に、文章（Ａ）が編集されたときに、その編集における変更箇所と上述の位置情報とを比較して、文書（Ａ）から文章（Ｂ）に取込まれた文書データが変更されている場合は、自動的に文章（Ｂ）中の文書データも変更する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−３１９７６３号公報
【特許文献２】特開平１０−１７１７８４号公報
【特許文献３】特開平６−２８３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、複数の文書中の異なる情報を集めて１つの出力文書を生成することがある。このような出力文書の生成の元となる文書の内容が更新された場合、更新後の文書に含まれる情報を用いて出力文書を生成することが望ましい。
【０００７】
本発明の目的は、複数の文書それぞれの最新版から抽出された情報を含む出力文書を生成する情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本願請求項１に係る発明は、文書と当該文書の種類とを指定する登録要求を受け付けた場合に、当該指定された文書の種類に対応して予め設定された１以上の項目の情報を当該指定された文書から抽出し、抽出した各項目の情報と前記登録要求が行なわれた時間を表す時間情報とを当該指定された文書の文書識別情報に関連付けて記憶手段に登録する第一登録手段と、複数の前記文書識別情報を指定する出力要求を受け付けた場合に、出力文書の書式を予め定めた書式情報であって前記項目のうちの１以上を当該出力文書に含めることを指定する書式情報を参照して、前記書式情報で指定された各項目について、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち前記時間情報が表す時間が最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む出力文書を生成して出力する出力手段と、を備えることを特徴とする情報処理装置である。
【０００９】
本願請求項２に係る発明は、請求項１に係る発明において、前記第一登録手段は、前記指定された文書の種類をさらに前記文書識別情報に関連付けて前記記憶手段に登録し、前記書式情報は、さらに、前記出力文書に含めることを指定する各項目について、どの種類の文書から抽出された情報を前記出力文書に含めるかを指定し、前記出力手段は、前記書式情報で指定された各項目について、前記出力要求に含まれる文書識別情報であって前記書式情報で指定された文書の種類に対応する文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む前記出力文書を生成して出力する。
【００１０】
本願請求項３に係る発明は、請求項１または２に係る発明において、前記出力文書に含まれる項目の情報に対する変更指示を受け付けた場合に、前記変更指示に従って前記出力文書中の前記項目の情報を変更する変更手段と、前記変更手段による変更対象の項目の情報の抽出元である文書の文書識別情報に関連付けて、当該変更対象の項目の変更後の情報と前記変更指示が行なわれた時間を表す情報とを登録する第二登録手段と、をさらに備える。
【００１１】
本願請求項４に係る発明は、請求項１から３のいずれか１項に係る発明において、前記出力手段は、さらに、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された項目の情報のうち、前記書式情報で指定された項目の情報を用いて、予め設定された規則に従って求められる情報を含む前記出力文書を生成して出力する。
【００１２】
本願請求項５に係る発明は、請求項１から４のいずれか１項に係る発明において、前記出力手段は、さらに、前記記憶手段において、前記出力文書の生成のために参照したことがある情報を前記出力文書の生成のために参照したことのない情報と区別可能にする情報を登録する。
【００１３】
本願請求項６に係る発明は、文書と当該文書の種類とを指定する登録要求を受け付けた場合に、当該指定された文書の種類に対応して予め設定された１以上の項目の情報を当該指定された文書から抽出し、抽出した各項目の情報と前記登録要求が行なわれた時間を表す時間情報とを当該指定された文書の文書識別情報に関連付けて記憶手段に登録する登録ステップと、複数の前記文書識別情報を指定する出力要求を受け付けた場合に、出力文書の書式を予め定めた書式情報であって前記項目のうちの１以上を当該出力文書に含めることを指定する書式情報を参照して、前記書式情報で指定された各項目について、前記出力要求に含まれる複数の前記文書識別情報に関連付けて前記記憶手段に登録された当該項目の情報のうち前記時間情報が表す時間が最新の情報を前記記憶手段から読み出し、読み出した各項目の情報を含む出力文書を生成して出力する出力ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１４】
本願請求項１または６に係る発明によると、複数の文書それぞれの最新版から抽出された情報を含む出力文書を生成できる。
【００１５】
本願請求項２に係る発明によると、各項目について指定された種類の文書から抽出された情報のうち最新のものを含む出力文書を生成できる。
【００１６】
本願請求項３に係る発明によると、出力文書に含まれる項目の情報に対して行われた変更の内容を、当該項目の情報の抽出元の文書に関連付けて記録できる。
【００１７】
本願請求項４に係る発明によると、文書から抽出された情報を用いて求められる情報を含む出力文書を生成できる。
【００１８】
本願請求項５に係る発明によると、文書から抽出されて記憶手段に登録された情報のうち、出力文書の生成のために参照されたことがある情報と参照されたことのない情報とを区別できる。
【図面の簡単な説明】
【００１９】
【図１】サーバの内部構成の概略の例およびシステムの概略構成の例を示すブロック図である。
【図２】継承元文書の例を模式的に示す図である。
【図３】図２の例の継承元文書の書式に対応する抽出スキーマの例を示す図である。
【図４】継承元文書の他の例を模式的に示す図である。
【図５】図４の例の継承元文書の書式に対応する抽出スキーマの例を示す図である。
【図６】文書情報ＤＢのデータ内容の例を示す図である。
【図７】出力文書の書式の例を模式的に示す図である。
【図８】図７の例の出力文書の書式に対応する挿入スキーマの例を示す図である。
【図９】出力文書の例を模式的に示す図である。
【図１０】文書情報の抽出および登録の際にサーバが行う処理の手順の例を示すフローチャートである。
【図１１】出力文書の生成の際にサーバが行う処理の手順の例を示すフローチャートである。
【図１２】図２の例の継承元文書の書式に対応する抽出スキーマの他の例を示す図である。
【図１３】図４の例の継承元文書の書式に対応する抽出スキーマの他の例を示す図である。
【図１４】文書情報ＤＢのデータ内容の他の例を示す図である。
【図１５】図７の例の出力文書の書式に対応する挿入スキーマの他の例を示す図である。
【図１６】出力文書の他の例を模式的に示す図である。
【図１７】サーバの内部構成の概略の他の例を示す図である。
【図１８】出力文書の更新の際にサーバが行う処理の手順の例を示すフローチャートである。
【図１９】出力文書の更新を受け付ける場合に表示される表示画面の例を示す図である。
【図２０】更新後の出力文書の例を模式的に示す図である。
【図２１】文書情報ＤＢのデータ内容のさらに他の例を示す図である。
【図２２】継承元文書のさらに他の例を模式的に示す図である。
【図２３】図２２に示す継承元文書の書式に対応する抽出スキーマの例を示す図である。
【図２４】文書情報ＤＢのデータ内容のさらに他の例を示す図である。
【図２５】出力文書の書式の他の例を模式的に示す図である。
【図２６】図２５の例の出力文書の書式に対応する挿入スキーマの例を示す図である。
【図２７】出力文書のさらに他の例を模式的に示す図である。
【図２８】図２２に示す継承元文書を更新した結果の文書の例を模式的に示す図である。
【図２９】文書情報ＤＢのデータ内容のさらに他の例を示す図である。
【図３０】出力文書のさらに他の例を模式的に示す図である。
【図３１】コンピュータのハードウエア構成の例を示す図である。
【発明を実施するための形態】
【００２０】
＜第１実施形態＞
本発明の第１実施形態の例の情報処理装置は、ユーザの指示に応じて、予め定められた書式に従って作成された文書から情報を抽出して、抽出した情報と当該ユーザの指示が行なわれた時間を表す情報とを関連付けてデータベースに登録する。ユーザが当該文書を更新し、その更新の内容の登録を指示した場合、本実施形態の例の情報処理装置は、更新された文書から再び情報を抽出し、抽出した情報と当該登録の指示が行なわれた時間を表す情報とを関連付けてデータベースに登録する。さらに、本実施形態の例の情報処理装置は、このデータベースから取得した情報を含む出力文書を生成する。例えば、データベースに登録済みの情報の抽出元の文書と出力文書の書式とをユーザが指定した場合に、指定された書式に従って、指定された抽出元の文書の情報をデータベースから読み出して、読み出した情報を含む出力文書を生成する。このとき、抽出元の文書から抽出されてデータベースに登録された情報のうち最新の情報を読み出して出力文書に含める。よって、出力文書は、抽出元の文書の最新版の情報を含む文書となる。
【００２１】
以下の説明では、上述の抽出元の文書を「継承元文書」とも呼ぶ。また、本実施形態および後述の各種の実施形態や変形例の説明において、「文書」との用語は、特に紙の文書を指す旨の記載がない限り、電子的な文書を意味するものとする。
【００２２】
図１に、第１実施形態の例による情報処理装置を含むシステムの構成の例を示す。図１の例のシステムは、サーバ１０と端末２０とがネットワーク３０を介して接続された構成を有する。サーバ１０は、第１実施形態の例による情報処理装置として機能する。サーバ１０は、ユーザにより操作される端末２０からの要求に応じて、文書からの情報の抽出および出力文書の生成等の処理を行う。端末２０は、パーソナル・コンピュータ等の情報処理装置であってよい。ネットワーク３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等、情報処理装置間の通信を可能とする通信手段である。なお、図１には端末２０を１つだけ図示しているが、複数の端末２０がネットワーク３０を介してサーバ１０に接続されていてよい。
【００２３】
図１の例のサーバ１０は、抽出スキーマ記憶部１００、文書ＩＤ付与部１１０、文書情報抽出部１２０、履歴登録部１３０、文書情報ＤＢ１４０、挿入スキーマ記憶部１５０、および出力文書生成部１６０を備える。
【００２４】
抽出スキーマ記憶部１００は、継承元文書のレイアウトを表す情報である抽出スキーマを記憶する。抽出スキーマは、継承元文書の書式ごとに予め定義され、例えば、当該書式に従って作成された文書においてどの領域にどのような情報が配置されるかを記述したものであってよい。抽出スキーマ記憶部１００は、各書式の識別情報と当該書式の抽出スキーマとを関連付けて記憶する。抽出スキーマの具体例は後述する。
【００２５】
文書ＩＤ付与部１１０は、文書に対し、当該文書を識別するための文書ＩＤを生成して付与する。文書ＩＤは、サーバ１０が管理する文書のうちで一意な識別情報であればよい。文書ＩＤの「付与」とは、例えば、文書のデータ中に文書ＩＤを含めることで行われる。本例では、文書の属性情報の中に文書ＩＤを含めるものとする。
【００２６】
文書情報抽出部１２０は、予め定められた書式に従って作成された文書から、当該書式に対応して予め定められた項目の情報を抽出する。文書情報抽出部１２０による情報抽出の対象の文書は、上述の継承元文書である。なお、本実施形態の例の文書情報抽出部１２０は、情報抽出の対象の文書に文書ＩＤが付与済みであるか否かを確認し、文書ＩＤが付与されていない場合は、文書ＩＤ付与部１１０に依頼して当該文書に文書ＩＤを付与させる。文書ＩＤが付与済みであるか否かの確認は、当該文書の属性情報中に文書ＩＤが含まれているか否かを確認することで行えばよい。文書情報抽出部１２０による情報抽出の対象の文書は、例えば、端末２０を用いてユーザにより指定される。対象の文書の指定は、当該文書そのものを端末２０からサーバ１０に送信することで行われてもよいし、当該文書を記憶する文書データベース（図示しない）における当該文書の格納位置を端末２０からサーバ１０に送信することで行われてもよい。対象の文書を端末２０がサーバ１０に送信した場合、文書情報抽出部１２０は、サーバ１０で受信された文書を情報抽出の対象として取得する。また、対象の文書の文書データベースにおける格納位置を端末２０がサーバ１０に送信した場合、文書情報抽出部１２０は、サーバ１０で受信された格納位置を用いて文書データベースから対象の文書を取得する。本実施形態の例において、情報抽出の対象として指定される文書は、その文書の作成の基となった書式の識別情報を含む。本実施形態の例の文書情報抽出部１２０は、情報抽出の対象の文書を取得すると、当該文書から当該文書の書式の識別情報を取得する。そして、取得した書式の識別情報に対応する抽出スキーマを抽出スキーマ記憶部１００から読み出し、読み出した抽出スキーマに従って文書からの情報の抽出を行う。
【００２７】
以下、図２から図５を参照し、抽出スキーマの例を説明する。
【００２８】
図２は、ある書式Ａに従って作成された継承元文書の一例を模式的に示す図である。また、図３は、図２に例示する書式Ａに対応する抽出スキーマの内容の例を示す。図３の例の抽出スキーマは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されている。図３において、「rectangle」要素は、文書から文字列（情報）を抽出する矩形領域を表す。「rectangle」要素の「left」，「right」，「top」，「bottom」属性は、それぞれ、矩形領域の左端、右端、上端、下端の座標を表し、「name」属性は矩形領域の名前を表す。図３では、「住所」、「組織名」、および「担当者名」とそれぞれ名付けられた３つの矩形領域について記述されている。図３に例示する３つの矩形領域は、それぞれ、図２に示す３つの破線矩形に対応する。より具体的には、図３の例の抽出スキーマにおいて名前が「住所」である矩形領域は、図２において「○○市△町１−２−３」の文字列を含む破線矩形の領域に対応し、名前が「組織名」である矩形領域は、図２において「××商会」の文字列を含む破線矩形の領域に対応する。さらに、名前が「担当者名」である矩形領域は、図２において「ＡＡＡ」の文字列を含む破線矩形の領域に対応する。
【００２９】
図４は、図２および図３の例と異なる書式Ｂに従って作成された継承元文書の一例を模式的に示す図である。また、図５は、図４に例示する書式Ｂに対応する抽出スキーマの内容の例を示す。図５の例の抽出スキーマの記述の形式は、図３と同様、ＸＭＬ形式である。図５中の「rectangle」要素、「left」，「right」，「top」，「bottom」属性、および「name」属性の意味は、図３で説明したものと同様である。図５の例の抽出スキーマは、「住所」、「組織名」、および「部署」とそれぞれ名付けられた３つの矩形領域に関する記述を含む。図５の例の抽出スキーマの「住所」の矩形領域は、図４において「××市△町１−２−３」の文字列を含む破線矩形の領域に対応し、「組織名」の矩形領域は、図４において「××商会」の文字列を含む破線矩形の領域に対応する。また、図５に例示する「部署」の矩形領域は、図４において「営業部」の文字列を含む破線矩形の領域に対応する。
【００３０】
文書情報抽出部１２０は、情報抽出の対象の文書の書式が書式Ａであれば、図３の例の抽出スキーマを抽出スキーマ記憶部１００から読み出し、情報抽出の対象の文書の書式が書式Ｂであれば、図５の例の抽出スキーマを抽出スキーマ記憶部１００から読み出す。そして、読み出した抽出スキーマで記述された矩形領域のそれぞれに含まれる文字列を、対象の文書から抽出する。また、文書情報抽出部１２０は、対象の文書の文書ＩＤと共に、各矩形領域から抽出した文字列を当該矩形領域の名前（抽出スキーマで定義された名前）に関連付けて履歴登録部１３０に渡す。
【００３１】
文書情報抽出部１２０が文書から抽出する情報は、当該文書の内容の一部であると言える。以下の説明では、文書情報抽出部１２０により文書から抽出される情報を「文書情報」と呼ぶ。また、本実施形態の例において、ユーザは、文書の新規作成時または更新時に、端末２０を用いて文書情報の抽出および登録をサーバ１０に指示する。このため、文書情報抽出部１２０により文書から抽出される文書情報は、当該文書の作成内容または更新内容の履歴を表す情報であるとも捉えられる。よって、以下の説明において、文書から抽出された文書情報を当該文書の作成または更新の「履歴」と呼ぶこともある。
【００３２】
図１の説明に戻り、履歴登録部１３０は、文書情報抽出部１２０から文書ＩＤおよび文書情報を受け取ると、受け取った文書ＩＤに関連付けて、受け取った文書情報を文書情報ＤＢ１４０に登録する。本実施形態の例の履歴登録部１３０は、さらに、文書情報抽出部１２０から受け取った文書ＩＤおよび文書情報に関連付けて、文書情報の抽出の指示がユーザにより行なわれた時間を表す情報を文書情報ＤＢ１４０に登録する。例えば、サーバ１０が端末２０から情報の抽出の対象の文書の指定を受け付けた時刻を、文書情報の抽出の指示が行なわれた時刻として当該文書の文書ＩＤおよび文書情報に関連付けて登録する。あるいは、端末２０においてユーザが文書情報の抽出の対象の文書を指定した時刻を端末２０が取得してサーバ１０に送信し、この時刻を文書ＩＤおよび文書情報に関連付けて登録してもよい。
【００３３】
文書情報ＤＢ１４０は、文書情報抽出部１２０が文書から抽出した文書情報を記憶する。図６に、文書情報ＤＢ１４０のデータ内容の例を示す。
【００３４】
図６の例の表では、各文書の文書ＩＤごとに、文書情報および操作日時の値が登録されている。図６の例の表の１行は、１つの文書に対する１回の情報抽出に対応する情報レコードである。つまり、各情報レコードは、各文書に対する新規作成または更新の履歴を表す。文書情報は、対応する文書ＩＤの文書から文書情報抽出部１２０が抽出した情報である。図６の例の表の文書情報は、下位項目として、「住所」、「組織名」、「部署」、および「担当者名」を含む。これらの各下位項目の名前は、図３および図５に例示する抽出スキーマに記述された各矩形領域の名前に対応する。図６の例の表の操作日時は、対応する文書ＩＤの文書からの文書情報の抽出が指示された時刻を表す。なお、図６に示す文書ＩＤ「００１」の行は、図２に例示する書式Ａの文書から文書情報を抽出した場合の情報レコードの例であり、文書ＩＤ「００２」の行は、図４に例示する書式Ｂの文書から文書情報を抽出した場合の情報レコードの例である。各情報レコードにおいて、対応する文書の書式の抽出スキーマで記述されていない文書情報の項目の値は空（なし）に設定される。例えば、書式Ａの抽出スキーマには「部署」という名前の矩形領域が記述されていないため（図３参照）、文書ＩＤ「００１」の行では文書情報の下位項目「部署」の値が空に設定されている。また、書式Ｂの抽出スキーマには、「担当者名」という名前の矩形領域が記述されていないため（図５参照）、文書ＩＤ「００２」の行では文書情報の下位項目「担当者名」の値が空に設定されている。
【００３５】
再び図１を参照し、挿入スキーマ記憶部１５０は、出力文書のレイアウトを表す情報である挿入スキーマを記憶する。挿入スキーマは、出力文書の書式ごとに予め定義され、例えば、当該書式に従って作成される出力文書においてどの領域にどのような情報を挿入（配置）するかを記述したものであってよい。本実施形態の例において、出力文書に挿入される情報の各項目は、継承元文書から抽出される情報の項目のうちの１つであるとする。すなわち、本実施形態の例の挿入スキーマは、文書情報ＤＢ１４０における文書情報の下位項目のうちのどの下位項目を出力文書のどの領域に挿入するかを表す情報である。
【００３６】
図７および図８を参照し、挿入スキーマ記憶部１５０に記憶される挿入スキーマの具体例を説明する。図７は、出力文書の書式の一例を模式的に示す図である。図７に示す破線矩形領域および破線矩形領域内の文字列は、出力文書に挿入される領域および挿入される情報の項目の名前を表す。図８は、図７に例示する出力文書の書式に対応する挿入スキーマの内容の具体例である。図８の例の挿入スキーマは、上述の図３および図５の抽出スキーマと同様、ＸＭＬ形式で記述されている。図８において、「rectangle」要素は、出力文書において、継承元文書から抽出した項目の情報を挿入する矩形領域を表す。「rectangle」要素の「left」，「right」，「top」，「bottom」属性は、それぞれ、矩形領域の左端、右端、上端、下端の座標を表し、「name」属性は矩形領域の名前を表す。「name」属性の文字列は、継承元文書の書式に対応する抽出スキーマに記述される矩形領域の名前のうちの１つと同じ文字列に設定される。図８の例の抽出スキーマは、図６に例示する文書情報ＤＢ１４０における文書情報の４つの下位項目「住所」、「組織名」、「部署」、および「担当者名」のそれぞれの内容を、出力文書において図７に例示する破線矩形領域に挿入することを表す。
【００３７】
出力文書生成部１６０は、出力文書を生成して出力する処理を行う。例えば、出力文書の書式と継承元文書とを指定して出力文書の生成を指示する入力をユーザが端末２０で行い、この入力に応じて端末２０が出力文書生成の要求をサーバ１０に対して行った場合に、出力文書生成部１６０は、出力文書を生成する。例えば、出力文書生成部１６０は、まず、ユーザにより指定された書式の挿入スキーマを挿入スキーマ記憶部１５０から取得し、ユーザにより指定された継承元文書の文書ＩＤを含む情報レコードを文書情報ＤＢ１４０から取得する。そして、取得した挿入スキーマにおいて出力文書に挿入するよう記述された各項目について、文書情報ＤＢ１４０から取得した情報レコードの中から最新の値を特定する。各項目の「最新の値」は、当該項目の値を含む情報レコードのうち操作日時が最新である情報レコード中の当該項目の値である。さらに、出力文書生成部１６０は、挿入スキーマにおいて記述された各矩形領域に、対応する各項目について特定した最新の値を挿入した出力文書を生成する。出力文書生成部１６０は、生成した出力文書を要求元の端末２０に送信する。出力文書生成部１６０は、生成した出力文書を図示しないプリンタにより印刷させてもよい。
【００３８】
図９に、出力文書生成部１６０が生成する出力文書の例を示す。図９は、文書情報ＤＢ１４０に図６の例のデータ内容が登録されている場合であって、継承元文書として文書ＩＤ「００１」および文書ＩＤ「００２」の文書が指定され、出力文書の書式として図８の例の挿入スキーマに対応する書式が指定された場合に生成される出力文書の例を模式的に示す。図９の例の出力文書において、図８の例の挿入スキーマに記述される「住所」および「組織名」にそれぞれ対応する各破線矩形領域には、文書ＩＤ「００２」の情報レコード中の住所「××市△町１−２−３」および組織名「××商会」が挿入されている。「住所」および「組織名」の各項目については、文書ＩＤ「００１」，「００２」の両方の情報レコードにおいて値が設定されているけれども、文書ＩＤ「００２」の操作日時「２０１０−０２−１９  １１：１５：２０」の方が文書ＩＤ「００１」の操作日時「２０１０−０２−１９  １０：３０：１１」よりも新しい。このため、出力文書に挿入する値としては文書ＩＤ「００２」の情報レコード中の値が用いられる。また、図９の例の出力文書において、図８の例の挿入スキーマに記述される「部署」および「担当者名」に対応する破線矩形領域には、それぞれ、文書ＩＤ「００２」の情報レコード中の部署「営業部」および文書ＩＤ「００１」の情報レコード中の担当者名「ＡＡＡ」が挿入されている。「部署」および「担当者名」の各項目については、それぞれ、文書ＩＤ「００１」および文書ＩＤ「００２」の一方の情報レコードにしか値が登録されていないため、その唯一の値が最新の値であり、出力文書中に挿入される。
【００３９】
以下、以上で説明したサーバ１０が行う処理の例を説明する。以下で説明する処理の開始の前に、サーバ１０の抽出スキーマ記憶部１００および挿入スキーマ記憶部１５０には、上述したような抽出スキーマおよび挿入スキーマが予め生成されて記憶されているものとする。抽出スキーマおよび挿入スキーマの生成ならびに各記憶部への登録は、例えばシステムの管理者等の指示により予め行われる。なお、以下では、説明のための具体例として、図３および図５に例示する二種類の抽出スキーマが抽出スキーマ記憶部１００に記憶され、図８に例示する一種類の挿入スキーマが挿入スキーマ記憶部１５０に記憶されているものとする。
【００４０】
図１０は、文書から文書情報を抽出して登録する際にサーバ１０が行う処理の手順の例を示すフローチャートである。例えば、ユーザが、端末２０を用いて、継承元文書の書式に従った文書の新規作成または更新を行い、その結果の文書を指定して文書情報の抽出および登録を指示した場合に、端末２０は、指定された文書の文書情報の登録要求をサーバ１０に対して行う。この登録要求に応じて、サーバ１０は、図１０の例の手順の処理を開始する。
【００４１】
図１０を参照し、まず、サーバ１０の文書情報抽出部１２０は、登録対象の文書を取得する（ステップＳ１０）。例えば、端末２０からサーバ１０が受信した登録要求に登録対象の文書そのものが含まれていれば、登録要求から当該文書を取り出す。また例えば、登録要求において登録対象の文書のデータベース（図示しない）における格納位置を表す情報が含まれていれば、その格納位置から登録対象の文書を取得する。
【００４２】
登録対象の文書を取得すると、文書情報抽出部１２０は、当該文書に文書ＩＤが付与されているか否かを確認する（ステップＳ１２）。本実施形態の例では、文書ＩＤが付与された文書には、その属性情報中に文書ＩＤが含まれる。このため、文書情報抽出部１２０は、ステップＳ１０で取得した登録対象の文書の属性情報中に文書ＩＤが含まれているか否かを確認する。
【００４３】
登録対象の文書の属性情報中に文書ＩＤが含まれていれば、文書ＩＤが付与されていると判定され、処理はステップＳ１２からステップＳ１６に進む。ステップＳ１６の処理は後述する。
【００４４】
登録対象の文書の属性情報中に文書ＩＤが含まれていなければ、文書ＩＤが付与されていないと判定され、処理はステップＳ１２からステップＳ１４に進む。ステップＳ１４で、文書情報抽出部１２０は、文書ＩＤ付与部１１０に依頼して、登録対象の文書に文書ＩＤを付与させる。文書ＩＤ付与部１１０は、本システム内で重複しない新たな文書ＩＤを生成して、登録対象の文書に付与する。つまり、登録対象の文書の属性情報中に、当該新たな文書ＩＤを含める。
【００４５】
登録対象の文書に文書ＩＤが付与されていた場合（ステップＳ１２でＹＥＳ）、または、文書ＩＤが付与されていない登録対象の文書に新たな文書ＩＤが付与された後（ステップＳ１２でＮＯ，ステップＳ１４）、文書情報抽出部１２０は、登録対象の文書に対応する抽出スキーマを取得する（ステップＳ１６）。例えば、文書情報抽出部１２０は、登録対象の文書の書式の識別情報を登録対象の文書の属性情報から取得し、取得した書式の識別情報に関連付けて記憶された抽出スキーマを抽出スキーマ記憶部１００から取得する。書式Ａに対応する抽出スキーマ（図３参照）および書式Ｂに対応する抽出スキーマ（図５参照）が抽出スキーマ記憶部１００に記憶されている本例の場合、登録対象の文書の書式が書式Ａであれば図３の例の抽出スキーマが取得され、書式Ｂであれば図５の例の抽出スキーマが取得される。
【００４６】
ステップＳ１６の後、文書情報抽出部１２０は、ステップＳ１６で取得した抽出スキーマに従って、登録対象の文書から文書情報を抽出する（ステップＳ１８）。例えば、登録対象の文書が図２に例示する書式Ａの文書である場合、図３の例の書式Ａの抽出スキーマに従って、「住所」、「組織名」、および「担当者名」にそれぞれ対応する３つの矩形領域から文字列「○○市△町１−２−３」、「××商会」、および「ＡＡＡ」を抽出する。また例えば、登録対象の文書が図４に例示する書式Ｂの文書である場合、図５の例の書式Ｂの抽出スキーマに従って、「住所」、「組織名」、および「部署」にそれぞれ対応する３つの矩形領域から文字列「××市△町１−２−３」、「××商会」、および「営業部」を抽出する。
【００４７】
次に、履歴登録部１３０は、登録対象の文書の文書ＩＤに関連付けて、ステップＳ１８で抽出された文書情報と操作日時とを文書情報ＤＢ１４０に登録する（ステップＳ２０）。履歴登録部１３０は、例えば、文書情報ＤＢ１４０において、登録対象の文書の文書ＩＤの情報レコードを新たに生成し、この情報レコードの文書情報の各下位項目の値として、登録対象の文書の対応する各矩形領域から抽出された文字列を設定する。さらに、履歴登録部１３０は、この新たに生成した情報レコード中の操作日時の値として、登録対象の文書についての登録要求をサーバ１０が端末２０から受信した時刻を設定する。あるいは、端末２０においてユーザが登録対象の文書の指定を行った時刻が登録要求と共に端末２０からサーバ１０に送信されている場合、端末２０から受信された時刻を操作日時の値として設定する。ステップＳ２０の後、図１０の例の手順の処理は終了する。
【００４８】
文書の新規作成または更新の度に図１０の例の手順の処理が実行されることで、上述した図６に例示するようなデータ内容の文書情報ＤＢ１４０が構築される。
【００４９】
なお、図１０の例の手順において、処理の実行の順番を一部変更してもよい。例えば、抽出スキーマの取得（ステップＳ１６）を文書ＩＤの有無の判定（ステップＳ１２）の前に行ってもよい。
【００５０】
文書情報ＤＢ１４０に登録された継承元文書の文書情報を用いて、出力文書が生成される。例えば、ユーザが端末２０において出力文書の生成を望む旨の入力を行うと、端末２０は、出力文書の書式および継承元文書の指定の入力を受け付ける操作メニューを端末２０の表示装置（図示しない）に表示させる。操作メニューは、例えば、出力文書の書式の一覧と継承元文書の一覧とを含む。出力文書の書式の一覧の表示は、例えば、端末２０がサーバ１０の挿入スキーマ記憶部１５０にアクセスして、定義済みの挿入スキーマを取得し、取得された挿入スキーマに対応する出力文書の書式を表示させることで行えばよい。また、継承元文書の一覧は、例えば、端末２０のユーザが利用可能な文書のうち、抽出スキーマ記憶部１００に記憶された抽出スキーマのいずれかに対応する書式を有する文書の一覧を生成することで生成すればよい。ここで、ユーザが利用可能な文書とは、例えば、端末２０の記憶装置（図示しない）や端末２０からアクセス可能なデータベース（図示しない）に記憶された文書のうち、当該ユーザがアクセス権を有する文書である。抽出スキーマに対応する文書の書式は、端末２０がサーバ１０の抽出スキーマ記憶部１００にアクセスすることで特定すればよい。出力文書の書式の一覧と継承元文書の一覧とを含む操作メニューを確認したユーザは、出力文書の書式および継承元文書を指定する入力を行う。本例において、出力文書の書式は、一覧の中から１つだけ選択（指定）可能であり、継承元文書は、一覧の中から複数を選択可能である。端末２０は、出力文書を出力する出力要求であってユーザの入力により指定された書式の識別情報および継承元文書の文書ＩＤを含む出力要求をサーバ１０に対して行う。なお、本例のように挿入スキーマ記憶部１５０中に記憶された挿入スキーマが１つだけである場合、出力文書の書式の一覧の表示および出力文書の書式の選択の入力の受付は省略してよい。この例の場合、出力文書の出力要求に、当該１つの挿入スキーマに対応する出力文書の書式の識別情報を含めておけばよい。
【００５１】
上述のような出力文書の出力要求を端末２０から受信したサーバ１０が行う処理の手順の例を図１１に示す。なお、以下の図１１の例の手順の説明において、文書情報ＤＢ１４０には、図６の例のデータ内容が登録されているものとする。
【００５２】
図１１を参照し、サーバ１０の出力文書生成部１６０は、サーバ１０が受信した出力要求に含まれる出力文書の書式および継承元文書の文書ＩＤを取得する（ステップＳ３０）。本例では、図８の例の挿入スキーマに対応する出力文書の書式が取得される。また、継承元文書の文書ＩＤとしては、説明のための具体例として、文書ＩＤ「００１」，「００２」が取得されるとする。
【００５３】
次に、出力文書生成部１６０は、ステップＳ３０で取得した出力文書の書式に対応する挿入スキーマを挿入スキーマ記憶部１５０から取得する（ステップＳ３２）。本例では、図８の例の挿入スキーマが取得される。
【００５４】
さらに、出力文書生成部１６０は、継承元文書の文書情報を取得する（ステップＳ３４）。出力文書生成部１６０は、文書情報ＤＢ１４０を参照し、ステップＳ３０で取得した文書ＩＤを含むすべての情報レコードを文書情報ＤＢ１４０から取得する。本例では、文書ＩＤ「００１」，「００２」がステップＳ３０で取得され、文書情報ＤＢ１４０に図６の例のデータ内容が登録されているため、ステップＳ３４で、図６の例の表の行Ｌ１，Ｌ２の情報レコードが取得される。
【００５５】
ユーザにより指定された挿入スキーマおよび継承元文書の文書情報を取得すると、出力文書生成部１６０は、出力文書に含める情報を選択する（ステップＳ３６）。出力文書生成部１６０は、例えば、まず、挿入スキーマを参照し、出力文書中に挿入すべき情報の項目を特定する。図８の例の挿入スキーマの場合、情報を挿入する矩形領域を表す「rectangle」要素それぞれの「name」属性で記述される項目の名前「住所」、「組織名」、「部署」、および「担当者名」を挿入すべき情報の項目として特定する。項目を特定すると、各項目について、ステップＳ３４で取得した継承元文書の文書情報に含まれる各項目の値のうち最新の値を特定する。例えば、ステップＳ３４で文書情報ＤＢ１４０から取得した情報レコードのうち操作日時が最新の情報レコードにおいて、特定した項目（「住所」、「組織名」、「部署」、および「担当者名」）に値が設定されていれば、その値が当該項目の最新の値である。操作日時が最新の情報レコードにおいて値が設定されていない項目については、次に新しい操作日時を含む情報レコードから順に、当該項目に値が設定されているか否かを確認していき、最初に発見された、当該項目に値が設定されている情報レコードにおける設定値を当該項目の最新の値とすればよい。図６を参照する本例の場合、「住所」、「組織名」、および「部署」の各項目の最新の値は、文書ＩＤ「００２」の情報レコード中の「××市△町１−２−３」、「××商会」、および「営業部」であり、「担当者名」の項目の最新の値は「ＡＡＡ」である。出力文書生成部１６０は、上述のように特定した各項目の最新の値を、出力文書に挿入する情報として選択する。
【００５６】
次に、出力文書生成部１６０は、ステップＳ３６で選択した情報を含む出力文書を生成する（ステップＳ３８）。出力文書生成部１６０は、挿入スキーマで定義された各矩形領域に、ステップＳ３６で選択した、対応する各項目の最新の値を挿入した出力文書を生成する。本例においてステップＳ３８で生成される出力文書の例は、図９を参照して上述したとおりである。本例の出力文書生成部１６０は、生成した出力文書を要求元の端末２０に対して送信する。ステップＳ３８の後、図１１の例の手順の処理は終了する。
【００５７】
図１１の例の手順において、処理の順番を一部変更してもよい。例えば、挿入スキーマの取得（ステップＳ３２）を継承元文書の文書情報の取得（ステップＳ３４）の後に行ってもよいし、ステップＳ３２およびステップＳ３４の処理を並行して行ってもよい。
【００５８】
以上で説明した第１実施形態の例において、出力文書に挿入される各項目の情報は、当該項目の情報の抽出元である継承元文書の最新版の情報となる。また、上述の第１実施形態の例において、継承元文書から抽出する情報の項目は、継承元文書において各項目の情報が配置される領域および領域の名前によって指定される。さらに、継承元文書から抽出する情報が配置される領域の名前によって、出力文書に挿入する情報の項目が指定され、この名前をキーとして文書情報ＤＢ１４０から取得される情報が出力文書に挿入される。このため、第１実施形態の例では、文書情報ＤＢ１４０のデータベース固有の問合せ言語によって記述された命令を用いることなく、情報の項目の名前を指定するだけで、出力文書に挿入する情報が文書情報ＤＢ１４０から取得される。
【００５９】
＜第２実施形態＞
第２実施形態の例では、挿入スキーマにおいて、出力文書中の各項目について、どの書式の継承元文書から抽出された情報を挿入するかを指定する記述を含む。出力文書の生成の際には、各項目について、挿入スキーマで指定された書式の継承元文書から抽出された文書情報に含まれる値のうち最新のものを出力文書に挿入する。文書情報ＤＢ１４０中の文書情報がどの書式の継承元文書から抽出されたかの特定を容易にするため、本実施形態の例では、文書情報ＤＢ１４０において、各継承元文書の文書ＩＤに対応づけて、当該継承元文書の書式の識別情報を登録しておく。このため、本実施形態の例の抽出スキーマには、当該抽出スキーマに対応する書式の識別情報を文書情報ＤＢ１４０に登録することを指示する記述が含まれる。
【００６０】
なお、第２実施形態の例において、サーバ１０およびサーバ１０を含むシステムの構成は、図１に示す第１実施形態の例と同様である。また、文書情報の抽出および登録の処理の手順ならびに出力文書の生成の処理の手順は、それぞれ図１０および図１１のフローチャートを参照して説明した例の手順と同様であってよい。
【００６１】
図１２および図１３を参照し、第２実施形態の例における抽出スキーマの例を示す。図１２は、図２に例示する書式Ａに対応する抽出スキーマの例であり、図１３は、図４に例示する書式Ｂに対応する抽出スキーマの例である。図１２および図１３の例の抽出スキーマは、第１実施形態の例の抽出スキーマの例（図３および図５）と同様、ＸＭＬ形式で記述されている。図１２において、「<rectangles name = “書式Ａ”>」との記述は、この抽出スキーマに対応する書式の識別情報である「書式Ａ」を文書情報ＤＢ１４０に登録することを指示する命令である。同様に、図１３の「<rectangles name = “書式Ｂ”>」との記述は、当該抽出スキーマに対応する書式の識別情報「書式Ｂ」を文書情報ＤＢ１４０に登録することを指示する命令である。図１２および図１３において、書式の識別情報に関する「rectangles」要素の記述の他の記述は、それぞれ、図３および図５に例示する第１実施形態における書式Ａ，書式Ｂの抽出スキーマの記述と同様である。
【００６２】
本実施形態の例において、サーバ１０の文書情報抽出部１２０は、抽出スキーマに従って継承元文書から文書情報を抽出すると、文書ＩＤと抽出した文書情報とに加えて、抽出スキーマ中に記述された書式の識別情報を履歴登録部１３０に渡す。例えば、図１２の例の抽出スキーマに従って文書情報の抽出を行った場合は「書式Ａ」を、図１３の例の抽出スキーマに従って文書情報の抽出を行った場合は「書式Ｂ」を、履歴登録部１３０に渡す。履歴登録部１３０は、文書情報抽出部１２０から受け取った文書ＩＤおよび文書情報に関連付けて、さらに、受け取った書式の識別情報を文書情報ＤＢ１４０に登録する。
【００６３】
図１４は、本実施形態の例における文書情報ＤＢ１４０のデータ内容の例である。図１４の例の表は、図６に例示する第１実施形態の例の文書情報ＤＢ１４０と同様の項目「文書ＩＤ」、「文書情報」、および「操作日時」に加えて、「継承元書式名」の項目を含む。継承元書式名の項目には、文書情報抽出部１２０が履歴登録部１３０に渡した書式の識別情報が設定される。図１４の例の表は、まず書式Ａの継承元文書である文書ＩＤ「００１」の文書の作成の履歴が登録され（行Ｌ１１）、次に、書式Ｂの継承元文書である文書ＩＤ「００２」の文書の作成の履歴が登録された（行Ｌ１２）ことを表す。さらに、行Ｌ１１と同様の文書（文書ＩＤ「００１」）の更新の履歴が登録された（行Ｌ１３）ことが表される。さらにその後、行Ｌ１２と同様の文書（文書ＩＤ「００２」）の更新の履歴が登録された（行Ｌ１４）ことが表される。文書ＩＤ「００１」の履歴である行Ｌ１１，Ｌ１３を参照すると、当該文書において、文書情報の「担当者名」の値が「ＡＡＡ」から「ＢＢＢ」に更新されたことがわかる。また、文書ＩＤ「００２」の履歴である行Ｌ１２，Ｌ１４を参照すると、当該文書において、文書情報の「住所」の値が「○○市△町１−２−３」から「××市△町１−２−３」に更新されたことがわかる。
【００６４】
図１５は、本実施形態の例における挿入スキーマの例を示す。図１５の例の挿入スキーマは、第１実施形態の例における図８の例の挿入スキーマと同様、「住所」、「組織名」、「部署名」、および「担当者名」の各項目の情報を出力文書の対応する各矩形領域に挿入することを表す。ただし、図１５の例の挿入スキーマにおいて、「name」属性は、「書式Ａ．住所」，「書式Ｂ．部署」等のように、継承元文書の書式を指定する文字列と対応する矩形領域（項目）の名前を表す文字列とを含んで記述されている。図１５の例では、「name」属性において、ピリオド（．）の左側の文字列が継承元文書の書式を表し、ピリオド（．）の右側の文字列が項目の名前を表す。よって、図１５の例の挿入スキーマは、項目「住所」、「組織名」、および「担当者名」について、「書式Ａ」の継承元文書から抽出された情報を出力文書中に挿入することを表し、項目「部署」について「書式Ｂ」の継承元文書から抽出された情報を出力文書中に挿入することを表す。
【００６５】
図１６に、本実施形態の例における出力文書の例を示す。図１６は、文書情報ＤＢ１４０が図１４の例のデータ内容を備える場合に、継承元文書として文書ＩＤ「００１」，「００２」が指定され、図１５の例の挿入スキーマに対応する出力文書の書式が指定された場合に、出力文書生成部１６０が生成する出力文書の例である。出力文書生成部１６０は、挿入スキーマを参照し、各項目についてどの書式の継承元文書から抽出された情報を用いるかを特定する。そして、文書情報ＤＢ１４０において、特定した書式を「継承元書式名」の値として含む情報レコードであってユーザにより指定された継承元文書の文書ＩＤを含む情報レコードを参照し、当該項目の最新の値を取得して出力文書中の当該項目の領域に挿入する情報として選択する。本例では、「住所」、「組織名」、および「担当者名」の各項目について、図１５の例の挿入スキーマで指定された「書式Ａ」を含む文書ＩＤ「００１」の２つの情報レコード（図１４の行Ｌ１１，Ｌ１３）のうち操作日時が最新である行Ｌ１３における設定値「○○市△町１−２−３」、「××商会」、および「ＢＢＢ」を選択する。また、項目「部署」について、図１５の例の挿入スキーマで指定された「書式Ｂ」を含む文書ＩＤ「００２」の２つの情報レコード（図１４の行Ｌ１２，Ｌ１４）のうち操作日時が最新である行Ｌ１４における設定値「営業部」を出力文書中に挿入する情報として選択する。以上のように挿入スキーマに記述された各矩形領域において選択された値が、図１６に例示する出力文書の対応する各破線矩形領域に挿入されている。
【００６６】
以上で説明した第２実施形態の例では、出力文書に挿入される項目ごとに予め指定された書式の継承元文書から抽出された情報のうち最新の情報を当該項目の値として含む出力文書が生成される。したがって、当該項目について指定された書式と異なる書式の継承元文書から抽出された情報は、その継承元文書の文書ＩＤが出力要求に含まれていたとしても、当該項目の領域に挿入する値の候補にならない。例えば図１４の例の文書情報ＤＢ１４０において、文書情報の下位項目「住所」の値に着目すると、書式Ｂである文書ＩＤ「００２」の最新の履歴には、「××市△町１−２−３」の値が設定されている。しかし、挿入スキーマにおいて「住所」の項目には書式Ａの継承元文書から抽出した情報を用いる旨が記述されているため、上述の例において、出力文書には、項目「住所」に対応する矩形領域に書式Ａである文書ＩＤ「００１」の最新の履歴の情報レコード（行Ｌ１３）における値「○○市△町１−２−３」が挿入されている。
【００６７】
＜第３実施形態＞
第３実施形態の例のサーバ１０は、挿入スキーマおよび継承元文書の指定を含む出力要求に応じて生成した出力文書の修正を受け付け、その修正内容を継承元文書に反映させる処理を行う。言い換えると、生成した出力文書の更新に応じて継承元文書を更新する処理を行う。
【００６８】
図１７は、第３実施形態の例のサーバ１０の内部構成の概略の例を示すブロック図である。図１７の例のサーバ１０は、図１の例のサーバ１０が備える各構成要素に加えて、更新処理部１７０を備える。なお、図１７において、図１に例示するサーバ１０と同様の要素には同様の符号を付し、その詳細な説明を省略する。
【００６９】
本実施形態の例の出力文書生成部１６０は、上述の第１実施形態または第２実施形態の各例と同様に出力文書を生成する。このとき、出力文書生成部１６０は、出力文書中に挿入する情報の項目ごとに、当該項目の値の取得元となった文書情報ＤＢ１４０中の情報レコードに含まれる文書ＩＤの値を、例えば図示しない一時記憶装置等に記録しておく。さらに、出力文書生成部１６０は、生成した出力文書と上述の項目ごとに記録した文書ＩＤの値とを更新処理部１７０に渡す。
【００７０】
更新処理部１７０は、出力文書生成部１６０が生成した出力文書の修正を受け付けて出力文書を更新すると共に、その修正の内容に従って継承元文書の文書情報の更新の履歴を文書情報ＤＢ１４０に登録する。更新処理部１７０は、出力文書と当該出力文書中の項目ごとに記録された文書ＩＤの値とを出力文書生成部１６０から受け取ると、挿入スキーマで定義された出力文書中の各矩形領域の内容の編集を受け付ける表示画面を出力文書の出力要求の要求元の端末２０に表示させる。この表示画面を確認したユーザにより、矩形領域の内容が編集されて出力文書の更新が指示されると、更新処理部１７０は、更新後の内容を含む出力文書を生成する。さらに、更新処理部１７０は、内容が変更された項目（矩形領域）について記録された文書ＩＤを含む新たな情報レコードを文書情報ＤＢ１４０に作成し、この情報レコードにおいて、文書情報における当該項目の更新後の値を設定し、操作日時として現在の時刻を設定する。なお、内容に変更のない項目については、文書情報ＤＢ１４０に登録済みの当該文書ＩＤの情報レコードのうち最新のものに含まれる値をコピーして、当該新たな情報レコードの当該項目に設定する。
【００７１】
図１８を参照し、更新処理部１７０が行う処理の手順の例を説明する。更新処理部１７０は、出力文書と当該出力文書中の項目ごとに記録された文書ＩＤの値とを出力文書生成部１６０から受け取った場合に、図１８に例示する手順の処理を開始する。
【００７２】
まず、更新処理部１７０は、出力文書の出力要求を行った要求元の端末２０において、出力文書生成部１６０が生成した出力文書を表示させる（ステップＳ４０）。更新処理部１７０は、例えば、出力文書を表示装置に表示させる表示制御情報を生成して端末２０に送信することで、端末２０の表示装置に出力文書を表示させる。ステップＳ４０で更新処理部１７０が端末２０に表示させる表示画面は、出力文書だけでなく、挿入スキーマで定義された出力文書中の各矩形領域の内容の編集を受け付ける旨を表す情報も含む。この表示画面の一例を図１９に示す。図１９に示す表示画面は、図１６の例の出力文書における各破線矩形領域の内容の編集を受け付ける場合の例である。図１９の例の表示画面では、各破線矩形をユーザが視認可能に表示させ、かつ、「更新」ボタンを表示させる。このような態様の表示により、各矩形領域の内容の編集が受け付けられる旨を表す。
【００７３】
次に、更新処理部１７０は、ステップＳ４０で表示させた出力文書の更新を受け付ける（ステップＳ４２）。例えば、図１９の例の表示画面を確認したユーザが、端末２０の図示しない入力装置を用いて特定の破線矩形領域の内容を編集して「更新」ボタンを押下（例えば、マウスによる「クリック」やキーボードにおける決定（リターン）キーの押下等）すると、ユーザにより編集された項目の内容が端末２０からサーバ１０に送信される。更新処理部１７０は、このように端末２０からサーバ１０に送信された内容を出力文書の更新の内容として受け付ける。ここでは、説明のための具体例として、ユーザが、図１９の例の表示画面において、項目「住所」に対応する破線矩形領域ａの内容を編集して「××市△町１−２−３」に変更し、項目「部署名」に対応する破線矩形領域ｂの内容を編集して「第一営業部」に変更したとする。この例の場合、項目「住所」の内容「××市△町１−２−３」および項目「部署名」の内容「第一営業部」が端末２０からサーバ１０に送信され、更新処理部１７０により受け付けられる。
【００７４】
更新処理部１７０は、ステップＳ４２で受け付けた更新の内容に従って、更新後の出力文書を生成する（ステップＳ４４）。上述の具体例を参照し、ステップＳ４２で受け付けた項目「住所」の内容「××市△町１−２−３」および項目「部署名」の内容「第一営業部」で、図１６の例の出力文書（更新前の出力文書）の「住所」および「部署名」の各項目の内容を更新した出力文書を生成する。図２０に、更新後の出力文書の例を示す。なお、更新後の出力文書は、要求元の端末２０に送信される。
【００７５】
更新後の出力文書を生成すると、更新処理部１７０は、更新された項目の値の抽出元である継承元文書を特定する（ステップＳ４６）。これは、出力文書中の項目ごとに出力文書生成部１６０により記録された、当該項目の値の取得元となった文書情報ＤＢ１４０中の情報レコードに含まれる文書ＩＤの値を参照することで特定される。図１６の例の出力文書を参照する本例では、「住所」、「組織名」、および「担当者名」の各項目の値の取得元として文書ＩＤ「００１」が記録され、項目「部署名」の値の取得元として文書ＩＤ「００２」が記録されている（第２実施形態の例の上述の説明を参照）。よって、本例では、ステップＳ４６で、更新された項目「住所」の値の抽出元の継承元文書が文書ＩＤ「００１」の文書であり、項目「部署名」の値の抽出元の継承元文書が文書ＩＤ「００２」の文書であることが特定される。
【００７６】
更新された項目のそれぞれについてステップＳ４６で継承元文書を特定すると、更新処理部１７０は、特定した継承元文書の文書ＩＤに関連付けて、更新後の項目の値を含む履歴を文書情報ＤＢ１４０に登録する（ステップＳ４８）。項目「住所」について文書ＩＤ「００１」、項目「部署名」について文書ＩＤ「００２」の継承元文書が特定される本例の場合、更新処理部１７０は、例えば、文書ＩＤ「００１」および文書ＩＤ「００２」をそれぞれ含む２つの新たな情報レコードを文書情報ＤＢ１４０において生成する。そして、文書ＩＤ「００１」を含む新たな情報レコードにおいて、文書情報の下位項目「住所」の値として更新後の「××市△町１−２−３」を設定する。また、文書ＩＤ「００２」を含む新たな情報レコードにおいて、文書情報の下位項目「部署名」の値として更新後の「第一営業部」を設定する。なお、これらの２つの新たな情報レコードにおいて、更新されていない項目については、対応する文書ＩＤを含む登録済みの情報レコードのうち操作日時が最新である情報レコードの文書情報の各下位項目の値をコピーして設定すればよい。さらに、更新処理部１７０は、これらの２つの新たな情報レコードの操作日時の値として現在の時刻を設定する。
【００７７】
図２１に、ステップＳ４８が完了した時点での文書情報ＤＢ１４０のデータ内容の例を示す。図２１の例の表において、行Ｌ１１〜Ｌ１４の内容は、図１４の例の表の内容と同一である。図２１の例の表の行Ｌ１５，Ｌ１６が示す２つの情報レコードは、ステップＳ４８で更新処理部１７０が登録する情報レコードの例である。行Ｌ１５は、文書ＩＤ「００１」の継承元文書の更新の履歴を表し、行Ｌ１６は、文書ＩＤ「００２」の継承元文書の更新の履歴を表すものと捉えられる。
【００７８】
ステップＳ４８の後、図１８の例の手順の処理は終了する。
【００７９】
上述の図１８の説明では、出力文書の更新の受付（ステップＳ４２）の際に、出力文書中の各項目の内容をユーザが自由に編集するものとして説明した。他の例では、ユーザによる自由な編集を受け付ける代わりに、あるいは、自由な編集を受け付けることに加えて、各項目の更新後の値の候補を提示してユーザに選択させてもよい。例えば、更新処理部１７０は、文書情報ＤＢ１４０を参照し、出力文書中の各項目について、現在の出力文書中の値と異なる値が設定された情報レコードの有無を確認し、そのような情報レコードが存在する場合に、当該情報レコード中の当該項目の設定値を更新後の値の候補として端末２０の表示装置に表示させる。例えば、文書情報ＤＢ１４０が図１４の例のデータ内容を備え、図１６の例の出力文書の更新を受け付ける上述の例の場合、図１６の例の出力文書中の値と異なる値を含む文書情報ＤＢ１４０中の情報レコードが存在するのは、「住所」および「担当者」の項目である。よって、「住所」および「担当者」の各項目の更新後の値の候補として、それぞれ、表示中の出力文書中の値「○○市△町１−２−３」，「ＢＢＢ」と異なる値「××市△町１−２−３」（図１４の行Ｌ１４），「ＡＡＡ」（図１４の行Ｌ１１）を表示させる。また、表示中の出力文書中の値の取得元である情報レコードに含まれる操作日時よりも新しい操作日時を含む情報レコードのみを、更新後の値の候補の検索対象としてもよい。
【００８０】
なお、更新処理部１７０は、ステップＳ４８で、文書情報ＤＢ１４０に更新の履歴を登録するだけでなく、対象の継承元文書自体のデータを、ステップＳ４８で登録する履歴に合わせて更新してもよい。例えば、継承元文書が図示しないデータベースに格納されている場合、当該継承元文書の文書ＩＤを用いてデータベースから継承元文書を取得し、取得した文書において該当する項目の値を更新後の値に変更することで当該文書を更新し、更新した文書をデータベースに登録してもよい。
【００８１】
第３実施形態の例により、出力文書に対する更新の内容が、更新に係る項目の情報の抽出元である継承元文書の更新の履歴として文書情報ＤＢ１４０に登録される。
【００８２】
＜第４実施形態＞
上述の第１実施形態〜第３実施形態の例では、継承元文書から抽出されて文書情報ＤＢ１４０に登録された文書情報の一部の値をそのまま出力文書に挿入する。第４実施形態の例では、文書情報の一部の値を用いて、予め設定された規則に従って決定される値をさらに出力文書に挿入する。
【００８３】
第４実施形態の例のサーバ１０の内部構成は、図１の例と同様であってよい。また、第４実施形態の例においても、継承元文書からの情報の抽出および登録ならびに出力文書の生成の処理の基本的な手順は、図１０および図１１に例示するフローチャートのとおりであってよい。
【００８４】
図２２および図２３を参照し、本実施形態の例で用いる継承元文書の書式およびその抽出スキーマの例を説明する。図２２は、ある書式Ｅに従って作成された継承元文書を模式的に示す図である。図２２に例示する書式Ｅの文書は、品名、型番、および数量の各項目を有する表を含む。図２３は、図２２に例示する書式Ｅに対応する抽出スキーマの例である。図２３の例の抽出スキーマは、図３および図５等を参照して上述した各種の抽出スキーマの例と同様、ＸＭＬ形式で記述されている。図２３の例の抽出スキーマには、文書に含まれる表から情報を抽出することが記述されている。図２３の各行の「rectangle」要素は、文書中の表における特定の欄（セル）から情報を抽出することを表す。各「rectangle」要素中の「col」属性は、表における列（カラム）を指定する記述であり、「row」属性は、表における行（ロー）を指定する記述である。「col」属性の“０”，“１”，“２”の数値は、表中の列の番号を表し、それぞれ、図２２の例の書式Ｅに従った文書中の表の左から１番目の列、左から２番目の列、および左から３番目の列を指す。また、「row」要素の“auto”の文字列は、文書中の表が有する実際の行の数に合わせて、自動的に行番号を指定することを表す。本例では、表の２行目から最後の行までの番号が指定される。２行目から開始するのは、表の１行目に各列の項目の名前が記載されるためである。また、「name」属性は、対応する「rectangle」要素により抽出される情報の項目の名前を表す。図２３の例の抽出スキーマにおいて「name」属性に設定される名前は、図２２に例示する書式Ｅの文書の表における各列の項目の名前と同じ文字列に設定される。
【００８５】
図２２に例示する書式Ｅの文書を文書情報の抽出の対象として指定する登録要求が端末２０からサーバ１０に対して行われると、サーバ１０は、図２３の例の抽出スキーマに従って、当該文書から文書情報を抽出して文書情報ＤＢ１４０に登録する。この抽出・登録処理の基本的な手順は、図１０の例の手順と同様であってよい。本例において、図２３の例の抽出スキーマの１行目の「rectangle」要素の記述に従い、文書情報抽出部１２０は、項目「品名」の内容として、図２２の例の表の左から１番目の列の２行目の「ｘｘｘ」および３行目の「ａａａ」を抽出する。同様に、項目「型番」の内容として、図２２の例の表の左から２番目の列の２行目の「ｙｙｙ」および３行目の「ｂｂｂ」を抽出し、項目「数量」の内容として、図２２の例の表の左から３番目の列の２行目の「３」および３行目の「１０」を抽出する。さらに、履歴登録部１３０は、文書情報抽出部１２０が抽出した文書情報を、当該文書の文書ＩＤ（ここでは、「００３」とする）に関連付けて文書情報ＤＢ１４０に登録する。
【００８６】
図２４は、図２２の例の文書から図２３の例の抽出スキーマに従って抽出した文書情報を登録した場合の文書情報ＤＢ１４０のデータ内容の例である。図２４の例の表は、図６等に例示する文書情報ＤＢ１４０と同様、文書ＩＤ、文書情報、および操作日時の項目を有する。ただし、図２４の例において文書情報の下位項目は、図２３の例の抽出スキーマで定義されている各項目「品名」、「型番」、および「数量」である。図２４の例の表は、さらに、「行」および「挿入」の各項目を有する。「行」の項目は、対象の文書中の表における行の番号を示す。本例では、文書中の表における行ごとに、当該行の各列の欄から抽出した内容を含む情報レコードが文書情報ＤＢ１４０中に生成される。よって、図２４の例の表は、図２２の例の文書中の表における２行目および３行目にそれぞれ対応する２つの情報レコード（行「１」，「２」）を備える。このように本例では、１つの文書からの１回の文書情報の抽出に応じて、複数の情報レコードが文書情報ＤＢ１４０に登録され得る。これら複数の情報レコードにおいて、操作日時の項目は同じ値に設定される。図２４の例の表の「挿入」の項目は、当該情報レコード中の文書情報が出力文書の生成のために出力文書生成部１６０により参照されたことがあるか否かを表す。文書情報ＤＢ１４０に当該情報レコードが登録された時点では、その文書情報は未だ出力文書の生成のために参照されていないので、その旨を表す値を「挿入」の項目に設定するか、あるいは、「挿入」の項目の値を空（なし）に設定しておく。図２４は、履歴登録部１３０による登録が行われた時点での文書情報ＤＢ１４０のデータ内容の例を示すため、図２４の例の表において挿入の項目の値は空である。また、本例において、当該情報レコードの文書情報が出力文書の生成のために参照されると、挿入の項目の値は「済み」に設定されるとする。挿入の項目の値は、出力文書の生成時に用いられ、この値の利用の態様は後述する。
【００８７】
図２５は、本実施形態の例で生成される出力文書の書式の例を模式的に示す図である。図２５の例の書式の出力文書は、表Ｔを含む。表Ｔは、図２４の例の文書情報ＤＢ１４０中の文書情報の各下位項目「品名」、「型番」、および「数量」と同じ名前の項目と、「区分」の項目とを備える。表Ｔの各欄に、指定された継承元文書から抽出された文書情報に基づく値が挿入される。
【００８８】
図２６は、図２５の例の書式に対応する挿入スキーマの例である。図２６の例の挿入スキーマは、ＸＭＬ形式で記述されている。図２６の例の挿入スキーマは、出力文書中に表を生成して、表における各欄に、指定された継承元文書の文書情報に基づく値を挿入することを表す。図２６の例の挿入スキーマにおいて、各「rectangle」要素は、出力文書中の表の各列の項目に対応する。「col」属性は出力文書中の表の列の番号を表す。図２６に例示する「col」属性の番号“０”，“１”，“２”は、それぞれ、表の左から１番目、２番目、および３番目の列を指す。また、「row」属性の“auto”の文字列は、指定された継承元文書の文書情報ＤＢ１４０中の情報レコードにおける「行」の値で示される番号に対応する行を、文書情報の挿入のために出力文書中の表において生成することを表す。なお、「name」属性は、出力文書中の表において対応する列の項目の名前を表す。図２６に例示する「name」属性の値「品名」、「型番」、および「数量」は、図２４の例の文書情報の下位項目の名前に対応する。出力文書中の表の各行における「品名」および「型番」の欄には、指定された継承元文書の文書情報ＤＢ１４０中の情報レコードであって対応する「行」の値を含む情報レコードのうち最新の「品名」および「型番」の値が設定される。また、図２６の例の挿入スキーマにおいて、「数量」の「name」要素に続いて記述されている「value=”func1”」は、「数量」の項目の値を決定するために予め定められた規則を表す。この規則は、例えば、指定された継承元文書の文書情報ＤＢ１４０中の情報レコードに含まれる値を入力とし、出力文書の「数量」の項目の値を出力とする関数の形式で定義すればよい。また、図２６の挿入スキーマの例には示していないが、本例では、この規則により、図２５の例の表Ｔの項目「区分」の値も決定される。以下の［関数例１］は、出力文書中の表における「数量」および「区分」の値を決定する規則である関数“func1”の具体例である。
【００８９】
［関数例１］
（１）指定された継承元文書の文書情報ＤＢ１４０中のすべての情報レコードの項目「挿入」が空である場合、これらの情報レコードのうち、「行」、「品名」、および「型番」の値が同じ組合せである情報レコードの集合ごとに、「操作日時」が最新のものに含まれる「数量」の値を、出力文書の表で対応する行の「数量」の値として挿入する。さらに、当該「数量」の値を挿入した行の「区分」の値を「新規」に設定する。
（２）指定された継承元文書の文書情報ＤＢ１４０中の情報レコードにおいて、項目「挿入」の値が「済み」である情報レコードと項目「挿入」の値が空である情報レコードとの両方が存在する場合、「行」、「品名」、および「型番」の値が同じ組合せである情報レコードの集合ごとに、次の方針に従って、出力文書の表で対応する行の「数量」および「区分」の値を決定する。
上述の情報レコードの集合において、項目「挿入」の値が空であるものの中で「操作日時」が最新の情報レコードをレコードＡとし、項目「挿入」の値が「済み」であるものの中で「操作日時」が最新の情報レコードをレコードＢとし、
（ｉ）レコードＡの「数量」の値がレコードＢの「数量」の値より大きい場合は、その差分を、出力文書の表で対応する行の「数量」の値とし、当該行の「区分」の値を「追加」とする。
（ｉｉ）レコードＡとレコードＢとの間で「数量」の値が一致する場合は、対応する行を出力文書の表中に生成しない。
（ｉｉｉ）レコードＡの「数量」の値がレコードＢの「数量」の値より小さい場合は、その差分を、出力文書の表で対応する行の「数量」の値とし、当該行の「区分」の値を「取消」とする。
（３）指定された継承元文書の文書情報ＤＢ１４０中のすべての情報レコードの項目「挿入」が「済み」である場合、出力文書の生成を中止する。
【００９０】
ここで、上述の［関数例１］に記述される各場合の意味をより詳細に説明する。（１）の場合、継承元文書から抽出された文書情報が未だ出力文書の生成で参照されていないため、「行」、「品名」、および「型番」の組合せごとに最新の「数量」を出力文書の表に挿入する。また、この「数量」の値が初めて出力文書の表に記載されることから、「区分」の値が「新規」に設定される。（２）の場合、継承元文書から抽出された文書情報が出力文書の生成で参照された後、当該継承元文書が更新されて当該更新の履歴が文書情報ＤＢ１４０に登録され、この更新後の文書情報は出力文書の生成で未だ参照されていないと考えられる。そこで、出力文書の生成で参照されたことのある更新前の「数量」の値と出力文書の生成で参照されたことのない更新後の「数量」の値とを比較し、更新後の値の方が大きい場合（上記の（ｉ））、更新の前後の差分が出力文書の表中の「数量」に設定され、この差分の値だけ更新前の「数量」から増やすことを表すように「区分」の値が「追加」に設定される。更新の前後で「数量」の値が変わらない場合（上記の（ｉｉ））、更新後の「数量」と同じ値を挿入した表を含む出力文書を作成済みであることから、対応する行を出力文書中の表に含めない。更新後の「数量」の値の方が小さい場合（上記の（ｉｉｉ））、更新の前後の差分が出力文書の表中の「数量」に設定され、この差分の値だけ更新前の「数量」から減らすことを表すように「区分」の値が「取消」に設定される。なお、（３）の場合は、継承元文書から抽出された文書情報のすべてがすでに出力文書の生成で参照されたと考えられることから、この継承元文書を指定した出力要求に基づく新たな出力文書の生成を行わない。
【００９１】
以下、図２６の例の挿入スキーマに従った出力文書の生成の例を説明する。例えば、文書情報ＤＢ１４０が図２４の例のデータ内容を備える場合に、継承元文書の文書ＩＤとして「００３」が指定され、出力文書の書式として図２６の例の挿入スキーマに対応する書式が指定された出力文書の出力要求をサーバ１０が端末２０から受け取ったとする。このとき、サーバ１０の出力文書生成部１６０は、図１１の例の手順に従い、挿入スキーマ記憶部１５０から図２６の例の挿入スキーマを取得し（ステップＳ３２）、文書ＩＤ「００３」の文書情報として図２４の例の表に示す２つの情報レコードを取得する（ステップＳ３４）。そして、上述の図２６の例の挿入スキーマの記述に従って、出力文書中の表を作成し、この表の各欄に挿入する値を決定し（ステップＳ３６）、決定した値を含む出力文書を生成する（ステップＳ３８）。表の各欄に挿入する値を決定する際には、出力文書生成部１６０は、上述の［関数例１］の規則に従って、出力文書中の表の各行の「数量」および「区分」の値を決定する。図２７に、本例において生成される出力文書の一例を示す。図２７を参照し、出力文書中の表は、図２４の例の表の各情報レコード（文書ＩＤ「００３」；行「１」，「２」）に対応する行を有する。本例では、指定された継承元文書の文書情報ＤＢ１４０中の情報レコードの「挿入」の値は、すべて空なので、［関数例１］の（１）の場合に該当する。また、「行」、「品名」、および「型番」の値の組合せのそれぞれに対応する情報レコードは１つずつしか存在しない。したがって、各情報レコードは、その「行」、「品名」、および「型番」の組合せに対して最新の「数量」の値を含むものであると言える。以上より、図２４の例の表の情報レコードの各「行」の「数量」の値がそのまま、対応する出力文書中の表の行の「数量」に設定されている。また、出力文書中の表の各行の「区分」の値は「新規」に設定されている。
【００９２】
なお、第４実施形態の例において、出力文書生成部１６０は、出力文書の生成が完了すると、当該出力文書の生成のために取得した文書情報ＤＢ１４０中の情報レコードにおいて、「挿入」の項目の値を、出力文書の生成で参照されたことがある旨を表す「済み」に設定する。図２７の例の出力文書を生成する本例では、出力文書生成部１６０は、図２４の例の表における各行の項目「挿入」の値を「済み」に設定する。
【００９３】
第４実施形態の例においても、継承元文書をユーザが更新した場合に、このユーザの指示に応じて、更新後の継承元文書の文書情報の抽出および登録が行われることがある。例えば、図２２に例示する継承元文書中の表の内容をユーザが編集して、図２８に例示する内容にしたとする。図２８の例の継承元文書中の表では、品名「ｘｘｘ」，型番「ｙｙｙ」の「数量」の値が図２２における「３」から「５」に変更されている。図２８の例の継承元文書を指定して、ユーザが文書情報の抽出および登録を指示すると、サーバ１０の文書情報抽出部１２０および履歴登録部１３０により、当該文書の表の各欄の内容が抽出されて文書情報ＤＢ１４０に登録される。図２９に、この時点での文書情報ＤＢ１４０のデータ内容の例を示す。
【００９４】
図２９を参照し、行Ｌ２３，Ｌ２４の２つの情報レコードが、図２８の例の継承元文書の更新の履歴である。なお、図２９の例の表の行Ｌ２１，Ｌ２２は、図２４の例の表に示す２つの情報レコードと同じレコードである。ただし、行Ｌ２１，Ｌ２２では、項目「挿入」の値に「済み」が設定されており、これらの情報レコードの文書情報が出力文書（図２７参照）の生成で参照された後であることを表す。
【００９５】
文書情報ＤＢ１４０が図２９の例のデータ内容を備えるときに、文書ＩＤ「００３」の継承元文書を指定して出力文書の出力要求が行われた場合、サーバ１０の出力文書生成部１６０は、図２６の例の挿入スキーマと、図２９の例の行Ｌ２１〜Ｌ２４の情報レコードと、を用いて出力文書を生成する。この例では、継承元文書の情報レコード中に、項目「挿入」の値が「済み」であるものと「空」であるものとが混在することから、上述の挿入スキーマの［関数例１］の（２）の場合に該当する。行「１」、品名「ｘｘｘ」、および型番「ｙｙｙ」の組合せを含む情報レコードの集合は、図２９の行Ｌ２１，Ｌ２３の２つを含む。行Ｌ２１，Ｌ２３のうち、［関数例１］の（２）で定義されるレコードＡ（「挿入」が「空」であるものの中で操作日時が最新）は、行Ｌ２３であり、レコードＢ（「挿入」が「済み」であるものの中で操作日時が最新）は、行Ｌ２１である。両者の「数量」の値を比較すると、レコードＡである行Ｌ２３は「５」、レコードＢである行Ｌ２１は「３」で、レコードＡの「数量」の値が「２」だけ大きい。よって、行Ｌ２１，Ｌ２３については［関数例１］の（２）の（ｉ）の場合に該当し、出力文書の表で対応する行の「数量」の値は、レコードＡ，Ｂ間の「数量」の値の差分である「２」に設定され、「区分」の値は「追加」に設定される。また、図２９の例の行Ｌ２１〜Ｌ２４の情報レコードのうち、行「２」、品名「ａａａ」、および型番「ｂｂｂ」の組合せを含む情報レコードの集合は、図２９の行Ｌ２２，Ｌ２４の２つを含む。行Ｌ２２，Ｌ２４のうち、［関数例１］の（２）で定義されるレコードＡ（「挿入」が「空」であるものの中で操作日時が最新）は、行Ｌ２４であり、レコードＢ（「挿入」が「済み」であるものの中で操作日時が最新）は、行Ｌ２２である。両者の「数量」の値を比較すると、いずれも「１０」で一致する。よって、行Ｌ２２，Ｌ２４については［関数例１］の（２）の（ｉｉ）の場合に該当することから、出力文書中の表には、行「２」、品名「ａａａ」、および型番「ｂｂｂ」の組合せに対応する行は生成されない。以上で説明したように生成される出力文書の例を図３０に示す。図３０の例の出力文書中の表は、継承元文書の更新の前後で「数量」の値に変更のあった、品名「ｘｘｘ」および型番「ｙｙｙ」の組合せに対応する行を含み、継承元文書の更新の前後で「数量」の値に変更のなかった、品名「ａａａ」および型番「ｂｂｂ」の組合せに対応する行は含まない。
【００９６】
図３０の例の出力文書の生成の後、出力文書生成部１６０は、出力文書の生成で参照した文書情報ＤＢ１４０中の情報レコードのうち、項目「挿入」の値が空であった、図２９の行Ｌ２３，Ｌ２４の「挿入」の値を「済み」に設定する。
【００９７】
出力文書の生成のさらに他の例として、図２９に例示する行Ｌ２１〜Ｌ２４のすべての情報レコードの「挿入」の値が空である場合を考える。この例では、図２２の例の継承元文書の作成の履歴が文書情報ＤＢ１４０に登録され（図２４，図２９の行Ｌ２１，Ｌ２２）、この履歴を参照して出力文書（図２７）を生成する前に、継承元文書が図２８の例のとおりに更新されて、その更新の履歴が文書情報ＤＢ１４０に登録された（図２９の行Ｌ２３，Ｌ２４）とする。この例において、文書ＩＤ「００３」の継承元文書を指定した出力文書の出力要求に応じて、図２６の例の挿入スキーマに従って出力文書を生成する場合、指定された継承元文書の情報レコードのすべての「挿入」の値が空であるため、［関数例１］の（１）の場合に該当する。したがって、行「１」、品名「ｘｘｘ」、および型番「ｙｙｙ」の組合せと、行「２」、品名「ａａａ」、および型番「ｂｂｂ」の組合せと、のそれぞれについて、当該組合せを含む情報レコードの集合のうち最新の操作日時を含む情報レコードの「数量」の値が、出力文書中の表で対応する行の「数量」の値として設定される。さらに、各行の「区分」の値は「新規」となる。本例において、各組合せについて最新の情報レコードは行Ｌ２３，Ｌ２４であるため、出力文書には、品名「ｘｘｘ」および型番「ｙｙｙ」に対して数量「５」である行と、品名「ａａａ」および型番「ｂｂｂ」に対して数量「１０」である行とを含む表が生成される。本例の出力文書は、例えば、図２７に例示する出力文書において、表中の品名「ｘｘｘ」および型番「ｙｙｙ」の行の「数量」を「３」から「５」に変更したものであってよい。本例において、出力文書生成部１６０は、出力文書の生成が完了した後、指定された継承元文書について文書情報ＤＢ１４０から取得した情報レコード（行Ｌ２１〜Ｌ２４）のすべてにおいて、「挿入」の値を「済み」に設定する。つまり、実際に出力文書の表中に挿入する値の取得元となった、最新の情報レコード（行Ｌ２３，Ｌ２４）だけでなく、出力文書の表中に挿入する値の取得元にならなかった古い情報レコード（行Ｌ２１，Ｌ２２）についても、出力文書の生成のために「参照済み」であることから、「挿入」の値を「済み」に設定しておく。
【００９８】
＜変形例等＞
以上で説明した各種の実施形態の例は、本発明の実施の形態を限定するものではなく、本発明の実施の形態には、各種の変形例があってよい。
【００９９】
例えば、第４実施形態の例の上記の説明では、説明を簡単にするため、図２２の例の書式Ｅに従う継承元文書が１つだけ指定される場合の出力文書の生成の様子を説明した。しかし、第４実施形態の例においても、複数の継承元文書の文書情報から出力文書を生成するようにしてもよい。
【０１００】
例えば、図２５に例示する出力文書の書式において、表以外の部分に配置されている文字列「××市△町１−２−３」，「××商会」，「ＢＢＢ  様」を、第１実施形態および第２実施形態の例で説明したのと同様の処理によって出力文書に挿入してもよい。例えば、「住所」、「組織名」、および「担当者名」を含む継承元文書の書式Ａ（図２）に対応する抽出スキーマ（図３）を用いて、書式Ａの文書の文書情報を抽出して文書情報ＤＢ１４０に登録しておく。さらに、図２６に例示する挿入スキーマの記述に加えて、図８の例の挿入スキーマの「住所」、「組織名」、および「担当者名」に係る記述を含む挿入スキーマを用いて、図２２の例の書式Ｅの継承元文書だけでなく書式Ａの継承元文書をユーザに指定させて出力文書を生成すればよい。この場合、出力文書の表に係る部分は、上述の第４実施形態の例で説明したとおりの処理を行い、表の他の部分については、第１実施形態の例と同様の処理を行って、文書情報の対応する項目の値を出力文書に挿入すればよい。また、この例で用いる挿入スキーマにおいて、第２実施形態の例で説明したように、表に係る部分は書式Ｅの継承元文書から抽出された文書情報を用い、表の他の部分は書式Ａの継承元文書から抽出された文書情報を用いることを指示する記述を含めていてもよい。
【０１０１】
また例えば、第４実施形態の例において、表を含む継承元文書の書式Ｅに従う複数の継承元文書を指定して、出力文書を生成してもよい。この例の場合、例えば、指定された複数の継承元文書のそれぞれについて、上述の第４実施形態の例で説明したとおりに、出力文書の表中で対応する行の値を設定し、各継承元文書の文書情報に基づく行を並べて１つの表とすればよい。このとき、異なる継承元文書の文書情報に基づく複数の行であって同じ「品名」および「型番」を含む行が存在する場合、これらの行の「数量」の値を合計して１つの行として纏めてもよい。また、[関数例１]で示した規則に従って「数量」と「区分」の値を決定するようにしてもよい。
【０１０２】
また、変形例では、上述の第１実施形態〜第４実施形態の例の説明で用いた各種の抽出スキーマおよび挿入スキーマと異なる態様の抽出スキーマおよび挿入スキーマを用いてもよい。例えば、上述の各例の抽出スキーマおよび挿入スキーマでは、文書情報を抽出する領域および文書情報を挿入する領域は、すべて矩形領域で定義されている。当然ながら、これらの領域として、矩形の他の形状の領域を定義しておいてもよい。また例えば、上述の各例の抽出スキーマおよび挿入スキーマは、いずれも、ＸＭＬ形式で記述されている。変形例では、ＸＭＬ形式と異なる形式で記述された抽出スキーマおよび挿入スキーマを用いてもよい。文書情報の抽出および挿入の領域とその名前とを定義する情報を含み、サーバ１０において解釈可能な形式であれば、どのような形式の抽出スキーマおよび挿入スキーマを用いてもよい。
【０１０３】
なお、上述したサーバ１０の各種の機能の一部を端末２０に設けてもよい。
【０１０４】
以上に例示したサーバ１０は、典型的には、汎用のコンピュータにて上述のサーバ１０の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図３１に示すように、ＣＰＵ（中央演算装置）８０、メモリ（一次記憶）８２、各種Ｉ／Ｏ（入出力）インタフェース８４等がバス８６を介して接続された回路構成を有する。また、そのバス８６に対し、例えばＩ／Ｏインタフェース８４経由で、ハードディスクドライブ（ＨＤＤ）８８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ９０が接続される。このようなドライブ８８又は９０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ＨＤＤ８８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。
【０１０５】
なお、以上では、サーバ１０を１台のコンピュータにより実現する例の実施形態を説明したが、サーバ１０の上述の例の各種の機能を複数のコンピュータに分散させて実現してもよい。
【符号の説明】
【０１０６】
１０  サーバ、２０  端末、３０  ネットワーク、８０  ＣＰＵ、８２  メモリ、８４  Ｉ／Ｏインタフェース、８６  バス、８８  ＨＤＤ、９０  ディスクドライブ、１００  抽出スキーマ記憶部、１１０  文書ＩＤ付与部、１２０  文書情報抽出部、１３０  履歴登録部、１４０  文書情報ＤＢ、１５０  挿入スキーマ記憶部、１６０  出力文書生成部、１７０  更新処理部。
【図１】
0005729020.tif 000002
【図２】
0005729020.tif 000003
【図３】
0005729020.tif 000004
【図４】
0005729020.tif 000005
【図５】
0005729020.tif 000006
【図６】
0005729020.tif 000007
【図７】
0005729020.tif 000008
【図８】
0005729020.tif 000009
【図９】
0005729020.tif 000010
【図１０】
0005729020.tif 000011
【図１１】
0005729020.tif 000012
【図１２】
0005729020.tif 000013
【図１３】
0005729020.tif 000014
【図１４】
0005729020.tif 000015
【図１５】
0005729020.tif 000016
【図１６】
0005729020.tif 000017
【図１７】
0005729020.tif 000018
【図１８】
0005729020.tif 000019
【図１９】
0005729020.tif 000020
【図２０】
0005729020.tif 000021
【図２１】
0005729020.tif 000022
【図２２】
0005729020.tif 000023
【図２３】
0005729020.tif 000024
【図２４】
0005729020.tif 000025
【図２５】
0005729020.tif 000026
【図２６】
0005729020.tif 000027
【図２７】
0005729020.tif 000028
【図２８】
0005729020.tif 000029
【図２９】
0005729020.tif 000030
【図３０】
0005729020.tif 000031
【図３１】
0005729020.tif 000032