(57)【要約】【課題】シソーラス辞書の用意やマッピング定義の加工などを事前に行う必要がなく、また、既存のマッピング定義の中に構造化データ定義の構造が一致するものが存在しない場合でも、自動的にマッピングを行うことを可能とする。【解決手段】変換元構造化データ定義１２３と変換先構造化データ定義１２４の間のマッピング定義１２５を作成するマッピング定義システムであって、既存のマッピング定義１２５からマッピング情報を抽出してマッピング情報格納テーブル１２１に格納するマッピング情報抽出手段１１３と、マッピング情報格納テーブル１２１と、マッピング情報格納テーブル１２１に格納されているマッピング情報の中から、変換に必要なマッピング情報を取得し、取得したマッピング情報を用いて変換元構造化データ定義１２３と変換先構造化データ定義１２４についてのマッピング定義１２５を作成するマッピング情報適用手段１１４とを有する。【選択図】図１
2009211599.tif 000002
【特許請求の範囲】
【請求項１】
変換元構造化データ定義に従った構造化データを、変換先構造化データ定義の形式に変換する際の変換規則であるマッピング定義を作成するマッピング定義作成システムであって、
既存の前記マッピング定義から抽出された、変換元の要素と変換先の要素との組であるマッピング情報を格納するマッピング情報格納テーブルと、
既存の前記マッピング定義から前記マッピング情報を抽出して前記マッピング情報格納テーブルに格納するマッピング情報抽出手段と、
変換の対象である前記変換元構造化データ定義と前記変換先構造化データ定義の各要素に対して、前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報を取得し、
取得した前記マッピング情報を用いて前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を作成するマッピング情報適用手段とを有することを特徴とするマッピング定義作成システム。
【請求項２】
請求項１に記載のマッピング定義作成システムにおいて、
前記マッピング情報適用手段は、
前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報を取得する際に、
複数の前記マッピング情報を連結して組み合わせた、前記マッピング情報による経路として取得することを特徴とするマッピング定義作成システム。
【請求項３】
請求項２に記載のマッピング定義作成システムにおいて、
前記マッピング情報適用手段は、
取得した前記マッピング情報による経路を用いて前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を作成する際に、
取得した前記マッピング情報による経路に含まれる前記マッピング情報において、変換先の要素から変換元の要素へ逆に辿っており、かつ前記マッピング情報に所定の変換機能である関数を有するものがある場合、前記関数の実行結果を元に戻すことが可能な関数である逆関数を取得し、前記逆関数を用いて前記マッピング定義を作成することを特徴とするマッピング定義作成システム。
【請求項４】
請求項３に記載のマッピング定義作成システムにおいて、
前記関数とこれに対応する前記逆関数および前記逆関数を適用する際の条件を格納する逆関数管理テーブルを有し、
前記マッピング情報適用手段は、
前記関数についての前記逆関数を取得する際に、前記逆関数管理テーブルから、前記関数に対応する前記逆関数および前記逆関数を適用する際の条件を取得することを特徴とするマッピング定義作成システム。
【請求項５】
請求項４に記載のマッピング定義作成システムにおいて、
前記変換元構造化データ定義と前記変換先構造化データ定義およびこれらについての前記マッピング定義を表示および作成・編集するためのユーザインタフェースを提供するマッピング定義編集手段を有し、
前記マッピング定義編集手段は、
前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を前記ユーザインタフェースに表示する際、前記マッピング情報による経路中に前記逆関数が存在する場合、表示する前記関数が前記逆関数である旨を表示し、さらに、前記逆関数を適用する際の条件が参照可能であるように表示することを特徴とするマッピング定義作成システム。
【請求項６】
請求項２に記載のマッピング定義作成システムにおいて、
前記マッピング情報適用手段は、
前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報による経路を取得する際に、
前記変換元構造化データ定義の特定の要素について前記変換先構造化データ定義の各要素への前記マッピング情報による経路を複数取得した場合、もしくは、前記変換先構造化データ定義の特定の要素について前記変換元構造化データ定義の各要素への前記マッピング情報による経路を複数取得した場合、
前記変換元構造化データ定義もしくは前記変換先構造化データ定義の対象の要素の祖先の要素と、前記マッピング情報による経路の終端の要素の親パスに含まれる要素とが一致するか否かの情報と、前記マッピング情報による経路中で前記マッピング情報を逆に辿った回数の情報と、前記マッピング情報による経路中で前記関数以外の要素を経由した回数の情報の中の１つ以上の情報に基づいて、複数取得した前記マッピング情報による経路の中から適用する経路を選択することを特徴とするマッピング定義作成システム。
【請求項７】
請求項６に記載のマッピング定義作成システムにおいて、
前記マッピング定義編集手段は、
前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を前記ユーザインタフェースに表示する際に、
前記マッピング情報適用手段によって取得された複数の前記マッピング情報による経路のそれぞれについて、ユーザからの指示により順次切り換えて前記ユーザインタフェースに表示することにより、適用する前記マッピング情報による経路をユーザにより選択可能とすることを特徴とするマッピング定義作成システム。
【請求項８】
コンピュータを、変換元構造化データ定義に従った構造化データを変換先構造化データ定義の形式に変換する際の変換規則であるマッピング定義を作成するマッピング定義作成システムとして動作させるマッピング定義作成プログラムであって、
既存の前記マッピング定義から変換元の要素と変換先の要素との組であるマッピング情報を抽出してマッピング情報格納テーブルに格納するマッピング情報抽出処理と、
変換の対象である前記変換元構造化データ定義と前記変換先構造化データ定義の各要素に対して、前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報を取得し、
取得した前記マッピング情報を用いて前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を作成するマッピング情報適用処理とを実行することを特徴とするマッピング定義作成プログラム。
【請求項９】
請求項８に記載のマッピング定義作成プログラムにおいて、
前記マッピング情報適用処理は、
前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報を取得する際に、
複数の前記マッピング情報を連結して組み合わせた、前記マッピング情報による経路として取得することを特徴とするマッピング定義作成プログラム。
【請求項１０】
請求項９に記載のマッピング定義作成プログラムにおいて、
前記マッピング情報適用処理は、
取得した前記マッピング情報による経路を用いて前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を作成する際に、
取得した前記マッピング情報による経路に含まれる前記マッピング情報において、変換先の要素から変換元の要素へ逆に辿っており、かつ前記マッピング情報に所定の変換機能である関数を有するものがある場合、前記関数の実行結果を元に戻すことが可能な関数である逆関数を取得し、前記逆関数を用いて前記マッピング定義を作成することを特徴とするマッピング定義作成プログラム。
【請求項１１】
請求項１０に記載のマッピング定義作成プログラムにおいて、
前記マッピング情報適用処理は、
前記関数についての前記逆関数を取得する際に、前記関数とこれに対応する前記逆関数および前記逆関数を適用する際の条件が格納されている逆関数管理テーブルから、前記関数に対応する前記逆関数および前記逆関数を適用する際の条件を取得することを特徴とするマッピング定義作成プログラム。
【請求項１２】
請求項１１に記載のマッピング定義作成プログラムにおいて、
前記変換元構造化データ定義と前記変換先構造化データ定義およびこれらについての前記マッピング定義を表示および作成・編集するためのユーザインタフェースを提供するマッピング定義編集処理を実行し、
前記マッピング定義編集処理は、
前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を前記ユーザインタフェースに表示する際、前記マッピング情報による経路中に前記逆関数が存在する場合、表示する前記関数が前記逆関数である旨を表示し、さらに、前記逆関数を適用する際の条件が参照可能であるように表示することを特徴とするマッピング定義作成プログラム。
【請求項１３】
請求項９に記載のマッピング定義作成プログラムにおいて、
前記マッピング情報適用処理は、
前記マッピング情報格納テーブルに格納されている前記マッピング情報の中から、前記変換元構造化データ定義の要素を前記変換先構造化データ定義の対応する要素に変換するために必要な前記マッピング情報による経路を取得する際に、
前記変換元構造化データ定義の特定の要素について前記変換先構造化データ定義の各要素への前記マッピング情報による経路を複数取得した場合、もしくは、前記変換先構造化データ定義の特定の要素について前記変換元構造化データ定義の各要素への前記マッピング情報による経路を複数取得した場合、
前記変換元構造化データ定義もしくは前記変換先構造化データ定義の対象の要素の祖先の要素と、前記マッピング情報による経路の終端の要素の親パスに含まれる要素とが一致するか否かの情報と、前記マッピング情報による経路中で前記マッピング情報を逆に辿った回数の情報と、前記マッピング情報による経路中で前記関数以外の要素を経由した回数の情報の中の１つ以上の情報に基づいて、複数取得した前記マッピング情報による経路の中から適用する経路を選択することを特徴とするマッピング定義作成プログラム。
【請求項１４】
請求項１３に記載のマッピング定義作成プログラムにおいて、
前記マッピング定義編集処理は、
前記変換元構造化データ定義と前記変換先構造化データ定義についての前記マッピング定義を前記ユーザインタフェースに表示する際に、
前記マッピング情報適用処理によって取得された複数の前記マッピング情報による経路のそれぞれについて、ユーザからの指示により順次切り換えて前記ユーザインタフェースに表示することにより、適用する前記マッピング情報による経路をユーザにより選択可能とすることを特徴とするマッピング定義作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で動作するプログラムによりデータを特定の形式から別の形式に変換する際に用いるマッピング定義の作成技術に関し、特に、ＸＭＬ（Extensible Markup Language）のような構造化データを変換する際に用いるマッピング定義の作成に適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、ＥＡＩ（Enterprise Application Integration）、ＳＯＡ（Service Oriented Architecture）に代表されるように、企業情報システム内に散在する既存のアプリケーションやサービスと呼ぶソフトウェアを連携し、システム全体の使い勝手を向上したいという要望がある。また、このような方法でシステムを構築することで、企業のビジネスの変更等に伴うシステム変更時に、変更対象の特定のソフトウェアのみを入れ替えるようにすることで柔軟なシステム変更を可能にしたいという要望がある。
【０００３】
このとき、連携対象のそれぞれのソフトウェアが扱う構造化データの形式には差異があるため、ソフトウェアを入れ替えるだけではなく、ソフトウェア固有の構造化データをシステムに組み込める形式に揃えるためにデータ変換を行うことが必須となる。このデータ変換は、変換の仕方である変換規則を記述したマッピング定義を事前に作成し、このマッピング定義に基づいて実施する。そのためユーザは、事前にそれぞれの構造化データが持つ要素間の対応付けを行うことによりマッピング定義を作成する必要がある。
【０００４】
ここで、特開２００２−９９５６１号公報（特許文献１）には、シソーラス辞書を用いて変換元の構造化データの要素名に対応する要素名を変換先の構造化データから検索して見つけ、自動的にマッピングを行うことを可能とする技術が開示されている。
【０００５】
また、特開２００６−２７７６６０号公報（特許文献２）には、既存のマッピング定義に含まれる変換元または変換先構造化データの要素名部分または要素同士の変換に用いる関数（変換に用いる機能）の定義部分を抽象化して変数とし、実際に、変換元、変換先スキーマに適用するときには、変数に具体的な要素名や関数を割り当てることで既存のマッピング定義の再利用を可能とする技術が開示されている。
【特許文献１】特開２００２−９９５６１号公報
【特許文献２】特開２００６−２７７６６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されている技術では、シソーラス辞書を用いて対応する要素間のマッピングを自動的に行うことができるが、事前にシソーラス辞書を用意しておく必要がある。また、構造化データの要素名は複数の単語を組み合わせて作成することが多く、有効なシソーラス辞書を用意することは容易ではない。また、シソーラス辞書では単語が同じであるかどうかしか知ることができないため、自動的に行えるマッピングは単純なマッピングに限られる。つまり、関数を含むような複雑なマッピングを自動化することはできない。
【０００７】
一方、特許文献２に開示されている技術では、人手により既に作成されたマッピング定義を再利用するため、複雑なマッピングであっても自動的にマッピングを行うことが可能である。しかし、この方法では一度作成したマッピング定義を再利用可能なように人手で加工する必要があり、そのための作業負荷がかかる。また、一対の構造化データ定義に対して一度に利用できるマッピング定義は一つであるため、既存のマッピング定義の中に構造化データ定義の構造が一致するマッピング定義が存在しない場合は新規にマッピング定義を作成する必要がある。
【０００８】
そこで本発明の目的は、シソーラス辞書の用意やマッピング定義の加工などを事前に行う必要がなく、また、既存のマッピング定義の中に構造化データ定義の構造が一致するものが存在しない場合でも、自動的にマッピングを行うことを可能とする手段を提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１０】
本発明の代表的な実施の形態によるマッピング定義作成システムは、既存のマッピング定義から抽出されたマッピング情報を格納するマッピング情報格納テーブルと、既存のマッピング定義からマッピング情報を抽出してマッピング情報格納テーブルに格納するマッピング情報抽出手段と、変換の対象である変換元構造化データ定義と変換先構造化データ定義の各要素に対して、マッピング情報格納テーブルに格納されているマッピング情報の中から、変換元構造化データ定義の要素を変換先構造化データ定義の対応する要素に変換するために必要なマッピング情報を取得し、取得したマッピング情報を用いてマッピング定義を作成するマッピング情報適用手段とを有することを特徴とするものである。
【発明の効果】
【００１１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１２】
本発明の代表的な実施の形態によれば、既存のマッピング定義を組み合わせたり、既存のマッピング定義の逆変換を自動的に行ったりすることにより、既存のマッピング定義の中に構造化データ定義の構造が一致するものが存在しない場合でも、自動的にマッピングを行うことが可能となる。また、本発明の代表的な実施の形態によれば、シソーラス辞書の用意やマッピング定義の加工などを事前に行う必要がないため、ユーザの事前準備の作業負荷を削減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１４】
＜実施の形態１＞
本発明の実施の形態１であるマッピング定義作成システムは、ユーザが以前に作成したマッピング定義から抽出したマッピング情報（変換元の要素（ノードまたは関数）と変換先の要素との組（一対のマッピング））を組み合わせて再利用することにより、対象の構造化データ定義について自動的にマッピングを行い、新たにマッピング定義を作成するシステムである。以下、その具体的な内容について説明する。
【００１５】
図１は、本実施の形態のマッピング定義作成システムの構成例を示す図である。マッピング定義作成システムは、処理装置１００、表示装置１３０、入力装置１４０から構成される。処理装置１００は、ＨＤＤ等の記憶装置、メモリ、ＣＰＵを有するコンピュータシステムによって実装され、制御部１１０および記憶部１２０から構成される。
【００１６】
制御部１１０は、表示部制御手段１１１、マッピング定義編集手段１１２、マッピング情報抽出手段１１３、およびマッピング情報適用手段１１４を有する。これら各手段は１つまたは複数のプログラムによって実装され、処理装置１００が有する記憶装置に格納される。これらプログラムが記憶装置からメモリに読み込まれてＣＰＵによって実行されることにより、これら各手段の動作が実現される。
【００１７】
表示部制御手段１１１は、後述する表示装置１３０の表示部１３１を制御する手段である。マッピング定義編集手段１１２は、変換対象の構造化データ定義とこれらについてのマッピング定義を表示部制御手段１１１によって表示部１３１に表示し、表示部制御手段１１１を用いたユーザとの対話によりマッピング定義を作成・編集するためのユーザインタフェースを提供する手段である。
【００１８】
マッピング情報抽出手段１１３は、マッピング定義編集手段１１２により作成された既存のマッピング定義からマッピング情報を抽出して、後述するマッピング情報格納テーブル１２１に格納する手段である。
【００１９】
マッピング情報適用手段１１４は、マッピング情報格納テーブル１２１に格納されているマッピング情報の中から、変換対象の構造化データ定義の各要素を変換するために必要なマッピング情報を取得し、取得したマッピング情報を用いて変換対象の構造化データ定義についてのマッピング定義を作成し、後述するマッピング定義エディタ上に適用する手段である。
【００２０】
記憶部１２０は、処理装置１００が有する記憶装置によって実装され、マッピング情報格納テーブル１２１、逆関数管理テーブル１２２、変換元構造化データ定義１２３、変換先構造化データ定義１２４、およびマッピング定義１２５を、データベースやファイルの形式で保持する。本実施の形態では、マッピング情報格納テーブル１２１および逆関数管理テーブル１２２については検索の容易さを考慮してデータベースとし、変換元構造化データ定義１２３、変換先構造化データ定義１２４およびマッピング定義１２５をファイルの形式としているが、これに限られるものではない。
【００２１】
なお、ＸＭＬでは構造化データ定義としてＸＭＬスキーマやＤＴＤ（Document Type Definition）、マッピング定義としてＸＳＬ（Extensible Stylesheet Language）を用いることが多い。
【００２２】
マッピング情報格納テーブル１２１は、既存のマッピング定義から抽出されたマッピング情報を格納するテーブルである。また、逆関数管理テーブル１２２は、マッピング時に利用する関数とその逆関数、および逆関数を適用する際の条件を格納するテーブルである。逆関数については後述する。
【００２３】
表示装置１３０は表示部１３１を有し、ユーザに対して処理装置１００の処理結果を表示したり、マッピング定義編集手段１１２によって提供されるユーザインタフェースである、後述するマッピング定義エディタを表示したりする。表示装置１３０は、例えば、液晶やＣＲＴ等のディスプレイによって構成され、本実施の形態では、後述するマッピング定義エディタを表示する。
【００２４】
入力装置１４０は入力部１４１を有し、処理装置１００に対するユーザによる操作や入力を受け付けたり、後述するマッピング定義エディタに対するユーザによる操作や入力を受け付けたりする。入力装置１４０は、例えば、キーボードやマウス等のポインティングデバイスによって構成される。
【００２５】
次に、マッピング定義エディタについて説明する。マッピング定義エディタは、マッピング定義編集手段１１２によって実現される。ユーザは、表示部制御手段１１１により表示部１３１に表示されたマッピング定義エディタを用いてマッピング定義の作成・編集を行うことが可能である。図２は、マッピング定義エディタ２００の画面構成の例を示した図である。
【００２６】
タイトルバー２６０には、編集中のマッピング定義の名前（図２では"mapdef"）とアプリケーションの名前（“マッピング定義エディタ”）を表示する。画面の左側には変換元構造化データ定義ツリー表示領域２２０、画面の右側には変換先構造化データ定義ツリー表示領域２３０、その間にはマッピング表示領域２１０が表示される。画面の下部には関数パレット領域２４０が表示される。メニュー２５０では、ファイル操作などの命令を受け付ける。
【００２７】
ユーザは、変換元構造化データ定義ツリー表示領域２２０に表示されている変換元構造化データ定義１２３の要素と、変換先構造化データ定義ツリー表示領域２３０に表示されている変換先構造化データ定義１２４の要素をマウスで連続してクリックしたり、ドラッグ＆ドロップなどの操作によって間にマッピング線を引くことによりマッピングを行う。マッピングの際に関数を利用したい場合は、関数パレット領域２４０から必要な関数をドラッグ＆ドロップなどの操作によってマッピング表示領域２１０に配置し、配置した関数にマッピング線を張ることによりマッピングを行う。
【００２８】
図２に示すマッピング定義の例では、変換元構造化データ定義１２３の要素"@idA"の値を、変換先構造化データ定義１２４の要素"@idB"に格納し、変換元構造化データ定義１２３の"dataA"の値を全て大文字にして変換先構造化データ定義１２４の"dataB"に格納し、変換元構造化データ定義１２３の"dataA"の値の文字列の長さを変換先構造化データ定義１２４の"dataB_size"に格納することで、変換元構造化データ定義１２３から変換先構造化データ定義１２４を作成するマッピング定義が表されている。作成したマッピング定義は、メニュー２５０の操作による指示により、処理装置１００の記憶部１２０にマッピング定義１２５として格納する。
【００２９】
次に、マッピング情報抽出手段１１３について説明する。マッピング情報抽出手段１１３は、ユーザがマッピング定義エディタ２００上で作成したマッピング定義からマッピング情報を抽出し、マッピング情報格納テーブル１２１に格納する。ここで、マッピング情報とは、変換元の要素（ノードもしくは関数）と変換先の要素（ノードもしくは関数）の組である。例えば、変換元ノードＳから変換先ノードＴへのマッピングに関数Ｆを利用している場合は、ＳからＦで一つのマッピング情報、ＦからＴで一つのマッピング情報と計２つのマッピング情報を抽出する。
【００３０】
マッピング情報の抽出は、例えば、マッピング定義エディタ２００のメニュー２５０から「マッピング情報抽出」を選択することで実行する。マッピング定義エディタ２００を介さず、記憶部１２０に格納されたマッピング定義１２５に対して直接マッピング情報の抽出を行うようにしても良い。
【００３１】
図３は、マッピング情報抽出手段１１３における、マッピング情報抽出処理のフローチャートの例である。処理を開始すると（Ｓ３０１）、変換先構造化データ定義の要素を順に一つずつ取得する（Ｓ３０２）。次に、取得した要素にマッピング線が接続されているかどうかを調べ（Ｓ３０３）、接続されていない場合は、変換先構造化データ定義の全要素について処理を繰り返したかどうかを調べるステップ（Ｓ３０９）に進む。
【００３２】
取得した要素にマッピング線が接続されている場合は、変数Ｔ１に取得した要素を格納し（Ｓ３０４）、マッピング線の接続元の要素を順に一つずつ取得する（Ｓ３０５）。複数の入力を受け付ける関数が存在した場合は、入力となる各接続元についても一つずつ要素を取得する。この場合は変数Ｔ１に複数の入力を持つ関数を代入することになる。
【００３３】
次に、マッピング情報格納テーブル１２１に変換先（Ｔ１）と変換元（接続元）の要素の組をマッピング情報として格納する（Ｓ３０６）。このとき、変換元または変換先の要素が関数ではなくノードである場合は、その親パスも一緒に格納する。親パスとは、構造化データ定義の要素をルート方向に辿って得られるパスである。例えば、図２に示す変換元構造化データ定義１２３の要素"dataA"の親パスは"/root/itemA"となる。変換元または変換先の要素が関数の場合には、マッピング定義の名前も一緒に格納する。
【００３４】
次に、変数Ｔ１に接続元の要素を格納し（Ｓ３０７）、接続元を変換元構造化データ定義１２３まで全て辿ったかどうかを調べ（Ｓ３０８）、辿っていない場合は、ステップＳ３０５に戻って次の接続元の要素について処理を繰り返す。接続元を変換元構造化データ定義１２３まで全て辿った場合は、変換先構造化データ定義１２４の全要素について処理を繰り返したかどうかを調べ（Ｓ３０９）、繰り返していない場合はステップＳ３０２に戻って次の変換先構造化データ定義１２４の要素について処理を繰り返す。変換先構造化データ定義１２４の全要素について繰り返した場合は処理を終了する（Ｓ３１０）。
【００３５】
図４は、既存のマッピング定義の例を示した図である。マッピング定義４０１（"mapping1"）は、変換元構造化データ定義１２３の要素"id"の値に文字'U'を連結して変換先構造化データ定義１２４の要素"uid"に格納し、変換元構造化データ定義１２３の要素"data"の値を全て大文字にして変換先構造化データ定義１２４の要素"bigchar_data"に格納し、変換元構造化データ定義１２３の要素"data"の値の文字列の長さを変換先構造化データ定義１２４の要素"datasize"に格納するものである。
【００３６】
また、マッピング定義４０２（"mapping2"）は、変換元構造化データ定義１２３の要素"uid"の値を変換先構造化データ定義１２４の要素"unique_key"に格納し、変換元構造化データ定義１２３の要素"bigchar_data"の値からスペース等の所定の文字列を削除（トリム）して変換先構造化データ定義１２４の要素"info"に格納するものである。
【００３７】
図５は、マッピング情報格納テーブル１２１のデータ構成とデータの例を示した図である。マッピング情報抽出手段１１３により、図４のマッピング定義４０１、４０２から上述の手順によりマッピング情報を抽出すると、マッピング情報格納テーブル１２１には、図５に示すような内容のデータが格納される。例えば、図４のマッピング定義４０１における「変換元構造化データ定義１２３の要素"id"の値に文字'U'を連結して変換先構造化データ定義１２４の要素"uid"に格納する」というマッピングからは、図５におけるＩＤが１〜３のマッピング情報が抽出される。
【００３８】
次に、マッピング情報抽出手段１１３によって抽出されたマッピング情報格納テーブル１２１のデータを利用して、マッピング情報適用手段１１４により、新規の変換元構造化データ定義１２３と変換先構造化データ定義１２４との間のマッピングを自動的に行う方法について説明する。
【００３９】
マッピング情報適用手段１１４は、変換元構造化データ定義１２３の中の特定の要素（Ｓ）と変換先構造化データ定義１２４の中の特定の要素（Ｔ）を抽出し、マッピング情報格納テーブル１２１に格納されているマッピング情報を組み合わせることによって、ＳからＴ（もしくはＴからＳ）に到達できるかどうかを調べて自動マッピングを行う。
【００４０】
このマッピングは、例えば、マッピング定義エディタ２００のメニュー２５０から「自動マッピング」を選択することで実行する。このとき、例えば、自動マッピングを行いたい要素の親要素をあらかじめ指定した上で自動マッピングを実行することにより、自動マッピングを行いたい範囲を指定できるようにしてもよい。例えば、図２の例の変換元構造化データ定義１２３と変換先構造化データ定義１２４において、要素"itemA"と要素"itemB"を指定した上で自動マッピングを行うと、その子要素である"dataA"と"dataB"、"dataB_size"についてのみ自動マッピングを実行するようにしてもよい。
【００４１】
図６は、マッピング情報適用手段１１４における、マッピング情報適用処理のフローチャートの例である。処理を開始すると（Ｓ６０１）、変換先構造化データ定義１２４の要素（Ｔ）を順に一つずつ取得する（Ｓ６０２）。このＴを引数にしてマッピング情報による経路の候補一覧の取得処理（Ｓ６０３）を行うことにより、マッピング情報格納テーブル１２１を探索し、Ｔから到達可能な変換元構造化データ定義１２３の要素のいずれかへの、マッピング情報による経路（ＭＩ）のリストを取得する。ステップＳ６０３の処理の詳細については後述する。
【００４２】
ステップＳ６０３では、取得したマッピング情報による経路（ＭＩ）を確実度が高い順にリストに格納して返すため、リストの最初に格納されたＭＩを取得する（Ｓ６０４）。次に、取得したＭＩを用いてマッピング定義エディタ２００上にＭＩを適用する（Ｓ６０５）。ステップＳ６０５の処理の詳細については後述する。
【００４３】
次に、変換先構造化データ定義１２４の全ての要素について処理を繰り返したかどうかを調べ（Ｓ６０６）、繰り返していない場合はステップＳ６０２に戻り、変換先構造化データ定義１２４の次の要素に対して同様の処理を実行する。ステップＳ６０６において、変換先構造化データ定義１２４の全ての要素について処理を繰り返している場合は処理を終了する（Ｓ６０７）。
【００４４】
図７は、図６におけるマッピング情報による経路の候補一覧の取得処理（Ｓ６０３）のフローチャートの例である。処理を開始すると（Ｓ７０１）、引数として変換先の要素（Ｔ）を得る。まず、マッピング情報による経路（ＭＩ）を格納するリスト（ＭＩＬ）を初期化する（Ｓ７０２）。このＭＩＬには、後述の処理の結果取得された経路であるマッピング情報のＩＤのリスト、およびその確実度を判断するために必要な情報が格納されることになる。
【００４５】
次に、変換元構造化データ定義１２３の要素（Ｓ）を順に一つずつ取得する（Ｓ７０３）。次に、ＴからＳに到達する経路を探索し、その確実度を判断するために必要な情報とともにＭＩＬに追加する（Ｓ７０４）。ステップＳ７０４の処理については後述する。次に、変換元構造化データ定義１２３の全ての要素について繰り返したかどうかを調べ（Ｓ７０５）、繰り返していない場合はステップＳ７０３に戻り、変換元構造化データ定義１２３の次の要素（Ｓ）について処理を繰り返す。変換元構造化データ定義１２３の全ての要素について繰り返している場合は、ＭＩＬの中のＭＩを確実度の順に並び替え（Ｓ７０６）、処理を終了する（Ｓ７０７）。ステップＳ７０６の処理については後述する。
【００４６】
図８は、図７におけるＴからＳに到達する経路を探索する処理（Ｓ７０４）のフローチャートの例である。処理を開始すると（Ｓ８０１）、まず変数Ｔ２にＴを代入する（Ｓ８０２）。次に、マッピング情報格納テーブル１２１からＴ２を含むマッピング情報を取得する（Ｓ８０３）。次に、マッピング情報が取得できたかどうかを調べ（Ｓ８０４）、取得できなかった場合は、ＴからＳに到達する経路が見つからないとして処理を終了する（Ｓ８１５）。マッピング情報が取得できた場合は、取得したマッピング情報においてＴ２が変換先になっているかどうかを調べる（Ｓ８０５）。なお、マッピング情報が複数取得された場合は、それぞれのマッピング情報について経路が分岐するため、それぞれのマッピング情報についてステップＳ８０５以下の処理を行って経路を探索する。
【００４７】
ステップＳ８０５において、Ｔ２が、取得したマッピング情報において変換先になっている場合は、その変換元の要素を取得し、当該マッピング情報を順方向に辿ったという情報を記録しておく（Ｓ８０６）。Ｔ２が、取得したマッピング情報において変換元になっている場合は、その変換先の要素を取得し、当該マッピング情報を逆方向に辿ったという情報を記録しておく（Ｓ８０７）。
【００４８】
次に、取得した要素がノードであるかどうかを調べる（Ｓ８０８）。ノードである場合には、取得した要素がＳと一致するかどうかを調べる（Ｓ８０９）。Ｓと一致する場合には辿ってきた経路の情報（マッピング情報のＩＤおよびマッピング情報を辿った方向の情報）と変数ＮＣをリスト（ＭＩＬ）に格納し（Ｓ８１４）、処理を終了する（Ｓ８１５）。ここで、変数ＮＣは、ＴからＳに到達する経路において、ノードを経由した回数をカウントするための変数であり、経路をＴから新たに探索する場合に０に初期化するものとする。
【００４９】
ステップＳ８０９において、取得した要素がＳと一致しない場合は、変数ＮＣに１を加算し（Ｓ８１０）、取得した要素を新たに変数Ｔ２に代入して（Ｓ８１１）、ステップＳ８０３に戻ってマッピング情報格納テーブル１２１からＴ２を含むマッピング情報を取得し、対応する要素がＳと一致するかどうかを同様に調べる。
【００５０】
ステップＳ８０８において、取得した要素がノードではない、すなわち関数であった場合は、取得した関数が文字列定数などの定数関数（例えば図４のマッピング定義４０１における“定数１（'U'）”）であるかどうかを調べる（Ｓ８１２）。定数関数である場合は、辿ってきた経路の情報と変数ＮＣをリスト（ＭＩＬ）に格納し（Ｓ８１４）、処理を終了する（Ｓ８１５）。定数関数でない場合は、変数Ｔ２に取得した関数を代入し（Ｓ８１３）、ステップＳ８０３に戻ってマッピング情報格納テーブル１２１からＴ２を含むマッピング情報を取得し、対応する要素がＳと一致するかどうかを同様に調べる。以上の手順により、ＴからＳに到達する経路を求めることができる。
【００５１】
以下に、ＴからＳに到達する経路を求める方法を具体例によって説明する。マッピング情報格納テーブル１２１には、図５に示すマッピング情報が格納されているものとする。このとき、例えば、図９に示すような変換元構造化データ定義１２３と変換先構造化データ定義１２４との間で自動マッピングを行う場合について、例として変換先構造化データ定義１２４の要素"id"と変換元構造化データ定義１２３の要素"unique_key"を、それぞれ図７、図８のフローチャート中のＴとＳとして説明する。
【００５２】
まず、マッピング情報格納テーブル１２１の中から要素にノード"id"を含むマッピング情報を取得する（Ｓ８０２、Ｓ８０３、Ｓ８０４）。図５のマッピング情報格納テーブル１２１において、ノード"id"を含むマッピング情報はＩＤが３のマッピング情報のみであるのでこれを取得する。次に、取得したマッピング情報について、ノード"id"に対応する要素を取得する（Ｓ８０５、Ｓ８０７）。ＩＤが３のマッピング情報の場合、関数“連結１[mapping1]”がこれに該当する。
【００５３】
取得した“連結１[mapping1]”はノードではなく関数であり（Ｓ８０８）、定数関数ではないため（Ｓ８１２）、取得した関数“連結１[mapping1]”を含むマッピング情報を、さらにマッピング情報格納テーブル１２１から取得する（Ｓ８１３、Ｓ８０３、Ｓ８０４）。ＩＤが１、２、３のマッピング情報がこれに該当するが、既に辿ったマッピング情報を辿ると処理がループしてしまうため、まだ辿っていないＩＤが１、２のマッピング情報を対象として以下の処理を行う。
【００５４】
まず、ＩＤが１のマッピング情報について、関数“連結１[mapping1]”に対応する要素であるノード"uid"を取得する（Ｓ８０５、Ｓ８０７）。取得した"uid"は関数ではなくノードであるため（Ｓ８０８）、取得したノード"uid"がＳ（"unique_key"）と一致するかどうかを調べる（Ｓ８０９）。ここでは一致しないので、ノードを経由した回数をカウントするために変数ＮＣに１を加算し（Ｓ８１０）、ノード"uid"を含み、まだ辿っていないマッピング情報をマッピング情報格納テーブル１２１から取得する（Ｓ８１１、Ｓ８０３、Ｓ８０４）。ＩＤが８のマッピング情報がこれに該当し、ノード"uid"に対応するノード"unique_key"を得る（Ｓ８０５、Ｓ８０７）。これはノードであり、Ｓ（"unique_key"）と一致するため、探索を終了する（Ｓ８０８、Ｓ８０９）。
【００５５】
次に、ＩＤが２のマッピング情報について、関数“連結１[mapping1]”に対応する要素である関数“定数１('U')[mapping1]”を取得する（Ｓ８０５、Ｓ８０７）。このような定数の関数の場合は、さらに接続元が存在することはないので、ここで探索を終了する（Ｓ８１２）。
【００５６】
以上の処理から、ＴからＳに到達するためのマッピング情報による経路をＩＤで表した場合に［３，１，８，２］という経路が得られる。また、変換先であるＴから変換元であるＳに向けて経路を探索する際に、マッピング情報を変換元から変換先に向かって逆に辿る場合があるため、ステップＳ８０６、Ｓ８０７において、マッピング情報を順方向、逆方向のどちらで辿ったのかを示す情報を記録している。この情報を基に、マッピング情報を辿った方向を示すフラグのリストを作成する。例えば、順方向に辿った場合を“０”、逆方向に辿った場合を“１”と記載するものとすると、上記の例では、各マッピング情報において経路を全て逆に辿ったため、［１，１，１，１］というようなリストが得られる。
【００５７】
Ｔ、Ｓ、上記のマッピング情報のＩＤのリスト、および、確実度を判断するために必要な情報としてのマッピング情報を辿った方向を示すフラグのリストおよび変数ＮＣの値を一組のマッピング情報による経路（ＭＩ）としてＭＩＬに追加する（Ｓ８１４）。なお、上述の経路の探索方法はあくまで一例であり、別の方法で経路を探索しても良い。本実施の形態では、変換先構造化データ定義１２４から変換元構造化データ定義１２３に向かって経路を探索したが、変換元構造化データ定義１２３から変換先構造化データ定義１２４に向かって経路を探索しても良い。
【００５８】
次に、図７のステップＳ７０６において、ＴからＳに到達するためのマッピング情報による経路（ＭＩ）のリスト（ＭＩＬ）中で、ＭＩを確実度順に並び替える処理について説明する。ここでは、ＭＩＬのリストを評価して最良の経路を類推し、その経路をマッピング定義エディタ２００上に表示するための並び替えを行う。
【００５９】
例えば、以下に示すような判定基準でＭＩＬ中の各ＭＩを評価して確実度を算出し、確実度順にＭＩを並び替える。確実度の算出については、各ＭＩが以下の各基準に合致するか否かで所定のスコアを加減算していき、その合計スコアとして確実度を算出することが考えられる。
（１）変換先構造化データ定義１２４の要素（Ｔ）の祖先の要素の何れかが、ＭＩの経路の中のＴを含むマッピング情報の親パスに出現する場合はスコアを加算する。
（２）変換元構造化データ定義１２３の要素（Ｓ）の祖先の要素の何れかが、ＭＩの経路の中のＳを含むマッピング情報の親パスに出現する場合はスコアを加算する。
（３）ＭＩにおけるＴの変換元が定数関数のみである場合には、スコアを減算する。
（４）ＭＩの経路の中でマッピング情報を逆に辿った回数に応じてスコアを減算する。
（５）ＭＩの経路の中でノードを経由した回数に応じてスコアを減算する。
【００６０】
具体的な例として、例えば、変換元構造化データ定義１２３のマッピング対象の要素（Ｓ）が"unique_key"であり、その親パスが"/top"であり、また、変換先構造化データ定義１２４のマッピング対象の要素（Ｔ）が"id"であり、その親パスが"/root"であったとする。このとき、例えば、ＭＩにおいてＴを含むマッピング情報の親パスが"/root"であった場合には、Ｔの祖先の要素である"root"が出現しているため、このＭＩは条件（１）に該当し、スコアが加算される。また、例えば、ＭＩにおいてＴを含むマッピング情報の親パスが"/info"であった場合には条件（１）に該当しない。
【００６１】
条件（２）のＳについても同様に判定するため、Ｔ、Ｓの両方についてそれぞれ条件（１）、条件（２）に同時に該当する場合は、Ｔ、Ｓのどちらか一方のみについて条件（１）もしくは条件（２）に該当する場合よりもスコアは大きくなり、当該ＭＩの確実度は高くなる。
【００６２】
また、ＭＩにおいて、例えば、Ｔの変換元の終端の要素が文字列定数などの定数関数のみである場合には、条件（３）に該当してスコアが減算されるため、確実度は低くなる。また、上述した確実度を判断するために必要な情報のうち、マッピング情報を辿った方向を示すフラグのリストにおけるマッピング情報を逆に辿った回数に応じて、条件（４）に基づいてスコアが減算されるため、マッピング情報を逆に辿った回数が多いほど確実度は低くなる。例えば、上述の例のように、マッピング情報を辿った方向を示すフラグのリストが［１，１，１，１］であった場合には、４回分スコアが減算される。また、上述した確実度を判断するために必要な情報のうち、変数ＮＣの値に応じて、条件（５）に基づいてスコアが減算されるため、経由したノードの回数が多いほど確実度は低くなる。
【００６３】
なお、上記の例において、加減算するスコアの値は任意に決定することができる。また、スコアの加減算ではなく他の計算方法であってもよい。また、上記の条件（１）〜（５）は、変換元構造化データ定義１２３もしくは変換先構造化データ定義１２４の対象の要素の祖先の要素と、マッピング情報による経路の終端の要素の親パスに含まれる要素とが一致するか否かの情報と、マッピング情報による経路中でマッピング情報を逆に辿った回数の情報と、マッピング情報による経路中でノード（関数以外の要素）を経由した回数の情報を利用して確実度を算出する例であり、これらの情報すべてを利用しない場合や、他の情報や条件を利用して確実度を算出してもよい。
【００６４】
次に、図６におけるマッピング定義エディタ２００上にＭＩを適用する処理（Ｓ６０５）について説明する。図１０は、図６におけるマッピング定義エディタ２００上にＭＩを適用する処理（Ｓ６０５）のフローチャートの例である。処理を開始すると（Ｓ１００１）、引数で渡されたＭＩに格納したマッピング情報の経路のＩＤのリストからＩＤを一つずつ順に取得する（Ｓ１００２）。次に、マッピング情報格納テーブル１２１から、取得したＩＤに対応するマッピング情報を取得する（Ｓ１００３）。
【００６５】
次に、マッピング情報を辿った方向を示すフラグのリストから、取得したＩＤに対応する箇所のフラグを取得する（Ｓ１００４）。例えば、ＩＤが経路のリストの２番目のものであればフラグのリストの２番目のフラグを取得する。次に、取得したフラグが逆方向に辿ったことを示すものであるかどうかを調べ（Ｓ１００５）、そうではない場合、すなわち順方向に辿ったことを示すものである場合には、変数Ｂにマッピング情報の変換元の要素を代入する（Ｓ１００６）。フラグが逆方向に辿ったことを示すものである場合には、変数Ｂにマッピング情報の変換先の要素を代入する（Ｓ１００７）。
【００６６】
次に、マッピング情報中のＢの対となる要素が関数であるかどうかを調べ（Ｓ１００８）、関数である場合には、ステップＳ１００４で取得したフラグが逆方向を辿ったことを示すものであるかどうかを調べ（Ｓ１００９）、そうではない場合、すなわち順方向に辿ったことを示すものである場合には、マッピング情報に含まれる関数をマッピング定義エディタ２００上に出力し、変数Ｂに該当する要素とマッピング線で接続する（Ｓ１０１０）。フラグが逆方向を辿ったことを示すものである場合には、マッピング情報に含まれる関数を逆関数にしてマッピング定義エディタ２００に出力し、変数Ｂに該当する要素とマッピング線で接続する（Ｓ１０１１）。逆関数については後述する。
【００６７】
次に、ＭＩに格納されている経路の全てのＩＤについて処理を繰り返したかどうかを調べ（Ｓ１０１２）、全てのＩＤについて処理を繰り返していない場合は、ステップＳ１００２に戻り、ＭＩに格納した経路のＩＤのリストから次のＩＤを取得して処理を継続する。全てのＩＤについて処理を繰り返した場合は、変換元構造化データ定義１２３の対象の要素と、変換先構造化データ定義１２４の対象の要素、もしくは経路上の関数（逆関数）とを接続するマッピング線を表示して（Ｓ１０１３）、処理を終了する（Ｓ１０１４）。なお、マッピング線をマッピング定義エディタ２００上に表示する際に、既にユーザが張っているマッピング線と区別できるように、当該処理でのマッピング線の色等を変更して表示してもよい。
【００６８】
図６のマッピング情報適用処理において、以上に説明したステップＳ６０２〜ステップＳ６０５の処理を変換先構造化データ定義１２４の要素の全ての要素について実施することで、マッピングを自動的に作成する。自動的に作成されたマッピングは、マッピング定義エディタ２００を利用してマッピング定義編集手段１１２により変更可能である。最終的に完成したマッピングは、マッピング定義１２５として格納することでシステムに組み込み、これ以降、変換元構造化データ定義１２３に従った構造化データを変換先構造化データ定義１２４に従った構造化データに変換するために用いられる。
【００６９】
ここで、図１０のステップＳ１０１１において、マッピング情報に含まれる関数の逆関数を求める方法について説明する。逆関数を求める方法の一例としては、逆関数管理テーブル１１２を保持し、逆関数を求めたい関数をキーにして逆関数管理テーブル１１２を参照して逆関数を求める方法が考えられる。図１１は、逆関数管理テーブル１１２のデータ構造とデータの例を示した図である。例えば、“大文字化”の関数の逆関数を図１１の逆関数管理テーブル１１２から求めると、“小文字化”の関数を取得することができる。
【００７０】
ただし、マッピング情報に逆関数を適用するにあたっては、適用するための条件が存在する。例えば、“大文字化”の関数に対して逆関数として“小文字化”を適用するときの条件は、“大文字化”の関数が適用される元の文字列が全て小文字であること等である。
【００７１】
マッピング定義エディタ２００上に逆関数を表示する際には、この条件も表示可能なように逆関数に含めて表示する。例えば、逆関数の色を目立つ色に変え、マウスポインタを当該逆関数に重ねるとこの条件がポップアップ表示されるようにすることで、ユーザにマッピング情報中に条件付きの逆関数が出現したことを通知する方法が考えられる。
【００７２】
なお、関数に逆関数が存在しないという場合もある。例えば、“文字列長さ”の関数で求めた文字列の長さから元の文字列の実体を求めることはできないため、“文字列長さ”の関数には逆関数は存在しない。このような場合は、例えば、逆関数が存在しないことを示す印等をマッピング定義エディタ２００上に表示する。これにより、ユーザはマッピング情報中に関数が存在するが、その逆関数が存在しないことを知ることができ、何らかの修正が必要であることを知ることができる。
【００７３】
以上の手順により、図５に示すマッピング情報格納テーブル１２１の例と、図１１に示す逆関数管理テーブル１１２の例とを用いて、図９に示す変換元構造化データ定義１２３と変換先構造化データ定義１２４の例に対して実際に自動マッピングを行うと、図１２に示すマッピング定義１２０１を得ることができる。
【００７４】
図１２における関数１２０２（“分割１”）は、例えば色付きのボックスとなっており、関数１２０２が逆関数であり、この逆関数を適用する際に条件が存在することを表している。関数１２０２のボックス上にマウスポインタを重ねたり、ダブルクリックしたりすることによって、当該条件の内容をユーザに表示することが可能である。
【００７５】
以上に説明したように、本実施の形態のマッピングシ自動化ステムによれば、既存のマッピング定義１２５を組み合わせたり、既存のマッピング定義１２５の逆変換を自動的に行ったりすることにより、既存のマッピング定義１２５を有効に再利用することができ、既存のマッピング定義１２５の中に構造化データ全体の構造が一致するものが存在しない場合でも、変換元構造化データ定義１２３または変換先構造化データ定義１２４に含まれる複数の要素に対して自動的にマッピングを行うことが可能となる。また、シソーラス辞書の用意やマッピング定義の加工などを事前に行う必要がないため、ユーザの事前準備の作業負荷を削減することができ、システム構築時の開発コストを削減することができる。
【００７６】
＜実施の形態２＞
上述した実施の形態１では、変換元構造化データ定義１２３または変換先構造化データ定義１２４に含まれる複数の要素に対して自動マッピングを実行する方法について説明したが、本発明の実施の形態２では、実施の形態１のマッピング定義作成システムにおいて、変換元構造化データ定義１２３または変換先構造化データ定義１２４に含まれる特定の要素に対するマッピングを自動化する方法について説明する。
【００７７】
まず、マッピング定義エディタ２００において、変換先構造化データ定義１２４の対象の要素を選択して、例えば、キーボードの特定のキーの押下や、マウスによる操作等により、対象の要素についての自動マッピングの実施を開始する。
【００７８】
図１３は、特定の要素に対する自動マッピング処理のフローチャートの例である。ここで使用される変数ＢＴと変数Ｃは、本システムの起動時等に予め初期化し、その後は、特定の要素に対する自動マッピング処理を行う毎には初期化しない。処理を開始すると（Ｓ１３０１）、まず、選択されている変換先構造化データ定義１２４の要素（Ｔ）を取得する（Ｓ１３０２）。
【００７９】
ここで、変数ＢＴには、前回当該処理フローによる自動マッピング処理を実施した際に選択されていた変換先構造化データ定義１２４の要素が保持されており、この変数ＢＴとＴが同じであるかどうかを調べる（Ｓ１３０３）。同じである場合は、前回の処理で当該要素についてのマッピング情報のリスト（ＭＩＬ）が取得済みであるため、ステップＳ１３０６に進む。変数ＢＴとＴが同じでない場合は、変数Ｃに０を代入し（Ｓ１３０４）、変数ＢＴにＴを代入する（Ｓ１３０５）。その後、Ｔを引数にしてマッピング情報による経路の候補一覧取得処理を実行し、確実度順にＭＩを格納したＭＩＬを取得する。この処理は、実施の形態１の図６のステップＳ６０３（図７のステップＳ７０１〜Ｓ７０７）と同様である。
【００８０】
次に、取得したＭＩＬから、変数Ｃの値に該当するＣ番目のＭＩを取得する（Ｓ１３０６）。次に、現在Ｔを変換先として張られているマッピング線を削除する（Ｓ１３０７）。次に、取得したＭＩを引数としてマッピング定義エディタ２００上にＭＩを適用する処理を実行し、マッピング定義エディタ２００上に確実度がＣ番目であるＭＩを適用する。この処理は、実施の形態１の図６のステップＳ６０５（図１０のステップＳ１００１〜Ｓ１０１４）と同様である。
【００８１】
次に、変数Ｃに１を足し（Ｓ１３０８）、変数Ｃの値がＭＩＬに含まれるＭＩの数よりも大きいかどうかを調べる（Ｓ１３０９）。変数Ｃの値が大きい場合は変数Ｃに０を代入し（Ｓ１３１０）、大きくない場合はそのまま処理を終了する（Ｓ１３１１）。
【００８２】
以上の処理により、変換先構造化データ定義１２４の特定の要素を選択した状態で、特定のキーを押下したり、マウスを操作したりする毎に、マッピング定義エディタ２００上では、確実度が大きい順にマッピングを自動的に行う。すなわち、マッピング線の表示が順次切り替わる。ＭＩＬの最後に格納されている、確実度が最も低い候補まで表示した場合には、ＭＩＬの最初に格納されている確実度が最も高い候補に戻って再度マッピングを表示する。これにより、ユーザは、自動的に作成されたＭＩのリストから最適な候補を選択することができる。
【００８３】
なお、本実施の形態では、変換先構造化データ定義１２４の特定の要素を選択した状態でマッピングを自動的に行う方法を説明したが、これと同様に、変換先構造化データ定義１２４の要素ではなく、変換元構造化データ定義１２３の要素や関数を指定して、候補選択を行うことも可能である。
【００８４】
また、自動的に作成されたＭＩのリストから最適な候補を選択する方法として、本実施の形態では、特定のキーの押下やマウスによる操作等により、マッピング定義エディタ２００上でマッピング線や関数の表示が次の候補のものに順次切り替わるユーザインタフェースとしているが、これに限られるものではない。
【００８５】
例えば、特定のキーの押下やマウスによる操作等により、リストに含まれるＭＩの一覧を、テキストによるリストとしてポップアップメニューで表示したり、他と区別可能なマッピング線によりマッピングをすべて表示したり、候補のＭＩに含まれる変換元構造化データ定義１２３の要素のみ表示の色を変更し、該当の要素にマウスポインタを重ねた際に対応するＭＩについてのマッピング線を表示したりする等、種々の方法でリストの一覧を提示し、その中から候補を選択してマッピングを行うというようなユーザインタフェースとすることも可能である。
【００８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８７】
例えば、上記実施の形態では、マッピング定義作成システムを、図１に示すように１台のコンピュータシステムによって実現するようにしているが、これに限定されるものではなく、クライアント／サーバー型のシステムとして、記憶部１２０がサーバーに存在する構成や、制御部１１０の一部および記憶部１２０がサーバーに存在する構成とすることも可能である。また、ＡＳＰ（Application Service Provider）等によるサービスとして、ユーザがインターネット等を経由してサーバーにアクセスして本システムを利用する形態とすることも可能である。
【産業上の利用可能性】
【００８８】
本発明は、コンピュータ上で動作するプログラムによりデータを特定の形式から別の形式に変換するマッピング定義作成システムおよびマッピング定義作成プログラムに利用可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施の形態１のマッピング定義作成システムの構成例を示す図である。
【図２】本発明の実施の形態１における、マッピング定義エディタの画面構成の例を示した図である。
【図３】本発明の実施の形態１における、マッピング情報抽出処理のフローチャートの例である。
【図４】本発明の実施の形態１における、既存のマッピング定義の例を示した図である。
【図５】本発明の実施の形態１における、マッピング情報格納テーブルのデータ構成とデータの例を示した図である。
【図６】本発明の実施の形態１における、マッピング情報適用処理のフローチャートの例である。
【図７】本発明の実施の形態１における、マッピング情報による経路の候補一覧の取得処理のフローチャートの例である。
【図８】本発明の実施の形態１における、変換先構造化データ定義の要素から変換元構造化データ定義の要素に到達する経路を探索する処理のフローチャートの例である。
【図９】本発明の実施の形態１における、変換元構造化データ定義と変換先構造化データ定義の例を示す図である。
【図１０】本発明の実施の形態１における、マッピング定義エディタ上にマッピング情報を適用する処理のフローチャートの例である。
【図１１】本発明の実施の形態１における、逆関数管理テーブルのデータ構造とデータの例を示した図である。
【図１２】本発明の実施の形態１における、マッピング定義の例を示した図である。
【図１３】本発明の実施の形態２における、特定の要素に対する自動マッピング処理のフローチャートの例である。
【符号の説明】
【００９０】
１００…処理装置、１１０…制御部、１１１…表示部制御手段、１１２…マッピング定義編集手段、１１３…マッピング情報抽出手段、１１４…マッピング情報適用手段、１２０…記憶部、１２１…マッピング情報格納テーブル、１２２…逆関数管理テーブル、１２３…変換元構造化データ定義、１２４…変換先構造化データ定義、１２５…マッピング定義、１３０…表示装置、１３１…表示部、１４０…入力装置、１４１…入力部、
２００…マッピング定義エディタ、２１０…マッピング表示領域、２２０…変換元構造化データ定義ツリー表示領域、２３０…変換先構造化データ定義ツリー表示領域、２４０…関数パレット領域、２５０…メニュー、２６０…タイトルバー、
４０１…マッピング定義、４０２…マッピング定義、
１２０１…マッピング定義、１２０２…関数。
【図１】
2009211599.tif 000003
【図２】
2009211599.tif 000004
【図３】
2009211599.tif 000005
【図４】
2009211599.tif 000006
【図５】
2009211599.tif 000007
【図６】
2009211599.tif 000008
【図７】
2009211599.tif 000009
【図８】
2009211599.tif 000010
【図９】
2009211599.tif 000011
【図１０】
2009211599.tif 000012
【図１１】
2009211599.tif 000013
【図１２】
2009211599.tif 000014
【図１３】
2009211599.tif 000015