(57)【要約】【課題】標準化された共通フォーマットを容易に作成することができる。【解決手段】コンピュータ１は、編集対象の共通フォーマット２の階層Ａの項目Ａ、項目Ｂを編集対象項目２ａとして取得し、階層Ｂの項目Ｃ、項目Ｄ、項目Ｅを編集対象項目２ｂとして取得する。また、コンピュータ１は、既存の共通フォーマットから作成され、編集対象項目２ａ、２ｂと同一の項目を備える雛形３ａ〜３ｃの一覧を取得する。そして、雛形３ａ〜３ｃ中に存在する項目と編集対象項目との一致数と、雛形の使用回数とに基づいて、編集対象項目２ａまたは編集対象項目２ｂを置き換える雛形を選択する。【選択図】図１
2007249747.tif 000002
【特許請求の範囲】
【請求項１】
複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成する共通フォーマット作成プログラムにおいて、
コンピュータに、
編集対象の共通フォーマットの各階層の項目を編集対象項目としてそれぞれ取得し、
既存の共通フォーマットから作成され、前記編集対象項目と同一の項目を備える雛形の一覧を取得し、
前記雛形に存在する項目と前記編集対象項目との一致数と、前記雛形の使用回数とに基づいて、前記編集対象項目を置き換える雛形を選択し、
前記編集対象項目を、選択した前記雛形に置き換える、
処理を実行させることを特徴とする共通フォーマット作成プログラム。
【請求項２】
前記既存の共通フォーマットの、前記編集対象項目と同一の項目を備える階層を部分木として抽出し、
抽出した前記部分木のうち、前記編集対象項目と一致した数が最も多い部分木の構造を前記編集対象の共通フォーマットの階層として適用することを特徴とする請求項１記載の共通フォーマット作成プログラム。
【請求項３】
前記編集対象の共通フォーマットの互いに一致する階層の構造を抽出し、
抽出した前記構造を、雛形として前記雛形の一覧に追加することを特徴とする請求項１記載の共通フォーマット作成プログラム。
【請求項４】
抽出した前記構造の個数を、前記雛形の一覧に追加した雛形の使用回数とすることを特徴とする請求項３記載の共通フォーマット作成プログラム。
【請求項５】
前記システム毎の固有の連携フォーマットを用意し、
前記編集対象の共通フォーマットの項目毎に、前記連携フォーマットの各項目との類似度を算出し、
前記編集対象の共通フォーマットの項目毎に、前記連携フォーマットの前記類似度が最も大きい項目とのマッピングを行うことを特徴とする請求項１記載の共通フォーマット作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は共通フォーマット作成プログラムに関し、特に、複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成する共通フォーマット作成プログラムに関する。
【背景技術】
【０００２】
複数のシステム間にてデータの連携を行う際に、共通のフォーマットを規定し、そのフォーマットを介してデータの連携を行う方法が知られている。その際、フォーマットを構成する複数のテーブルの項目を互いにマッピング（対応付け）することにより、任意の形式で速やかに表示させることが知られている（例えば、特許文献１参照）。
【０００３】
図５１は、従来のデータの連携を示す図である。
フォーマット変換部９１ｂは、システム９１のフォーマット９１ａを共通フォーマット９５に変換する。同様にフォーマット変換部９２ｂ、９３ｂは、それぞれシステム９２のフォーマット９２ａを共通フォーマット９５に変換し、システム９３のフォーマット９３ａを共通フォーマット９５に変換する。また、システム９４はそのまま共通フォーマット９５を自らのフォーマットとして使用する。
【０００４】
このようなシステムの構築方法の一例について図５１を用いて説明する。
（１）まず、データ連携を行いたいシステム９１、９２、９３の各テーブル設計情報を基に、システム９１、９２、９３にそれぞれ対応するフォーマット（入出力フォーマット）９１ａ、９２ａ、９３ａを規定する。
【０００５】
（２）（１）で作成されたフォーマット９１ａ、９２ａ、９３ａを基に、フォーマット９１ａ、９２ａ、９３ａの項目をそれぞれ備え、これらを互いに連携させる共通フォーマット９５を規定する。
【０００６】
（３）フォーマット９１ａ、９２ａ、９３ａと共通フォーマット９５とをマッピングする情報（フォーマット変換情報）を規定する。
（４）データ連携を行いたいシステムのデータを取得するクエリを作成する。
【０００７】
ここで、共通フォーマット９５を作成する際には、同様の意味を持つ項目は、同一の項目名・階層構造で統一するのが好ましい。また、後に追加されそうな項目は、予め共通フォーマット９５に定義しておいたり、雛形化を行っておいたりすることが好ましい。これにより、拡張性や汎用性の高いシステムを構築することができる。
【特許文献１】特開２００１−２４３０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、新たなシステム（フォーマット）を既に構築されたシステムに追加する場合等においては、作成された共通フォーマット（図５１では共通フォーマット９５）を変更する必要があり、変更時には周囲の機能が変更の影響を受けるため、その部分を修正する必要が生じる。
【０００９】
図５２は、新たなシステムを連携させる場合を示す図である。
新たにシステム９６のフォーマット９６ａを連携させようとする場合には、新たな項目を共通フォーマット９５に追加するために、共通フォーマット９５を変更する必要がある。
【００１０】
ところが共通フォーマット９５の変更は、共通フォーマット９５を利用しているフォーマット変換部９１ｂ、９２ｂ、９３ｂおよびシステム９４にも影響を及ぼしてしまうため、変更後の共通フォーマット９５に対応してフォーマット変換部９１ｂ、９２ｂ、９３ｂおよびシステム９４（図５２中点線枠内）についても変更を行う必要が生じる。すなわち、各システムのアプリケーション内の言語（例えばＳＱＬ（Structured Query Language）等）を広範囲にわたって修正する必要が生じる。この場合、前述したように共通フォーマット９５の変更に備えて後に追加されそうな項目については、予め共通フォーマット９５に定義しておくこと（標準化された共通フォーマットを作成しておくこと）が好ましいが、その定義は管理者の技量に大きく依存するという問題があった。
【００１１】
本発明はこのような点に鑑みてなされたものであり、標準化された共通フォーマットを容易に作成することができる共通フォーマット作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明では上記問題を解決するために、図１に示すような処理をコンピュータに実行させるための共通フォーマット作成プログラムが提供される。
本発明に係る共通フォーマット作成プログラムは、複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成するプログラムであり、共通フォーマット作成プログラムを実行するコンピュータは以下の機能を有する。
【００１３】
コンピュータ１は、編集対象の共通フォーマット２の階層Ａの項目Ａ、項目Ｂを編集対象項目２ａとして取得し、階層Ｂの項目Ｃ、項目Ｄ、項目Ｅを編集対象項目２ｂとして取得する。また、コンピュータ１は、既存の共通フォーマットから作成され、編集対象項目２ａ、２ｂと同一の項目を備える雛形３ａ〜３ｃの一覧を取得する。そして、雛形３ａ〜３ｃ中に存在する項目と編集対象項目との一致数と、雛形の使用回数とに基づいて、編集対象項目２ａまたは編集対象項目２ｂを置き換える雛形を選択する。図１では、編集対象項目２ｂと雛形３ｃとが一致しているため、階層Ｂを置き換える雛形として雛形３ｃが選択される。その後、階層Ｂを、雛形３ｃに置き換える。
【００１４】
このような共通フォーマット作成プログラムによれば、共通フォーマット管理手段１ａにより、編集対象項目２ａ、２ｂが取得され（ステップＳ１）、雛形３ａ〜３ｃの一覧が取得され（ステップＳ２）、雛形３ａ〜３ｃ中に存在する項目と編集対象の共通フォーマットの項目との一致数および雛形の使用回数に基づいて、編集対象項目２ｂを置き換える雛形３ｃが選択され（ステップＳ３）、編集対象項目２ｂが、選択した雛形３ｃに置き換えられる（ステップＳ４）。
【発明の効果】
【００１５】
本発明によれば、既存の共通フォーマットから作成した雛形を、新たな共通フォーマットに適用することにより、標準化された共通フォーマットを容易に作成することができる。これにより、変更による周囲に及ぼす影響が少なく、保守管理が容易なシステムを構築することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００１７】
図１は、実施の形態に適用される発明を示す概要図である。
図１に示すコンピュータ１は、以下の機能を実行する共通フォーマット管理手段１ａを備えている。
【００１８】
共通フォーマット管理手段１ａは、編集対象の共通フォーマット２の階層Ａが備える項目Ａ、項目Ｂを編集対象項目２ａとして取得し、階層Ｂが備える項目Ｃ、項目Ｄ、項目Ｅを編集対象項目２ｂとして取得する。１つの編集対象項目は、子階層または兄弟階層の１階層分の項目で構成される。
【００１９】
また、共通フォーマット管理手段１ａは、既存の共通フォーマットから作成され、編集対象項目２ａ、２ｂのうちの少なくとも１つの同一の項目を備える雛形３ａ〜３ｃの一覧を雛形ＤＢ３から取得する。そして、雛形３ａ〜３ｃ中に存在する項目と編集対象項目２ａとの一致数と、雛形３ａ〜３ｃの各使用回数とに基づいて、編集対象項目２ａを置き換える雛形を選択する。同様に、雛形３ａ〜３ｃ中に存在する項目と編集対象項目２ｂとの一致数と、雛形３ａ〜３ｃの各使用回数とに基づいて、編集対象項目２ｂを置き換える雛形を選択する。その後、階層Ｂを、雛形３ｃに置き換える。
【００２０】
ここで雛形の使用回数とは、雛形が使用されている共通フォーマットの個数をいう。図１では、編集対象項目２ｂと雛形３ｃとが一致しているため、編集対象項目２ｂを置き換える雛形として雛形３ｃが選択される。一致していない場合においても、雛形３ａ〜３ｃ中に存在する項目と編集対象項目２ａ（２ｂ）との一致数と雛形３ａ〜３ｃの使用回数とに基づいて類似度を計算し、その類似度の最も高い雛形を、編集対象項目２ａ（２ｂ）と置き換える雛形として選択するのが好ましい。
【００２１】
このような共通フォーマット作成プログラムによれば、共通フォーマット管理手段１ａにより、編集対象項目２ａ、２ｂが取得され（ステップＳ１）、雛形３ａ〜３ｃの一覧が取得され（ステップＳ２）、雛形３ａ〜３ｃ中に存在する項目と編集対象項目との一致数および雛形の使用回数に基づいて、編集対象項目２ｂを置き換える雛形３ｃが選択され（ステップＳ３）、編集対象項目２ｂが、選択した雛形３ｃに置き換えられる（ステップＳ４）。このように編集対象項目を雛形に置き換えることによって、管理者の技量にかかわらず標準化された共通フォーマットを容易に作成することができる。
【００２２】
以下、本発明の実施の形態を具体的に説明する。
図２は、本実施の形態のシステム構成例を示す図である。
図２では複数の基幹システム２１、２２、２３、２４、・・・が互いにネットワーク１０で接続されている。基幹システム２１、２２、２３、２４、・・・は、それぞれ基幹ＤＢ（データベース）２１ａ、２２ａ、２３ａ、２４ａ、・・・を有している。基幹ＤＢ２１ａ、２２ａ、２３ａ、２４ａ、・・・には、基幹システム２１、２２、２３、２４、・・・で取り扱われたデータや、互いの基幹システムのデータ連携を行うための連携フォーマットが格納されている。
【００２３】
ネットワーク１０には、さらに管理装置１００が接続されている。管理装置１００は、基幹システム２１、２２、２３、２４、・・・固有の連携フォーマットを作成し、基幹システム２１、２２、２３、２４、・・・にそれぞれ配布する。
【００２４】
また、管理装置１００は、基幹システム２１、２２、２３、２４、・・・に配布する連携フォーマットに基づいて、基幹システム２１、２２、２３、２４、・・・の共通フォーマットを作成する。基幹システム２１、２２、２３、２４、・・・は、それぞれ自己の連携フォーマットおよび共通フォーマットを介して他の基幹システムとデータ連携を行う。管理装置１００は、共通フォーマットを作成する際、連携フォーマットと共通フォーマットとを関連づけるために項目に設定する結合関係を規定したマッピング情報を作成する。このようにマッピング情報を作成することにより、お互いのデータを参照し合ったり、共有したりすることができる。このため、複数のデータベースに同じ項目を持たせる必要が無くなり、最小限の容量で効率的なデータベースを構築することができる。
【００２５】
さらに、管理装置１００は、データの検索や更新、削除等の命令を発行するためのクエリを作成する。
なお、図１に示すコンピュータ１の機能は管理装置１００内に設けられている。
【００２６】
図３は、管理装置のハードウェア構成例を示す図である。
管理装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００２７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１０３内には、プログラムファイルが格納される。
【００２８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００２９】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３０】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のシステムにおいて共通フォーマットの作成を行うために、管理装置１００内には、以下のような機能が設けられる。
【００３１】
図４は、管理装置の機能を示すブロック図である。
管理装置１００は、インタフェース部１１０と、連携フォーマット編集部１２０と、共通フォーマット管理部１３０と、類義単語管理部１４０とを有している。
【００３２】
インタフェース部１１０は、管理者の操作を受け付け、その操作内容を管理装置１００の各部に反映させる。また、各部からのフィードバックを管理者に認識させる。
連携フォーマット編集部１２０は、フォーマット作成部１２０ａと、連携フォーマットＤＢ１２０ｃと、共通フォーマットＤＢ１３０ａとに接続されている。
【００３３】
連携フォーマット編集部１２０は、基幹システム２１、２２、２３、２４、・・・を共通フォーマットに連携させるための連携フォーマットを、基幹システム２１、２２、２３、２４、・・・毎に作成する。このとき連携フォーマット編集部１２０は、フォーマット作成部１２０ａから連携フォーマットの基になる元フォーマットを取得する。
【００３４】
連携フォーマット編集部１２０はＧＵＩ（Graphical User Interface）を備えており、元フォーマットを編集するためのフォーマット編集画面をモニタ１１に表示させる。そして、編集された元フォーマットの保存依頼があると、編集された元フォーマットを連携フォーマットとして連携フォーマットＤＢ１２０ｃおよび共通フォーマットＤＢ１３０ａに格納する。
【００３５】
フォーマット作成部１２０ａは、テーブル定義情報を抽出し、この情報を用いて元フォーマットを作成する。このテーブル定義情報は例えばＥＲ図（Entity Relation Diagram）等の階層構造を備える情報で構成されている。
【００３６】
抽出情報ＤＢ（データベース）１２０ｂには、フォーマット作成部１２０ａが抽出したテーブル定義情報と、フォーマット作成部１２０ａがテーブル定義情報から作成した元フォーマットが格納される。
【００３７】
テーブル定義情報から抽出された抽出情報は、テーブル情報、項目情報、主キー情報、ユニークキー情報、参照情報および参照項目情報として抽出情報ＤＢ１２０ｂに格納される。これらの各情報は、それぞれテーブル化されて抽出情報ＤＢ１２０ｂに格納されている。
【００３８】
まず、抽出情報ＤＢ１２０ｂに格納されているテーブル情報について説明する。
図５は、抽出情報ＤＢに格納されるテーブル情報のデータ構造例を示す図である。
テーブル情報テーブル１２１ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００３９】
テーブルＩＤの欄には、テーブル固有のＩＤが格納されている。テーブルＩＤのキーの欄には主キーが設定される。
テーブル名の欄には、このテーブルを一意に識別するテーブルの名前が格納されている。
【００４０】
参照キーセットＩＤの欄には、テーブルの項目が保持する参照キーセットのＩＤが格納されている。参照キーを持たない場合には、ｎｕｌｌが格納される。図５では、参照キーセットＩＤのキーの欄には外部キーが格納されている。
【００４１】
ここで主キーとは、表の各行を完全に一意に識別することができるカラムまたはカラム集合であり、すべてのカラムにｎｕｌｌ値を含まないものを言う。また、外部キーとは、テーブルのキーの値について、関連するテーブルのキーの値と一致する場合にデータとして許可する。テーブルとテーブルの論理的な関連づけを行い外部キーに対して値（親キー）が存在することを保証する。外部キーには、親テーブルの値もしくはｎｕｌｌを持つことが可能である。外部キーの親キーは主キーまたはテーブルのｎｕｌｌ以外の各行を一意に制約するユニークキーでなければならない。
【００４２】
次に、抽出情報ＤＢ１２０ｂに格納されている項目情報について説明する。
図６は、抽出情報ＤＢに格納される項目情報のデータ構造例を示す図である。
項目情報テーブル１２２ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００４３】
テーブルＩＤの欄には、テーブル固有のＩＤが格納される。
テーブルＩＤのキーの欄には主キーが設定される。
項目ＩＤの欄には、テーブルの項目特有のＩＤが格納される。
【００４４】
テーブル名の欄にはこのテーブルを一意に識別するテーブルの名前が格納される。
項目物理名の欄には項目の物理名が格納される。
項目論理名の欄には項目の論理名が格納される。
【００４５】
項目データ型の欄には項目のデータ型（文字列、数値等）が格納される。項目種別が「項目」「主キー項目」以外の場合はｎｕｌｌが格納される。
項目データ長の欄には項目のデータ長が格納される。項目種別が「項目」「主キー項目」以外の場合はｎｕｌｌが格納される。
【００４６】
次に、抽出情報ＤＢ１２０ｂに格納される主キー情報について説明する。
図７は、抽出情報ＤＢに格納される主キー情報のデータ構造例を示す図である。
主キー情報テーブル１２３ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００４７】
テーブルＩＤの欄には、このテーブル固有のＩＤが格納される。テーブルＩＤのキーの欄には主キーが設定される。
項目ＩＤの欄には、テーブルの項目固有のＩＤが格納される。項目ＩＤのキーの欄には主キーが設定される。
【００４８】
次に、抽出情報ＤＢ１２０ｂに格納されるユニークキー情報について説明する。
図８は、抽出情報ＤＢに格納されるユニークキー情報のデータ構造例を示す図である。
ユニークキー情報テーブル１２４ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００４９】
テーブルＩＤの欄には、このテーブル固有のＩＤが格納される。テーブルＩＤのキーの欄には主キーが設定される。
ユニークキーセットＩＤの欄には、１テーブル中のユニークキーのセットを示すＩＤが格納される。ユニークキーセットＩＤのキーの欄には主キーが設定される。
【００５０】
項目ＩＤの欄には、テーブルの項目固有のＩＤが格納される。項目ＩＤのキーの欄には主キーが設定される。
次に、抽出情報ＤＢ１２０ｂに格納される参照情報について説明する。
【００５１】
図９は、抽出情報ＤＢに格納される参照情報のデータ構造例を示す図である。
参照情報テーブル１２５ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００５２】
参照キーセットＩＤの欄には、参照キーセット固有のＩＤが格納される。参照キーセットＩＤのキーの欄には主キーが設定される。
参照元テーブルＩＤの欄には、参照元のテーブルＩＤが格納される。
【００５３】
参照先テーブルＩＤの欄には、参照先のテーブルＩＤが格納される。
次に、抽出情報ＤＢ１２０ｂに格納される参照情報について説明する。
図１０は、抽出情報ＤＢに格納される参照情報のデータ構造例を示す図である。
【００５４】
参照項目情報テーブル１２６ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
参照キーセットＩＤの欄には、参照キーセット固有のＩＤが格納される。テーブルＩＤのキーの欄には主キーが設定される。
【００５５】
参照元項目ＩＤの欄には、参照元の項目ＩＤが格納される。参照元項目ＩＤのキーの欄には主キーが設定される。
参照先項目ＩＤの欄には、参照先の項目ＩＤが格納される。参照先項目ＩＤのキーの欄には主キーが設定される。
【００５６】
再び図４に戻って説明する。
フォーマット作成部１２０ａは、テーブル同士の参照キーの等の貼られ方によって、自動的に階層構造を元フォーマットに定義する。階層構造については後述する。
【００５７】
共通フォーマット管理部１３０は、連携フォーマットＤＢ１２０ｃと、共通フォーマットＤＢ１３０ａと、類義語ＤＢ１４０ａとに接続されている。
共通フォーマット管理部１３０は、連携フォーマットＤＢ１２０ｃから取り出した連携フォーマットに基づいて共通フォーマットを作成し、作成した共通フォーマットを共通フォーマットＤＢ１３０ａに格納する。また、共通フォーマット管理部１３０は、連携フォーマットと共通フォーマットの間にどの項目が対応しているかを示すマッピング情報を作成し、作成したマッピング情報をマッピングＤＢ１３０ｂに格納する。
【００５８】
ここで、共通フォーマット管理部１３０は共通フォーマットを作成する際に、作成した共通フォーマット中の雛形となり得る部分を抽出して雛形項目情報を作成し、雛形ＤＢ１３０ｃに格納する。そして、作成中の共通フォーマット中に、雛形が適用できる項目が存在するか否かを判断し、雛形が適用できる項目があればその項目に雛形を適用する。さらに、既存の共通フォーマットを参照することにより、作成中の共通フォーマット中に今後追加されそうな項目があるか否かを判断し、追加されそうな項目を作成中の共通フォーマットに追加する。
【００５９】
さらに、共通フォーマット管理部１３０は、マッピング情報を作成したときに、類義単語を学習するために必要な情報を類義語ＤＢ１４０ａに格納する。
類義単語管理部１４０は、類義語ＤＢ１４０ａに接続されている。
【００６０】
類義単語管理部１４０は、類義単語を学習するために必要な情報を類義語ＤＢ１４０ａから取り出し、その情報に対して類義単語辞書作成処理を行うことにより、最新の類義単語のリストを作成する。
【００６１】
次に、連携フォーマット編集部１２０の編集動作について説明する。
図１１は、フォーマット編集画面の例を示す図である。
フォーマット編集画面５０は、連携フォーマット名入力部５１ａと、階層構造表示部５２ａと、保存ボタン５３ａと、追加ボタン５３ｂと、削除ボタン５３ｃと、編集ボタン５３ｄと、読込ボタン５３ｅと、抽出ボタン５３ｆと、終了ボタン５３ｇとを有している。
【００６２】
ユーザは、キーボード１２やマウス１３を用いてフォーマット編集画面５０を編集することができる。
連携フォーマット名入力部５１ａには、連携フォーマットを識別する連携フォーマット名を入力することができる。
【００６３】
ユーザがテーブル定義情報を抽出する場合、読込ボタン５３ｅまたは抽出ボタン５３ｆを押下する。読込ボタン５３ｅが押下されると、既に作成された連携フォーマットを読み込むことができる。抽出ボタン５３ｆが押下されると、フォーマット作成部１２０ａが、テーブル定義情報から元フォーマットを抽出する元フォーマット抽出動作を行い、その元フォーマットを連携フォーマット編集部１２０に送信する。そして連携フォーマット編集部１２０が、元フォーマット情報を取得して階層構造表示部５２ａに表示させる。
【００６４】
階層構造表示部５２ａには、木構造を構成するフォーマット項目種別とフォーマット項目種別にそれぞれ対応する項目物理名および項目論理名が表示される。項目物理名は、フォーマット項目種別の図１１中右側に表示され、項目論理名は、項目物理名の右側にカッコ書きで表示される。図１１では、フォーマット項目種別５５ａ〜５５ｅとフォーマット項目種別５５ａ〜５５ｅに対応する項目物理名および項目論理名が表示されている。
【００６５】
ユーザは、キーボード１２やマウス１３を用いて項目物理名および項目論理名の部位を選択することができる。図１１では、項目物理名および項目論理名として「従業員ＩＤ（ＥｍｐｌｏｙｅｅＩＤ）」が選択されている。
【００６６】
ユーザが、元フォーマットの選択した階層または項目（ノード）を編集する場合には、追加ボタン５３ｂ、削除ボタン５３ｃ、編集ボタン５３ｄのいずれかを押下する。追加ボタン５３ｂが押下されると、選択したノードの子に項目が追加される。削除ボタン５３ｃが押下されると、選択しているノードが削除される。編集ボタン５３ｄが押下されると、選択しているノードの編集が可能になる。
【００６７】
次に、フォーマット項目種別について説明する。
図１２は、フォーマット項目種別を説明する図である。
キー項目は、黒塗りの丸印で示される。キー項目は、１つだけしか同じ値は持たないキーとなる項目である。
【００６８】
項目は、白抜きの丸印で示される。
グループ階層は、白抜きの四角印で示される。グループ階層は、同じカテゴリに属する階層および項目を保持し、その配下の項目を１セットだけ持つことができる。例えば、「勤務先グループ階層」に、「従業員１の従業員情報」「従業員２の従業員情報」「従業員３の従業員情報」・・・を保持する。このように同じような種類の情報を同じグループ階層に入れておくことにより構造を容易に理解することができる。
【００６９】
リスト階層は、黒塗りの四角印で示される。リスト階層は、その階層の下に定義された構造と同じ構造のデータを繰り返し保持する。例えば、「従業員リスト階層」に「従業員１の従業員情報」「従業員２の従業員情報」「従業員３の従業員情報」・・・を保持する。図１１に示す従業員リスト階層は、その配下の従業員ＩＤ、従業員名および役職グループ階層の下に役職ＩＤをもてるが、リスト階層にするとこの階層を従業員の数だけ複数持つことができる。
【００７０】
再帰階層は、白抜きの四角の中にさらに白抜きの四角を有する印で表される。再帰階層は、この階層の配下の構造と同じ構造のデータを再帰的に繰り返し保持することができる。
【００７１】
再帰リスト階層は、白抜きの四角の中に黒塗りの四角を有する印で表される。再帰階層かつリスト階層の機能を有する。
次に、前述したフォーマット項目種別を適用した階層構造について説明する。
【００７２】
まず、グループ階層について説明する。
図１３は、グループ階層を説明する図である。
図１３では、ユーザが選択した２つのテーブル情報である従業員テーブル１２１１と役職テーブル１２１２とが表示されている。従業員テーブル１２１１に記載されている役職ＩＤには、参照キーが設定されており、役職テーブル１２１２の役職ＩＤには主キーが設定されている。よって従業員テーブル１２１１の役職ＩＤが役職テーブル１２１２の役職ＩＤを参照していることがわかる。この２つのテーブル情報を用いて連携フォーマット情報を作成する場合、まず、親のテーブルを決定する。図１３では、従業員テーブル１２１１の役職ＩＤが役職テーブル１２１２の役職ＩＤを参照しているため従業員テーブル１２１１が親となり、役職テーブル１２１２が子となる。図１３では従業員テーブル１２１１の参照キーと役職テーブル１２１２の主キーが同じ数になっている。換言すれば従業員１人に対し役職１つだけという関係になっている。このように１つの参照元に対して１つの参照先が存在する関係を「１対１の関係」という。
【００７３】
従業員テーブル１２１１が繰り返し項目を持つ、すなわち従業員が複数人存在する場合、従業員テーブル１２１１に複数の役職テーブル１２１２が付随するリスト階層を作成する。従業員ＩＤのキーの欄には主キーが設定されているためキー項目として定義する。従業員名は普通の項目なので項目として定義する。従業員テーブル１２１１の役職ＩＤと役職テーブル１２１２の役職ＩＤとは１対１の関係であるため、グループ階層を作成する。図１３では役職グループ階層を作ってその中に各項目役職ＩＤ、役職名を作成している。ここで役職ＩＤは主キーなのでキー項目として定義する。役職名は項目として定義する。
【００７４】
次に、リスト階層について説明する。
図１４は、リスト階層を説明する図である。
図１４では、役職テーブル１２１３の中に役職名言語ＩＤが存在するところが図１３と異なっている。このように役職テーブルの項目名に役職名言語ＩＤが作成されている場合、例えば日本語の役職名「課長」、英語の役職名「a section manager」等異なる言語での役職名をそれぞれ定義することができる。この場合、従業員テーブル１２１１のキーの欄に参照キーが設定されている項目名の数に対して役職テーブル１２１３のキーの欄に主キーが設定されている項目名の数が一致せず（それぞれ対応していないため）、各従業員に対して複数の役職情報が存在することになる。このように１つの参照元に対して複数の参照先が存在する関係を「１対他の関係」という。この場合、図１３の例では役職グループ階層としたが、今回は役職リスト階層として定義する。このように、参照キーと主キーの数とを数えて一致しない場合、役職テーブル１２１３をリスト階層とする。
【００７５】
次に、ループ階層について説明する。
図１５は、ループ階層を説明する図である。
従業員テーブル１２１４では、上司ＩＤが自分のテーブルの従業員ＩＤを参照している。これは、一番上の上司ＩＤに到達するまで参照動作を繰り返すことを示している。図１５の場合は、上司ＩＤが参照する従業員ＩＤが１対１の関係であるため、再帰階層として上司ループ階層を作成し、その配下に、参照キーが参照しているテーブルの階層、すなわち従業員リスト階層を定義する。
【００７６】
次に、再帰リスト階層について説明する。
図１６は、再帰リスト階層を説明する図である。
従業員テーブル１２１５では、キーの欄に参照キーが設定されている上司ＩＤが再帰を起こそうとしたときに参照キーと主キーの数が対応していないため（１対他の関係のため）、ループ階層かつリスト階層の再帰リスト階層を作成し、その配下に参照キーが参照しているテーブルの階層、すなわち従業員リスト階層を定義している。
【００７７】
再び図１１に戻って説明する。
ユーザが、編集した連携フォーマットを保存する場合には、保存ボタン５３ａを押下する。保存ボタン５３ａが押下されると、連携フォーマット編集部１２０が編集した元フォーマット（保存ボタン５３ａが押下された時点での階層構造表示部５２ａに表示されているフォーマット情報）が、連携フォーマットを構成するフォーマット情報および項目情報として連携フォーマットＤＢ１２０ｃに格納される。
【００７８】
ユーザが連携フォーマット編集を終了する場合には、終了ボタン５３ｇを押下する。終了ボタン５３ｇが押下されると、連携フォーマット編集部１２０が連携フォーマット編集動作を終了する。
【００７９】
次に、連携フォーマットＤＢ１２０ｃに格納されるフォーマット情報および項目情報について説明する。連携フォーマットＤＢ１２０ｃではフォーマット情報および項目情報がテーブル化されて格納されている。
【００８０】
図１７は、連携フォーマットＤＢに格納されるフォーマット情報のデータ構造例を示す図である。
フォーマット情報テーブル１２１ｃには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００８１】
連携フォーマットＩＤの欄には、連携フォーマット固有のＩＤが格納される。このＩＤは自動採番である。連携フォーマットＩＤのキーの欄には主キーが設定される。
連携フォーマット名の欄には、この連携フォーマットを一意に識別するテーブルの名前が格納される。
【００８２】
図１８は、連携フォーマットＤＢに格納される項目情報のデータ構造例を示す図である。
項目情報テーブル１２２ｃには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００８３】
連携フォーマットＩＤの欄には、連携フォーマット固有のＩＤが格納される。このＩＤは自動採番である。
フォーマット項目ＩＤの欄には、フォーマット項目特有のＩＤが格納される。このＩＤは自動採番である。
【００８４】
フォーマット項目種別の欄には、「項目」「主キー項目」「グループ階層」「リスト階層」「再帰階層」「再帰リスト階層」のいずれかが格納される。
項目物理名の欄には項目の物理名が格納される。
【００８５】
項目論理名の欄には項目の論理名が格納される。
項目データ型の欄には項目のデータ型（文字列、数値等）が格納される。項目種別が「項目」「主キー項目」以外の場合はｎｕｌｌが格納される。
【００８６】
項目データ長の欄には項目のデータ長が格納される。項目種別が「項目」「主キー項目」以外の場合はｎｕｌｌが格納される。
親フォーマット項目ＩＤの欄には、親ノードのフォーマット項目ＩＤが格納される。自身がルートの場合はｎｕｌｌが格納される。
【００８７】
再帰フォーマット項目ＩＤの欄には、「再帰階層」「再帰リスト階層」の場合のみ、再帰するフォーマット項目のＩＤが格納される。
表示順の欄には、同階層内での表示順序を示す数値が格納される。大きいほど後に表示される。
【００８８】
有効・無効フラグの欄には、この項目を連携の対象とするか否かのフラグが格納される。
次に、連携フォーマット作成動作について説明する。
【００８９】
図１９は、連携フォーマット作成動作を示すフローチャートである。
まず、フォーマット作成部１２０ａがフォーマット抽出処理を実行する（ステップＳ１１）。
【００９０】
次に、連携フォーマット編集部１２０が、フォーマット抽出処理によって得られた元フォーマット（元フォーマットを構成するフォーマット情報および項目情報）と、連携フォーマットＤＢ１２０ｃの既存の連携フォーマット（連携フォーマットを構成するフォーマット情報および項目情報）とを読み込んで連携フォーマットの編集を実行する環境を用意する（ステップＳ１２）。
【００９１】
ユーザによって連携フォーマットの編集動作が実行され、保存ボタン５３ａが押下されると、連携フォーマット編集部１２０が、連携フォーマットのフォーマット情報および項目情報を連携フォーマットＤＢ１２０ｃに格納する（ステップＳ１３）。
【００９２】
以上で連携フォーマット作成動作を終了する。
次に、ステップＳ１１のフォーマット抽出処理について説明する。
図２０は、フォーマット抽出処理を示すフローチャートである。
【００９３】
まず、テーブル定義情報を取得する（ステップＳ２１）。
次に、ユーザによる抽出テーブルの参照関係の設定指示を待機する（ステップＳ２２）。具体的には、ユーザにより使用するテーブル情報が選択され、選択されたテーブル情報の親子関係（参照関係）の設定が行われたか否かの判断を行う（ステップＳ２２）。抽出するテーブルが単一の場合は親子関係が存在しないため、参照関係を設定しないよう指示することが可能である。参照関係の設定指示があった場合（ステップＳ２２のＹｅｓ）、連携フォーマットＤＢ１２０ｃに格納されている作成中の連携フォーマットの項目情報の初期化を行う（ステップＳ２３）。
【００９４】
次に、フォーマット定義の作成処理を行う（ステップＳ２４）。
以上でフォーマット抽出処理を終了する。
次に、フォーマット定義の作成処理について説明する。
【００９５】
図２１は、フォーマット定義の作成処理を示すフローチャートである。
まず、フォーマット作成対象のテーブル情報Ｔ［ｘ］を取得する（ステップＳ３１）。
次に、テーブル情報Ｔ［ｘ］から未選択のテーブル情報Ｔを１つ取り出し、そのテーブルの参照情報を取得する（ステップＳ３２）。
【００９６】
次に、テーブル情報Ｔがテーブル情報Ｔ［ｘ］の別のテーブルに参照されているか否かを判断する（ステップＳ３３）。
テーブル情報Ｔがテーブル情報Ｔ［ｘ］の別のテーブルに参照されている場合（ステップＳ３３のＹｅｓ）、ステップＳ３７に移行する。一方、テーブル情報Ｔがテーブル情報Ｔ［ｘ］の別のテーブルに参照されていない場合（ステップＳ３３のＮｏ）、このテーブル情報Ｔをルート（ｒｏｏｔ）項目に設定する（ステップＳ３４）。ここで、ルート項目に設定されたテーブル情報Ｔの項目情報として、項目物理名には、テーブル情報Ｔのテーブル物理名が設定され、項目論理名にはテーブル情報Ｔのテーブル論理名が設定され、フォーマット項目種別には、グループ階層が設定され、親項目フォーマットＩＤには、ｎｕｌｌが設定され、有効・無効フラグには、有効が設定される。
【００９７】
次に、連携フォーマット項目作成処理を行って項目情報を作成し、作成された項目情報を連携フォーマットＤＢ１２０ｃに格納する（ステップＳ３５）。
次に、連携フォーマット階層作成処理を行って項目情報を作成し、作成された項目情報を連携フォーマットＤＢ１２０ｃに格納する（ステップＳ３６）。
【００９８】
次に、テーブル情報Ｔ［ｘ］内の全てのテーブル情報Ｔについて検証したか否かを判断する（ステップＳ３７）。全てのテーブル情報Ｔを検証していない場合（ステップＳ３７のＮｏ）、ステップＳ３２に移行して新たなテーブル情報Ｔを取り出し、引き続き動作を行う。一方、全てのテーブル情報Ｔを検証した場合（ステップＳ３７のＹｅｓ）、後述するマッピングＤＢ１３０ｂに格納されているマッピング情報を初期化する（ステップＳ３８）。以上でフォーマット定義処理を終了する。
【００９９】
次に、連携フォーマット項目作成処理について説明する。
図２２は、連携フォーマット項目作成処理を示すフローチャートである。
まず、抽出情報ＤＢ１２０ｂに格納されている項目情報からテーブル情報に属する項目Ｉを１件取得する（ステップＳ４１）。
【０１００】
次に、項目Ｉが参照キーか否かを判断する（ステップＳ４２）。項目Ｉが参照キーの場合（ステップＳ４２のＹｅｓ）、ステップＳ４７に移行する。一方、項目Ｉが参照キーではない場合（ステップＳ４２のＮｏ）、項目Ｉが主キーであるか否かを判断する（ステップＳ４３）。項目Ｉが主キーの場合（ステップＳ４３のＹｅｓ）、フォーマット項目種別を「主キー項目」とし（ステップＳ４４）、ステップＳ４６に移行する。一方、項目Ｉが主キーではない場合（ステップＳ４３のＮｏ）、フォーマット項目種別を「項目」とし（ステップＳ４５）、ステップＳ４６に移行する。
【０１０１】
次に、連携フォーマット項目を項目情報に追加して連携フォーマットＤＢ１２０ｃに格納する（ステップＳ４６）。
次に、全ての項目Ｉを検証したか否かを判断する（ステップＳ４７）。全ての項目Ｉを検証していない場合（ステップＳ４７のＮｏ）、ステップＳ４１に移行して引き続き連携フォーマット項目作成処理を継続する。一方、全ての項目Ｉを検証した場合（ステップＳ４７のＹｅｓ）、連携フォーマット項目作成処理を終了する。
【０１０２】
次に、連携フォーマット階層作成処理について説明する。
図２３は、連携フォーマット階層作成処理を示すフローチャートである。
まず、抽出情報ＤＢ１２０ｂからテーブル情報Ｔ［ｘ］を参照元とする参照情報の一覧Ｆｔ［ｘ］を取得する（ステップＳ５１）。
【０１０３】
次に、一覧Ｆｔ［ｘ］から参照情報Ｆｔを１件取得する（ステップＳ５２）。
次に、参照情報Ｆｔの参照キーセットＩＤをキーにして参照項目情報の一覧Ｆｉ［ｙ］を取得する（ステップＳ５３）。
【０１０４】
次に、再帰がループしているか否かを判断する再帰ループチェックを実行する（ステップＳ５４）。なお、再帰ループチェックについては後述する。
再帰がループしている場合（ステップＳ５４のＹｅｓ）、１対他の関係を有しているか否かを判断する（ステップＳ５５）。１対他の関係を有している場合（ステップＳ５５のＹｅｓ）、フォーマット項目種別を再帰リスト階層として追加し（ステップＳ５６）、ステップＳ６２に移行する。１対他の関係を有していない場合（ステップＳ５５のＮｏ）、フォーマット項目種別を再帰階層として追加し（ステップＳ５７）、ステップＳ６２に移行する。
【０１０５】
一方、再帰がループしていない場合（ステップＳ５４のＮｏ）、テーブル情報の参照キーに対応する主キーが１対他の関係を有しているか否かを判断する（ステップＳ５８）。１対他の関係を有している場合（ステップＳ５８のＹｅｓ）、フォーマット項目種別を再帰リスト階層として追加し（ステップＳ５９）、ステップＳ６１に移行する。１対他の関係を有していない場合（ステップＳ５８のＮｏ）、フォーマット項目種別を再帰階層として追加し（ステップＳ６０）、ステップＳ６１に移行する。
【０１０６】
次に、連携フォーマット項目作成処理を再帰的に実行する（ステップＳ６１）。
そして、全ての参照情報Ｆｔを検証したか否かを判断する（ステップＳ６２）。
全ての参照情報Ｆｔを検証していない場合（ステップＳ６２のＮｏ）、ステップＳ５２に移行して連携フォーマット階層作成処理を継続する。一方、参照情報Ｆｔを全て検証した場合（ステップＳ６２のＹｅｓ）、連携フォーマット階層作成処理を終了する。
【０１０７】
次に、ステップＳ５４の再帰ループチェックについて説明する。
再帰ループチェックでは、再帰処理を行ったテーブル情報の道順がループした場合、再帰がループしたと判断する。
【０１０８】
図２４は、再帰ループチェックを説明する図である。
図２４ではテーブル情報Ａ〜Ｇが示されている。例えば、道順Ａ→Ｂ→Ａ、道順Ａ→Ｃ→Ｂ→Ａの場合、一度通ったＡを再び通っているので、ループと判断する。
【０１０９】
道順Ａ→Ｄ→Ｅ、Ａ→Ｆ→Ｇではループしていないと判断する。道順Ａ→Ｄ→Ｄでは一度通ったＤを再び通っているのでループと判断する。
次に、図２３に示すステップＳ５５、５８のチェック処理について説明する。
【０１１０】
図２５は、チェック処理を示すフローチャートである。
まず、参照先の項目の種類が主キーまたはユニークキーのいずれかを判断する（ステップＳ７１）。
【０１１１】
参照先の項目の種類が主キーの場合（ステップＳ７１の主キー）、参照情報Ｆｔの参照先テーブルＩＤをキーにして、主キー情報の中から主キーの項目の一覧Ｆｉ２［ｚ］を取得する（ステップＳ７２）。その後、ステップＳ７４に移行する。一方、参照先の項目の種類がユニークキー（一意キー）の場合（ステップＳ７１のユニークキー）、参照情報Ｆｔの参照先テーブルＩＤをキーにして、ユニークキー情報の中からユニークキーの項目の一覧Ｆｉ２［ｚ］を取得する（ステップＳ７３）。
【０１１２】
そして、一覧Ｆｉ２［ｚ］に存在する項目が、参照項目情報の一覧Ｆｉ［ｙ］の項目の中に全て存在するか否かを判断する（ステップＳ７４）。全て存在しない場合（ステップＳ７４のＮｏ）、１対１の関係と判定する（ステップＳ７５）。一方、全て存在する場合（ステップＳ７４のＹｅｓ）、１対他の関係と判定する（ステップＳ７６）。
【０１１３】
以上でチェック処理を終了する。
このようにして、連携フォーマットを作成することができる。
ところで、ユーザは作成された連携フォーマットから共通フォーマットを作成する場合、共通フォーマット・マッピング編集画面をモニタ１１に表示させる。ユーザの共通フォーマット・マッピング編集画面上の操作に応じて共通フォーマット管理部１３０が、共通フォーマットおよびマッピング情報を作成する管理動作を行う。
【０１１４】
図２６は、共通フォーマット・マッピング編集画面の例を示す図である。
共通フォーマット・マッピング編集画面５０ａは、連携フォーマット名入力部５１ｂと、共通フォーマット名入力部５１ｃと、階層構造表示部５２ｂ、５２ｃと、保存ボタン５４ａと、追加ボタン５４ｂと、削除ボタン５４ｃと、編集ボタン５４ｄと、終了ボタン５４ｅと、定数追加ボタン５４ｆと、リストノード追加ボタン５４ｇと、フォーマット読込ボタン５４ｈと、自動取込ボタン５４ｉと、オートマッピングボタン５４ｊと、柔軟化ボタン５４ｋとを有している。
【０１１５】
なお、以下の説明ではフォーマット編集画面５０と同様の事項についてはその説明を省略する。
連携フォーマット名入力部５１ｂには、連携フォーマットを一意に識別する連携フォーマット名を入力することができる。共通フォーマット名入力部５１ｃには、共通フォーマットを一意に識別する連携フォーマット名を入力することができる。
【０１１６】
階層構造表示部５２ｂには、連携フォーマットの階層構造が表示される。階層構造表示部５２ｃには、共通フォーマットの階層構造が表示される。
ユーザが連携フォーマットおよび共通フォーマットを読み込む場合、フォーマット読込ボタン５４ｈを押下する。フォーマット読込ボタン５４ｈが押下されると、連携フォーマットＤＢ１２０ｃに格納されている連携フォーマットの一覧が共通フォーマット・マッピング編集画面５０ａに表示される（図示せず）。そして、ユーザにより連携フォーマットが選択されると、その連携フォーマットが読み込まれ、階層構造表示部５２ｂに、読み込まれた連携フォーマットの階層構造が表示される。その後、共通フォーマットＤＢ１３０ａに格納されている共通フォーマットの一覧が共通フォーマット・マッピング編集画面５０ａに表示される（図示せず）。そして、ユーザにより共通フォーマットが選択されると、その共通フォーマットが読み込まれ、階層構造表示部５２ｃに、読み込まれた共通フォーマットの階層構造が表示される。
【０１１７】
ユーザは、キーボード１２やマウス１３を用いて階層構造表示部５２ｃのノードを選択し、編集することができる。階層構造表示部５２ｂのノードは選択することはできるが、編集することはできない。図２６では、階層構造表示部５２ｂの従業員ＩＤと階層構造表示部５２ｃの従業員ＩＤとがそれぞれ選択されている。
【０１１８】
ユーザが階層構造表示部５２ｂに表示された連携フォーマットの階層構造を、階層構造表示部５２ｃに取り込ませたい場合、階層構造表示部５２ｂのノードを選択した状態で自動取込ボタン５４ｉを押下する。自動取込ボタン５４ｉが押下されると、階層構造表示部５２ｂで選択されたノードが、階層構造表示部５２ｃに取り込まれる。すなわち、連携フォーマット中で選択されている階層や項目が、共通フォーマットの選択されている階層配下にコピーされる。また、コピーした後に、マッピングが行われる。同一の項目が既に存在する場合は、マッピングのみが行われる。
【０１１９】
ユーザが、フォーマット情報の選択したノードを編集する場合には、追加ボタン５４ｂ、削除ボタン５４ｃ、編集ボタン５４ｄのいずれかを押下する。追加ボタン５３ｂが押下されると、選択したノードの子に項目が追加される。削除ボタン５４ｃが押下されると、選択しているノードが削除される。編集ボタン５４ｄが押下されると、選択された連携フォーマット情報の編集が可能になる。
【０１２０】
次に、定数追加ボタン５４ｆとリストノード追加ボタン５４ｇとの機能について説明する。
図２７は、定数とリストグループとを説明する図である。なお、図２７では、図２６の一部の図示を省略している。
【０１２１】
例えば項目として「従業員名」、「従業員名・カナ」という２つのデータを持っている連携フォーマットに対し、これらのデータを、それぞれを共通フォーマットの１項目とすると、後に例えば「従業員名・英語」の項目を追加する場合には、再度共通フォーマットを変更することになり、汎用性（拡張性）の低い共通フォーマットになってしまう。後に新たな項目を追加する場合等には予めリスト階層を作成しておくのが好ましい。この場合、連携フォーマットと共通フォーマットとの間にリストグループというノードを作成し、マッピングを再編成することにより、リスト階層でない項目群をリスト階層に変換することができる。
【０１２２】
リストグループは、１つまたは複数のリストノードで構成されている。ユーザがリストノードを追加したい場合には、リストノード追加ボタン５４ｇを押下する。リストノード追加ボタン５４ｇが押下されると、共通フォーマット管理部１３０がリストノードを追加する。図２７ではリストノード５２６とリストノード５２７とがそれぞれ追加されている。
【０１２３】
定数は、一定の値を入力したいときに使用する。ユーザが定数を追加したい場合には、定数追加ボタン５４ｆを押下する。定数追加ボタン５４ｆが押下されると、共通フォーマット管理部１３０が定数を追加する。図２７では定数として「正社員」が追加されている。これにより、階層構造表示部５２ｃに表示された項目物理名「従業員リスト階層」に、項目物理名「従業員種別ＩＤ」の項目が追加される。
【０１２４】
また、リストノード５２６には定数「漢字」が追加され、リストノード５２７には定数「カナ」が追加されている。これにより、階層構造表示部５２ｃに表示された物理項目名「従業員リスト階層」の子に項目物理名「従業員名リスト」のリスト階層が作成される。また、項目物理名「従業員名リスト」のリスト階層の項目として、階層構造表示部５２ｂに表示された項目物理名「従業員名・カナ」の項目が、項目物理名「言語ＩＤ」のキー項目および項目物理名「従業員名」の項目として再編成される。
【０１２５】
なお、定数の情報は、マッピング定数情報としてマッピングＤＢ１３０ｂに格納され、リストノードの情報は、リストノード項目情報としてマッピングＤＢ１３０ｂに格納される。
【０１２６】
再び図２６に戻って説明する。
ユーザが、オートマッピングを行う場合には、オートマッピングボタン５４ｊを押下する。オートマッピングボタン５４ｊが押下されると、共通フォーマット管理部１３０が、提携フォーマットの項目と共通フォーマットの項目との類似度を算出し、一定の類似度を有する項目同士をマッピングするオートマッピング処理を行う。
【０１２７】
図２６では、リンク部５２１ｂとリンク部５２１ｃとがリンクされ、リンク部５２２ｂとリンク部５２２ｃとがリンクされている。画面上にリンクの様子を表示することで、どの項目がどの項目に対応しているのかをユーザが容易に判断することができる。
【０１２８】
階層構造表示部５２ｂおよび階層構造表示部５２ｃには、それぞれ各ノードに対応したリンク部５２１ｂ〜５２５ｂ、５２１ｃ〜５２５ｃが表示されている。
ユーザは、オートマッピングとは別個に、例えばマウス１３を用いてリンク部５２１ｂ〜５２５ｂのうちのいずれか１つを選択し、リンク部５２１ｃ〜５２５ｃにドラッグすると、手動でマッピングを行うことができる。これにより、連携フォーマットの項目を共通フォーマットの項目に対応させることができる。図２６では、リンク部５２１ｂ、５２１ｃがマッピングされ、リンク部５２２ｂ、５２２ｃがマッピングされている。
【０１２９】
ユーザが柔軟化を行う場合には、柔軟化ボタン５４ｋを押下する。柔軟化ボタン５４ｋが押下されると、共通フォーマット管理部１３０が、共通フォーマットに対し予め用意した雛形が適用できそうなところがあればその雛形を適用することにより、共通フォーマットを、より融通性（汎用性）の高いフォーマットに変える柔軟化処理を行う。
【０１３０】
共通フォーマット管理部１３０は、後述する保存処理にて作成中の共通フォーマットにおいて、同じ階層構造で同じ項目名を有する部分が存在するか否かを探す。そして、同じ階層構造で同じ項目名を有する部分が存在するときは、その部分を雛形として抜き出して雛形ＤＢ１３０ｃに格納する。
【０１３１】
ユーザが編集した共通フォーマットを保存する場合には、保存ボタン５４ａを押下する。保存ボタン５４ａが押下されると、共通フォーマット管理部１３０により編集した共通フォーマット（保存ボタン５４ａが押下された時点での階層構造表示部５２ｃに表示されている共通フォーマット）およびマッピング情報が共通フォーマットＤＢ１３０ａに格納される。このとき共通フォーマットは、連携フォーマットとは異なるフォーマット情報および項目情報として共通フォーマットＤＢ１３０ａに格納される。
【０１３２】
次に、共通フォーマットＤＢ１３０ａに格納されるフォーマット情報および項目情報について説明する。共通フォーマットＤＢ１３０ａではフォーマット情報および項目情報がテーブル化されて格納されている。
【０１３３】
図２８は、共通フォーマットＤＢに格納されるフォーマット情報のデータ構造例を示す図である。
フォーマット情報テーブル１３１ａには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１３４】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納される。このＩＤは自動採番である。共通フォーマットＩＤのキーの欄には主キーが設定される。
共通フォーマット名の欄には、この共通フォーマットを一意に識別するテーブルの名前が格納される。
【０１３５】
次に、共通フォーマットＤＢ１３０ａに格納されている項目情報について説明する。
図２９は、共通フォーマットＤＢに格納される項目情報のデータ構造例を示す図である。
【０１３６】
なお、以下の説明では、項目情報テーブル１２２ｃと同様の部分については、その説明を省略する。
項目情報テーブル１３２ａには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１３７】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納される。このＩＤは自動採番である。また、共通フォーマットＩＤのキーの欄には主キーが設定される。
再び図２６に戻って説明する。
【０１３８】
ユーザが共通フォーマット・マッピング編集を終了する場合には、終了ボタン５４ｅを押下する。終了ボタン５４ｅが押下されると、共通フォーマット管理部１３０が共通フォーマット・マッピング編集動作を終了する。
【０１３９】
次に、オートマッピング処理について詳しく説明する。
図３０は、オートマッピング処理を示すフローチャートである。
まず、連携フォーマットから項目「ＩｔｅｍＸ」を１つ取り出す（ステップＳ１０１）。
【０１４０】
次に、共通フォーマットから項目「ＩｔｅｍＹ」を１つ取り出す（ステップＳ１０２）。
次に、「ＩｔｅｍＸ」と「ＩｔｅｍＹ」との類似度Ｓ「Ｘ」「Ｙ」を算出する（ステップＳ１０３）。
【０１４１】
次に、類似度Ｓ「Ｘ」「Ｙ」が閾値以上か否かを判断する（ステップＳ１０４）。類似度Ｓ「Ｘ」「Ｙ」が閾値以上ではない場合（ステップＳ１０４のＮｏ）、ステップＳ１０７に移行する。一方、類似度Ｓ「Ｘ」「Ｙ」が閾値以上の場合（ステップＳ１０４のＹｅｓ）、条件１として「ＩｔｅｍＹ」がマッピングされていないか否かまたは類似度Ｓ「Ｘ」「Ｙ」が、「ＩｔｅｍＹ」に既にマッピングされている項目の類似度よりも大きいか否かを判断する（ステップＳ１０５）。条件１を満たさない場合、すなわち「ＩｔｅｍＹ」がマッピングされており、かつ、類似度Ｓ「Ｘ」「Ｙ」が、「ＩｔｅｍＹ」に既にマッピングされている項目の類似度以下である場合（ステップＳ１０５のＮｏ）、ステップＳ１０７に移行する。一方、条件１を満たす場合、すなわち「ＩｔｅｍＹ」がマッピングされていないか、または類似度Ｓ「Ｘ」「Ｙ」が、「ＩｔｅｍＹ」に既にマッピングされている項目の類似度よりも大きい場合（ステップＳ１０５のＹｅｓ）、「ＩｔｅｍＸ」と「ＩｔｅｍＹ」とをマッピングする（ステップＳ１０６）。このとき「ＩｔｅｍＹ」にマッピングされている項目がある場合には、その項目（既存の項目）を消去する。
【０１４２】
次に、共通フォーマットの全ての項目を検証したか否かを判断する（ステップＳ１０７）。共通フォーマットの全ての項目を検証していない場合（ステップＳ１０７のＮｏ）、ステップＳ１０２に移行してオートマッピング処理を継続する。一方、共通フォーマットの全ての項目を検証した場合（ステップＳ１０７のＹｅｓ）、連携フォーマットの項目を全て検証したか否かを判断する（ステップＳ１０８）。連携フォーマットの項目を全て検証していない場合（ステップＳ１０８のＮｏ）、ステップＳ１０１に移行してオートマッピング処理を継続する。一方、連携フォーマットの項目を全て検証した場合（ステップＳ１０８のＹｅｓ）、オートマッピング処理を終了する。
【０１４３】
次に、図３０のステップＳ１０３の類似度の算出処理について説明する。
図３１は、類似度の算出処理を示すフローチャートである。
まず、「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目物理名」の類似度Ｓｐを算出する（ステップＳ１２１）。
【０１４４】
次に、「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目論理名」の類似度Ｓｌを算出する（ステップＳ１２２）。
次に、「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目種別」の類似度Ｓｔを決定する（ステップＳ１２３）。具体的には「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目種別」が同一であれば類似度Ｓｔを「１」とし、同一でなければ類似度Ｓｔを「０」とする。
【０１４５】
次に、「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目長」の類似度Ｓｓを決定する（ステップＳ１２４）。具体的には「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の各「項目長」が同一であれば類似度Ｓｓを「１」とし、同一でなければ類似度Ｓｓを「０」とする。
【０１４６】
次に、（Ｗ１×Ｓｐ）＋（Ｗ２×Ｓｌ）＋（Ｗ３×Ｓｔ）＋（Ｗ４×Ｓｓ）を計算しこの値を、「ＩｔｅｍＸ」および「ＩｔｅｍＹ」の類似度Ｓ「Ｘ」「Ｙ」とする（ステップＳ１２５）。ここでＷ１〜Ｗ４は、予め定められた重み係数を示す。
【０１４７】
以上で類似度の算出処理を終了する。
次に、図３０のステップＳ１１１の類似度Ｓｐの算出処理について説明する。
図３２は、類似度Ｓｐの算出処理を示すフローチャートである。
【０１４８】
まず、項目名Ｘ、Ｙを単語単位で分割した配列Ｘ［ｉ］、Ｙ［ｉ］をそれぞれ作成する（ステップＳ１３１）。
次に、配列Ｘ［ｉ］、Ｙ［ｉ］内の各単語を類義単語として類義語ＤＢ１４０ａの後述する類義単語テーブルを検索する（ステップＳ１３２）。類義単語に対応する代表単語が存在する場合は、配列Ｘ［ｉ］の単語を代表単語に置き換える。
【０１４９】
次に、配列Ｘ［ｉ］と配列Ｙ［ｉ］の単語の重複している割合Ｒを算出する（ステップＳ１３３）。ここで割合Ｒは、「重複している単語数を、項目名Ｘの単語数と項目名Ｙの単語数の内、大きい方の数で割った値」とする。
【０１５０】
以上で類似度Ｓｐの算出処理を終了する。
類似度Ｓｐの算出処理によれば、例えば、連携フォーマットの項目が「従業員ＩＤ」であり共通フォーマットの項目が「社員コード」である場合、単語単位で分割すると、それぞれ「従業員｜ＩＤ」、「社員｜コード」になる。ここで、代表単語が「従業員番号」である場合、「従業員｜ＩＤ」は、「従業員｜番号」に置き換える。また、「社員｜コード」も「従業員｜番号」に置き換える。その結果割合Ｒは１となる。
【０１５１】
次に、ユーザにより保存ボタン５４ａが押下された場合の共通フォーマット管理部１３０の保存処理について詳しく説明する。
図３３は、保存処理を示すフローチャートである。
【０１５２】
まず、共通フォーマットを共通フォーマットＤＢ１３０ａに格納し、マッピング情報をマッピングＤＢ１３０ｂに格納する（ステップＳ１４１）。
次に、雛形更新処理を行い、雛形項目情報を更新する（ステップＳ１４２）。
【０１５３】
次に、マッピングされた２つの項目のうち、項目物理名が異なるものが存在するか否かを判断する（ステップＳ１４３）。項目物理名が異なるものが存在する場合（ステップＳ１４３のＹｅｓ）、これらを「類義語１」、「類義語２」として類義語ＤＢ１４０ａに格納し（ステップＳ１４４）、ステップＳ１４５に移行する。ここで類義語句とは例えば「従業員コード」と「社員ＩＤ」のように、類義した「語句（単語の組み合わせ）」を言う。項目物理名が異なるものが存在しない場合（ステップＳ１４３のＮｏ）、ステップＳ１４５に移行する。
【０１５４】
次に、項目論理名が異なるものが存在するか否かを判断する（ステップＳ１４５）。項目論理名が異なるものが存在する場合（ステップＳ１４５のＹｅｓ）、これらを「類義語１」、「類義語２」として類義語ＤＢ１４０ａに格納し（ステップＳ１４６）、保存動作を終了する。一方、項目論理名が異なるものが存在しない場合（ステップＳ１４５のＮｏ）、そのまま保存処理を終了する。
【０１５５】
次に、保存処理によってマッピングＤＢ１３０ｂに格納されるマッピング情報について説明する。マッピング情報は、マップ情報、マッピング項目情報、マッピング定数情報およびリストノード項目情報としてマッピングＤＢ１３０ｂに格納される。これらの各情報は、それぞれテーブル化されてマッピングＤＢ１３０ｂに格納されている。
【０１５６】
まず、マップ情報について説明する。
図３４は、マップ情報のデータ構造例を示す図である。
マップ情報テーブル１３１ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１５７】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納されている。このＩＤは自動採番である。共通フォーマットＩＤのキーの欄には主キーが設定される。
連携フォーマットＩＤの欄には、連携フォーマットのＩＤが格納されている。連携フォーマットＩＤのキーの欄には主キーが設定される。
【０１５８】
次に、マッピング項目情報について説明する。
図３５は、マッピング項目情報のデータ構造例を示す図である。
マッピング項目情報テーブル１３２ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１５９】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納される。
連携フォーマットＩＤの欄には、連携フォーマットのＩＤが格納される。
マッピング元項目種別の欄には、連携フォーマット項目／共通フォーマット項目／定数／リストノードのいずれかが設定される。
【０１６０】
マッピング元項目ＩＤの欄には、マッピング元項目種別が「連携フォーマット項目」または「共通フォーマット項目」の場合「フォーマット項目ＩＤ」が設定され、「定数」の場合「定数ＩＤ」が設定され、「リストノード」の場合「リストノードＩＤ」が設定される。
【０１６１】
マッピング先項目種別の欄には、連携フォーマット項目／共通フォーマット項目／定数／リストノードのいずれかが設定される。
マッピング先項目ＩＤの欄には、マッピング先項目種別が「連携フォーマット項目」または「共通フォーマット項目」の場合「フォーマット項目ＩＤ」が設定され、「定数」の場合「定数ＩＤ」が設定され、「リストノード」の場合「リストノードＩＤ」が設定される。
【０１６２】
マッピング項目情報テーブル１３２ｂの全ての項目のキーの欄には、主キーが設定される。
次に、マッピング定数情報について説明する。
【０１６３】
図３６は、マッピング定数情報のデータ構造例を示す図である。
マッピング定数情報テーブル１３３ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１６４】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納される。
連携フォーマットＩＤの欄には、連携フォーマットのＩＤが格納される。
定数ＩＤの欄には、定数固有のＩＤが設定される。このＩＤは、自動採番である。
【０１６５】
定数値の欄には、定数の値が格納される。
マッピング定数情報テーブル１３３ｂの全ての項目のキーの欄には、主キーが設定される。
【０１６６】
次に、リストノード項目情報について説明する。
図３７は、リストノード項目情報のデータ構造例を示す図である。
リストノード項目情報テーブル１３４ｂには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１６７】
共通フォーマットＩＤの欄には、共通フォーマット固有のＩＤが格納される。
連携フォーマットＩＤの欄には、連携フォーマットのＩＤが格納される。
リストノードＩＤの欄には、リストノードの項目ＩＤが設定される。このＩＤは、自動採番である。
【０１６８】
連番の欄には、リストノードの何番目の項目かを示す数値が格納される。
リストノード項目情報テーブル１３４ｂの全ての項目のキーの欄には、主キーが設定される。
【０１６９】
次に、雛形ＤＢ１３０ｃに格納された雛形項目情報テーブルについて説明する。
図３８は雛形項目情報のデータ構造例を示す図である。
雛形項目情報テーブル１３１ｃには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１７０】
項目名の欄には、それぞれ雛形ＩＤ、フォーマット項目ＩＤ、フォーマット項目種別、項目物理名、項目論理名、項目データ型、項目データ長、親フォーマット項目ＩＤ、再帰フォーマット項目ＩＤ、表示順、使用個数が格納される。
【０１７１】
なお、以下の説明では、雛形項目情報テーブル１３１ｃは、共通フォーマットの項目情報テーブル１３２ａと同じ項目については同様の情報が格納されるため、項目情報テーブル１３２ａと同様の部分については、その説明を省略する。
【０１７２】
雛形ＩＤの欄には、雛形固有のＩＤが格納される。このＩＤは自動採番である。雛形ＩＤのキーの欄には、主キーが設定される。
使用個数の欄には、この雛形が使用されている共通フォーマットの個数が格納される。
【０１７３】
次に、図３３のステップＳ１４２の雛形更新処理について説明する。
雛形更新処理では、今回作成した共通フォーマットの中から各階層を取り出し、これと同じ階層構造が今回作成した共通フォーマットの他の部分に存在するか否かを調べる。存在した場合、この階層構造が雛形ＤＢに既に存在しているか否かを判断し、存在しなければ、この階層構造を新たな雛形として登録する。この作業を階層毎に行う。
【０１７４】
図３９および図４０は、雛形更新処理を示すフローチャートである。
まず、雛形ＤＢ１３０ｃの雛形項目情報テーブルを初期化する（ステップＳ１５１）。
次に、作成した共通フォーマットＸのルートＹを取得する（ステップＳ１５２）。
【０１７５】
次に、ルートＹと全く同様の構造を備える共通フォーマットの個数Ｃを検索し、個数Ｃが存在するか否かを判断する（ステップＳ１５３）。
個数Ｃが存在する場合（ステップＳ１５３のＹｅｓ）、ルートＹが雛形項目情報テーブルに登録済みか否かを判断する。（ステップＳ１５４）。ルートＹが雛形項目情報テーブルに登録済みの場合（ステップＳ１５４のＹｅｓ）、ステップＳ１５７に移行する。ルートＹが雛形項目情報テーブルに登録済みではない場合（ステップＳ１５４のＮｏ）、ルートＹに兄弟ノードまたは子ノードが存在するか否かを判断する（ステップＳ１５５）。ルートＹに兄弟ノードまたは子ノードが存在しない場合（ステップＳ１５５のＮｏ）、ステップＳ１５７に移行する。ルートＹに兄弟ノードまたは子ノードが存在する場合（ステップＳ１５５のＹｅｓ）、ルートＹを雛形項目情報テーブル１３１ｃの雛形項目情報に追加する（ステップＳ１５６）。このとき、雛形項目情報テーブル１３１ｃの使用個数の欄には、個数Ｃの値を設定する。
【０１７６】
次に、ルートＹに他の兄弟ノードが存在するか否かを判断する（ステップＳ１５７）。ここで、ノードＰ（Ｐは任意）の兄弟ノードとはノードＰの親ノードの子ノードのことを言う。ルートＹに他の兄弟ノードが存在する場合（ステップＳ１５７のＹｅｓ）、その兄弟ノードをルートＹとし（ステップＳ１５８）、ステップＳ１５２に移行して引き続き雛形更新処理を行う。ルートＹに他の兄弟ノードが存在しない場合（ステップＳ１５７のＮｏ）、雛形更新処理を終了する。
【０１７７】
一方、ステップＳ１５３で個数Ｃが存在しない場合（ステップＳ１５３のＮｏ）、ルートＹに兄弟ノードが存在するか否かを判断する（ステップＳ１５９）。ルートＹに兄弟ノードが存在する場合（ステップＳ１５９のＹｅｓ）、この兄弟ノードをルートＹとし（ステップＳ１６０）、ステップＳ１５２に移行して引き続き雛形更新処理を行う。ルートＹに兄弟ノードが存在しない場合（ステップＳ１５９のＮｏ）、ルートＹに子ノードが存在するか否かを判断する（ステップＳ１６１）。ルートＹに子ノードが存在する場合（ステップＳ１６１のＹｅｓ）、その子ノードをルートＹとし（ステップＳ１６２）、ステップＳ１５２に移行して引き続き雛形更新処理を行う。ルートＹに子ノードが存在しない場合（ステップＳ１６１のＮｏ）、雛形更新処理を終了する。
【０１７８】
次に、ユーザにより柔軟化ボタン５４ｋが押下された場合の共通フォーマット管理部１３０の柔軟化処理について詳しく説明する。
図４１は、柔軟化処理を示すフローチャートである。
【０１７９】
まず、子階層または兄弟階層１階層分の項目のリストを取得する（ステップＳ１７１）。
次に、取得した階層に任意の項目を適用し、その中から適用できる雛形が存在するか否かを判断する雛形項目変換処理を行う（ステップＳ１７２）。
【０１８０】
次に、後に追加されそうな項目を予測し、必要に応じてその項目を追加する階層項目変換処理を行う（ステップＳ１７３）。
次に、全ての階層を検証したか否かを判断する（ステップＳ１７４）。全ての階層を検証していない場合（ステップＳ１７４のＮｏ）、ステップＳ１７１に移行して柔軟化処理を継続する。全ての階層を検証した場合（ステップＳ１７４のＹｅｓ）柔軟化処理を終了する。
【０１８１】
次に、ステップＳ１７２の雛形項目変換処理について説明する。
雛形項目変換処理では、階層にある項目を持ってきて、その中から雛形だけ適用できそうなものはないかを探す処理を行う。
【０１８２】
図４２は、雛形項目変換処理を示すフローチャートである。
まず、リスト中の項目Ｉ［ｉ］を使用している雛形の一覧Ｈ［ｊ］を取得する（ステップＳ１８１）。
【０１８３】
次に雛形の一覧Ｈ［ｊ］の中からどの雛形を適用するのが適切かの確度を求める（ステップＳ１８２）。確度は、重みＷ５と一覧Ｈ［ｊ］中に存在する項目Ｉの項目数との積と、重みＷ６と雛形の使用回数との積との和で求める。重みＷ５および重みＷ６の値はユーザが予め設定しておく。
【０１８４】
次に、確度の高い項目から順に雛形に置き換えを行う（ステップＳ１８３）。すなわち、柔軟化したい項目をより多く含む雛形で、かつ使用度が高い物を選ぶ。また、雛形に置き換えた項目には変換済フラグを立てる。変換済フラグの立っている項目については、置き換えを行わない。これにより、一度雛形に置き換えられた項目が、他の雛形に置き換えられることを防止することができる。なお、雛形の置き換えを行った場合、置き換えを行った雛形の使用回数の欄の値を１インクリメントする。以上で雛形項目変換処理を終了する。
【０１８５】
次に、ステップＳ１７３の階層項目変換処理について説明する。
図４３は、階層項目変換処理を示すフローチャートである。
まず、編集中の共通フォーマット以外の共通フォーマットＣを１件取得する（ステップＳ１９１）。
【０１８６】
次に、共通フォーマットＣの項目中に、編集中の項目と同様または類似した項目があればフラグを立てる（ステップＳ１９２）。この際、類似した項目については、前述した雛型更新処理と同様の方法で類似度を求め、最も類似度が高く、かつ、閾値が一定値以上の項目を類似した項目とする。
【０１８７】
次に、共通フォーマットＣからフラグの立っている項目を保持している階層を、親ノードごと抜き出した部分木群を抽出する。そして抽出した部分木群について、それぞれ「フラグ数」「項目数」を求める（ステップＳ１９３）。
【０１８８】
次に、全ての共通フォーマットを検証したか否かを判断する（ステップＳ１９４）。全ての共通フォーマットを検証していない場合（ステップＳ１９４のＮｏ）、ステップＳ１９１に移行して階層項目変換処理を継続する。全ての共通フォーマットを検証した場合（ステップＳ１９４のＹｅｓ）、「フラグ数」の高い部分木から順に、編集中の項目を部分木に置き換えていく（ステップＳ１９５）。フラグ数が同一の部分木が複数ある場合は、「項目数」の少ないものを優先する。但し、「変換済フラグ」の立っている項目については、変換を行わない。また、置き換えた項目は「変換済フラグ」を立てる。
【０１８９】
次に、前述した階層項目変換処理について、具体例を用いて説明する。
図４４は、階層項目変換処理の一例を示す図である。
柔軟化を行いたい共通フォーマットとして、項目に「連絡先」、「住所」、「データ更新日時」、「住所種別」を有する雛形項目変換処理済みの共通フォーマット１３９ａを取得する。
【０１９０】
次に、他の共通フォーマットとして共通フォーマットＣ１を取得する。
次に、他の共通フォーマットＣ１の、共通フォーマット１３９ａの項目に該当する部位にフラグを立てる。そして、共通フォーマットＣ１の部分木群を抽出する。図４４では４つの部分木Ｃａ１、Ｃａ２、Ｃａ３、Ｃａ４が抽出される。そして、部分木Ｃａ１、Ｃａ２、Ｃａ３、Ｃａ４のフラグ数をそれぞれ比較すると、部分木Ｃａ３のフラグ数が２でこの中では一番大きいことが分かる。よって、この場合共通フォーマット１３９ａを部分木Ｃａ３に置き換える。そして、置き換えた項目（この場合、住所種別、住所）には変換済フラグＦ１を立てる。
【０１９１】
次に、類義単語管理部１４０の動作について説明する。
前述したように、類義単語管理部１４０は、類義単語を学習するために必要な情報を類義語ＤＢ１４０ａから取り出し、その情報に対して類義単語辞書作成処理を行うことにより、最新の類義単語のリストを作成する。
【０１９２】
類義語ＤＢ１４０ａは、保存動作により類義語ＤＢ１４０ａに格納された「類義語１」、「類義語２」を格納する未解決類義語句テーブルと、予め類義単語が格納された類義単語テーブルとを有している。ここで類義単語とは、「従業員」と「社員」、「コード」と「ＩＤ」のように類義している単語をいう。類義単語テーブルは、ユーザが手動で更新してもよいし、類義語辞典等を読み込んでもよい。
【０１９３】
次に、類義語ＤＢ１４０ａに格納されている未解決類義語句テーブルと類義単語テーブルについて説明する。
図４５は、未解決類義語句のデータ構造例を示す図である。
【０１９４】
未解決類義語句テーブル１４１ａには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
項目名の欄には、類義語が格納される。図４５の例では、類義語２の類義語として「類義語１」が格納され、類義語１の類義語として「類義語２」が格納されている。キーの欄にはキーの属性が設定される。図４５の例ではそれぞれ主キーが設定されている。
【０１９５】
図４６は、類義単語のデータ構造例を示す図である。
類義単語テーブル１４２ａには、項目名、キーの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
【０１９６】
項目名の欄には、類義単語の代表の単語である代表単語と、代表単語に類似する意味を持つ単語である類義単語が格納される。キーの欄にはキーの属性が設定される。図４５の例ではそれぞれ主キーが設定されている。
【０１９７】
図４７は、類義単語辞書作成処理の概要を示す図である。
類義単語管理部１４０は、類義単語辞書作成処理を行うことにより、類義単語テーブル１４２ｂと未解決類義語句テーブル１４１ｂとから最新の類義単語テーブル１４２ｃを作成する。
【０１９８】
次に、類義単語辞書作成処理について詳しく説明する。
図４８は、類義単語辞書作成処理を示すフローチャートである。
まず、未解決類義語句から整理済未解決類義語句を作成する（ステップＳ２１１）。具体的には類義語句を単語分割し、分割した単語を代表単語に置き換える。この際、助詞は除去する。置換後、重複する類義語句はリストから除去する。
【０１９９】
次に、同じ意味の類義語同士をグルーピングしたリストＳ［ｉ］を作成する（ステップＳ２１２）。
次に、作成したリストＳ［ｉ］から１件の類義語グループのリストＳｇを取り出す（ステップＳ２１３）。
【０２００】
次に、リストＳｇから類義単語を抽出する類義単語抽出処理を行う（ステップＳ２１４）。
次に、リストＳ［ｉ］を全て検証したか否かを判断する（ステップＳ２１５）。リストＳ［ｉ］を全て検証していない場合（ステップＳ２１５のＮｏ）、ステップＳ２１３に移行して類義単語辞書作成処理を継続する。リストＳ［ｉ］を全て検証した場合（ステップＳ２１５のＹｅｓ）、新しく抽出された類義単語が存在するか否かを判断する（ステップＳ２１６）。新しく抽出された類義単語が存在する場合（ステップＳ２１６のＹｅｓ）、ステップＳ２１１に移行して類義単語辞書作成処理を継続する。新しく抽出された類義単語が存在しない場合（ステップＳ２１６のＮｏ）、類義単語辞書作成処理を終了する。
【０２０１】
次に、ステップＳ２１４の類義単語抽出処理について説明する。
図４９は、類義単語抽出処理を示すフローチャートである。
まず、類義語句のリストＳｇから単語の組合せの数が等しく、かつ、１つだけ単語の組合せが異なる類義語句のセットＸ、Ｙが存在するか否かを判断する（ステップＳ２２１）。セットＸ、Ｙが存在しない場合（ステップＳ２２１のＮｏ）、類義単語抽出処理を終了する。セットＸ、Ｙが存在する場合（ステップＳ２２１のＹｅｓ）、セットＸとＹの異なる単語の文字列をそれぞれ文字列ｘ、ｙとする（ステップＳ２２２）。
【０２０２】
次に、類義単語を登録する（ステップＳ２２３）。具体的には文字列ｘが代表単語の場合、「代表単語：文字列ｘ」「類義単語：文字列ｙ」とする。文字列ｙが代表単語の場合、「代表単語：文字列ｙ」「類義単語：文字列ｘ」とする。文字列ｘが類義単語、文字列ｙが未登録の単語の場合、「代表単語：文字列ｘの代表単語」「類義単語：文字列ｙ」とする。文字列ｙが類義単語、文字列ｘが未登録の単語の場合、「代表単語：文字列ｙの代表単語」「類義単語：文字列ｘ」とする。文字列ｘと文字列ｙの両方が未登録の単語の場合、「代表単語：文字列ｘ」「類義単語：文字列ｙ」とする。
【０２０３】
次に、文字列ｙの類義語句を未解決類義語句テーブル１４１ａとリストＳｇからそれぞれ削除する（ステップＳ２２４）。
次に、リストＳｇの中の文字列ｘ、ｙの単語を、それぞれ文字列ｘ、ｙの代表単語に置換する（ステップＳ２２５）。
【０２０４】
次に、リストＳｇから重複する単語の組み合わせを除去する（ステップＳ２２６）。
その後、ステップＳ２２１に移行して、類義単語抽出処理を継続する。
次に、類義単語辞書作成処理について具体例を用いて説明する。
【０２０５】
図５０は、類義単語辞書作成処理の具体例を示す図である。
なお、図５０では、図４７と同様の部分については同一の符号を付している。
まず、類義単語管理部１４０が未解決類義語句テーブル１４１ｂおよび類義単語テーブル１４２ｂを取り出す。そして、類義単語テーブル１４２ｂを用いて未解決類義語句をそれぞれ単語に分割して整理済未解決類義語句１４３ａを作成する（ステップＳ２１２に相当）。例えば旧類義単語リストに署員があるため、署員名は署員と名とに分割する。そして、重複する組み合わせを除去し、助詞を取り除く。さらに、代表単語に置換する。署員は社員に置換する。
【０２０６】
次に、整理済未解決類義語句をグルーピングしてリストＳ［１］１４４（グルーピングされた類義語句）を作成する。
そして、リストＳｇ１を取り出し、その中から、単語の組み合わせ数が同じで、１つだけ単語の組み合わせが異なるものを見つけ出す。図５０では、「社員｜名」と「従業員｜名」は、単語の組み合わせの数が２つでかつ「名」の部分が同じで「社員」と「従業員」が異なるため、「社員｜名」、「従業員｜名」はステップＳ２２１のセットＸ、Ｙに該当する。
【０２０７】
そして、「社員」が代表単語のため、「従業員」を類義単語として類義単語テーブル１４２ｂに登録する。そして、「社員」と「従業員」が類義単語であるため、リストＳｇ１中の「従業員｜名称」の「従業員」の部分を「社員」に置き換える。すると「従業員｜名称」は「社員｜名称」に置き換わる。今度は「社員｜名称」を「社員｜名」と比べると「社員」の部分が同じで「名」と「名称」が異なるため、「社員｜名称」、「社員｜名」はステップＳ２２１のセットＸ、Ｙに該当する。そして、代表単語が類義単語テーブル１４２ｂに存在しないため、代表単語「名」、類義単語「名称」として、類義単語テーブル１４２ｂに登録する。このようにして類義語句を逐次抽出し、類義単語テーブル１４２ｂに登録する。リストＳｇ２、Ｓｇ３についても同様の動作を行う。このようにして、新たな類義単語が追加（登録）された類義単語テーブル１４２ｃが最終的に作成される。
【０２０８】
以上説明したように、管理装置１００によれば、共通フォーマット管理部１３０が、共通フォーマット作成時に雛形項目変換処理を行うことにより、雛形の一覧Ｈ［ｊ］から項目に適用する雛形を選択し、適用することができる項目を雛形に置き換えることによって、標準化された（統一性の高い）共通フォーマットを作成することができる。よって、例えば技量の高い管理者が作成した共通フォーマットや雛形を共通フォーマットＤＢ１３０ａや雛形ＤＢ１３０ｃに予め格納しておき、その後に新たな共通フォーマットを作成するときにユーザが柔軟化ボタン５４ｋを押下するだけで、ユーザの技量にかかわらず拡張性（汎用性）の高い、すなわち新規の基幹システムが追加された場合においても仕様変更等に影響を受けにくい共通フォーマットを作成することができる。これにより、保守管理が容易なシステムを構築することができる。
【０２０９】
また、階層項目変換処理を行うことにより、項目の兄弟ノードが増加するため、雛形適用時に項目の漏れを補完することができ、より拡張性（汎用性）の高い共通フォーマットを作成することができる。
【０２１０】
また、雛形更新処理を行うことにより、共通フォーマット内で同様の構造を有する部分を雛形として容易に抽出することができる。
また、ユーザが抽出ボタン５３ｆを押下することにより、フォーマット作成部１２０ａがフォーマット抽出処理を実行するため、連携フォーマットを効率よく作成することができる。
【０２１１】
また、ユーザがオートマッピングボタン５４ｊを押下することにより、共通フォーマット管理部１３０がオートマッピング処理を実行するため、過去のマッピング情報に基づいて、新規のマッピング情報を容易に作成することができる。
【０２１２】
また、柔軟化処理実行時およびマップ情報作成時に、類義語ＤＢ１４０ａに格納された類義単語テーブル１４２ａを利用することにより、変換効率のよい項目の同定を行うことができる。
【０２１３】
また、類義単語管理部１４０が類義単語辞書作成処理を行うことにより、容易に、類義単語テーブルの更新を行うことができるため、ユーザが類義単語の登録を手動で行う手間を軽減することができる。
【０２１４】
以上本発明の好適な実施の形態について詳述したが、本発明は、その特定の実施の形態に限定されるものではない。
なお、上記の処理機能の主要部は、コンピュータによって（コンピュータに所定の共通フォーマット作成プログラムを実行させることにより）実現することができる。その場合、管理装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０２１５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２１６】
共通フォーマット作成プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２１７】
（付記１）  複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成する共通フォーマット作成プログラムにおいて、
コンピュータに、
編集対象の共通フォーマットの各階層の項目を編集対象項目としてそれぞれ取得し、
既存の共通フォーマットから作成され、前記編集対象項目と同一の項目を備える雛形の一覧を取得し、
前記雛形に存在する項目と前記編集対象項目との一致数と、前記雛形の使用回数とに基づいて、前記編集対象項目を置き換える雛形を選択し、
前記編集対象項目を、選択した前記雛形に置き換える、
処理を実行させることを特徴とする共通フォーマット作成プログラム。
【０２１８】
（付記２）  前記既存の共通フォーマットの、前記編集対象項目と同一の項目を備える階層を部分木として抽出し、
抽出した前記部分木のうち、前記編集対象項目と一致した数が最も多い部分木の構造を前記編集対象の共通フォーマットの階層として適用することを特徴とする付記１記載の共通フォーマット作成プログラム。
【０２１９】
（付記３）  前記編集対象の共通フォーマットの互いに一致する階層の構造を抽出し、
抽出した前記構造を、雛形として前記雛形の一覧に追加することを特徴とする付記１記載の共通フォーマット作成プログラム。
【０２２０】
（付記４）  抽出した前記構造の個数を、前記雛形の一覧に追加した雛形の使用回数とすることを特徴とする付記３記載の共通フォーマット作成プログラム。
（付記５）  前記システム毎の固有の連携フォーマットを用意し、
前記編集対象の共通フォーマットの項目毎に、前記連携フォーマットの各項目との類似度を算出し、
前記編集対象の共通フォーマットの項目毎に、前記連携フォーマットの前記類似度が最も大きい項目とのマッピングを行うことを特徴とする付記１記載の共通フォーマット作成プログラム。
【０２２１】
（付記６）  前記編集対象の共通フォーマットの項目および前記連携フォーマットの項目を単語単位で分割し、前記単語の重複している割合を算出することにより、前記類似度を算出することを特徴とする付記５記載の共通フォーマット作成プログラム。
【０２２２】
（付記７）  前記編集対象項目を、選択した前記雛形に置き換えたとき、前記雛形に置き換えられた項目の再度の置き換えを防止する変換済フラグを設定することを特徴とする付記１記載の共通フォーマット作成プログラム。
【０２２３】
（付記８）  類義語情報を用いて前記編集対象の共通フォーマットの項目の同定を行うことを特徴とする付記１記載の共通フォーマット作成プログラム。
（付記９）  複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成する共通フォーマット作成方法において、
編集対象の共通フォーマットの各階層の項目を編集対象項目としてそれぞれ取得し、
既存の共通フォーマットから作成され、前記編集対象項目と同一の項目を備える雛形の一覧を取得し、
前記雛形に存在する項目と前記編集対象項目との一致数と、前記雛形の使用回数とに基づいて、前記編集対象項目を置き換える雛形を選択し、
前記編集対象項目を、選択した前記雛形に置き換える、
ことを特徴とする共通フォーマット作成方法。
【０２２４】
（付記１０）  複数のシステム間にてデータ連携を行う際に用いる共通フォーマットを作成する共通フォーマット作成装置において、
編集対象の共通フォーマットの各階層の項目を編集対象項目としてそれぞれ取得する編集対象項目取得手段と、
既存の共通フォーマットから作成され、前記編集対象項目と同一の項目を備える雛形の一覧を取得する雛形一覧取得手段と、
前記雛形に存在する項目と前記編集対象項目との一致数と、前記雛形の使用回数とに基づいて、前記編集対象項目を置き換える雛形を選択する選択手段と、
前記編集対象項目を、選択した前記雛形に置き換える置き換え手段と、
を有することを特徴とする共通フォーマット作成装置。
【図面の簡単な説明】
【０２２５】
【図１】実施の形態に適用される発明を示す概要図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】管理装置のハードウェア構成例を示す図である。
【図４】管理装置の機能を示すブロック図である。
【図５】抽出情報ＤＢに格納されるテーブル情報のデータ構造例を示す図である。
【図６】抽出情報ＤＢに格納される項目情報のデータ構造例を示す図である。
【図７】抽出情報ＤＢに格納される主キー情報のデータ構造例を示す図である。
【図８】抽出情報ＤＢに格納されるユニークキー情報のデータ構造例を示す図である。
【図９】抽出情報ＤＢに格納される参照情報のデータ構造例を示す図である。
【図１０】抽出情報ＤＢに格納される参照情報のデータ構造例を示す図である。
【図１１】フォーマット編集画面の例を示す図である。
【図１２】フォーマット項目種別を説明する図である。
【図１３】グループ階層を説明する図である。
【図１４】リスト階層を説明する図である。
【図１５】ループ階層を説明する図である。
【図１６】再帰リスト階層を説明する図である。
【図１７】連携フォーマットＤＢに格納されるフォーマット情報のデータ構造例を示す図である。
【図１８】連携フォーマットＤＢに格納される項目情報のデータ構造例を示す図である。
【図１９】連携フォーマット作成動作を示すフローチャートである。
【図２０】フォーマット抽出処理を示すフローチャートである。
【図２１】フォーマット定義の作成処理を示すフローチャートである。
【図２２】連携フォーマット項目作成処理を示すフローチャートである。
【図２３】連携フォーマット階層作成処理を示すフローチャートである。
【図２４】再帰ループチェックを説明する図である。
【図２５】チェック処理を示すフローチャートである。
【図２６】共通フォーマット・マッピング編集画面の例を示す図である。
【図２７】定数とリストグループとを説明する図である。
【図２８】共通フォーマットＤＢに格納されるフォーマット情報のデータ構造例を示す図である。
【図２９】共通フォーマットＤＢに格納される項目情報のデータ構造例を示す図である。
【図３０】オートマッピング処理を示すフローチャートである。
【図３１】類似度の算出処理を示すフローチャートである。
【図３２】類似度Ｓｐの算出処理を示すフローチャートである。
【図３３】保存処理を示すフローチャートである。
【図３４】マップ情報のデータ構造例を示す図である。
【図３５】マッピング項目情報のデータ構造例を示す図である。
【図３６】マッピング定数情報のデータ構造例を示す図である。
【図３７】リストノード項目情報のデータ構造例を示す図である。
【図３８】雛形項目情報のデータ構造例を示す図である。
【図３９】雛形更新処理を示すフローチャートである。
【図４０】雛形更新処理を示すフローチャートである。
【図４１】柔軟化処理を示すフローチャートである。
【図４２】雛形項目変換処理を示すフローチャートである。
【図４３】階層項目変換処理を示すフローチャートである。
【図４４】階層項目変換処理の一例を示す図である。
【図４５】未解決類義語句のデータ構造例を示す図である。
【図４６】類義単語のデータ構造例を示す図である。
【図４７】類義単語辞書作成処理の概要を示す図である。
【図４８】類義単語辞書作成処理を示すフローチャートである。
【図４９】類義単語抽出処理を示すフローチャートである。
【図５０】類義単語辞書作成処理の具体例を示す図である。
【図５１】従来のデータの連携を示す図である。
【図５２】新たなシステムを連携させる場合を示す図である。
【符号の説明】
【０２２６】
１  コンピュータ
１ａ  共通フォーマット管理手段
２  編集対象の共通フォーマット
２ａ、２ｂ  編集対象項目
３  雛形ＤＢ
３ａ〜３ｃ  雛形
１００  管理装置
１１０  インタフェース部
１２０  連携フォーマット編集部
１２０ａ  フォーマット作成部
１２０ｂ  抽出情報ＤＢ
１２０ｃ  連携フォーマットＤＢ
１３０  共通フォーマット管理部
１３０ａ  共通フォーマットＤＢ
１３０ｂ  マッピングＤＢ
１３０ｃ  雛形ＤＢ
１４０  類義単語管理部
１４０ａ  類義語ＤＢ
【図１】
2007249747.tif 000003
【図２】
2007249747.tif 000004
【図３】
2007249747.tif 000005
【図４】
2007249747.tif 000006
【図５】
2007249747.tif 000007
【図６】
2007249747.tif 000008
【図７】
2007249747.tif 000009
【図８】
2007249747.tif 000010
【図９】
2007249747.tif 000011
【図１０】
2007249747.tif 000012
【図１１】
2007249747.tif 000013
【図１２】
2007249747.tif 000014
【図１３】
2007249747.tif 000015
【図１４】
2007249747.tif 000016
【図１５】
2007249747.tif 000017
【図１６】
2007249747.tif 000018
【図１７】
2007249747.tif 000019
【図１８】
2007249747.tif 000020
【図１９】
2007249747.tif 000021
【図２０】
2007249747.tif 000022
【図２１】
2007249747.tif 000023
【図２２】
2007249747.tif 000024
【図２３】
2007249747.tif 000025
【図２４】
2007249747.tif 000026
【図２５】
2007249747.tif 000027
【図２６】
2007249747.tif 000028
【図２７】
2007249747.tif 000029
【図２８】
2007249747.tif 000030
【図２９】
2007249747.tif 000031
【図３０】
2007249747.tif 000032
【図３１】
2007249747.tif 000033
【図３２】
2007249747.tif 000034
【図３３】
2007249747.tif 000035
【図３４】
2007249747.tif 000036
【図３５】
2007249747.tif 000037
【図３６】
2007249747.tif 000038
【図３７】
2007249747.tif 000039
【図３８】
2007249747.tif 000040
【図３９】
2007249747.tif 000041
【図４０】
2007249747.tif 000042
【図４１】
2007249747.tif 000043
【図４２】
2007249747.tif 000044
【図４３】
2007249747.tif 000045
【図４４】
2007249747.tif 000046
【図４５】
2007249747.tif 000047
【図４６】
2007249747.tif 000048
【図４７】
2007249747.tif 000049
【図４８】
2007249747.tif 000050
【図４９】
2007249747.tif 000051
【図５０】
2007249747.tif 000052
【図５１】
2007249747.tif 000053
【図５２】
2007249747.tif 000054