(57)【要約】      （修正有）【課題】汎用的なメタデータを自動的に生成するメタデータ処理方法、装置及びプログラムを提供する。【解決手段】本メタデータ処理方法は、第１の入力データの項目名と第１の出力データの項目名との比較に基づき、第１の入力データの項目名および第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第１の入力データから第１の出力データを生成するためのプログラムの引数とが、第１の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。【選択図】図４
2018112848.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行させるメタデータ処理プログラム。
【請求項２】
前記メタデータを生成する処理において、
抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化され、且つ、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素が変数化された前記メタデータを生成する、
請求項１記載のメタデータ処理プログラム。
【請求項３】
前記コンピュータに、
第２の入力データの項目名と指定された項目名との比較に基づき、前記第２の入力データの項目名および指定された前記項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素が、前記第２の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第２の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、
前記メタデータに含まれる要素と前記テンプレートデータに含まれる要素との対応関係に基づき、前記第２の入力データの列を並び替え、
列が並び替えられた前記第２の入力データを入力として前記プログラムを実行して第２の出力データを生成する、
請求項１又は２記載のメタデータ処理プログラム。
【請求項４】
前記第２の入力データの列を並び替える処理において、
前記メタデータの形式と前記テンプレートデータの形式とが一致するように、前記テンプレートデータに含まれる項目名を並び替え、前記メタデータに含まれる要素と項目名が並び替えられた前記テンプレートデータに含まれる要素との対応関係に基づき、前記第２の入力データの列を並び替え、
前記コンピュータに、
前記第２の出力データの列に対して、前記テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する、
請求項３記載のメタデータ処理プログラム。
【請求項５】
コンピュータが、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行するメタデータ処理方法。
【請求項６】
第１の入力データ及び第１の出力データを格納するデータ格納部と、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部と、
を有するメタデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メタデータの処理技術に関する。
【背景技術】
【０００２】
プログラムのメタデータを生成すれば、そのメタデータを別のプログラムを自動生成すること等に利用することができる。そして、メタデータが汎用的であるほどそのメタデータの利用価値は高くなる。但し、メタデータを人手によって作成することには手間がかかる。
【０００３】
メタデータの生成に関して、或る文献は、プログラム自体を解析してプログラムのメタデータを生成する技術を開示する。しかし、プログラム自体を解析しても適切なメタデータを生成できないことがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０９０７０７号公報
【特許文献２】特開２０１１−１８６９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１つの側面では、汎用的なメタデータを自動的に生成するための技術を提供することである。
【課題を解決するための手段】
【０００６】
一態様に係るメタデータ処理方法は、第１の入力データの項目名と第１の出力データの項目名との比較に基づき、第１の入力データの項目名および第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第１の入力データから第１の出力データを生成するためのプログラムの引数とが、第１の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。
【発明の効果】
【０００７】
１つの側面では、汎用的なメタデータを自動的に生成できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、入力テーブル及び出力テーブルの一例を示す図である。
【図２】図２は、メタデータが登録されたテーブルの一例を示す図である。
【図３】図３は、メタデータ処理装置の機能ブロック図である。
【図４】図４は、メタデータを登録する処理の処理フローを示す図である。
【図５】図５は、入力テーブルの一例を示す図である。
【図６】図６は、出力テーブルの一例を示す図である。
【図７】図７は、テンプレートデータの一例を示す図である。
【図８】図８は、テンプレートデータの一例を示す図である。
【図９】図９は、機能語リストの一例を示す図である。
【図１０】図１０は、テンプレートデータの一例を示す図である。
【図１１】図１１は、機能語リストの一例を示す図である。
【図１２】図１２は、テンプレートデータの一例を示す図である。
【図１３】図１３は、メタデータ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、登録されたメタデータを利用して他のケースにプログラムを流用する処理の処理フローを示す図である。
【図１５】図１５は、入力テーブルの一例を示す図である。
【図１６】図１６は、機能語リストの一例を示す図である。
【図１７】図１７は、最終的に出力される出力テーブルの形式の一例を示す図である。
【図１８】図１８は、テンプレートデータの一例を示す図である。
【図１９】図１９は、機能語リストの一例を示す図である。
【図２０】図２０は、テンプレートデータの一例を示す図である。
【図２１】図２１は、機能語リストの一例を示す図である。
【図２２】図２２は、関連項目値格納部に格納されるデータの一例を示す図である。
【図２３】図２３は、テンプレートデータの一例を示す図である。
【図２４】図２４は、テンプレートデータの一例を示す図である。
【図２５】図２５は、登録されたメタデータを利用して他のケースにプログラムを流用する処理の処理フローを示す図である。
【図２６】図２６は、パターンの一例を示す図である。
【図２７】図２７は、パターンに含まれる項目名とメタデータに含まれる項目名との対応関係を示す図である。
【図２８】図２８は、入力テーブルの列の並び替えの一例を示す図である。
【図２９】図２９は、プログラムの実行により生成されるテーブルの一例を示す図である。
【図３０】図３０は、特定したパターンに含まれる項目名と元のテンプレートデータに含まれる項目名との対応関係を示す図である。
【図３１】図３１は、最終的に生成される出力テーブルの一例を示す図である。
【図３２】図３２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下では、テーブルに登録されたデータを入力として別のテーブルを出力する処理をプロセッサに実行させるプログラムのメタデータを生成することを考える。
【００１０】
例えば、或るプログラム「ｓｕｍ＿ｐｅｒ＿ｂｒａｎｃｈ」を実行すると、図１（ａ）に示すテーブルに登録されたデータを入力として図１（ｂ）に示すテーブルが出力されるとする。各テーブルの項目名に着目すると、「支店名」は両テーブルに存在し、図１（ａ）のテーブルにおける「売上」は図１（ｂ）のテーブルにおける「支店毎売上」に含まれる。
【００１１】
そこで、項目名が一致するか否かに基づき図２に示すようなメタデータを生成することができる。図２に示したテーブルには、プログラムについての情報（ここでは、プログラム名）と、メタデータとが登録されており、メタデータは、図１（ａ）のテーブルにおける或る項目名と図１（ｂ）のテーブルにおける或る項目名とが一致することを示す情報「入力＝出力」と、図１（ａ）のテーブルにおける或る項目名が「ｘ」であり且つ図１（ｂ）のテーブルにおける或る項目名が「支店毎ｘ」であることを示す情報「入力：ｘ 出力：支店毎＋ｘ」とを含む。このようなメタデータを用意しておけば、プログラムのメンテナンス等にメタデータを利用することができるようになる。
【００１２】
但し、上で述べたように生成されるメタデータの表現は限定的であるため、利用の用途が限られてしまうことがある。図２の例では、メタデータは支店毎の集計に限定されているので、その他の集計等を行うケースにプログラムを流用することはできない。
【００１３】
そこで、以下では、より汎用的なメタデータを生成する方法を説明する。図３に、本実施の形態のメタデータ処理装置１の機能ブロック図を示す。本実施の形態のメタデータ処理装置１は、メタデータ生成部１０１と、流用処理部１０３と、入力テーブル格納部１１１と、出力テーブル格納部１１３と、機能語リスト格納部１１５と、メタデータ格納部１１７と、テンプレートデータ格納部１１９と、関連項目値格納部１２１と、プログラム格納部１２３とを含む。
【００１４】
メタデータ生成部１０１は、入力テーブル格納部１１１に格納されている入力テーブルと、出力テーブル格納部１１３に格納されている出力テーブルと、プログラム格納部１２３に格納されているプログラムデータとに基づき処理を実行し、処理結果をメタデータ格納部１１７、テンプレートデータ格納部１１９、機能語リスト格納部１１５及び関連項目値格納部１２１に格納する。流用処理部１０３は、メタデータ格納部１１７に格納されているデータと、テンプレートデータ格納部１１９に格納されているデータと、関連項目値格納部１２１に格納されているデータとに基づき処理を実行し、処理結果を出力テーブル格納部１１３に格納する。
【００１５】
次に、図４乃至図３１を用いて、メタデータ処理装置１が実行する処理を説明する。まず、図４乃至図１３を用いて、メタデータを登録する処理を説明する。
【００１６】
メタデータ生成部１０１は、入力テーブル格納部１１１に格納されている入力テーブルと、プログラム格納部１２３に格納されているプログラムデータと、出力テーブル格納部１１３に格納されている出力テーブルとを読み出す（図４：ステップＳ１）。プログラムデータは、プログラムそのものであってもよいし、プログラムに含まれる情報の一部であってもよい。プログラムデータは、例えば「ｆｉｌｔｅｒ ２ 会田 −ｏｕｔｐｕｔ 年，顧客名，来店回数」というようなデータである。
【００１７】
図５に、入力テーブルの一例を示す。図５の例では、年と、顧客名と、来店回数とについてのデータが格納されている。
【００１８】
図６に、出力テーブルの一例を示す。図６の例では、年と、会田を含む顧客名と、来店回数とについてのデータが格納されている。
【００１９】
メタデータ生成部１０１は、ステップＳ１において読み出した出力テーブルの項目名（図６の例であれば、「年」、「会田を含む顧客名」および「来店回数」。以下、出力項目名と呼ぶ）のうち未処理の出力項目名が有るか判定する（ステップＳ３）。
【００２０】
未処理の出力項目名が有る場合（ステップＳ３：Ｙｅｓルート）、メタデータ生成部１０１は、未処理の出力項目名を１つ特定する（ステップＳ５）。
【００２１】
メタデータ生成部１０１は、ステップＳ５において特定した出力項目名が、ステップＳ１において読み出した入力テーブルの項目名（図５の例では、「年」、「顧客名」および「来店回数」。以下、入力項目名と呼ぶ）のいずれかと関連するか判定する（ステップＳ７）。出力項目名が入力項目名に関連するとは、例えば、出力項目名と入力項目名とが完全一致の関係又は部分一致の関係にあることである。
【００２２】
ステップＳ５において特定した出力項目名が、ステップＳ１において読み出した入力項目名のいずれとも関連しない場合（ステップＳ７：Ｎｏルート）、処理はステップＳ３に戻る。
【００２３】
一方、ステップＳ５において特定した出力項目名が、ステップＳ１において読み出した入力項目名のいずれかと関連する場合（ステップＳ７：Ｙｅｓルート）、メタデータ生成部１０１は、以下の処理を実行する。具体的には、メタデータ生成部１０１は、出力項目名のうち入力項目名と関連する要素および入力項目名と関連しない要素を特定する。そして、メタデータ生成部１０１は、出力項目名のうち入力項目名と関連する要素が変数であり且つ入力項目名と関連しない要素が機能語である項目名を生成する（ステップＳ９）。メタデータ生成部１０１は、生成した項目名をテンプレートデータ格納部１１９に格納する。
【００２４】
例えば、出力項目名が「年」であり且つ入力項目名が「年」である場合、出力項目名の要素「年」が変数化（パラメタ化）され、図７に示すように、項目名「＄入力Ａ」が生成される。また、例えば、入力項目名が「顧客名」であり且つ出力項目名が「会田を含む顧客名」である場合、出力項目名の要素「顧客名」が変数化され且つ出力項目名の要素「会田を含む」が機能語として取り扱われ、図８に示すように、項目名「会田を含む．＄入力Ｂ」が生成される。また、機能語リスト格納部１１５に格納されている機能語リストには、図９に示すように、機能語「会田を含む」が登録される。ここで、カンマは項目名と項目名との区切りを表し、ドットは種類が異なる要素（例えば、機能語と変数（すなわち関連項目値に関連する語））の区切りを表す。また、＄入力Ａは入力テーブルの１列目を表し、＄入力Ｂは入力テーブルの２列目を表し、・・・というように、アルファベットの順番は入力テーブルの列の位置に対応する。なお、本実施の形態における変数化とは、限定的な用語を、様々な値を取りうる抽象化された文字又は記号等に変換することである。
【００２５】
メタデータ生成部１０１は、ステップＳ１において読み出した入力テーブルの項目値（例えば、「相川」、「会田」および「相葉」など）に関連する要素が、ステップＳ９において特定された機能語およびステップＳ１において読み出したプログラムデータに含まれる引数（以下、プログラム引数と呼ぶ）に含まれるか判定する（ステップＳ１１）。なお、ステップＳ９において機能語が特定されていない場合には、ステップＳ１１において「Ｎｏ」であると判定される。
【００２６】
ステップＳ１において読み出した入力テーブルの項目値（以下、入力項目値と呼ぶ）に関連する要素が、ステップＳ９において特定された機能語およびプログラム引数に含まれない場合（ステップＳ１１：Ｎｏルート）、処理はステップＳ３に戻る。
【００２７】
一方、ステップＳ１において読み出した入力項目値に関連する要素が、ステップＳ９において特定された機能語およびプログラム引数に含まれる場合（ステップＳ１１：Ｙｅｓルート）、メタデータ生成部１０１は、以下の処理を実行する。具体的には、メタデータ生成部１０１は、ステップＳ９において特定された機能語のうち入力項目値に関連する要素および入力項目値に関連しない要素を特定する。そして、メタデータ生成部１０１は、入力項目値に関連する要素が変数であり且つ入力項目値に関連しない要素が機能語である項目名を生成し、生成した項目名で、ステップＳ９において生成された項目名を置換する（ステップＳ１３）。また、メタデータ生成部１０１は、機能語リスト格納部１１５に登録した機能語を修正する。そして処理はステップＳ３に戻る。
【００２８】
例えば図８の例では、２番目の項目名に含まれる機能語「会田を含む」は入力項目値「会田」に関連する（すなわち、機能語が入力項目値「会田」と部分一致の関係にある）。従って、例えばプログラムデータが「ｆｉｌｔｅｒ ２ 会田 −ｏｕｔｐｕｔ 年，顧客名，来店回数」である場合、図１０に示すような項目名で置換される。図１０の例を図８の例と比較すると、２番目の項目名が「会田を含む．＄入力Ｂ」から「＄Ｐ２．を含む．＄入力Ｂ」に変わっている。また、機能語リストに登録された機能語は、例えば図９に示すような機能語から図１１に示すような機能語に変更される。
【００２９】
そして、図６に示した出力テーブルの出力項目名「来店回数」についてさらに処理が実行されると、例えば図１２に示すようなテンプレートデータが最終的に生成される。
【００３０】
一方、未処理の出力項目名が無い場合（ステップＳ３：Ｎｏルート）、メタデータ生成部１０１は、ステップＳ１において読み出したプログラムデータおよび生成された項目名（すなわち、テンプレートデータ格納部１１９にテンプレートデータとして格納された項目名）をメタデータ格納部１１７に登録する（ステップＳ１５）。そして処理は終了する。
【００３１】
図１３に、メタデータ格納部１１７に格納されるデータの一例を示す。図１３の例では、プログラムデータと、メタデータとが格納される。
【００３２】
このように、本実施の形態においては、出力テーブルの項目名が機能語と入力項目名に関連する要素と入力項目値に関連する要素とに分解され、さらにプログラムの引数でもある要素は変数化される。プログラムのメタデータは変数を含むので、プログラムを種々のケースに利用できるようになる。上で述べた例であれば、「会田」とは異なる他の入力項目値の抽出処理に対してもプログラムを利用することができるようになる。
【００３３】
また、抽出処理の種類ごとにプログラムを用意する場合と比較すると、本実施の形態の方法においては１つのプログラムとそれに対応するメタデータだけが有ればよい。従って、抽出処理の種類数が数十以上である場合、１つのプログラムに対応するメタデータのデータ量はプログラムのデータ量より少なくなるのが普通であることを考慮すると、データ量を数十分の一に減らすことができるようになる。
【００３４】
次に、図１４乃至図３１を用いて、登録されたメタデータを利用して他のケースにプログラムを流用する処理を説明する。
【００３５】
まず、メタデータ生成部１０１は、入力テーブル格納部１１１に格納されている入力テーブルと、機能語リスト格納部１１５に格納されている機能語リストとを読み出す。そして、メタデータ生成部１０１は、読み出した入力テーブルと機能語リストとを出力する（図１４：ステップＳ２１）。ステップＳ２１においては、例えば、入力テーブルと機能語リストとがメタデータ処理装置１の表示装置に表示される。
【００３６】
例えば、図１５に示すような入力テーブルが出力される。図１５の例では、売上と、月と、支店名とについてのデータが登録されている。また、例えば、図１６に示すような機能語リストが出力される。機能語リストには、１又は複数の機能語が登録されているとする。
【００３７】
入力テーブルと機能語リストとを確認したユーザは、どのような出力項目名を得るべきか考える。そして、ユーザは、例えばキーボード、マウス或いはタッチパネル等の入力装置を使用して１又は複数の出力項目名を入力する。そして、メタデータ生成部１０１は、出力項目名の入力を受け付ける（ステップＳ２３）。
【００３８】
例えば、ユーザが出力項目名として「中原を含む支店名」、「月」および「売上」を入力した場合、図１７に示すような、データが埋められていない出力テーブルが生成される。
【００３９】
メタデータ生成部１０１は、ステップＳ２３において入力を受け付けた出力項目名のうち未処理の出力項目名が有るか判定する（ステップＳ２５）。
【００４０】
未処理の出力項目名が有る場合（ステップＳ２５：Ｙｅｓルート）、メタデータ生成部１０１は、未処理の出力項目名を１つ特定する（ステップＳ２７）。
【００４１】
メタデータ生成部１０１は、ステップＳ２７において特定した出力項目名が、ステップＳ２１において表示した入力テーブルの入力項目名（図１５の例では、「売上」、「月」および「支店名」）のいずれかと関連するか判定する（ステップＳ２９）。出力項目名が入力項目名に関連するとは、例えば、出力項目名と入力項目名とが完全一致の関係又は部分一致の関係にあることである。
【００４２】
ステップＳ２７において特定した出力項目名が、ステップＳ２１において表示した入力テーブルの入力項目名のいずれとも関連しない場合（ステップＳ２９：Ｎｏルート）、処理はステップＳ２５に戻る。
【００４３】
一方、ステップＳ２７において特定した出力項目名が、ステップＳ２１において表示した入力テーブルの入力項目名のいずれかと関連する場合（ステップＳ２９：Ｙｅｓルート）、メタデータ生成部１０１は、以下の処理を実行する。具体的には、メタデータ生成部１０１は、出力項目名のうち入力項目名と関連する要素および入力項目名と関連しない要素を特定する。そして、メタデータ生成部１０１は、出力項目名のうち入力項目名と関連する要素が変数であり且つ入力項目名と関連しない要素が機能語である項目名を生成する（ステップＳ３１）。メタデータ生成部１０１は、生成した項目名をテンプレートデータ格納部１１９に格納する。
【００４４】
例えば、入力項目名が「支店名」であり且つ出力項目名が「中原を含む支店名」である場合、出力項目名の要素「支店名」が変数化され且つ出力項目名の要素「中原を含む」が機能語として取り扱われ、図１８に示すように、項目名「中原を含む．＄入力Ｃ」が生成される。また、機能語リスト格納部１１５に格納されている機能語リストには、図１９に示すように、機能語「中原を含む」が登録される。
【００４５】
メタデータ生成部１０１は、ステップＳ３１において特定した機能語が、ステップＳ２１において表示した入力テーブルの入力項目値（例えば、「丸子」、「小杉」および「中原」など）に関連するか判定する（ステップＳ３３）。なお、ステップＳ３１において機能語が特定されていない場合には、ステップＳ３３において「Ｎｏ」であると判定される。
【００４６】
ステップＳ３１において特定した機能語が、ステップＳ２１において表示した入力テーブルの入力項目値に関連しない場合（ステップＳ３３：Ｎｏルート）、処理はステップＳ２５に戻る。
【００４７】
一方、ステップＳ３１において特定した機能語が、ステップＳ２１において表示した入力テーブルの入力項目値に関連する場合（ステップＳ３３：Ｙｅｓルート）、メタデータ生成部１０１は、以下の処理を実行する。具体的には、メタデータ生成部１０１は、ステップＳ３１において特定された機能語のうち入力項目値に関連する要素および入力項目値に関連しない要素を特定する。そして、メタデータ生成部１０１は、入力項目値に関連する要素が変数であり且つ入力項目値に関連しない要素が機能語である項目名を生成し、生成した項目名で、ステップＳ３１において生成された項目名を置換する（ステップＳ３５）。また、メタデータ生成部１０１は、機能語リスト格納部１１５に登録した機能語を修正し、関連すると判定された入力項目値（すなわち関連項目値）を関連項目値格納部１２１に格納する。そして処理はステップＳ２５に戻る。
【００４８】
例えば図１８においては、項目名に含まれる機能語「中原を含む」は入力項目値「中原」に関連する（すなわち、機能語が入力項目値「中原」と部分一致の関係にある）。従って、ステップＳ３１において生成された項目名は図２０に示すような項目名で置換される。図２０の例を図１８の例と比較すると、項目名が「中原を含む．＄入力Ｃ」から「＄Ｄ３．を含む．＄入力Ｃ」に変わっている。また、機能語リストに登録された機能語は、例えば図１９に示すような機能語から図２１に示すような機能語に変更される。また、関連項目値格納部１２１には、例えば図２２に示すような関連項目値が格納される。
【００４９】
そして、図１７に示した出力テーブルの出力項目名「月」についてさらに処理が実行されると、例えば図２３に示すようなテンプレートデータが生成される。また、図１７に示した出力テーブルの出力項目名「売上」についてさらに処理が実行されると、例えば図２４に示すようなテンプレートデータが生成される。
【００５０】
一方、未処理の出力項目名が無い場合（ステップＳ２５：Ｎｏルート）、処理は端子Ａを介して図２５のステップＳ３７に移行する。
【００５１】
図２５の説明に移行し、流用処理部１０３は、ステップＳ２１乃至Ｓ３５の処理によって生成されたテンプレートデータに含まれる項目名を並び替えることで複数のパターンを生成する（図２５：ステップＳ３７）。そして、流用処理部１０３は、メタデータ格納部１１７に格納されているメタデータの型と同じ型のパターンを、複数のパターンの中から探索する（ステップＳ３９）。
【００５２】
例えば図２４に示したテンプレートデータに対して項目名の並び替えを実行すると、図２６に示すような６つのパターンが生成される。例えば、図１３に示したメタデータがメタデータ格納部１１７に格納されている場合、３番目のテンプレートデータの型と５番目のテンプレートデータの型とがメタデータの型と一致する。なお、型とは、入力項目値、変数および機能語等の並びの順序を意味する。ここでは、例えば、＄入力Ａと＄入力Ｂとは同じであるとして取り扱われ、＄Ｐ２と＄Ｄ３とは同じであるとして取り扱われる。
【００５３】
流用処理部１０３は、メタデータの型と同じ型を有するパターンが有るか判定する（ステップＳ４１）。メタデータの型と同じ型を有するパターンが無い場合（ステップＳ４１：Ｎｏルート）、流用できるプログラムが無いので処理は終了する。
【００５４】
一方、メタデータの型と同じ型を有するパターンが有る場合（ステップＳ４１：Ｙｅｓルート）、流用処理部１０３は、メタデータの型と同じ型を有するパターンを１つ特定し、以下の処理を実行する。具体的には、流用処理部１０３は、特定したパターンに含まれる項目名とメタデータに含まれる項目名との対応関係に基づき、入力テーブルの列を並び替える（ステップＳ４３）。
【００５５】
例えば図２７に示すように、特定したパターンが「＄入力Ｂ，＄Ｄ３．を含む．＄入力Ｃ，＄入力Ａ」であり且つメタデータが「＄入力Ａ，＄Ｐ２．を含む．＄入力Ｂ，＄入力Ｃ」である場合、パターンの＄入力Ｂはメタデータの＄入力Ａに対応し、パターンの＄入力Ｃはメタデータの＄入力Ｂに対応し、パターンの＄入力Ａはメタデータの＄入力Ｃに対応する。この場合、図２８に示すように、ステップＳ２１において表示した入力テーブルの第１列を第３列に変更し、第２列を第１列に変更し、第３列を第２列に変更する。この処理により、ステップＳ２１において表示した入力テーブルを、メタデータに対応するプログラムの入力とすることができるようになる。
【００５６】
流用処理部１０３は、メタデータ格納部１１７に格納されているプログラムデータを読み出し、読み出したプログラムデータに含まれる引数（ここでは、入力項目値に係る引数）を、関連項目値格納部１２１に格納された関連項目値で置換する（ステップＳ４５）。例えばプログラムデータ「ｆｉｌｔｅｒ ２ 会田」における引数「会田」が「中原」で置き換えられる。この処理により、元のプログラムを今回のケースで実行できるようになる。
【００５７】
流用処理部１０３は、ステップＳ４５において引数が置換されたプログラムデータのプログラムを、ステップＳ４３において列が並び替えられた入力テーブルについて実行する（ステップＳ４７）。
【００５８】
ステップＳ４７の処理により、例えば図２９に示すようなテーブルが生成される。図２９の例では、月と、中原を含む支店名と、売上とについてのデータが格納される。図１７のテーブルと比較すると、両者の列の位置が異なっているので、図２９に示したテーブルは最終的な出力テーブルではない。
【００５９】
流用処理部１０３は、特定したパターンの型を元のテンプレートデータの型に戻す場合の並び替えにより、ステップＳ４７の処理によって生成されたテーブルの列を並び替える（ステップＳ４９）。流用処理部１０３は、ステップＳ４９の処理により生成された出力テーブルを出力テーブル格納部１１３に格納する。そして処理は終了する。
【００６０】
例えば図３０に示すように、並び替えが行われたテンプレートデータの１番目の項目名が元のテンプレートデータの２番目の項目名に対応し、並び替えが行われたテンプレートデータの２番目の項目名が元のテンプレートデータの１番目の項目名に対応し、並び替えが行われたテンプレートデータの３番目の項目名が元のテンプレートデータの３番目の項目名に対応するとする。この場合、図３１に示すように、ステップＳ４７の処理により生成されたテーブル３２０２の１番目の列が２番目の列になり、テーブル３２０２の２番目の列が１番目の列になり、テーブル３２０２の３番目の列が３番目の列になるように並び替えを行えば、最終的な出力テーブル３２０１が得られる。
【００６１】
以上のような処理を実行すれば、入力テーブルから出力テーブルを生成する或る処理を、既存のプログラムで実現することができるようになり、一からプログラムを作成する手間を削減することができるようになる。
【００６２】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したメタデータ処理装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００６３】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６４】
また、抽出処理ではなくその他の処理（例えば、項目値を別の値に置き換える置き換え処理など）に対して本実施の形態を適用してもよい。
【００６５】
また、変数およびテンプレートデータ等の表現方法は、上で示した例には限定されない。
【００６６】
なお、上で述べたメタデータ処理装置１は、コンピュータ装置であって、図３２に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６８】
本実施の形態の第１の態様に係るメタデータ処理方法は、（Ａ）第１の入力データの項目名と第１の出力データの項目名との比較に基づき、第１の入力データの項目名および第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、（Ｂ）抽出された要素と、第１の入力データから第１の出力データを生成するためのプログラムの引数とが、第１の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。
【００６９】
メタデータが変数を含むので、メタデータがより汎用的になる。
【００７０】
また、メタデータを生成する処理において、（ｂ１）抽出された要素のうち第１の入力データの項目値に関連する要素が変数化され、且つ、第１の入力データの項目名および第１の出力データの項目名の両方に含まれる要素が変数化されたメタデータを生成してもよい。
【００７１】
メタデータの一部がさらに変数化されるので、メタデータはより汎用的になる。
【００７２】
また、本メタデータ生成方法は、（Ｃ）第２の入力データの項目名と指定された項目名との比較に基づき、第２の入力データの項目名および指定された項目名の両方に含まれる要素以外の要素を抽出し、（Ｄ）抽出された要素が、第２の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第２の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、（Ｅ）メタデータに含まれる要素とテンプレートデータに含まれる要素との対応関係に基づき、第２の入力データの列を並び替え、（Ｆ）列が並び替えられた第２の入力データを入力としてプログラムを実行して第２の出力データを生成する処理をさらに含んでもよい。
【００７３】
他の入力データの処理にプログラムを流用できるようになる。
【００７４】
また、第２の入力データの列を並び替える処理において、（ｅ１）メタデータの形式とテンプレートデータの形式とが一致するように、テンプレートデータに含まれる項目名を並び替え、メタデータに含まれる要素と項目名が並び替えられたテンプレートデータに含まれる要素との対応関係に基づき、第２の入力データの列を並び替えてもよい。そして、本メタデータ処理方法は、（Ｇ）第２の出力データの列に対して、テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する処理をさらに含んでもよい。
【００７５】
メタデータの形式とテンプレートデータの形式とが異なる場合にも対処できるようになる。
【００７６】
本実施の形態の第２の態様に係るメタデータ処理装置は、（Ｈ）第１の入力データ及び第１の出力データを格納するデータ格納部（例えば、入力テーブル格納部１１１及び出力テーブル格納部１１３）と、（Ｉ）第１の入力データの項目名と第１の出力データの項目名との比較に基づき、第１の入力データの項目名および第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第１の入力データから第１の出力データを生成するためのプログラムの引数とが、第１の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部（例えば、メタデータ生成部１０１）とを有する。
【００７７】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７９】
（付記１）
コンピュータに、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行させるメタデータ処理プログラム。
【００８０】
（付記２）
前記メタデータを生成する処理において、
抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化され、且つ、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素が変数化された前記メタデータを生成する、
付記１記載のメタデータ処理プログラム。
【００８１】
（付記３）
前記コンピュータに、
第２の入力データの項目名と指定された項目名との比較に基づき、前記第２の入力データの項目名および指定された前記項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素が、前記第２の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第２の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、
前記メタデータに含まれる要素と前記テンプレートデータに含まれる要素との対応関係に基づき、前記第２の入力データの列を並び替え、
列が並び替えられた前記第２の入力データを入力として前記プログラムを実行して第２の出力データを生成する、
付記１又は２記載のメタデータ処理プログラム。
【００８２】
（付記４）
前記第２の入力データの列を並び替える処理において、
前記メタデータの形式と前記テンプレートデータの形式とが一致するように、前記テンプレートデータに含まれる項目名を並び替え、前記メタデータに含まれる要素と項目名が並び替えられた前記テンプレートデータに含まれる要素との対応関係に基づき、前記第２の入力データの列を並び替え、
前記コンピュータに、
前記第２の出力データの列に対して、前記テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する、
付記３記載のメタデータ処理プログラム。
【００８３】
（付記５）
コンピュータが、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行するメタデータ処理方法。
【００８４】
（付記６）
第１の入力データ及び第１の出力データを格納するデータ格納部と、
第１の入力データの項目名と第１の出力データの項目名との比較に基づき、前記第１の入力データの項目名および前記第１の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された前記要素と、前記第１の入力データから前記第１の出力データを生成するためのプログラムの引数とが、前記第１の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第１の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部と、
を有するメタデータ処理装置。
【符号の説明】
【００８５】
１  メタデータ処理装置    １０１  メタデータ生成部
１０３  流用処理部    １１１  入力テーブル格納部
１１３  出力テーブル格納部    １１５  機能語リスト格納部
１１７  メタデータ格納部    １１９  テンプレートデータ格納部
１２１  関連項目値格納部    １２３  プログラム格納部
【図１】
2018112848.tif 000003
【図２】
2018112848.tif 000004
【図３】
2018112848.tif 000005
【図４】
2018112848.tif 000006
【図５】
2018112848.tif 000007
【図６】
2018112848.tif 000008
【図７】
2018112848.tif 000009
【図８】
2018112848.tif 000010
【図９】
2018112848.tif 000011
【図１０】
2018112848.tif 000012
【図１１】
2018112848.tif 000013
【図１２】
2018112848.tif 000014
【図１３】
2018112848.tif 000015
【図１４】
2018112848.tif 000016
【図１５】
2018112848.tif 000017
【図１６】
2018112848.tif 000018
【図１７】
2018112848.tif 000019
【図１８】
2018112848.tif 000020
【図１９】
2018112848.tif 000021
【図２０】
2018112848.tif 000022
【図２１】
2018112848.tif 000023
【図２２】
2018112848.tif 000024
【図２３】
2018112848.tif 000025
【図２４】
2018112848.tif 000026
【図２５】
2018112848.tif 000027
【図２６】
2018112848.tif 000028
【図２７】
2018112848.tif 000029
【図２８】
2018112848.tif 000030
【図２９】
2018112848.tif 000031
【図３０】
2018112848.tif 000032
【図３１】
2018112848.tif 000033
【図３２】
2018112848.tif 000034