(57)【特許請求の範囲】
【請求項１】
データの文書内の物理的な配置に基づく階層構造を有する変換元構造文書をデータ内容の論理構造に基づく階層構造を有する変換先構造文書へ変換する変換規則の作成を支援する変換規則生成支援装置であって、  
前記変換規則のグラフィカルな表現を生成し、表示し、及び編集するためのユーザ・インタフェースであって、前記変換元構造文書の要素である入力要素を示す１のノードを前記変換先構造文書の要素である出力要素を各々示す複数のノードに対応付ける複数のリンクによって示される１対多変換規則、及び前記変換元構造文書の入力要素を各々示す複数のノードを前記変換先構造文書の出力要素を示す１のノードに対応付ける複数のリンクによって示される多対１変換規則の少なくとも一方の縮退した規則の生成を許容する前記ユーザ・インタフェースと、
前記グラフィカルな表現からテキスト形式の変換規則を求める復元部であって、前記１対多変換規則に対しては、前記１のノードが示す入力要素に関して前記複数のノードが示す複数の出力要素の各々を出力する出力順序を、前記変換先構造文書の前記階層構造における深さ優先順である出力ソート順に従い決定し、及び、前記多対１変換規則に対しては、前記複数のノードが示す複数の入力要素の各入力要素に関して前記１のノードが示す出力要素を出力する出力先を、該出力要素の親である出力要素に対応付けられた１以上の入力要素を前記変換元構造文書の階層構造における深さ優先順である入力ソート順に並べた場合に前記各入力要素の直前に位置する入力要素の出力先を参照して決定することにより、前記縮退したルールの縮退を解く前記復元部と、
を含む変換規則生成支援装置。
【請求項２】
前記変換規則のグラフィカルな表現は、入力要素を示すノードの集合、該集合における異なる２ノード間の階層関係を示すリンクの集合、出力要素を示すノードの集合、該集合における異なる２ノード間の階層関係を示すリンクの集合、及び前記入力要素を示すノードと前記出力要素を示すノードとの対応関係を示すリンクの集合を含み、
各ノード及び各リンクには、変換対象の構造文書の各要素に対して行うマッチングで使用するパターン及び出力に関するパラメータのうちの少なくとも１つが関連付けられており、
前記復元部は、前記入力要素を示すノードの集合から前記入力ソート順で取り出した処理対象の各ノードに対し、該ノードに関連付けられたパターンを用いたマッチングが前記変換対象の構造文書の要素に対して成功することを条件に、前記処理対象のノードにリンクにより対応付けられたノードが示す出力要素を、該リンク及び該出力要素を示すノードにそれぞれ関連付けられた出力に関するパラメータに基づいて出力すること指示するテキスト形式の変換規則を生成する、請求項１に記載の変換規則生成支援装置。
【請求項３】
前記変換規則のグラフィカルな表現は、入力要素を示すノードであって、入力要素と出力要素とを対応付けるリンクによって示される変換処理の適用を試みる前記変換対象の構造文書内の範囲を指定する前記ノードを、指定ノードとして含む、請求項２に記載の変換規則生成支援装置。    
【請求項４】
前記指定ノードは、該指定ノードの全ての子のノードを始点とするリンクによって示される一連の変換処理の適用を試みる範囲を、前記指定ノードの親のノードに関連付けられたパターンにマッチする前記変換対象の構造文書の要素の全ての子として指定する指定ノードである、請求項３に記載の変換規則生成支援装置。
【請求項５】
前記指定ノードは、該指定ノードの親のノードを始点とする複数のリンクのうち最後に処理されるリンクが示す変換処理の適用を試みる範囲を、前記指定ノードの前記親のノードに関連付けられたパターンにマッチする前記変換対象の構造文書の要素の後に位置する全ての兄弟として指定する指定ノードである、請求項３に記載の変換規則生成支援装置。
【請求項６】
前記指定ノードは、該指定ノードの全ての子ノードを始点とするリンクによって示される変換処理の適用を試みる範囲を、前記指定ノードに関連付けられた適用範囲の開始位置のマッチング用のパターンにマッチする前記変換対象の構造文書の要素から、前記指定ノードに関連付けられた適用範囲の終了位置のマッチング用のパターンにマッチする前記変換対象の構造文書の要素までとして指定する指定ノードである、請求項３に記載の変換規則生成支援装置。
【請求項７】
前記入力要素を示すノードの集合を前記入力ソート順に並べるリストを、（１）入力要素を示すノードｘＳから入力要素を示すノードｘＥへのリンクが存在する場合、ノードｘＳはノードｘＥより先とし、及び（２）入力要素を示すノードｘＳから複数の入力要素を示すノードｘＥｉ（ｉは１から始まる正の整数）へのリンクが存在する場合、ノードｘＥｉの左上端の座標をソートキーとして複数のノードｘＥｉの順序を決定することにより生成する、請求項２に記載の変換規則生成支援装置。
【請求項８】
前記出力要素を示すノードの集合を前記出力ソート順に並べるリストを、（１）出力要素を示すノードｙＳから出力要素を示すノードｙＥへのリンクが存在する場合、ノードｙＳはノードｙＥより先とし、及び（２）出力要素を示すノードｙＳから複数の出力要素を示すノードｙＥｉ（ｉは１から始まる正の整数）へのリンクが存在する場合、ノードｙＥｉの左上端の座標をソートキーとして複数のノードｙＥｉの順序を決定することにより生成する、請求項２に記載の変換規則生成支援装置。
【請求項９】
前記１対多変換規則によって、マッチング・パターンを関連付けられた入力要素を示す１のノードが、それぞれ出力に関するパラメータを関連付けられた複数のリンクにより各々出力要素を示す複数のノードに対応付けられ、
前記復元部は、前記１対多変換規則における前記入力要素を示す１のノードに対し、該ノードに関連付けられた前記マッチング・パターンによるマッチングが前記変換対象の構造文書の要素に対して成功することを条件に、前記１対多変換規則における前記出力要素を示す各ノードを前記出力ソート順で処理対象のノードとして、前記変換対象の構造文書の要素のテキストを、前記処理対象のノードと前記入力要素を示す１のノードとを対応付けるリンクに関連付けられた前記出力に関するパラメータに従って分割又は加工をして、前記処理対象のノードが示す出力要素として出力すること指示するテキスト形式の変換規則を生成する、請求項２に記載の変換規則生成支援装置。
【請求項１０】
前記多対１変換規則によって、異なる形式又は異なる位置に記載された同種の内容を表す入力要素を各々示す複数のノードと、出力要素を示す１のノードとが対応付けられ、
前記復元部は、前記多対１変換規則における前記入力要素を示す１の処理対象のノードに対し、該処理対象のノードに関連付けられたマッチング・パターンによるマッチングが前記変換対象の構造文書の要素に対して成功することを条件に、前記多対１変換規則における前記出力要素を示すノードの親のノードが示す出力要素に対応付けられた入力要素のうち、前記入力ソート順において前記処理対象のノードの直前に位置する入力要素に対して最後に出力した要素の子として前記多対１変換規則における前記出力要素を示すノードに関連付けられた要素名の要素を出力すること又は前記最後に出力した要素の属性値として前記変換対象の構造文書の要素のテキストを出力すること指示するテキスト形式の変換規則を生成する、請求項２に記載の変換規則生成支援装置。
【請求項１１】
前記文書内の部分のユーザ選択に応答して、選択部分に対する前記変換規則のグラフィカルな表現を生成するルール補完部を更に含み、
前記ルール補完部は、選択部分がテーブルの一部または全部である場合に、前記選択部分の先頭行に対して該行に対応する要素名を関連付けた親の出力要素を示すノード、及び該ノードの子として、前記先頭行の左端セルより右側の各セルに対して左から順に該セルに対応する属性名を関連付けた出力要素を示すノードを生成し、前記選択部分の先頭行左端のセルに対して、その位置座標を設定した位置座標のマッチング・パターンを関連付けた親の入力要素を示すノード、かつ該ノードを前記親の出力要素を示すノードに対応付けるリンクを生成し、前記選択部分の先頭行左端セルより右側の各セルに対して左から順に、最初の２セルのみ前記親の入力要素のノードの子として、残りのセルについては１つ前のセルに対応する入力要素のノードの子として、右を設定した走査方向のマッチング・パターンを関連付けた入力要素のノードを生成し、及び子の入力要素を示すノードの各々を対応する属性名を関連付けられた子の出力要素を示すノードに対応付けるリンクを生成する、請求項２に記載の変換規則生成支援装置。
【請求項１２】
前記文書内の部分のユーザ選択に応答して、選択部分に対する前記変換規則のグラフィカルな表現を生成するルール補完部を更に含み、
前記ルール補完部は、選択部分が複数のセクション行である場合に、前記選択部分の各セクション行に対して該行に対応する要素名を関連付けた親の出力要素を示すノードを生成し、前記選択部分の前記各セクション行に対して、該行の文字列を設定したリスト要素のテキストのマッチング・パターンを関連付けた親の入力要素を示すノードを生成し、前記親の出力要素を示す各ノードを対応する前記親の入力要素を示す各ノードに対応付けるリンクを生成し、及び前記親の入力要素を示す各ノードの直後に前記指定ノードを生成し、
前記指定ノードは、前記各セクション行の文字列を設定した前記適用範囲の開始位置のマッチング・パターンと、次のセクション行の文字列を設定した前記適用範囲の終了位置のマッチング・パターンを関連付けられている、請求項６に記載の変換規則生成支援装置。
【請求項１３】
前記変換規則のグラフィカルな表現を生成するルール補完部を更に含み、前記ルール補完部は、前記出力要素のノードの集合を前記出力ソート順に走査し、関連付けられた要素名又は属性名が同一である２ノードを検出することに応答して、一方のノードと該ノードの全子のノードにそれぞれ対応づけられた入力要素を示す複数のノードから、他方のノードと該ノードの全子ノードへのリンクが存在するか否か、かつ、前記他方のノードとその全子ノードにそれぞれ対応づけられた入力要素を示す複数のノードから、前記一方のノードと該ノードの全子ノードへのリンクが存在するか否かを判定し、どちらのリンクも１つも存在しないとの判定結果を条件に、前記２ノードを統合する、請求項２に記載の変換規則生成支援装置。
【請求項１４】
変換を希望する文書の物理構造をダンプした階層構造を有する構造文書から要素を抽出する抽出部と、
ダンプした前記階層構造の各要素を深さ優先順に処理対象として、該処理対象に前記復元部により復元された前記テキスト形式の変換規則を適用することにより、前記変換先構造文書を取得する変換部と、を更に有する請求項２に記載の変換規則生成支援装置。
【請求項１５】
コンピュータ・システムが実行する、データの文書内の物理的な配置に基づく階層構造を有する変換元構造文書をデータ内容の論理構造に基づく階層構造を有する変換先構造文書へ変換する変換規則の作成を支援する変換規則生成支援方法であって、
コンピュータ・システムが、変換規則のグラフィカルな表現であって、前記変換元構造文書の要素である入力要素を示す１のノードを前記変換先構造文書の要素である出力要素を各々示す複数のノードに対応付ける、１対多変換規則の縮退した変換規則を示す複数のリンクと、前記変換元構造文書の入力要素を各々示す複数のノードを前記変換先構造文書の出力要素を示す１のノードに対応付ける、多対１変換規則の縮退した変換規則を示す複数のリンクの少なくとも一方を含む前記変換規則のグラフィカル表現を、記憶装置から読み出すステップと、
コンピュータ・システムが、読み出した前記変換規則のグラフィカル表現が前記１対多変換規則であることに応答して、前記１のノードが示す入力要素に関して前記複数のノードが示す複数の出力要素の各々を出力する出力順序を、前記変換先構造文書の前記階層構造における深さ優先順である出力ソート順に従い決定し、及び、読み出した前記縮退した変換規則のグラフィカル表現が前記多対１変換規則であることに応答して、前記複数のノードが示す複数の入力要素の各入力要素に関して前記１のノードが示す出力要素を出力する出力先を、該出力要素の親である出力要素に対応付けられた１以上の入力要素を前記変換元構造文書の階層構造における深さ優先順である入力ソート順に並べた場合に前記各入力要素の直前に位置する入力要素の出力先を参照して決定するステップと、
を含む変換規則生成支援方法。
【請求項１６】
コンピュータ・システム上に、データの文書内の物理的な配置に基づく階層構造を有する変換元構造文書をデータ内容の論理構造に基づく階層構造を有する変換先構造文書へ変換する変換規則の作成を支援する変換規則生成支援装置を実現するためのコンピュータ実行可能なプログラムであって、前記コンピュータ・システムを、
前記変換規則のグラフィカルな表現を生成し、表示し、及び編集するためのユーザ・インタフェースであって、前記変換元構造文書の要素である入力要素を示す１のノードを前記変換先構造文書の要素である出力要素を各々示す複数のノードに対応付ける複数のリンクによって示される１対多変換規則、及び前記変換元構造文書の入力要素を各々示す複数のノードを前記変換先構造文書の出力要素を示す１のノードに対応付ける複数のリンクによって示される多対１変換規則の少なくとも一方の縮退したルールの生成を許容する前記ユーザ・インタフェースと、
前記グラフィカルな表現からテキスト形式の変換規則を求める復元部であって、前記１対多変換規則に対しては、前記１のノードが示す入力要素に関して前記複数のノードが示す複数の出力要素の各々を出力する出力順序を、前記変換先構造文書の前記階層構造における深さ優先順である出力ソート順に従い決定し、及び、前記多対１変換規則に対しては、前記複数のノードが示す複数の入力要素の各入力要素に関して前記１のノードが示す出力要素を出力する出力先を、該出力要素の親である出力要素に対応付けられた１以上の入力要素を前記変換元構造文書の階層構造における深さ優先順である入力ソート順に並べた場合に前記各入力要素の直前に位置する入力要素の出力先を参照して決定することにより、前記縮退した規則の縮退を解く前記復元部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書の変換技術に関し、より詳細には、物理的な配置に基づく階層構造をもつ構造文書からデータ内容の論理構造に基づく階層構造をもつ構造文書へ変換するための変換規則のコンパクトなグラフィカル表現を可能とする変換規則生成支援装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
オフィス文書等の汎用フォーマット文書に書かれた設計書や仕様書の分析では、前処理として、分析対象の文書ファイルを一旦ダンプして物理的な配置（シンタックス）に基づく階層構造をもつ構造文書を取得し、該構造文書からデータの内容（セマンティックス）に基づく階層構造をもつ構造文書への変換がなされる。そのため、プロジェクト固有の仕様書や設計書を分析する際には、対象に応じた変換規則を定義する作業が不可欠となる。
【０００３】
上記変換は、いわばスキーマを持たないものから持つものへの変換といえ、かかる特性のため変換に際し次のような要求がある。
（１）元の文書において異なる場所に又は異なる記述方法で記載されている情報を、論理的には同種の情報として出力したい。
（２）元の文書において一箇所に記載されている情報を、論理的には複数の異なる情報として別々に出力したい。
かかる要求が特に多いのは、対象文書がプロジェクト固有の書式・記法で書かれたワードプロセッサー・ファイルやスプレッドシートのマス目上に文書を配置したスプレッドシート・ファイルである場合である。そして上記要求は、変換元の構造文書の異なる複数の要素を、変換先の構造文書の同じ種類の複数の要素に出力する変換規則、変換元の構造文書の１の要素を、変換先の構造文書の異なる複数の要素に出力する変換規則として表され、記述が冗長になる。
【０００４】
ところで、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述された文書等の構造を持つ構造化文書の変換手法には様々な既存技術が存在する。例えばＸＳＬＴ（ＸＭＬ  Ｓｔｙｌｅｓｈｅｅｔ  Ｌａｎｇｕａｇｅ）は、ＸＭＬ文書を他のＸＭＬ文書に変換するための標準言語であり、ＸＳＬＴによって、ＸＭＬ文書の構造を別の形式に変形するための変換ルールが記述される（詳細は、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｓｌｔ２０／を参照）。また、ＭＯＦ（Ｍｅｔａ  Ｏｂｊｅｃｔ  Ｆａｃｉｌｉｔｙ）ＱＶＬ（Ｑｕｅｒｉｅｓ  Ｖｉｅｗ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ）は、モデル駆動型アーキテクチャにおけるモデル変換の標準であり、ソースモデルからターゲットモデルへの変換の標準的手法を定義する（詳細は、ｈｔｔｐ：／／ｗｗｗ．ｏｍｇ．ｏｒｇ／ｃｇｉ−ｂｉｎ／ｄｏｃ?ｐｔｃ／２００７−０７−０７を参照）。
【０００５】
上述した既存技術は、変換の手続きや規則を記述する変換言語（ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ｌａｎｇｕａｇｅ）として定義されており、様々な変換の記述が可能である。しかし、変換を定義する作業は一種のプログラミングであるといえ、専門の技術者でなければ習得するのは難しい。これに対処するために、変換の手順やルールをグラフィカルに記述する手法（ｇｒａｐｈｉｃａｌ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ｌａｎｇｕａｇｅ）やツールが存在する。そのような手法やツールとして、例えば、ＵＭＬＸやＳｏｆｔＰｒｏｊｅｃｔ社のｘｓｌ：ｅａｓｙが存在する。ＵＭＬＸはモデル変換のためのグラフィカルな記述手法であり（詳細は、ｈｔｔｐ：／／ｗｗｗ．ｅｃｌｉｐｓｅ．ｏｒｇ／ｇｍｔ／ｕｍｌｘ／ｄｏｃ／を参照）、ｘｓｌ：ｅａｓｙはＸＭＬ文書の変換を視覚的に設計するためのツールである（詳細は、ｈｔｔｐ：／／ｘｓｌ−ｅａｓｙ．ｃｏｍ／４．０／を参照）。これら手法やツールは、直感的に理解し易く使用者のスキル面での障壁を下げるという利点を持つ。
【０００６】
以下、本発明の先行技術調査において見つかったその他の従来技術を説明する。
【０００７】
特許文献１は、変換前の文書Ａの情報を変換後の文書Ｂの情報に変換する文書変換装置において、文書Ａと文書Ｂとを読取る入力装置と、文書Ａの各項目と文書Ｂの各項目とを表示して対応付けを操作するユーザ・インタフェース装置と、対応付けした各項目の情報を読取り、文書Ａ の情報を文書Ｂ の情報に変換して出力する変換実行装置とを有することを特徴とする文書変換装置を開示する（特許文献１の請求項１を参照）。また、特許文献１は、文書Ａと文書Ｂのうち一方がテキスト文書であり、他方が構造化文書であることを開示する（特許文献１の請求項２を参照）。更に特許文献１は、文書Ａの各項目と、前記文書Ｂの各項目の対応付けは、一対一、一対多、多対一、多対多それぞれ可能であることを開示する（特許文献１の請求項６を参照）。
【０００８】
特許文献２は、テンプレートの記述形式を、プレゼンテーションの方法を指定するスタイルと、スタイルと論理文書の対応づけを設定する対応ルールに分離し、それぞれを個別に編集する仕組みであるスタイル編集手段、対応ルール編集手段と、これらの編集手段によって作成したスタイルと対応ルールから、プレゼンテーションを生成する生成手段からなるマルチメディアプレゼンテーション生成システムを開示する。特許文献２はまた、論理文書とスタイルの対応づけに関して、論理文書の一要素から複数のスタイル要素と対応づけた記法を開示する(特許文献２の図５を参照)。そしてその処理手法として、特許文献２は、論理文書の各要素に対して指定されたスタイル要素をそれぞれ検索して対応づけ(特許文献２の図９、図７、及び段落（００２３）を参照)、検索結果をもとに値を代入することを開示する(特許文献２の図１０を参照)。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−１３９４４１号公報
【特許文献２】特開２００１−３４４２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、変換言語として定義される上記既存技術が対象とする変換は、スキーマを持たないものから持たないものへの変換、又はスキーマを持つものから持つものへの変換である。従って、いわばスキーマを持たないものから持つものへの変換といえる、シンタックスに基づく階層構造をもつ構造文書からセマンティックスに基づく階層構造をもつ構造文書への変換に対し、上記既存技術を適用することはできない。
【００１１】
また、変換の手順やルールをグラフィカルに記述する従来の手法や既存のツールは、基本的に変換言語を手続き的に記述するのと等価な情報量を図で表現する。そのため、これら手法やツールを利用しても、シンタックスに基づく階層構造をもつ構造文書からセマンティックスに基づく階層構造をもつ構造文書への変換における変換規則の記述の冗長さは、そのままグラフィカル表現上での重複となってユーザ作業労力を増大させる。
【００１２】
また、特許文献１の技術は、文書Ａの各項目と、文書Ｂの各項目の対応付けは、一対一、一対多、多対一、多対多それぞれ可能であることを開示するも、該対応付けに基づく具体的な変換方法については、文書Ａの項目に対応付けられた文書Ｂの項目が複数あるときには、それぞれに同一の値を出力し、文書Ｂの項目に対応付けられた文書Ａの項目が複数あるとき、数値項目に限りそれぞれの値を加算して出力することを開示するのみである（特許文献１の請求項６を参照）。即ち、特許文献１における一対多、多対一の対応付けは、上述した（１）、（２）の要求に基づく変換規則とは異なるものであり、特許文献１の技術は、同じ項目名、即ち、同一データではなく同種のデータ、が何度も繰り返し出現する記述の冗長さに対処するものではない。
【００１３】
また、特許文献２は、論理文書の一要素から複数のスタイル要素と対応づけた記法を開示するも、スタイル要素の検索（特許文献２の図９のステップ１０を参照）における検索順序、および列挙されたエレメントの出力順序(特許文献２の図９のステップ１２、１５、１６を参照)について何も述べていない。これは、特許文献２が、出力となるマルチメディアプレゼンテーションを示すスタイル要素の木構造 (特許文献２の図３を参照) が深さ1の単純なものを対象としており、「親であるカード部分の出力から子であるメディアを出力」という暗黙の順序だけを仮定すれば結果が一意に定まるためである。即ち、特許文献２では、上記一対多の対応付けを許容することにより生じる出力順序の曖昧性の問題は認識されておらずその解決手段の開示もないため、特許文献２の技術を深さが１より大きい階層構造をもつ構造文書に対し適用することはできない。
【００１４】
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、シンタックスに基づく階層構造をもつ変換元の構造文書の要素とセマンティックスに基づく階層構造をもつ変換先の構造文書の要素間の対応付けにおいて１対多、及び多対１の対応付けを許容することにより変換規則の記述の冗長さに対処すると同時に、１対多、及び多対１の対応付けを許容することにより曖昧になる出力順序及び出力先を、演算処理により一意に決定し、深さが１より大きい階層構造をもつ任意の構造文書に対して適用可能な、変換規則の作成を支援する変換規則生成支援装置、方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、上記従来技術の課題を解決するために、データの文書内の物理的な配置に基づく階層構造を有する変換元構造文書をデータ内容の論理構造に基づく階層構造を有する変換先構造文書へ変換する変換規則の作成を支援する変換規則生成支援装置であって、以下の特徴を有する変換規則生成支援装置を提供する。本発明の変換規則生成支援装置は、変換規則のグラフィカルな表現を生成し、表示し、及び編集するためのユーザ・インタフェースと、ユーザ・インタフェースによって生成された変換規則のグラフィカルな表現からテキスト形式の変換規則を求める復元部とを含む。上記ユーザ・インタフェースは、変換元構造文書の要素である入力要素を示す１のノードを変換先構造文書の要素である出力要素を各々示す複数のノードに対応付ける複数のリンクによって示される１対多変換規則と、変換元構造文書の入力要素を各々示す複数のノードを変換先構造文書の出力要素を示す１のノードに対応付ける複数のリンクによって示される多対１変換規則の少なくとも一方の縮退した規則の生成を許容する。上記復元部は、１対多変換規則に対しては、１のノードが示す入力要素に関して複数のノードが示す複数の出力要素の各々を出力する出力順序を、変換先構造文書の階層構造における深さ優先順である出力ソート順に従い決定することにより、一１対多変換規則の縮退を解く。また上記復元部は、多対１変換規則に対しては、複数のノードが示す複数の入力要素の各入力要素に関して１のノードが示す出力要素を出力する出力先を、該出力要素の親である出力要素に対応付けられた１以上の入力要素を変換元構造文書の階層構造における深さ優先順である入力ソート順に並べた場合に上記各入力要素の直前に位置する入力要素の出力先を参照して決定することにより、多対１変換規則の縮退を解く。
【００１６】
好ましくは、上記変換規則のグラフィカルな表現は、入力要素を示すノードの集合、該集合における異なる２ノード間の階層関係を示すリンクの集合、出力要素を示すノードの集合、該集合における異なる２ノード間の階層関係を示すリンクの集合、及び入力要素を示すノードと出力要素を示すノードとの対応関係を示すリンクの集合を含む。また、各ノード及び各リンクには、変換対象の構造文書の各要素に対して行うマッチングで使用するパターン及び出力に関するパラメータのうちの少なくとも１つが関連付けられる。そして上記復元部は、入力要素を示すノードの集合から入力ソート順で取り出した処理対象の各ノードに対し、該ノードに関連付けられたパターンを用いたマッチングが変換対象の構造文書の要素に対して成功することを条件に、処理対象のノードにリンクにより対応付けられたノードが示す出力要素を、該リンク及び該出力要素を示すノードにそれぞれ関連付けられた出力に関するパラメータに基づいて出力すること指示するテキスト形式の変換規則を生成する。
【００１７】
好ましくは、変換規則のグラフィカルな表現は、入力要素を示すノードであって、入力要素と出力要素とを対応付けるリンクによって示される変換処理の適用を試みる変換対象の構造文書内の範囲を指定する上記ノードを、指定ノードとして含む。
【００１８】
上記指定ノードは、該指定ノードの全ての子のノードを始点とするリンクによって示される一連の変換処理の適用を試みる範囲を、上記指定ノードの親のノードに関連付けられたパターンにマッチする変換対象の構造文書の要素の全ての子として指定する指定ノードであってよい。また、指定ノードは、該指定ノードの親のノードを始点とする複数のリンクのうち最後に処理されるリンクが示す変換処理の適用を試みる範囲を、上記指定ノードの親のノードに関連付けられたパターンにマッチする変換対象の構造文書の要素の後に位置する全ての兄弟として指定する指定ノードであってもよい。更にまた、指定ノードは、該指定ノードの全ての子ノードを始点とするリンクによって示される変換処理の適用を試みる範囲を、上記指定ノードに関連付けられた適用範囲の開始位置のマッチング・パターンにマッチする変換対象の構造文書の要素から、上記指定ノードに関連付けられた適用範囲の終了位置のマッチング・パターンにマッチする変換対象の構造文書の要素までとして指定する指定ノードであってもよい。
【００１９】
好ましくは、入力要素を示すノードの集合を入力ソート順に並べるリストを、（１）入力要素を示すノードｘＳから入力要素を示すノードｘＥへのリンクが存在する場合、ノードｘＳはノードｘＥより先とし、及び（２）入力要素を示すノードｘＳから複数の入力要素を示すノードｘＥｉ（ｉは１から始まる正の整数）へのリンクが存在する場合、ノードｘＥｉの左上端の座標をソートキーとして複数のノードｘＥｉの順序を決定することにより生成してよい。更にソートキーとしてノードｘＥｉ右下端の座標を追加してよく、優先度は、左上端のＹ座標、Ｘ座標、続いて右下端のＹ座標、Ｘ座標の順としてよい。
【００２０】
同様に、出力要素を示すノードの集合を出力ソート順に並べるリストを、（１）出力要素を示すノードｙＳから出力要素を示すノードｙＥへのリンクが存在する場合、ノードｙＳはノードｙＥより先とし、及び（２）出力要素を示すノードｙＳから複数の出力要素を示すノードｙＥｉ（ｉは１から始まる正の整数）へのリンクが存在する場合、ノードｙＥｉの左上端の座標をソートキーとして複数のノードｙＥｉの順序を決定することにより生成してよい。更にソートキーとしてノードｙＥｉの右下端の座標を追加してよく、優先度は、左上端のＹ座標、Ｘ座標、続いて右下端のＹ座標、Ｘ座標の順としてよい。
【００２１】
好ましくは、１対多変換規則によって、マッチング・パターンを関連付けられた入力要素を示す１のノードが、それぞれ出力に関するパラメータを関連付けられた複数のリンクにより各々出力要素を示す複数のノードに対応付けられる。そして復元部は、１対多変換規則における入力要素を示す１のノードに対し、該ノードに関連付けられたマッチング・パターンによるマッチングが変換対象の構造文書の要素に対して成功することを条件に、１対多変換規則における出力要素を示す各ノードを出力ソート順で処理対象のノードとして、変換対象の構造文書の要素のテキストを、処理対象のノードと入力要素を示す１のノードとを対応付けるリンクに関連付けられた出力に関するパラメータに従って分割又は加工をして、処理対象のノードが示す出力要素として出力すること指示するテキスト形式の変換規則を生成する。
【００２２】
好ましくは、多対１変換規則によって、異なる形式又は異なる位置に記載された同種の内容を表す入力要素を各々示す複数のノードと、出力要素を示す１のノードとが対応付けられる。そして上記復元部は、多対１変換ルールにおける入力要素を示す１の処理対象のノードに対し、該処理対象のノードに関連付けられたマッチング・パターンによるマッチングが変換対象の構造文書の要素に対して成功することを条件に、多対１変換規則における出力要素を示すノードの親のノードが示す出力要素に対応付けられた入力要素のうち、入力ソート順において処理対象のノードの直前に位置する入力要素に対して最後に出力した要素の子要素として多対１変換規則における出力要素を示すノードに関連付けられた要素名の要素を出力すること又は最後に出力した要素の属性値として上記変換対象の構造文書の要素のテキストを出力すること指示するテキスト形式の変換規則を生成する。
【００２３】
好ましくは、上記変換規則生成支援装置は、上記文書内の部分のユーザ選択に応答して、選択部分に対する変換規則のグラフィカルな表現を生成するルール補完部を更に含む。そしてルール補完部は、選択部分がテーブルの一部または全部である場合に、選択部分の先頭行に対して該行に対応する要素名を関連付けた親の出力要素を示すノード、及び該ノードの子として、先頭行左端セルより右側の各セルに対して左から順に該セルに対応する属性名を関連付けた出力要素を示すノードを生成し、選択部分の先頭行左端のセルに対して、その位置座標を設定した位置座標のマッチング・パターンを関連付けた親の入力要素を示すノード、かつ該ノードを前記親の出力要素を示すノードに対応付けるリンクを生成し、選択部分の先頭行左端セルより右側の各セルに対して左から順に、最初の２セルのみ前記親の入力要素のノードの子として、残りのセルについては１つ前のセルに対応する入力要素のノードの子として、右を設定した走査方向のマッチング・パターンを関連付けた入力要素のノードを生成し、及び子の入力要素を示すノードの各々を対応する属性名を関連付けられた子の出力要素を示すノードに対応付けるリンクを生成する。
【００２４】
また、上記ルール補完部は、選択部分が複数のセクション行である場合に、選択部分の各セクション行に対して該行に対応する要素名を関連付けた親の出力要素を示すノードを生成し、選択部分の各セクション行に対して、行の文字列を設定したリスト要素のマッチング・パターンを関連付けた親の入力要素を示すノードを生成し、親の出力要素を示す各ノードを対応する親の入力要素を示す各ノードに対応付けるリンクを生成し、及び各親の入力要素を示すノードの直後に、指定ノードであって、該指定ノードの全ての子ノードを始点とするリンクによって示される変換処理の適用を試みる変換対象の構造文書内の範囲を指定する指定情報を関連付けられた指定ノードを生成する。ここで指定情報は、セクション行の文字列を設定された適用範囲の開始位置のマッチング・パターンと、次のセクション行の文字列を設定された適用範囲の終了位置のマッチング・パターンとを含む。
【００２５】
好ましくは、上記ルール補完部は、出力要素のノードの集合を出力ソート順に走査し、関連付けられた要素名又は属性名が同一である２ノードを検出することに応答して、一方のノードと該ノードの全子のノードにそれぞれ対応づけられた入力要素を示す複数のノードから、他方のノードと該ノードの全子ノードへのリンクが存在するか否か、かつ、上記他方のノードとその全子ノードにそれぞれ対応づけられた入力要素を示す複数のノードから、上記一方のノードと該ノードの全子ノードへのリンクが存在するか否かを判定し、どちらのリンクも１つも存在しないとの判定結果を条件に、検出した上記２ノードを統合する。
【００２６】
好ましくは、上記変換規則生成支援装置は、変換を希望する文書の物理構造をダンプした階層構造を有する構造文書から要素を抽出する抽出部と、ダンプした上記階層構造の各要素を深さ優先順に処理対象として、該処理対象に上記復元部により復元されたテキスト形式の変換規則を適用することにより、変換先構造文書を取得する変換部とを更に含む。
【００２７】
以上、変換規則生成支援装置として本発明を説明した。しかし本発明は、そのような変換規則生成支援装置によって実施される変換規則生成支援方法、及びそのような変換規則生成支援装置によってインストールされて実行される変換規則生成支援プログラムとして把握することもできる。
【発明の効果】
【００２８】
本発明によれば、シンタックスに基づく階層構造を有する変換元の構造文書の要素とセマンティックに基づく階層構造を有する変換先の構造文書の要素間の対応付けにおいて１対多、及び多対１の対応付けを許容することにより変換規則の記述の冗長さに対処すると同時に、１対多、及び多対１の対応付けを許容することにより曖昧になる出力順序及び出力先を、演算処理により一意に決定することが可能となる。結果、本発明によれば、深さが１より大きい階層構造をもつ任意の構造文書に対して適用可能な、変換規則の作成を支援する変換規則生成支援装置、方法、およびプログラムが提供される。  
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態による変換規則生成支援装置１００の機能ブロック図。
【図２】本発明の実施形態によるユーザ・インタフェース１０５の一例を示す図。
【図３】変換対象の文書の一例（画面一覧定義書）を示す図。
【図４】図３に示す画面一覧定義書の物理構造をダンプした階層構造を示す図。
【図５】変換対象の文書の他の一例（図３に示す画面一覧定義書と同じ仕様書の他の画面一覧定義書）を示す図。
【図６】図５に示す画面一覧定義書の物理構造をダンプした階層構造を示す図。
【図７】図４及び図６に示す階層構造に対する変換先構造文書の階層構造の一例を示す図。
【図８】図３及び図５に示す画面一覧定義書に基づき生成される、縮退前の変換規則のグラフィカル表現を示す図。
【図９】図３及び図５に示す画面一覧定義書に基づき生成される、縮退後の変換規則のグラフィカル表現を示す図。
【図１０】本発明の実施形態におけるｄｅｄｕｃｅ＿ｏｕｔｐｕｔ＿ｐｒｅｐ関数の擬似コードを説明する概念図。
【図１１】本発明の実施形態におけるｄｅｄｕｃｅ＿ｏｕｔｐｕｔ関数の擬似コードを説明する概念図。
【図１２】本発明の実施形態におけるｄｅｄｕｃｅ＿ｉｎｐｕｔ＿ｐｒｅｐ関数の擬似コードを説明する概念図。
【図１３】本発明の実施形態におけるｄｅｄｕｃｅ＿ｉｎｐｕｔ関数の擬似コードを説明する概念図。
【図１４】本発明の実施形態による復元部１１５の機能としてのｍａｉｎ関数の擬似コードを説明する概念図。
【図１５】図１４に示すｍａｉｎ関数から呼び出されるｓｕｂ関数の擬似コードを説明する概念図。
【図１６】図９に示す変換規則のグラフィカル表現に対応するテキスト形式の変換規則を示す図。
【図１７】図１７（ａ）は、本発明の実施形態による抽出部１２０の機能としてのｍａｉｎ関数の擬似コードを説明する概念図。図１７（ｂ）は、本発明の実施形態におけるｓｕｂ＿ｓｐｒｅａｄｓｅｅｔ関数の擬似コードを説明する概念図。
【図１８】図１８（ａ）は、本発明の実施形態による変換部１２５の機能としてのｍａｉｎ関数の擬似コードを説明する概念図。図１８（ｂ）は、図１８（ａ）に示すｍａｉｎ関数から呼び出されるｓｕｂ関数の擬似コードを説明する概念図。
【図１９】本発明の実施形態によるルール補完処理の全体の流れを示すフローチャート。
【図２０】図１９のステップ１９１０のテーブル部分の自動切り出し処理のフローチャート。
【図２１】図１９のステップ１９２０のセクション部分の自動切り出し処理のフローチャート。
【図２２】本発明の実施形態による復元処理の全体の流れを示すフローチャート。
【図２３】図２２のステップ２２１５の最も近い入力要素の決定処理のフローチャート。
【図２４】本発明の実施形態による抽出・変換処理の全体の流れを示すフローチャート。
【図２５】本願発明の実施形態による変換規則生成支援装置１００を実現するのに好適な情報処理装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００３０】
以下、本願発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００３１】
図１は、本発明の実施形態による変換規則生成支援装置１００の機能ブロックを示す。変換規則生成支援装置１００は、ユーザ・インタフェース１０５と、ルール補完部１１０と、復元部１１５と、抽出部１２０と、変換部１２５とを含む。
【００３２】
オフィス文書等の汎用フォーマット文書に書かれた設計書や仕様書の分析では、前処理として、対象とする文書に合わせて、物理的な配置（シンタックス）に基づく階層構造からデータ内容（セマンティック）に基づく階層構造への変換する変換規則をユーザが定義する必要がある。ユーザ・インタフェース１０５は、そのような変換規則のグラフィカル表現を、ユーザの指示に基づいて生成し、表示し、編集し、保存し及び読み込む。
【００３３】
しかし本発明が対象とする上記変換は、いわばスキーマを持たないものから持つものへの変換であるため、上述したように変換規則の記述の冗長さが問題となる。ユーザ・インタフェース１０５は、シンタックスに基づく階層構造を有する変換元構造文書とセマンティックに基づく階層構造を有する変換先構造文書の要素間の１対多、多対１の対応付けをユーザが指示することを許容し、縮退した変換規則のグラフィカル表現を生成することで、グラフィカル表現上での重複をなくし、よりコンパクトで見やすいグラフィカル表現の変換規則Ｄ６５を提供する。
【００３４】
上記グラフィカル表現の変換規則Ｄ６５はまた、ルール補完部１１０によっても生成される。即ち、ルール補完部１１０は、変換元構造文書のダンプ前の文書、即ちオリジナルの文書の部分のユーザによる選択に応じて、選択部分に対し縮退した変換規則のグラフィカル表現を自動で生成する。ルール補完部１１０によるグラフィカル表現の変換規則Ｄ６５の一部の自動生成により、ユーザ・インタフェース１０５を用いたユーザによる変換規則作成の作業負担が軽減される。
【００３５】
ユーザ・インタフェース１０５又はユーザ・インタフェース１０５とルール補完部１１０の両方によって生成されたグラフィカル表現の変換規則Ｄ６５は、復元部１１５によって、コンピュータによる処理が可能な形式、一例としてテキスト形式の縮退のない変換規則Ｆ７０に復元される。即ち、１対多若しくは多対１又はその両方の対応付けを許容することにより、生成されるグラフィカル表現の変換規則Ｄ６５は出力順序及び出力先について曖昧さを含んでしまう。復元部１１５は、かかる曖昧な出力順序及び出力先を演算処理により一意に決定し、縮退のない変換規則Ｆ７０を生成する。
【００３６】
抽出部１２０は、入力として変換対象の文書Ａ６０を受け取り、該文書Ａ６０の物理構造をダンプして、該物理構造の階層構造をもつ変換元の構造文書Ｐ７５を出力する。変換部１２５は、入力として変換元の構造文書Ｐ７５と変換規則Ｆ７０とを受け取り、構造文書Ｐ７５の階層構造の各要素を深さ優先順に処理対象として、該処理対象に変換規則Ｆ７０を適用することにより、変換先構造文書Ｑ８０を出力する。以下、変換規則生成支援装置１００の各構成要素の詳細を順に説明する。
【００３７】
ユーザ・インタフェース１０５は、ユーザの指示に基づいて、シンタックスに基づく階層構造を有する変換元構造文書をセマンティックに基づく階層構造を有する変換先構造文書に変換するグラフィカル表現の変換規則Ｄ６５を生成し、表示し、編集し、保存し及び読み込む。
【００３８】
ユーザ・インタフェース１０５により生成されるグラフィカル表現の変換規則Ｄ６５は、変換元構造文書の要素である入力要素を示すノードｘの集合Ｘ、集合Ｘにおける異なる２ノードｘ１、ｘ２間の階層関係を示すリンクｍの集合Ｍ、変換先構造文書の要素である出力要素を示すノードｙの集合Ｙ、集合Ｙにおける異なる２ノードｙ１、ｙ２間の階層関係を示すリンクｎの集合Ｎ、及び入力要素を示すノードｘと出力要素を示すノードｙとの対応関係を示すリンクｌの集合Ｌを含む。なお、階層構造上ノードｘ１が示す入力要素が、ノードｘ２が示す入力要素の親であるとき、ノードｘ１とノードｘ２を結ぶリンクｍの始点はノードｘ１であり、終点はノードｘ２であるとする。同様に、階層構造上ノードｙ１が示す出力要素が、ノードｙ２が示す出力要素の親であるとき、ノードｙ１とノードｙ２を結ぶリンクｎの始点はノードｙ１であり、終点はノードｙ２であるとする。また、各ノードｘ∈Ｘは、複数のリンクｌ∈Ｌの始点と、各ノードｙ∈Ｙは、複数のリンクｌ∈Ｌの終点と、それぞれなり得るものとする。
【００３９】
また、各ノード、各リンクには、変換対象となる構造文書の各要素に対して行うマッチングで使用するパターン及び出力に関するパラメータのうちの少なくとも一方が関連付けられる。ここで出力に関するパラメータには、出力すべき要素の要素名、属性名、出力する属性値に対する文字列のマッチング・パターン及び置換文字列、及び属性値に対する追記の仕方（例えば、属性値の末尾と先頭のいずれに追加するかの指定、追記の際の区切り文字の指定など）が含まれる。詳細については復元部１１５に関連して後述する。
【００４０】
グラフィカル表現の変換規則Ｄ６５はまた、入力要素を示すノードと出力要素を示すノードとを対応付けるリンクによって示される変換処理の適用を試みる変換対象の構造文書内の範囲を指定するノードである指定ノードを、入力要素を示すノードとして含む。本実施例では、指定ノードとして、ａｌｌＣｈｉｌｄｒｅｎノード、ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒノード、ｒａｎｇｅノードの３つのノードを説明する。
【００４１】
ａｌｌＣｈｉｌｄｒｅｎノードは、該ノードの全ての子のノードを始点とするリンクｌによって示される一連の変換処理の適用を試みる範囲を、ａｌｌＣｈｉｌｄｒｅｎノードの親のノードに関連付けられたパターンにマッチする変換対象の構造文書の要素の全ての子として指定する指定ノードである。
【００４２】
ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒノードは、該ノードの親のノードを始点とする複数のリンクｌのうち最後に処理されるリンクｌが示す変換処理の適用を試みる範囲を、ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒの親のノードに関連付けられたパターンにマッチする変換対象の構造文書の要素の後に位置する全ての兄弟として指定する指定ノードである。
【００４３】
ｒａｎｇｅノードは、ｒａｎｇｅノードの子ノードを始点とする全てのリンクｌによって示される変換処理の適用を試みる範囲を、ｒａｎｇｅノードに関連付けられた適用範囲の開始位置のテキスト・パターンにマッチする変換対象の構造文書の要素から、ｒａｎｇｅノードに関連付けられた適用範囲の終了位置のテキスト・パターンにマッチする変換対象の構造文書の要素までとして指定する指定ノードである。
【００４４】
上記のようなグラフィカル表現の変換規則Ｄ６５を生成するために、ユーザ・インタフェース１０５は、好ましくは次の操作を行うための機能を提供する。
（１）グラフィカル表現の変換規則Ｄ６５を構成するノード及びリンクをメニューやパレットから選択し追加する。
（２）ノード及びリンクの位置及びサイズを変更する。
（３）ノード及びリンクのパターン及びパラメータを設定する。
（４）ノード及びリンクを削除する。
（５）グラフィカル表現の変換規則Ｄ６５の保存及び読み込みを行う。
そして、ユーザ・インタフェース１０５は、ユーザの操作に基づいて、入力要素を示す１のノードｘを、出力要素を各々示す複数のノードｙに対応付ける複数のリンクｌによって示される１対多変換規則を生成し、縮退した変換規則の生成を許容する。同様に、ユーザ・インタフェース１０５は、ユーザの操作に基づいて、入力要素を各々示す複数のノードｘを、出力要素を示す１のノードｙに対応付ける複数のリンクｌによって示される多対１変換規則を生成し、縮退した変換規則の生成を許容する。
【００４５】
図２は、ユーザ・インタフェース１０５の一例を示す。図２に示すユーザ・インタフェース１０５は、画面向かって右側に、グラフィカル表現の変換規則Ｄ６５の構成要素を選択し追加するためのパレット２０５を表示する。パレット２０５は、出力要素を示すノードｙ、及び集合Ｙにおける異なる２ノードｙ１、ｙ２間の階層関係を示すリンクｎを作成するための複数のアイコン２１０と、入力要素を示すノードｘを作成するための複数のアイコン２１５とを含む。またパレット２０５は、ノードやリンクのパラメータを設定するためのアイコン２２０も含む。なお図示はしていないが、パレット２０５は、集合Ｘにおける異なる２ノードｘ１、ｘ２間の階層関係を示すリンクｍ、及び入力要素を示すノードｘと出力要素を示すノードｙとの対応関係を示すリンクｌをそれぞれ作成するための複数のアイコンを更に含んでもよい。
【００４６】
図２に示すユーザ・インタフェース１０５はまた、画面向かって左側に、グラフィカル表現の変換規則Ｄ６５を作成するための作業領域２２５を表示する。ユーザは、パレット２０５の複数のアイコン２１０のうちの１を選択した状態で、作業領域２２５の作成希望位置でマウスの左クリックを繰り返すことにより、出力要素を示す複数のノードｙの集合Ｙとその階層関係ｎの集合Ｎ２３０とを作成できる。また、ユーザは、パレット２０５の複数のアイコン２１５のうちの１を選択した状態で、作業領域２２５の作成希望位置でマウスの左クリックを繰り返すことにより、入力要素を示す複数のノードｘの集合Ｘとその階層関係ｍの集合Ｍ２３５とを作成できる。更にユーザは、パレット２０５のアイコン２２０を選択した状態で、作業領域２２５に作成された任意のノード又はリンクをマウスでクリックすることで、クリックしたノード又はリンクにパラメータを設定できる。但し、図２に示すユーザ・インタフェース１０５は説明のための例示であり、ユーザ・インタフェース１０５は図２に示す態様に限定されるわけではない。
【００４７】
なお、グラフィカル表現の変換規則Ｄ６５を構成する個々のノードｘ、ｙの位置及びサイズについては、それぞれ、リンクｍの集合Ｍによって変換元構造文書のシンタックスに基づく階層構造が正しく表され、リンクｎの集合Ｎによって変換先構造文書のセマンティックに基づく階層構造が正しく表される限り、制限はない。もちろん、これら階層構造の情報を別途用意しておいてもよい。本実施例における個々のノードｘ、ｙの位置及びサイズは、それぞれ、変換元構造文書の階層構造における深さ優先順である入力ソート順、また、変換先構造文書の前記階層構造における深さ優先順である出力ソート順が、以下に説明する方法によって求まるように決定される。
【００４８】
本実施例において、入力ソート順は次のように決定される。
（１）入力要素を示すノードｘ１から入力要素を示すノードｘ２へのリンクが存在する場合、ノードｘ１はノードｘ２より先とする。
（２）入力要素を示すノードｘ１から複数の入力要素を示すノードｘｉ（ｉは２から始まる正の整数）へのリンクが存在する場合、ノードｘｉの左上端の座標をソートキーとして複数のノードｘｉの順序を決定する。更にソートキーとしてノードｘｉの右下端の座標を追加してよく、この場合優先度は順に、ノードｘｉの左上端のＹ座標、Ｘ座標、ノードｘｉの右下端のＹ座標、Ｘ座標としてよい。
【００４９】
同様に本実施例において出力ソート順は次のように決定される。
（１）出力要素を示すノードｙ１から出力要素を示すノードｙ２へのリンクが存在する場合、ノードｙ１はノードｙ２より先とする。
（２）出力要素を示すノードｙ１から複数の出力要素を示すノードｙｉ（ｉは２から始まる正の整数）へのリンクが存在する場合、ノードｙｉの左上端の座標をソートキーとして複数のノードｙｉの順序を決定する。更にソートキーとしてノードｙｉの右下端の座標を追加してよく、この場合優先度は順に、ノードｙｉの左上端のＹ座標、Ｘ座標、ノードｙｉの右下端のＹ座標、Ｘ座標としてよい。
【００５０】
ルール補完部１１０は、変換対象の文書内の部分のユーザ選択に応答して、選択部分に対するグラフィカル表現の変換規則Ｄ６５を自動で生成する。より具体的には、ルール補完部１１０は、選択部分がテーブルである否か判定し、選択部分がテーブルである場合に、テーブルに対応する縮退した変換規則を含まないグラフィカル表現の変換規則Ｄ６５を生成する。また、ルール補完部１１０は、選択部分がセクション行である否か判定し、選択部分がセクション行である場合に、セクション行に対応する縮退した変換規則を含まないグラフィカル表現の変換規則Ｄ６５を生成する。そしてルール補完部１１０は、自動生成したグラフィカル表現の変換規則Ｄ６５を検索し、共通の子である要素が見つかった場合にこれを集約して、最終的に縮退した変換規則を含むグラフィカル表現の変換規則Ｄ６５を出力する。以下、図３乃至図９を参照してルール補完部１１０による処理の詳細を説明する。
【００５１】
図３は、変換対象の文書の例としての画面一覧定義書を示す。図４は、図３に示す画面一覧定義書の物理構造をダンプした階層構造を示す。図５は、変換対象の文書の例としての他の画面一覧定義書を示す。図６は、図５に示す画面一覧定義書の物理構造をダンプした階層構造を示す。図７は、図４及び図６に示す階層構造に対する変換先構造文書の階層構造の一例を示す。図８は、図３及び図５に示す画面一覧定義書に基づき生成される、縮退前の変換規則のグラフィカル表現を示す。図９は、図３及び図５に示す画面一覧定義書に基づき生成される、縮退後の変換規則のグラフィカル表現を示す。
【００５２】
図３に示す画面一覧定義書では、一覧がスプレッドシートにテーブル形式で記載されている。また、図５に示す画面一覧定義書では、一覧がＷｏｒｄ文書に箇条書きで記載されている。しかし２つの定義書の仕様書は同じである。従って、これら２つの画面一覧定義書の物理構造の階層構造を図７に示す階層構造に変換して、１つの画面一覧定義書にまとめたいという要求がある。そのためのグラフィカル表現の変換規則は、以下に説明するルール補完部１１０の処理により多くの部分を自動で生成され得る。まず、図３、４、７、及び８を参照して、選択部分がテーブルの全部又は一部である場合のテーブル自動切り出し処理を説明する。続いて、図５、６、７、及び８を参照して、選択部分がセクションである場合のセクション自動切り出し処理を説明する。最後に図８及び９を参照して、集約処理を説明する。
【００５３】
テーブル自動切り出し処理において、ルール補完部１１０はまず、ユーザによる選択部分（図３のスプレッドシート３００の部分３０５を参照）を指定する情報を取得する。そしてルール補完部１１０は、取得した情報に基づき選択部分がテーブルの一部または全部であることを確認すると以下の処理を行う。
（１）選択部分の先頭行（図３のスプレッドシート３００の行３１０を参照）に対して、該行に対応する要素名を関連付けた出力要素を示すノード（図８のノード８１５を参照）を生成する。
（２）上記出力要素を示すノードの子として、先頭行左端セルより右側の各セル（図３のスプレッドシート３００の座標（Ｂ、４）、（Ｃ、４）、（Ｄ，４）、（Ｅ、４）の各セルを参照）に対して左から順に、該セルに対応する属性名を関連付けた出力要素を示すノード（図８のノードの集合８２０を参照）を生成する。
（３）選択部分の先頭行左端セル（図３のスプレッドシート３００の座標（Ａ、４）のセルを参照）に対して、該セルの位置座標を設定した位置座標のマッチング用のパターンを関連付けた親の入力要素を示すノード（図８のノード８２５を参照）を生成する。また、生成したノードを上記親の出力要素を示すノードに対応付けるリンク（図８のリンク８３５を参照）を生成する。
（４）選択部分の先頭行左端セルより右側の各セル（図３のスプレッドシート３００の座標（Ｂ、４）、（Ｃ、４）、（Ｄ、４）、（Ｅ、４）の各セルを参照）に対して左から順に、最初の２セルのみ上記親の入力要素の子として、残りのセルについては１つ前のセルに対応する入力要素のノードの子として、右を設定した走査方向のマッチング用のパターンを関連付けた入力要素のノード（図８のノードの集合８３０を参照）を生成する。
（５）子の入力要素を示すノードの各々を対応する属性名を関連付けられた子の出力要素を示すノードに対応付けるリンク（図８のリンクの集合８４０を参照）を生成する。
【００５４】
なお、ユーザによる選択部分がスプレッドシート全体（図３のスプレッドシート３００の部分３１５を参照）である場合には、上記各処理の前に次の処理が加わる。
（１‘）選択されたシート（図３のスプレッドシート３００の部分３１５を参照）に対して、該シートに対応する要素名を関連付けた出力要素を示すノード（図８のノード８０１を参照）を生成する。
（２‘）選択されたシート（図３のスプレッドシート３００の部分３１５を参照）に対して、選択されたシートのシート名を設定したシート要素のテキスト・パターンを関連付けられた入力要素のノード（図８のノード８０３を参照）を生成する。また、生成したノードを、上記出力要素を示すノードに対応付けるリンク（図８のリンク８０２を参照）を生成する。
（３‘）上記入力要素のノードの子として、ａｌｌＣｈｉｌｄｒｅｎノード（図８のノード８０４を参照）を生成する。
なお、選択部分の先頭行左端セル（図３のスプレッドシート３００の座標（Ａ、４）のセルを参照）に対して生成された親の入力要素を示すノード（図８のノード８２５を参照）は、ａｌｌＣｈｉｌｄｒｅｎノードの子となる。
【００５５】
また、ユーザによる選択部分がスプレッドシートのある行全体である場合には、上記（１）から（５）の処理に代えて、ルール補完部１１０は次の処理を行う。
（１）選択された行に対して、該行に対応する要素名を関連付けた親の出力要素を示すノードを生成する。
（２）上記出力要素を示すノードの子として、選択された行の文字列を属性名として関連付けた出力要素を示すノードを生成する。
（３）選択された行の空白でない最も左のセルに対して、該セルの値を設定した文字列のマッチング・パターンを関連付けた親の入力要素を示すノードを生成する。また、生成したノードを上記親の出力要素を示すノードに対応付けるリンクを生成する。
（４）上記親の入力要素を示すノードの子として、入力要素を示すノードを生成し、該ノードを上記子の出力要素を示すノードに対応付けるリンクを生成する。
（５）上記子の入力要素を示すノードの子として、ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒノードを生成し、該ノードを上記子の出力要素を示すノードに対応付けるリンクを生成する。
【００５６】
次にセクションの自動切り出し処理において、ルール補完部１１０はまず、ユーザによる選択部分（図５のＷｏｒｄ文書５００の部分５０５を参照、但し、図示しないが選択部分は「・４．サブシステム帳票定義」のセクション行も含む）を指定する情報を取得する。そしてルール補完部１１０は、取得した情報に基づき選択部分がセクションであることを確認すると以下の処理を行う。
（１）選択部分の各セクション行（図５のＷｏｒｄ文書５００の部分５０５を参照、但し、図示しないが選択部分は「・４．サブシステム帳票定義」のセクション行も含む）に対して各セクション行の文字列（セクション名）に対応する要素名を関連付けた出力要素を示すノード（図８のノード８６０を参照）を生成する。
（２）選択部分の各セクション行（図５のＷｏｒｄ文書５００の部分５０５を参照、但し、図示しないが選択部分は「・４．サブシステム帳票定義」のセクション行も含む）に対して、該行の文字列を設定したリスト要素のテキスト・パターンを関連付けた入力要素を示すノード（図８のノード８７０を参照）を生成する。該ノードを対応する親の出力要素を示すノードに対応付けるリンク（図８のリンク８６５を参照）を生成する。
（３）親の入力要素を示す各ノードの直後に、ｒａｎｇｅノード（図８のノード８７５を参照）を生成する。ここでｒａｎｇｅノードの指定情報は、適用範囲の開始位置のテキスト・パターンに各セクション行の文字列を、適用範囲の終了位置のテキスト・パターンに次のセクション行の文字列を設定する。
【００５７】
なお、上記テーブル自動切り出し処理及びセクション自動切り出し処理において要素名や属性名は、それぞれ、テーブルの選択部分のセル値、又は各セクション行の文字列（セクション名）に基づいて決定してよい。具体的には、次の手順で決定してよい。
（１）セル値である各文字列、又は各セクション行の文字列（セクション名）を変換する。変換は、事前に作成した、一般的な語句について文字列パターンから名称パターンを対応付けるテーブルを参照してよい。又は、一般的な翻訳システムを使用してもよい。
（２）変換後の文字列から、要素名／属性名に使用できる文字以外の文字部分を削除する。
（３）要素名／属性名として有効な値になるよう、必要に応じてランダムな文字列を追加する。また、自動生成する各ノードの位置は、ユーザ・インタフェース１０５に関して説明したとおりであり、一例としてＸ座標（水平方向）とＹ座標（垂直方向）の２次元座標において子は親の右下、同じ親の複数の子は、Ｘ座標は同一でＹ座標を異ならせるとの規則に基づいて決定してもよい。
【００５８】
上述したいずれかの方法により又はユーザ・インタフェース１０５もしくはその両方により、縮退した変換規則を含まないグラフィカル表現の変換規則Ｄ６５を生成されると、次にルール補完部１１０は、最終的に縮退した変換規則を含むグラフィカル表現の変換規則Ｄ６５を生成するために、縮退した変換規則を含まないグラフィカル表現の変換規則Ｄ６５に対して以下の処理を行う。
（１）出力要素のノードの集合を出力ソート順に走査し、関連付けられた要素名又は属性名が同一である２ノードｙ１、ｙ２を検出する。
（２）検出した２ノードｙ１、ｙ２について、ノードｙ１とその全子のノードにそれぞれ対応づけられた入力要素を示す複数のノードから、ノードｙ２とその全子ノードへのリンク１が１つでも存在するか否か、かつ、ノードｙ２とその全子ノードにそれぞれ対応づけられた入力要素を示す複数のノードから、ノードｙ１とその全子ノードへのリンク２が１つでも存在するか否かを判定する。
（３）（２）の判定において、リンク１もリンク２も１つも存在しないとの判定結果を条件に、検出した２ノードｙ１、ｙ２を統合する。具体的には、２つのノードｙ１、ｙ２を統合したノードｙ０に置き換え、ノードｙ１、ｙ２と接続されたリンクを全てｙ０に接続させる。
【００５９】
なお、属性が一致してもその属性を有する要素が異なれば統合はできない。その一方で、要素が一致すれば、その属性が一致しなくても統合はできる（「すべての属性が一致」、「一部の属性が一致」、「すべての属性が不一致」のいずれの場合も含む）。図８に示す縮退した変換規則を含まないグラフィカル表現の変換規則Ｄ６５をみると、ノード８１５とノード８８０は、共に要素名がｓｃｒｅｅｎで一致する。しかしこれらノードの子をみると、ノード８１５には属性名がｓｕｂｓｙｓｔｅｍの子があるのに対し、ノード８８０にはそのような子はない（「一部の属性が一致」に相当）。しかし図９のノード９１５により示すように、ノード８１５とノード８８０は問題なく統合できる。なお、図８の矩形８０５内の入力要素を示すノードの集合は、図９における入力要素を示すノードの集合９０５に対応し、図８の矩形８５０内の入力要素を示すノードの集合は、図９における入力要素を示すノードの集合９１０に対応する。また図９の左下の表に示すように、本発明前（縮退なし、ルール補完部１１０による自動生成なし）と本発明後（縮退有り、ルール補完部１１０による図８の矩形８０５、８１０部分の自動生成あり）を比較すると、本発明によってグラフィカルな表現の変換規則の見易さ、また、ユーザによる作業負担のどちらも改善されているのが分かる。
【００６０】
復元部１１５は、ユーザ・インタフェース１０５又はユーザ・インタフェース１０５とルール補完部１１０の両方によって生成された縮退した変換規則を含むグラフィカル表現の変換規則Ｄ６５を入力として受け取り、縮退を解きつつグラフィカル表現の変換規則Ｄ６５をテキスト形式の完全な変換規則に変換して、変換規則Ｆ７０を出力する。より具体的には、復元部１１５は、グラフィカル表現の変換規則Ｄ６５に含まれる入力要素を示すノードの集合から入力ソート順で取り出した処理対象の各ノードに対し、該ノードに関連付けられたパターンを用いたマッチングが変換対象の構造文書の要素に対して成功することを条件に、処理対象のノードにリンクにより対応付けられたノードが示す出力要素を、該リンク及び該出力要素を示すノードにそれぞれ関連付けられた出力に関するパラメータに基づいて出力すること指示するテキスト形式の変換規則を生成する。
【００６１】
上記処理において、復元部１１５は、１対多変換規則に対しては、１のノードが示す入力要素に対して複数のノードが示す複数の出力要素の各々を出力する出力順序を、出力ソート順に従い決定することにより縮退を解く。より詳細に説明する。まず、１対多変換規則によって、マッチング・パターンを関連付けられた入力要素を示す１のノードが、それぞれ出力に関するパラメータを関連付けられた複数のリンクにより、各々出力要素を示す複数のノードに対応付けられる。この状況において、復元部１１５は、１対多変換規則における入力要素を示す１のノードに対し、該ノードに関連付けられたマッチング・パターンによるマッチングが変換対象の構造文書の要素に対して成功することを条件に、１対多変換規則における出力要素を示す各ノードを出力ソート順で処理対象のノードとして、上記マッチングした要素のテキストを、上記入力要素を示す１のノードと処理対象のノードとを対応付けるリンクに関連付けられた出力に関するパラメータに従って分割又は加工をして、処理対象のノードが示す出力要素として出力すること指示するテキスト形式の変換規則を生成する。
【００６２】
ここで、１対多変換規則におけるリンクに関連付けられた出力に関するパラメータについて詳細に説明する。この出力に関するパラメータは、入力要素を示す１のノードにより表される一箇所に記載されている内容を、複数のノードが示す複数の出力要素に出力するために分割又は加工するその方法を指定する情報であり、具体的には、出力値に対する文字列のマッチ・パターンと置換文字列である。なお、マッチ・パターンは正規表現で設定してよく、Ｊａｖａ（登録商標）にける文字列置換パターンを使用してもよい。
【００６３】
例として、セルに対応する入力要素Ｘ１に関連付けられたマッチ・パターンにマッチした変換対象の構造文書のセルの値が「ＡＢＣ＆ＤＥＦ」であり、これを２つの出力要素Ｙ１、Ｙ２に値を分割して出力するケースを考える。するとＸ１とＹ１を接続するリンクには、マッチ・パターンに「＆．＊」、及び置換文字列に「（空）」を設定された出力に関するパラメータが関連付けられる。結果、該情報に基づいて、出力要素Ｙ１には「ＡＢＣ」が出力される。同様に、Ｘ１とＹ２を接続するリンクには、マッチ・パターンに「＊＆．」、及び置換文字列に「（空）」を設定された出力に関するパラメータが関連付けられる。結果、該情報に基づいて、出力要素Ｙ２には「ＤＥＦ」が出力される。なお「．＊」は正規表現で「０文字以上の任意の文字列」を表す。従って、上記設定はそれぞれ、「＆とその後の文字列を取り除く」、「＆とその前の文字列を取り除く」ことを意味する。
【００６４】
上記処理において復元部１１５はまた、多対１変換規則に対しては、複数のノードが示す複数の入力要素の各入力要素に対して１のノードが示す出力要素を出力する出力先を、該出力要素の親である出力要素に対応付けられた１以上の入力要素を入力ソート順に並べた場合に上記各入力要素の直前に位置する入力要素の出力先を参照して決定することにより縮退を解く。より詳細に説明する。まず、多対１変換規則によって、異なる形式又は異なる位置に記載された同種の内容を表す入力要素を各々示す複数のノードと、出力要素を示す１のノードとが対応付けられる。復元部１１５は、多対１変換規則における入力要素を示す１の処理対象のノードに対し、該処理対象のノードに関連付けられたマッチング・パターンによるマッチングが変換対象の構造文書の要素に対して成功することを条件に、多対１変換規則における出力要素を示すノードの親のノードが示す出力要素に対応付けられた１以上の入力要素のうち、入力ソート順において上記処理対象のノードの直前に位置する入力要素に対して最後に出力した要素の子として多対１変換規則における上記出力要素を示すノードに関連付けられた要素名の要素を出力すること、又は最後に出力した要素の属性値として上記変換対象の構造文書の要素のテキストを出力すること指示するテキスト形式の変換規則を生成する。
【００６５】
なお、多対１変換規則において、入力要素を示す複数のノードに対し、上記方法により決定される出力先が同じである場合、上記入力要素を示す複数のノードの各々と１の出力要素を示すノードとを対応付ける各リンクには出力に関するパラメータが関連付けられる。この出力に関するパラメータは、属性値に対する追記の仕方を指定するものであり、例えば、先頭又は末尾に追加することを指示する情報や、追記の際の区切り文字を指定する情報である。
【００６６】
例として、入力要素を示すノードＸ１とその子のノードＸ２、更にノードＸ２の子のノードＸ３があり、属性値を出力する出力要素を示すノードＹに対して、Ｘ１、Ｘ２、Ｘ３の３つからそれぞれリンクがある場合を考える。ノードＸ１、Ｘ２、Ｘ３は順に親子関係にあり、この場合上記方法により決定される出力先は同じである。ここで、ノードＸ２からノードＹへのリンクについて、以下の出力に関するパラメータが関連付けられているとする。
・追記モード：先頭に追加
・追記の区切り文字：「：」
同様に、ノードＸ３からノードＹへのリンクについて、以下の出力に関するパラメータが関連付けられているとする。
・追記モード：末尾に追加
・追記の区切り文字：「−」
また、ノードＸ１、Ｘ２、Ｘ３にそれぞれ関連付けられたマッチ・パターンが一致して出力される対応する値がそれぞれ順に、「画面Ａ」、「ＩＤ１２３」、「項目Ｈ」であるとする。すると、出力要素を示すノードＹへの出力はＸ１、Ｘ２、Ｘ３の順で行われ、Ｘ１からＹの出力が行われた時点では、Ｙに対応する出力の属性値は「画面Ａ」、続いてＸ２からＹの出力が行われた時点では、Ｙに対応する出力の属性値は「ＩＤ１２３：画面Ａ」、最後にＸ３からＹの出力が行われると、Ｙに対応する出力の属性値は「ＩＤ１２３：画面Ａ−項目Ｈ」となる。
【００６７】
次に図１０から図１５に示す擬似コードを参照して、復元部１１５による処理を説明する。図１０は、復元部１１５の機能を提供するｍａｉｎ関数から直接呼び出されるｄｅｄｕｃｅ＿ｏｕｔｐｕｔ＿ｐｒｅｐ関数の擬似コードを説明する概念図である。図１１は、上記ｍａｉｎ関数から間接的に呼び出されるｄｅｄｕｃｅ＿ｏｕｔｐｕｔ関数の擬似コードを説明する概念図である。図１２は、上記ｍａｉｎ関数から間接的に呼び出されるｄｅｄｕｃｅ＿ｉｎｐｕｔ＿ｐｒｅｐ関数の擬似コードを説明する概念図である。図１３は、上記ｍａｉｎ関数から間接的に呼び出されるｄｅｄｕｃｅ＿ｉｎｐｕｔ関数の擬似コードを説明する概念図である。図１４は、上記ｍａｉｎ関数の擬似コードを説明する概念図である。図１５は、上記ｍａｉｎ関数から直接呼び出されるｓｕｂ関数の擬似コードを説明する概念図である。以下では簡単のため、入力要素や出力要素を示すノードを、それぞれ単に入力要素、出力要素と記載する。
【００６８】
図１０に示すｄｅｄｕｃｅ＿ｏｕｔｐｕｔ＿ｐｒｅｐ関数は、１対多変換規則において出力順を決定するために呼び出される関数であって、出力ソート順を求めるための関数である。引数として渡されたグラフィカル表現の変換規則Ｄ６５に対し、変換規則Ｄ６５に含まれる全出力要素ｙ（ｙ∈Ｙ）を深さ優先順に並べた出力要素リストＬｉｓｔＯｕｔを返す。上述したように、本実施例では出力ソート順はノードの位置やサイズに基づいて決定される。その詳細は既に説明しているためここでは割愛する。
【００６９】
図１１に示すｄｅｄｕｃｅ＿ｏｕｔｐｕｔ関数もまた、１対多変換規則において出力順を決定するために呼び出される関数であって、引数で指定される特定の入力要素ｘに対して出力順を求めるための関数である。ｄｅｄｕｃｅ＿ｏｕｔｐｕｔ関数ではまず、引数として渡されたグラフィカル表現の変換規則Ｄ６５に含まれる入力要素と出力要素間の対応関係を示すリンクｌ（ｌ∈Ｌ）のうち、上記特定の入力要素ｘを始点とするものを列挙してＬ１とする。続いて、Ｌ１に含まれるリンクの終点となっている出力要素のリストをＹ１とする。続いて、Ｙ１の要素を、ｄｅｄｕｃｅ＿ｏｕｔｐｕｔ＿ｐｒｅｐ関数によって求めたＬｉｓｔＯｕｔの順に従ってソートしたものをＹ２とする。最後に、入力要素ｘについての出力要素の出力順のリストとしてＹ２を返す。
【００７０】
図１２に示す  ｄｅｄｕｃｅ＿ｉｎｐｕｔ＿ｐｒｅｐ関数は、多対１変換規則において出力先を決定するために呼び出される関数であって、入力ソート順を求めるための関数である。引数として渡されたグラフィカル表現の変換規則Ｄ６５に対し、変換規則Ｄ６５に含まれる全入力要素ｘ（ｘ∈Ｘ）を深さ優先順に並べた入力要素リストＬｉｓｔＩｎを返す。上述したように、本実施例では入力ソート順はノードの位置やサイズに基づいて決定される。その詳細は既に説明しているためここでは割愛する。
【００７１】
図１３に示すｄｅｄｕｃｅ＿ｉｎｐｕｔ関数もまた、多対１変換規則において出力先を決定するために呼び出される関数であって、引数で指定される特定の入力要素ｘ、出力要素ｙに対して出力先を求めるための関数である。ｄｅｄｕｃｅ＿ｉｎｐｕｔ関数ではまず、引数として渡されたグラフィカル表現の変換規則Ｄ６５に含まれる出力要素の階層ｎ（出力要素間のリンク、即ち、ｎ∈Ｎ）から上記特定の出力要素ｙを終点とするものを求め、出力要素ｙの親の出力要素ｙ０を取得する。続いて、上記グラフィカル表現の変換規則Ｄ６５における入力要素と出力要素間の対応関係を示すリンクｌ（ｌ∈Ｌ）から、出力要素ｙ０を終点に持つものを全て求め、求めた各リンクｌの始点である入力要素ｘｐをリストしたものをＸｐとして取得する。続いて、Ｘｐの要素のうち、ｄｅｄｕｃｅ＿ｉｎｐｕｔ＿ｐｒｅｐ関数によって求めたＬｉｓｔＩｎ上で、上記特定の入力要素ｘ自身を含め、入力要素ｘより先にある最初の入力要素ｘ０を求める。最後に入力要素ｘと出力要素ｙとを対応付けるリンクの出力先を決定のための参照情報として入力要素ｘ０を返す。
【００７２】
図１４に示すｍａｉｎ関数は、復元部１１５による処理の全体に対応する関数であり、
引数として受け取ったグラフィカル表現の変換規則Ｄ６５から変換規則Ｆ７０を生成し出力するための関数である。ｍａｉｎ関数ではまず、テキスト形式の変換規則Ｆ７０を新規作成し空で初期化する。続いて、準備処理として引数にグラフィカル表現の変換規則Ｄ６５を設定して、ｄｅｄｕｃｅ＿ｏｕｔｐｕｔ＿ｐｒｅｐ関数を呼び出す。続いて、グラフィカル表現の変換規則Ｄ６５に含まれる全ての入力要素ｘ（ｘ∈Ｘ）から、入力要素の階層ｍ（入力要素間のリンク、即ち、ｍ∈Ｍ）の終点とならない、即ち親となる入力要素をもたない入力要素を全て抽出し、そのリストＸ＿ｒｏｏｔを求める。ここでＸ＿ｒｏｏｔに含まれる入力要素の順序は入力ソート順とする。続いて、リストＸ＿ｒｏｏｔの各要素ｘ１について順に、該要素ｘ１と、グラフィカル表現の変換規則Ｄ６５と、テキスト形式の変換規則Ｆ７０とをそれぞれ引数に設定して後述するｓｕｂ関数を呼び出す。リストＸ＿ｒｏｏｔのすべての要素ｘ１について上記呼び出しがなされた時点でテキスト形式の変換規則Ｆ７０が完成し、最後に完成したテキスト形式の変換規則Ｆ７０を返す。
【００７３】
図１５に示すｓｕｂ関数は再帰関数のサブルーチンであり、該サブルーチンが再帰的に呼び出されることでグラフィカル表現の変換規則Ｄ６５の定義が順序処理され、対応する規則が変換規則Ｆ７０に追加される。ｓｕｂ関数ではまず、引数として受け取った変換規則Ｆ７０の手続きステップｔに「ｘに設定されているマッチ・パターンと一致するか」を追加する。但し、ｘは引数として受け取った入力要素ｘである。続いて、引数と受け取ったグラフィカル表現の変換規則Ｄ６５と、上記入力要素ｘとを引数に設定して、ｄｅｄｕｃｅ＿ｏｕｔｐｕｔ関数を呼び出し、その返り値を入力要素ｘに対する出力要素のリストＹ１に代入する。続いてリストＹ１の各要素ｙ１についてリスト順に、以下の処理を行う。
【００７４】
（１）上記グラフィカル表現の変換規則Ｄ６５に含まれる出力要素の階層ｎ（出力要素間のリンク、即ち、ｎ∈Ｎ）から上記要素ｙ１を終点とするものを求め、要素ｙ１の親の出力要素ｙ０を取得する。
（２）親の出力要素ｙ０が存在しない、即ち、要素ｙ１が親を持たない場合、変数ｑに要素ｙ１に設定されている出力要素を代入し、上記変換規則Ｆ７０の手続きｔのｔｒｕｅのケースの手続きステップとして「変換先構造文書のルート要素の子要素又は属性名としてｑを出力」を追加する。
（３）親の出力要素ｙ０が存在する、即ち、要素ｙ１が親を持つ場合、変数ｐに、出力要素ｙ０に設定されている出力要素を代入し、また、変数ｑに要素ｙ１に設定されている出力要素を代入する。続いて、上記グラフィカル表現の変換規則Ｄ６５と、上記入力要素ｘと、上記ｙ１とを引数に設定して、ｄｅｄｕｃｅ＿ｉｎｐｕｔ関数を呼び出し、その返り値を出力対象ｘ０に代入する。続いて、変換規則Ｆ７０の手続きｔのｔｒｕｅのケースの手続きステップとして「ｘ０が最後に生成した要素ｐの子又は属性名としてｑを出力」を追加する。
【００７５】
リストＹ１の全ての要素ｙ１について上記処理を終えると、続いて、入力要素ｘの子である入力要素のリストＸ＿ｃｈｉｌｄを求める。なお、リストＸ＿ｃｈｉｌｄにおけるリストの順は入力ソート順とする。続いて、Ｘ＿ｃｈｉｌｄの各要素ｘ１について、上記グラフィカル表現の変換規則Ｄ６５と、上記要素ｘ１と、上記変換規則Ｆ７０の手続きｔのｔｒｕｅのケースとを引数に設定して、ｓｕｂ関数を再帰的に呼び出す。Ｘ＿ｃｈｉｌｄの全ての要素についてｓｕｂ関数の呼び出しが終了した時点で、変換規則Ｆ７０が完成し、ｓｕｂ関数は終了する。
【００７６】
図１６は、図９に示す変換規則のグラフィカル表現に対応するテキスト形式の変換規則を示す図である。図１６に示す変換規則は、変換規則のグラフィカル表現を図１０乃至図１５に示す擬似コードにより処理して得られたものである。
【００７７】
抽出部１２０は、変換を希望する文書から、その物理構造をダンプした階層構造を有する変換元の構造文書を生成する。抽出部１２０はまた、変換元の構造文書からその要素を抽出する。図１７に示す擬似コードを参照して、抽出部１２０による処理を説明する。図１７（ａ）は、抽出部１２０の機能を提供するｍａｉｎ関数の擬似コードを説明する概念図である。図１７（ｂ）は、上記ｍａｉｎ関数から直接呼び出されるｓｕｂ＿ｓｐｒｅａｄｓｈｅｅｔ関数の擬似コードを説明する概念図である。
【００７８】
図１７（ａ）に示すｍａｉｎ関数は、抽出部１２０による処理の全体に対応する関数であり、引数として受け取った変換対象の文書Ａから、文書Ａの物理構造をダンプした階層構造を有する変換元の構造文書ｐを生成し出力するための関数である。ｍａｉｎ関数ではまず、変換対象の文書Ａの文書のタイプをチェックする。本実施例では、スプレッドシート・ファイル、ワードプロセッサー・ファイル、プレゼンテーション・ファイル、上記３種のファイル以外の処理対象外のファイルのいずれであるかを確認する。スプレッドシート・ファイル、ワードプロセッサー・ファイル、プレゼンテーション・ファイルのいずれかである場合、それぞれ対応するサブ関数を呼び出して、返り値を変換元の構造文書ｐに代入し、最後に変換元の構造文書ｐを返す。
【００７９】
図１７（ｂ）に示すｓｕｂ＿ｓｐｒｅａｄｓｈｅｅｔ関数は、変換対象の文書Ａの文書のタイプがスプレッドシート・ファイルの場合に呼び出される関数である。ｓｕｂ＿ｓｐｒｅａｄｓｈｅｅｔ関数ではまず、変換元の構造文書ｐを新たに生成し、ルート要素ｅ０を追加する。続いて文書Ａに含まれる全てのシートｓについて以下の（１）から（３）の一連の処理を行う。
（１）ルート要素ｅ０の子要素として、シート要素ｅ１を出力する。また、シートｓの名前をシート要素ｅ１のｎａｍｅ属性値として出力する。更に、シートｓに含まれる全ての行ｒについて以下の（２）から（３）の一連の処理を行う。
（２）シート要素ｅ１の子要素として、行要素ｅ２を出力する。また、行ｒの行数を行要素ｅ２のｙ属性値として出力する。更に、行ｒに含まれる全てのセルｃについて以下の（３）の処理を行う。
（３）行要素ｅ２の子要素として、セル要素ｅ３を出力する。また、セルｃのセル値をセル要素ｅ３のテキスト値として出力する。
【００８０】
変換対象の文書Ａの文書のタイプがワードプロセッサー・ファイルやプレゼンテーション・ファイルの場合に呼び出されるサブ関数も、同様に求めることができる。その内容は既知の技術であるためここでは詳細は割愛する。なお、上記以外のタイプであってもその物理構造が既知であれば同様に対応するサブ関数を求めることができることに留意されたい。
【００８１】
変換部１２５は、抽出部１２０により抽出された変換元の構造文書の各要素を深さ優先順に処理対象として、該処理対象の要素に復元部１１５により復元されたテキスト形式の変換規則を適用することにより、変換先の構造文書を取得する。図１８に示す擬似コードを参照して、変換部１２５による処理を説明する。図１８（ａ）は、変換部１２５の機能を提供するｍａｉｎ関数の擬似コードを説明する概念図である。図１８（ｂ）は、上記ｍａｉｎ関数から直接呼び出されるｓｕｂ関数の擬似コードを説明する概念図である。
【００８２】
図１８（ａ）に示すｍａｉｎ関数は、変換部１２５による処理の全体に対応する関数であり、引数として受け取った変換元の構造文書Ｐと変換規則Ｆとから、変換先の構造文書Ｑを生成し出力するための関数である。ｍａｉｎ関数ではまず、変換先の構造文書Ｑを新規作成し、ルート要素を追加する。続いて、変換元の構造文書Ｐのルート要素を変数ｐ０に代入し、同様に、変換先の構造文書Ｑのルート要素を変数ｑ０に代入する。そして、変数ｐ０、ｑ０と、変換規則Ｆとを引数に設定してｓｕｂ関数を呼び出す。ｓｕｂ関数の実行終了と同時に変換先の構造文書Ｑが完成されるので、最後に変換先の構造文書Ｑを返す。
【００８３】
図１８（ｂ）に示すｓｕｂ関数は再帰関数のサブルーチンであり、該サブルーチンが再帰的に呼び出されることで変換元の構造文書の各要素が順序処理され、対応する変換後の要素が変換先構造文書の要素として追加される。ｓｕｂ関数ではまず、引数として受け取った変換元の構造文書Ｐの要素ｐと、変換先の構造文書Ｑの要素ｑとを、同じく引数として受け取った変換規則Ｆの入力とし、要素ｐに変換規則Ｆを適用した結果としてその出力を変換先の構造文書Ｑの変換後の要素ｑ‘に代入する。続いて変換元の構造文書Ｐの要素ｐの全ての子要素ｐ１について、子要素ｐ１と、変換後の要素ｑ’と、変換規則Ｆとを引数として設定して、ｓｕｂ関数を再び呼び出す。全ての子要素ｐ１についての再帰呼び出しが終了した時点で、変換先構造文書Ｑが完成し、ｓｕｂ関数は終了する。
【００８４】
次に図１９乃至図２１を参照して、ルール補完部１１０による補完処理の全体の流れを説明する。図１９は、ルール補完部１１０による補完処理の全体の流れを示すフローチャートである。図２０は、図１９のステップ１９１０のテーブル部分の自動切り出し処理のフローチャートである。図２１は、図１９のステップ１９２０のセクション部分の自動切り出し処理のフローチャートである。
【００８５】
図１９に示す補完処理はステップ１９００から開始し、ルール補完部１１０は、変換対象の文書内の部分のユーザ選択に応答して、選択部分を指定する指定情報を取得する。続いて、ルール補完部１１０は、指定情報を基にユーザによる選択部分がテーブルであるか否かを判定する（ステップ１９０５）。上記判定は、変換対象の文書の種類（ファイルタイプ）及び選択部分の物理的な文書要素の種類より行ってよく、スプレッドシート・ファイルのセル部分もテーブルとみなす。テーブルであると判定した場合（ステップ１９０５：ＹＥＳ）、ルール補完部１１０は、図２０を参照して後述するテーブル部分の自動切り出し処理を行う（ステップ１９１０）。
【００８６】
テーブルではないと判定した場合（ステップ１９０５：ＮＯ）又はステップ１９１０から処理はステップ１９１５へ進み、続いてルール補完部１１０は、指定情報を基にユーザによる選択部分がセクションであるか否かを判定する（ステップ１９１５）。上記判定は、変換対象の文書の種類（ファイルタイプ）及び選択部分の物理的な文書要素の種類より行ってよい。セクションであると判定した場合（ステップ１９１５：ＹＥＳ）、ルール補完部１１０は、図２１を参照して後述するセクションの自動切り出し処理を行う（ステップ１９２０）。セクションではないと判定した場合（ステップ１９１５：ＮＯ）又はステップ１９２０から処理はステップ１９２５へ進み、続いてルール補完部１１０は、生成した縮退した変換規則を含まない変換規則のグラフィカル表現を検索して、共通の子である要素が見つかった場合に一定の条件のもとそれを集約して、最終的に縮退した変換規則を含む変換規則のグラフィカル表現Ｄを出力する（ステップ１９２５）。そして処理は終了する。
【００８７】
図２０に示すテーブル自動切り出し処理はステップ２０００から開始し、ルール補完部１１０は、選択部分がスプレッドシート全体であるか否かを判定する。選択部分がスプレッドシート全体である場合（ステップ２０００：ＹＥＳ）、処理はステップ２００５へ進み、ルール補完部１１０は、変換規則のグラフィカル表現に出力要素Ｙ０を追加する。続いてルール補完部１１０は、変換規則のグラフィカル表現に出力要素ｙ１を出力要素Ｙ０の子として追加する（ステップ２０１０）。続いてルール補完部１１０は、変換規則のグラフィカル表現に、入力要素としてシート要素ｘ０を追加し、これに選択されたスプレッドシートのシート名を設定したマッチング・パターンを関連付ける（ステップ２０１５）。また、ルール補完部１１０は、入力要素ｘ０を出力要素Ｙ０に接続するリンクを追加する（ステップ２０１５）。
【００８８】
続いてルール補完部１１０は、変換規則のグラフィカル表現に入力要素としてシート要素ｘ１を入力要素ｘ０の子として追加し、シート要素ｘ１を出力要素ｙ１に接続するリンクを追加する（ステップ２０２０）。続いてルール補完部１１０は、変換規則のグラフィカル表現に入力要素としてａｌｌｃｈｉｌｄｒｅｎノードｘ２をシート要素ｘ１の子として追加する（ステップ２０２５）。
【００８９】
ステップ２０２５から、又はステップ２０００において選択部分がスプレッドシート全体でない場合（ステップ２０００：ＮＯ）処理はステップ２０３０へ進み、ルール補完部１１０は、変換規則のグラフィカル表現に出力要素Ｙ２を追加する。続いてルール補完部１１０は、選択部分がある行全体であるか否かを判定する（ステップ２０３５）。選択部分がある行全体である場合（ステップ２０３５：ＹＥＳ）、処理はステップ２０４０へ進み、ルール補完部１１０は、出力要素Ｙ２の子として出力要素ｙ３を追加する。
【００９０】
続いてルール補完部１１０は、新たに入力要素としてセル要素ｘ３を追加し、これに空白でない最も左端のセルのテキストを設定したマッチング・パターンを関連付ける（ステップ２０４５）。また、ルール補完部１１０は、セル要素ｘ３を出力要素Ｙ２に接続するリンクを追加する（ステップ２０４５）。続いてルール補完部１１０は、セル要素ｘ３の子である入力要素として新たにセル要素ｘ４を追加し、セル要素ｘ４を出力要素ｙ３に接続するリンクを追加する（ステップ２０５０）。続いてルール補完部１１０は、セル要素ｘ４の子である入力要素として、ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒノードｘ５を追加し、ａｌｌＳｉｂｌｉｎｇｓＡｆｔｅｒノードｘ５を出力要素ｙ３に接続するリンクを追加する（ステップ２０５５）。
【００９１】
一方ステップ２０３５において選択部分がある行全体でない場合（ステップ２０３５：ＮＯ）、処理はステップ２０６０へ進み、ルール補完部１１０は、先頭行の左端から右側の各セルに対して、出力要素Ｙ２の子として出力要素ｙ１１、ｙ１２、ｙ１３、…を追加する。続いてルール補完部１１０は、入力要素としてセル要素ｘ５を追加し、これに選択部分の先頭行左端セルの位置座標を設定したマッチング・パターンを関連付ける（ステップ２０６０）。ここで入力要素ｘ２が存在する場合はセル要素ｘ５を入力要素ｘ２の子とする。また、ルール補完部１１０は、セル要素ｘ５を出力要素Ｙ２に接続するリンクを追加する（ステップ２０６５）。
【００９２】
続いてルール補完部１１０は、先頭行の左端から右側の各セルに対して、新たに入力要素としてセル要素ｘ１１、ｘ１２、ｘ１３、…を追加する（ステップ２０７０）。ここでセル要素ｘ１１とセル要素ｘ１２は、セル要素ｘ５の子とする。一方、残りのセル要素ｘ１３、…は各々１つ前のセルに対応するセル要素の子とする。そしてセル要素ｘ１２以降の各セル要素には、右に設定した走査方向のマッチング・パターンを関連付ける（ステップ２０７０）。また、ルール補完部１１０は、セル要素ｘ１１を出力要素ｙ１１に接続するリンクを追加する。残りのセル要素ｘ１２、ｘ１３、…についても同様にそれぞれ順に出力要素ｙ１２、ｙ１３、…に接続するリンクを追加する（ステップ２０７０）。ステップ２０５５、又はステップ２０７０の後処理は終了する。
【００９３】
図２１に示すセクション自動切り出し処理は、ユーザにより選択された選択部分に含まれる各セクションＳについて繰り返し実行され、ステップ２１００においてルール補完部１１０はまず、変換規則のグラフィカル表現に新規に出力要素Ｙ１を追加する。続いてルール補完部１１０は、変換規則のグラフィカル表現に入力要素としてリスト要素ｘ１を追加し、これにセクションＳの文字列（セクション名）を設定したマッチング・パターンを関連付ける（ステップ２１０５）。ルール補完部１１０はまた、入力要素ｘ１を出力要素Ｙ１に接続するリンクを追加する（ステップ２１０５）。
【００９４】
続いてルール補完部１１０は、変換規則のグラフィカル表現に新規に入力要素としてれｒａｎｇｅノードを追加する（ステップ２１１０）。ここでｒａｎｇｅノードの位置は、入力ソート順でｘ１の直後になる位置とする。またルール補完部１１０は、開始位置のテキスト・パターンにセクションＳの文字列（セクション名）を設定し、終了位置のテキスト・パターンにセクションＳの次のセクションの文字列（セクション名）を設定する（ステップ２１１０）。但し、セクションＳが最後のセクションである場合には終了位置のテキスト・パターンにダミーの文字列を設定する。全てのセクションＳについてステップ２１００からステップ２１１０の処理を実行すると、処理は終了する。
【００９５】
次に図２２、２３を参照して、復元部１１５による復元処理の全体の流れを説明する。図２２は、復元部１１５による復元処理の全体の流れを示すフローチャートである。図２３は、図２２のステップ２２１５の多対１変換規則における出力先を決定する際にその出力先を参照すべき最も近い入力要素の決定処理のフローチャートである。
【００９６】
図２２に示す復元処理はステップ２２００から開始し、復元部１１５は、変換規則Ｆを新規作成しこれを空で初期化する。続いて復元部１１５は、ループ２２５０により、ステップ２２０５からステップ２２２０までの一連の処理を、処理対象である変換規則のグラフィカル表現Ｄに含まれる各入力要素のノードｘに対し入力ソート順で再帰的に行う。ステップ２２０５においてまず復元部１１５は、変換規則Ｆに、手続きｔ「ｘに設定されたマッチのパターンと一致するか？」を追加する。続いて復元部１１５は、ノードｘに対し出力ソート順に並んだ出力要素のリストを求め、これをＹに設定する（ステップ２２１０）。
【００９７】
続いて復元部１１５は、ループ２２６０により、ステップ２２１５からステップ２２２０までの一連の処理を、処理対象であるリストＹの各要素ｙ１に対してリスト順に繰り返し行う。ステップ２２１５において復元部１１５は、処理対象の要素ｙ１を基に、その出力対象を参照すべき入力要素を決定しこれをｘ０に設定する。ステップ２２１５の処理の詳細は図２３を参照して後述する。続いて復元部１１５は、変換規則Ｆにｔのｔｒｕｅのケースのステップとして「ｘ０が最後に生成したエレメントの子エレメント(または属性名)としてｙ１に設定された子エレメント(または属性名)を出力」を追加する。続いて、グラフィカル表現Ｄに含まれる入力ソート順で最後の入力要素のノードｘについて、ループ２２６０が終了すると、処理はステップ２２２５へ進み、復元部１１５は、テキスト形式の変換規則Ｆを出力する。そして処理は終了する。なお出力された変換規則Ｆは図示しない記憶装置に格納される。
【００９８】
図２３に示す入力要素決定処理はステップ２３００から開始し、復元部１１５は、出力要素の現在の処理対象の要素ｙ１の親である出力対象を求めこれをｙ０に設定する。続いて復元部１１５は、出力要素ｙ０を始点とする入力要素と出力要素間の全てのリンクのリストを求めこれをＬｐに設定する（ステップ２３０５）。続いて復元部１１５は、Ｌｐにリストされる各リンクの始点となる入力要素を入力ソート順に並べたリストを求めこれをＸｐに設定する（ステップ２３１０）。続いて復元部１１５は、リストＸｐにおいて、入力要素の現在の処理対象ｘを含め、該処理対象ｘよりも先に位置する最初の入力要素を決定しこれをｘ０に設定する（ステップ２３１５）。最後に復元部１１５は、ｘ０をその出力先を参照すべき入力要素として返す（ステップ２３２０）。そして処理は終了する。
【００９９】
次に図２４を参照して、抽出部１２０及び変換部１２５による変換の全体の流れを説明する。図２４に示す処理は、ステップ２４００から開始し、抽出部１２０は、変換を希望する文書の物理構造をダンプして該物理構造を有する変換元の構造文書を求め、その要素を取得する。続いて変換部１２５は、変換元の構造文書から１の要素を深さ優先順に取り出す（ステップ２４０５）。続いて変換部１２５は、処理対象の要素が存在するか否か、即ち、１の要素を取得できたか否かを判定し（ステップ２４１０）、取得できた場合（ステップ２４１０：ＹＥＳ）、記憶装置から変換規則Ｆを読み出し、処理対象の要素に適用する（ステップ２４１５）。その後処理はステップ２４０５に戻る。一方ステップ２４１０において処理対象の要素が存在しなかった場合、処理は終了する。
【０１００】
図２５は、本発明の実施形態による変換規則生成支援装置１００としてのコンピュータ５０のハードウェア構成の一例を示した図である。コンピュータ５０は、バス２に接続されたメインＣＰＵ（中央処理装置）１とメインメモリ４を含んでいる。ハードディスク装置１３、３０、及びＣＤ−ＲＯＭ装置２６、２９、フレキシブル・ディスク装置２０、ＭＯ装置２８、ＤＶＤ装置３１のようなリムーバブル・ストレージ（記録メディアを交換可能な外部記憶システム）がフレキシブル・ディスクコントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを経由してバス２へ接続されている。
【０１０１】
フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置１３、３０、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ１に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ５０にインストールされ、コンピュータ５０を本発明の本発明の実施形態による変換規則生成支援装置１００として機能させる変換規則生成支援プログラムや、変換希望の文書、変換元の構造文書、変換先の構造文書、生成した縮退前後の変換規則のグラフィカル表現といったデータを記録することができる。
【０１０２】
上記変換規則の生成を支援するためるためのプログラムは、ユーザ・インタフェースモジュールと、ルール補完モジュールと、復元モジュールと、抽出モジュールと、変換モジュールとを含む。これらモジュールは、ＣＰＵ１に働きかけて、コンピュータ５０を、ユーザ・インタフェース１０５と、ルール補完部１１０と、復元部１１５と、抽出部１２０と、変換部１２５としてそれぞれ機能させる。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【０１０３】
コンピュータ５０は、キーボード／マウス・コントローラ５を経由して、キーボード６やマウス７のような入力デバイスからの入力を受ける。コンピュータ５０は、オーディオコントローラ２１を経由して、マイク２４からの入力を受け、またスピーカー２３から音声を出力する。コンピュータ５０は、視覚データをユーザに提示するための表示装置１１に、グラフィックスコントローラ１０を経由して接続される。コンピュータ５０は、ネットワーク・アダプタ１８（イーサネット（登録商標）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【０１０４】
以上の説明により、コンピュータ５０は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【０１０５】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【０１０６】
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。
【図１】
0005613118.tif 000002
【図２】
0005613118.tif 000003
【図３】
0005613118.tif 000004
【図４】
0005613118.tif 000005
【図５】
0005613118.tif 000006
【図６】
0005613118.tif 000007
【図７】
0005613118.tif 000008
【図８】
0005613118.tif 000009
【図９】
0005613118.tif 000010
【図１０】
0005613118.tif 000011
【図１１】
0005613118.tif 000012
【図１２】
0005613118.tif 000013
【図１３】
0005613118.tif 000014
【図１４】
0005613118.tif 000015
【図１５】
0005613118.tif 000016
【図１６】
0005613118.tif 000017
【図１７】
0005613118.tif 000018
【図１８】
0005613118.tif 000019
【図１９】
0005613118.tif 000020
【図２０】
0005613118.tif 000021
【図２１】
0005613118.tif 000022
【図２２】
0005613118.tif 000023
【図２３】
0005613118.tif 000024
【図２４】
0005613118.tif 000025
【図２５】
0005613118.tif 000026