JP2018112848A - メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム - Google Patents

メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム Download PDF

Info

Publication number
JP2018112848A
JP2018112848A JP2017002190A JP2017002190A JP2018112848A JP 2018112848 A JP2018112848 A JP 2018112848A JP 2017002190 A JP2017002190 A JP 2017002190A JP 2017002190 A JP2017002190 A JP 2017002190A JP 2018112848 A JP2018112848 A JP 2018112848A
Authority
JP
Japan
Prior art keywords
data
metadata
item name
item
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017002190A
Other languages
English (en)
Other versions
JP6680218B2 (ja
Inventor
多湖 真一郎
Shinichiro Tako
真一郎 多湖
西野 文人
Fumito Nishino
文人 西野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017002190A priority Critical patent/JP6680218B2/ja
Priority to PCT/JP2017/046674 priority patent/WO2018131469A1/ja
Publication of JP2018112848A publication Critical patent/JP2018112848A/ja
Priority to US16/451,618 priority patent/US20190317946A1/en
Application granted granted Critical
Publication of JP6680218B2 publication Critical patent/JP6680218B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】汎用的なメタデータを自動的に生成するメタデータ処理方法、装置及びプログラムを提供する。
【解決手段】本メタデータ処理方法は、第1の入力データの項目名と第1の出力データの項目名との比較に基づき、第1の入力データの項目名および第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第1の入力データから第1の出力データを生成するためのプログラムの引数とが、第1の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。
【選択図】図4

Description

本発明は、メタデータの処理技術に関する。
プログラムのメタデータを生成すれば、そのメタデータを別のプログラムを自動生成すること等に利用することができる。そして、メタデータが汎用的であるほどそのメタデータの利用価値は高くなる。但し、メタデータを人手によって作成することには手間がかかる。
メタデータの生成に関して、或る文献は、プログラム自体を解析してプログラムのメタデータを生成する技術を開示する。しかし、プログラム自体を解析しても適切なメタデータを生成できないことがある。
特開2008−090707号公報 特開2011−186929号公報
本発明の目的は、1つの側面では、汎用的なメタデータを自動的に生成するための技術を提供することである。
一態様に係るメタデータ処理方法は、第1の入力データの項目名と第1の出力データの項目名との比較に基づき、第1の入力データの項目名および第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第1の入力データから第1の出力データを生成するためのプログラムの引数とが、第1の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。
1つの側面では、汎用的なメタデータを自動的に生成できるようになる。
図1は、入力テーブル及び出力テーブルの一例を示す図である。 図2は、メタデータが登録されたテーブルの一例を示す図である。 図3は、メタデータ処理装置の機能ブロック図である。 図4は、メタデータを登録する処理の処理フローを示す図である。 図5は、入力テーブルの一例を示す図である。 図6は、出力テーブルの一例を示す図である。 図7は、テンプレートデータの一例を示す図である。 図8は、テンプレートデータの一例を示す図である。 図9は、機能語リストの一例を示す図である。 図10は、テンプレートデータの一例を示す図である。 図11は、機能語リストの一例を示す図である。 図12は、テンプレートデータの一例を示す図である。 図13は、メタデータ格納部に格納されるデータの一例を示す図である。 図14は、登録されたメタデータを利用して他のケースにプログラムを流用する処理の処理フローを示す図である。 図15は、入力テーブルの一例を示す図である。 図16は、機能語リストの一例を示す図である。 図17は、最終的に出力される出力テーブルの形式の一例を示す図である。 図18は、テンプレートデータの一例を示す図である。 図19は、機能語リストの一例を示す図である。 図20は、テンプレートデータの一例を示す図である。 図21は、機能語リストの一例を示す図である。 図22は、関連項目値格納部に格納されるデータの一例を示す図である。 図23は、テンプレートデータの一例を示す図である。 図24は、テンプレートデータの一例を示す図である。 図25は、登録されたメタデータを利用して他のケースにプログラムを流用する処理の処理フローを示す図である。 図26は、パターンの一例を示す図である。 図27は、パターンに含まれる項目名とメタデータに含まれる項目名との対応関係を示す図である。 図28は、入力テーブルの列の並び替えの一例を示す図である。 図29は、プログラムの実行により生成されるテーブルの一例を示す図である。 図30は、特定したパターンに含まれる項目名と元のテンプレートデータに含まれる項目名との対応関係を示す図である。 図31は、最終的に生成される出力テーブルの一例を示す図である。 図32は、コンピュータの機能ブロック図である。
以下では、テーブルに登録されたデータを入力として別のテーブルを出力する処理をプロセッサに実行させるプログラムのメタデータを生成することを考える。
例えば、或るプログラム「sum_per_branch」を実行すると、図1(a)に示すテーブルに登録されたデータを入力として図1(b)に示すテーブルが出力されるとする。各テーブルの項目名に着目すると、「支店名」は両テーブルに存在し、図1(a)のテーブルにおける「売上」は図1(b)のテーブルにおける「支店毎売上」に含まれる。
そこで、項目名が一致するか否かに基づき図2に示すようなメタデータを生成することができる。図2に示したテーブルには、プログラムについての情報(ここでは、プログラム名)と、メタデータとが登録されており、メタデータは、図1(a)のテーブルにおける或る項目名と図1(b)のテーブルにおける或る項目名とが一致することを示す情報「入力=出力」と、図1(a)のテーブルにおける或る項目名が「x」であり且つ図1(b)のテーブルにおける或る項目名が「支店毎x」であることを示す情報「入力:x 出力:支店毎+x」とを含む。このようなメタデータを用意しておけば、プログラムのメンテナンス等にメタデータを利用することができるようになる。
但し、上で述べたように生成されるメタデータの表現は限定的であるため、利用の用途が限られてしまうことがある。図2の例では、メタデータは支店毎の集計に限定されているので、その他の集計等を行うケースにプログラムを流用することはできない。
そこで、以下では、より汎用的なメタデータを生成する方法を説明する。図3に、本実施の形態のメタデータ処理装置1の機能ブロック図を示す。本実施の形態のメタデータ処理装置1は、メタデータ生成部101と、流用処理部103と、入力テーブル格納部111と、出力テーブル格納部113と、機能語リスト格納部115と、メタデータ格納部117と、テンプレートデータ格納部119と、関連項目値格納部121と、プログラム格納部123とを含む。
メタデータ生成部101は、入力テーブル格納部111に格納されている入力テーブルと、出力テーブル格納部113に格納されている出力テーブルと、プログラム格納部123に格納されているプログラムデータとに基づき処理を実行し、処理結果をメタデータ格納部117、テンプレートデータ格納部119、機能語リスト格納部115及び関連項目値格納部121に格納する。流用処理部103は、メタデータ格納部117に格納されているデータと、テンプレートデータ格納部119に格納されているデータと、関連項目値格納部121に格納されているデータとに基づき処理を実行し、処理結果を出力テーブル格納部113に格納する。
次に、図4乃至図31を用いて、メタデータ処理装置1が実行する処理を説明する。まず、図4乃至図13を用いて、メタデータを登録する処理を説明する。
メタデータ生成部101は、入力テーブル格納部111に格納されている入力テーブルと、プログラム格納部123に格納されているプログラムデータと、出力テーブル格納部113に格納されている出力テーブルとを読み出す(図4:ステップS1)。プログラムデータは、プログラムそのものであってもよいし、プログラムに含まれる情報の一部であってもよい。プログラムデータは、例えば「filter 2 会田 −output 年,顧客名,来店回数」というようなデータである。
図5に、入力テーブルの一例を示す。図5の例では、年と、顧客名と、来店回数とについてのデータが格納されている。
図6に、出力テーブルの一例を示す。図6の例では、年と、会田を含む顧客名と、来店回数とについてのデータが格納されている。
メタデータ生成部101は、ステップS1において読み出した出力テーブルの項目名(図6の例であれば、「年」、「会田を含む顧客名」および「来店回数」。以下、出力項目名と呼ぶ)のうち未処理の出力項目名が有るか判定する(ステップS3)。
未処理の出力項目名が有る場合(ステップS3:Yesルート)、メタデータ生成部101は、未処理の出力項目名を1つ特定する(ステップS5)。
メタデータ生成部101は、ステップS5において特定した出力項目名が、ステップS1において読み出した入力テーブルの項目名(図5の例では、「年」、「顧客名」および「来店回数」。以下、入力項目名と呼ぶ)のいずれかと関連するか判定する(ステップS7)。出力項目名が入力項目名に関連するとは、例えば、出力項目名と入力項目名とが完全一致の関係又は部分一致の関係にあることである。
ステップS5において特定した出力項目名が、ステップS1において読み出した入力項目名のいずれとも関連しない場合(ステップS7:Noルート)、処理はステップS3に戻る。
一方、ステップS5において特定した出力項目名が、ステップS1において読み出した入力項目名のいずれかと関連する場合(ステップS7:Yesルート)、メタデータ生成部101は、以下の処理を実行する。具体的には、メタデータ生成部101は、出力項目名のうち入力項目名と関連する要素および入力項目名と関連しない要素を特定する。そして、メタデータ生成部101は、出力項目名のうち入力項目名と関連する要素が変数であり且つ入力項目名と関連しない要素が機能語である項目名を生成する(ステップS9)。メタデータ生成部101は、生成した項目名をテンプレートデータ格納部119に格納する。
例えば、出力項目名が「年」であり且つ入力項目名が「年」である場合、出力項目名の要素「年」が変数化(パラメタ化)され、図7に示すように、項目名「$入力A」が生成される。また、例えば、入力項目名が「顧客名」であり且つ出力項目名が「会田を含む顧客名」である場合、出力項目名の要素「顧客名」が変数化され且つ出力項目名の要素「会田を含む」が機能語として取り扱われ、図8に示すように、項目名「会田を含む.$入力B」が生成される。また、機能語リスト格納部115に格納されている機能語リストには、図9に示すように、機能語「会田を含む」が登録される。ここで、カンマは項目名と項目名との区切りを表し、ドットは種類が異なる要素(例えば、機能語と変数(すなわち関連項目値に関連する語))の区切りを表す。また、$入力Aは入力テーブルの1列目を表し、$入力Bは入力テーブルの2列目を表し、・・・というように、アルファベットの順番は入力テーブルの列の位置に対応する。なお、本実施の形態における変数化とは、限定的な用語を、様々な値を取りうる抽象化された文字又は記号等に変換することである。
メタデータ生成部101は、ステップS1において読み出した入力テーブルの項目値(例えば、「相川」、「会田」および「相葉」など)に関連する要素が、ステップS9において特定された機能語およびステップS1において読み出したプログラムデータに含まれる引数(以下、プログラム引数と呼ぶ)に含まれるか判定する(ステップS11)。なお、ステップS9において機能語が特定されていない場合には、ステップS11において「No」であると判定される。
ステップS1において読み出した入力テーブルの項目値(以下、入力項目値と呼ぶ)に関連する要素が、ステップS9において特定された機能語およびプログラム引数に含まれない場合(ステップS11:Noルート)、処理はステップS3に戻る。
一方、ステップS1において読み出した入力項目値に関連する要素が、ステップS9において特定された機能語およびプログラム引数に含まれる場合(ステップS11:Yesルート)、メタデータ生成部101は、以下の処理を実行する。具体的には、メタデータ生成部101は、ステップS9において特定された機能語のうち入力項目値に関連する要素および入力項目値に関連しない要素を特定する。そして、メタデータ生成部101は、入力項目値に関連する要素が変数であり且つ入力項目値に関連しない要素が機能語である項目名を生成し、生成した項目名で、ステップS9において生成された項目名を置換する(ステップS13)。また、メタデータ生成部101は、機能語リスト格納部115に登録した機能語を修正する。そして処理はステップS3に戻る。
例えば図8の例では、2番目の項目名に含まれる機能語「会田を含む」は入力項目値「会田」に関連する(すなわち、機能語が入力項目値「会田」と部分一致の関係にある)。従って、例えばプログラムデータが「filter 2 会田 −output 年,顧客名,来店回数」である場合、図10に示すような項目名で置換される。図10の例を図8の例と比較すると、2番目の項目名が「会田を含む.$入力B」から「$P2.を含む.$入力B」に変わっている。また、機能語リストに登録された機能語は、例えば図9に示すような機能語から図11に示すような機能語に変更される。
そして、図6に示した出力テーブルの出力項目名「来店回数」についてさらに処理が実行されると、例えば図12に示すようなテンプレートデータが最終的に生成される。
一方、未処理の出力項目名が無い場合(ステップS3:Noルート)、メタデータ生成部101は、ステップS1において読み出したプログラムデータおよび生成された項目名(すなわち、テンプレートデータ格納部119にテンプレートデータとして格納された項目名)をメタデータ格納部117に登録する(ステップS15)。そして処理は終了する。
図13に、メタデータ格納部117に格納されるデータの一例を示す。図13の例では、プログラムデータと、メタデータとが格納される。
このように、本実施の形態においては、出力テーブルの項目名が機能語と入力項目名に関連する要素と入力項目値に関連する要素とに分解され、さらにプログラムの引数でもある要素は変数化される。プログラムのメタデータは変数を含むので、プログラムを種々のケースに利用できるようになる。上で述べた例であれば、「会田」とは異なる他の入力項目値の抽出処理に対してもプログラムを利用することができるようになる。
また、抽出処理の種類ごとにプログラムを用意する場合と比較すると、本実施の形態の方法においては1つのプログラムとそれに対応するメタデータだけが有ればよい。従って、抽出処理の種類数が数十以上である場合、1つのプログラムに対応するメタデータのデータ量はプログラムのデータ量より少なくなるのが普通であることを考慮すると、データ量を数十分の一に減らすことができるようになる。
次に、図14乃至図31を用いて、登録されたメタデータを利用して他のケースにプログラムを流用する処理を説明する。
まず、メタデータ生成部101は、入力テーブル格納部111に格納されている入力テーブルと、機能語リスト格納部115に格納されている機能語リストとを読み出す。そして、メタデータ生成部101は、読み出した入力テーブルと機能語リストとを出力する(図14:ステップS21)。ステップS21においては、例えば、入力テーブルと機能語リストとがメタデータ処理装置1の表示装置に表示される。
例えば、図15に示すような入力テーブルが出力される。図15の例では、売上と、月と、支店名とについてのデータが登録されている。また、例えば、図16に示すような機能語リストが出力される。機能語リストには、1又は複数の機能語が登録されているとする。
入力テーブルと機能語リストとを確認したユーザは、どのような出力項目名を得るべきか考える。そして、ユーザは、例えばキーボード、マウス或いはタッチパネル等の入力装置を使用して1又は複数の出力項目名を入力する。そして、メタデータ生成部101は、出力項目名の入力を受け付ける(ステップS23)。
例えば、ユーザが出力項目名として「中原を含む支店名」、「月」および「売上」を入力した場合、図17に示すような、データが埋められていない出力テーブルが生成される。
メタデータ生成部101は、ステップS23において入力を受け付けた出力項目名のうち未処理の出力項目名が有るか判定する(ステップS25)。
未処理の出力項目名が有る場合(ステップS25:Yesルート)、メタデータ生成部101は、未処理の出力項目名を1つ特定する(ステップS27)。
メタデータ生成部101は、ステップS27において特定した出力項目名が、ステップS21において表示した入力テーブルの入力項目名(図15の例では、「売上」、「月」および「支店名」)のいずれかと関連するか判定する(ステップS29)。出力項目名が入力項目名に関連するとは、例えば、出力項目名と入力項目名とが完全一致の関係又は部分一致の関係にあることである。
ステップS27において特定した出力項目名が、ステップS21において表示した入力テーブルの入力項目名のいずれとも関連しない場合(ステップS29:Noルート)、処理はステップS25に戻る。
一方、ステップS27において特定した出力項目名が、ステップS21において表示した入力テーブルの入力項目名のいずれかと関連する場合(ステップS29:Yesルート)、メタデータ生成部101は、以下の処理を実行する。具体的には、メタデータ生成部101は、出力項目名のうち入力項目名と関連する要素および入力項目名と関連しない要素を特定する。そして、メタデータ生成部101は、出力項目名のうち入力項目名と関連する要素が変数であり且つ入力項目名と関連しない要素が機能語である項目名を生成する(ステップS31)。メタデータ生成部101は、生成した項目名をテンプレートデータ格納部119に格納する。
例えば、入力項目名が「支店名」であり且つ出力項目名が「中原を含む支店名」である場合、出力項目名の要素「支店名」が変数化され且つ出力項目名の要素「中原を含む」が機能語として取り扱われ、図18に示すように、項目名「中原を含む.$入力C」が生成される。また、機能語リスト格納部115に格納されている機能語リストには、図19に示すように、機能語「中原を含む」が登録される。
メタデータ生成部101は、ステップS31において特定した機能語が、ステップS21において表示した入力テーブルの入力項目値(例えば、「丸子」、「小杉」および「中原」など)に関連するか判定する(ステップS33)。なお、ステップS31において機能語が特定されていない場合には、ステップS33において「No」であると判定される。
ステップS31において特定した機能語が、ステップS21において表示した入力テーブルの入力項目値に関連しない場合(ステップS33:Noルート)、処理はステップS25に戻る。
一方、ステップS31において特定した機能語が、ステップS21において表示した入力テーブルの入力項目値に関連する場合(ステップS33:Yesルート)、メタデータ生成部101は、以下の処理を実行する。具体的には、メタデータ生成部101は、ステップS31において特定された機能語のうち入力項目値に関連する要素および入力項目値に関連しない要素を特定する。そして、メタデータ生成部101は、入力項目値に関連する要素が変数であり且つ入力項目値に関連しない要素が機能語である項目名を生成し、生成した項目名で、ステップS31において生成された項目名を置換する(ステップS35)。また、メタデータ生成部101は、機能語リスト格納部115に登録した機能語を修正し、関連すると判定された入力項目値(すなわち関連項目値)を関連項目値格納部121に格納する。そして処理はステップS25に戻る。
例えば図18においては、項目名に含まれる機能語「中原を含む」は入力項目値「中原」に関連する(すなわち、機能語が入力項目値「中原」と部分一致の関係にある)。従って、ステップS31において生成された項目名は図20に示すような項目名で置換される。図20の例を図18の例と比較すると、項目名が「中原を含む.$入力C」から「$D3.を含む.$入力C」に変わっている。また、機能語リストに登録された機能語は、例えば図19に示すような機能語から図21に示すような機能語に変更される。また、関連項目値格納部121には、例えば図22に示すような関連項目値が格納される。
そして、図17に示した出力テーブルの出力項目名「月」についてさらに処理が実行されると、例えば図23に示すようなテンプレートデータが生成される。また、図17に示した出力テーブルの出力項目名「売上」についてさらに処理が実行されると、例えば図24に示すようなテンプレートデータが生成される。
一方、未処理の出力項目名が無い場合(ステップS25:Noルート)、処理は端子Aを介して図25のステップS37に移行する。
図25の説明に移行し、流用処理部103は、ステップS21乃至S35の処理によって生成されたテンプレートデータに含まれる項目名を並び替えることで複数のパターンを生成する(図25:ステップS37)。そして、流用処理部103は、メタデータ格納部117に格納されているメタデータの型と同じ型のパターンを、複数のパターンの中から探索する(ステップS39)。
例えば図24に示したテンプレートデータに対して項目名の並び替えを実行すると、図26に示すような6つのパターンが生成される。例えば、図13に示したメタデータがメタデータ格納部117に格納されている場合、3番目のテンプレートデータの型と5番目のテンプレートデータの型とがメタデータの型と一致する。なお、型とは、入力項目値、変数および機能語等の並びの順序を意味する。ここでは、例えば、$入力Aと$入力Bとは同じであるとして取り扱われ、$P2と$D3とは同じであるとして取り扱われる。
流用処理部103は、メタデータの型と同じ型を有するパターンが有るか判定する(ステップS41)。メタデータの型と同じ型を有するパターンが無い場合(ステップS41:Noルート)、流用できるプログラムが無いので処理は終了する。
一方、メタデータの型と同じ型を有するパターンが有る場合(ステップS41:Yesルート)、流用処理部103は、メタデータの型と同じ型を有するパターンを1つ特定し、以下の処理を実行する。具体的には、流用処理部103は、特定したパターンに含まれる項目名とメタデータに含まれる項目名との対応関係に基づき、入力テーブルの列を並び替える(ステップS43)。
例えば図27に示すように、特定したパターンが「$入力B,$D3.を含む.$入力C,$入力A」であり且つメタデータが「$入力A,$P2.を含む.$入力B,$入力C」である場合、パターンの$入力Bはメタデータの$入力Aに対応し、パターンの$入力Cはメタデータの$入力Bに対応し、パターンの$入力Aはメタデータの$入力Cに対応する。この場合、図28に示すように、ステップS21において表示した入力テーブルの第1列を第3列に変更し、第2列を第1列に変更し、第3列を第2列に変更する。この処理により、ステップS21において表示した入力テーブルを、メタデータに対応するプログラムの入力とすることができるようになる。
流用処理部103は、メタデータ格納部117に格納されているプログラムデータを読み出し、読み出したプログラムデータに含まれる引数(ここでは、入力項目値に係る引数)を、関連項目値格納部121に格納された関連項目値で置換する(ステップS45)。例えばプログラムデータ「filter 2 会田」における引数「会田」が「中原」で置き換えられる。この処理により、元のプログラムを今回のケースで実行できるようになる。
流用処理部103は、ステップS45において引数が置換されたプログラムデータのプログラムを、ステップS43において列が並び替えられた入力テーブルについて実行する(ステップS47)。
ステップS47の処理により、例えば図29に示すようなテーブルが生成される。図29の例では、月と、中原を含む支店名と、売上とについてのデータが格納される。図17のテーブルと比較すると、両者の列の位置が異なっているので、図29に示したテーブルは最終的な出力テーブルではない。
流用処理部103は、特定したパターンの型を元のテンプレートデータの型に戻す場合の並び替えにより、ステップS47の処理によって生成されたテーブルの列を並び替える(ステップS49)。流用処理部103は、ステップS49の処理により生成された出力テーブルを出力テーブル格納部113に格納する。そして処理は終了する。
例えば図30に示すように、並び替えが行われたテンプレートデータの1番目の項目名が元のテンプレートデータの2番目の項目名に対応し、並び替えが行われたテンプレートデータの2番目の項目名が元のテンプレートデータの1番目の項目名に対応し、並び替えが行われたテンプレートデータの3番目の項目名が元のテンプレートデータの3番目の項目名に対応するとする。この場合、図31に示すように、ステップS47の処理により生成されたテーブル3202の1番目の列が2番目の列になり、テーブル3202の2番目の列が1番目の列になり、テーブル3202の3番目の列が3番目の列になるように並び替えを行えば、最終的な出力テーブル3201が得られる。
以上のような処理を実行すれば、入力テーブルから出力テーブルを生成する或る処理を、既存のプログラムで実現することができるようになり、一からプログラムを作成する手間を削減することができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したメタデータ処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、抽出処理ではなくその他の処理(例えば、項目値を別の値に置き換える置き換え処理など)に対して本実施の形態を適用してもよい。
また、変数およびテンプレートデータ等の表現方法は、上で示した例には限定されない。
なお、上で述べたメタデータ処理装置1は、コンピュータ装置であって、図32に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係るメタデータ処理方法は、(A)第1の入力データの項目名と第1の出力データの項目名との比較に基づき、第1の入力データの項目名および第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、(B)抽出された要素と、第1の入力データから第1の出力データを生成するためのプログラムの引数とが、第1の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する処理を含む。
メタデータが変数を含むので、メタデータがより汎用的になる。
また、メタデータを生成する処理において、(b1)抽出された要素のうち第1の入力データの項目値に関連する要素が変数化され、且つ、第1の入力データの項目名および第1の出力データの項目名の両方に含まれる要素が変数化されたメタデータを生成してもよい。
メタデータの一部がさらに変数化されるので、メタデータはより汎用的になる。
また、本メタデータ生成方法は、(C)第2の入力データの項目名と指定された項目名との比較に基づき、第2の入力データの項目名および指定された項目名の両方に含まれる要素以外の要素を抽出し、(D)抽出された要素が、第2の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第2の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、(E)メタデータに含まれる要素とテンプレートデータに含まれる要素との対応関係に基づき、第2の入力データの列を並び替え、(F)列が並び替えられた第2の入力データを入力としてプログラムを実行して第2の出力データを生成する処理をさらに含んでもよい。
他の入力データの処理にプログラムを流用できるようになる。
また、第2の入力データの列を並び替える処理において、(e1)メタデータの形式とテンプレートデータの形式とが一致するように、テンプレートデータに含まれる項目名を並び替え、メタデータに含まれる要素と項目名が並び替えられたテンプレートデータに含まれる要素との対応関係に基づき、第2の入力データの列を並び替えてもよい。そして、本メタデータ処理方法は、(G)第2の出力データの列に対して、テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する処理をさらに含んでもよい。
メタデータの形式とテンプレートデータの形式とが異なる場合にも対処できるようになる。
本実施の形態の第2の態様に係るメタデータ処理装置は、(H)第1の入力データ及び第1の出力データを格納するデータ格納部(例えば、入力テーブル格納部111及び出力テーブル格納部113)と、(I)第1の入力データの項目名と第1の出力データの項目名との比較に基づき、第1の入力データの項目名および第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された要素と、第1の入力データから第1の出力データを生成するためのプログラムの引数とが、第1の入力データの項目値に関連する要素を含む場合、抽出された要素のうち第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部(例えば、メタデータ生成部101)とを有する。
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行させるメタデータ処理プログラム。
(付記2)
前記メタデータを生成する処理において、
抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化され、且つ、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素が変数化された前記メタデータを生成する、
付記1記載のメタデータ処理プログラム。
(付記3)
前記コンピュータに、
第2の入力データの項目名と指定された項目名との比較に基づき、前記第2の入力データの項目名および指定された前記項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素が、前記第2の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第2の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、
前記メタデータに含まれる要素と前記テンプレートデータに含まれる要素との対応関係に基づき、前記第2の入力データの列を並び替え、
列が並び替えられた前記第2の入力データを入力として前記プログラムを実行して第2の出力データを生成する、
付記1又は2記載のメタデータ処理プログラム。
(付記4)
前記第2の入力データの列を並び替える処理において、
前記メタデータの形式と前記テンプレートデータの形式とが一致するように、前記テンプレートデータに含まれる項目名を並び替え、前記メタデータに含まれる要素と項目名が並び替えられた前記テンプレートデータに含まれる要素との対応関係に基づき、前記第2の入力データの列を並び替え、
前記コンピュータに、
前記第2の出力データの列に対して、前記テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する、
付記3記載のメタデータ処理プログラム。
(付記5)
コンピュータが、
第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
処理を実行するメタデータ処理方法。
(付記6)
第1の入力データ及び第1の出力データを格納するデータ格納部と、
第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部と、
を有するメタデータ処理装置。
1 メタデータ処理装置 101 メタデータ生成部
103 流用処理部 111 入力テーブル格納部
113 出力テーブル格納部 115 機能語リスト格納部
117 メタデータ格納部 119 テンプレートデータ格納部
121 関連項目値格納部 123 プログラム格納部

Claims (6)

  1. コンピュータに、
    第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
    抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
    処理を実行させるメタデータ処理プログラム。
  2. 前記メタデータを生成する処理において、
    抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化され、且つ、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素が変数化された前記メタデータを生成する、
    請求項1記載のメタデータ処理プログラム。
  3. 前記コンピュータに、
    第2の入力データの項目名と指定された項目名との比較に基づき、前記第2の入力データの項目名および指定された前記項目名の両方に含まれる要素以外の要素を抽出し、
    抽出された前記要素が、前記第2の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第2の入力データの項目値に関連する要素が変数化されたテンプレートデータを生成し、
    前記メタデータに含まれる要素と前記テンプレートデータに含まれる要素との対応関係に基づき、前記第2の入力データの列を並び替え、
    列が並び替えられた前記第2の入力データを入力として前記プログラムを実行して第2の出力データを生成する、
    請求項1又は2記載のメタデータ処理プログラム。
  4. 前記第2の入力データの列を並び替える処理において、
    前記メタデータの形式と前記テンプレートデータの形式とが一致するように、前記テンプレートデータに含まれる項目名を並び替え、前記メタデータに含まれる要素と項目名が並び替えられた前記テンプレートデータに含まれる要素との対応関係に基づき、前記第2の入力データの列を並び替え、
    前記コンピュータに、
    前記第2の出力データの列に対して、前記テンプレートデータに含まれる項目名の並びを元に戻す場合の並び替えと同じ並び替えを実行する、
    請求項3記載のメタデータ処理プログラム。
  5. コンピュータが、
    第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、
    抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する、
    処理を実行するメタデータ処理方法。
  6. 第1の入力データ及び第1の出力データを格納するデータ格納部と、
    第1の入力データの項目名と第1の出力データの項目名との比較に基づき、前記第1の入力データの項目名および前記第1の出力データの項目名の両方に含まれる要素以外の要素を抽出し、抽出された前記要素と、前記第1の入力データから前記第1の出力データを生成するためのプログラムの引数とが、前記第1の入力データの項目値に関連する要素を含む場合、抽出された前記要素のうち前記第1の入力データの項目値に関連する要素が変数化されたメタデータを生成する生成部と、
    を有するメタデータ処理装置。
JP2017002190A 2017-01-10 2017-01-10 メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム Active JP6680218B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017002190A JP6680218B2 (ja) 2017-01-10 2017-01-10 メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム
PCT/JP2017/046674 WO2018131469A1 (ja) 2017-01-10 2017-12-26 メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム
US16/451,618 US20190317946A1 (en) 2017-01-10 2019-06-25 Metadata processing method, information processing apparatus, and recording medium recording metadata processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017002190A JP6680218B2 (ja) 2017-01-10 2017-01-10 メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2018112848A true JP2018112848A (ja) 2018-07-19
JP6680218B2 JP6680218B2 (ja) 2020-04-15

Family

ID=62839428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017002190A Active JP6680218B2 (ja) 2017-01-10 2017-01-10 メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム

Country Status (3)

Country Link
US (1) US20190317946A1 (ja)
JP (1) JP6680218B2 (ja)
WO (1) WO2018131469A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058523A (ja) * 2001-08-21 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> 構造化文書の変換ルール作成方法および装置と変換ルール作成プログラムおよび該プログラムを記録した記録媒体
JP2006277660A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 変換規則作成プログラム及び変換規則評価プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058523A (ja) * 2001-08-21 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> 構造化文書の変換ルール作成方法および装置と変換ルール作成プログラムおよび該プログラムを記録した記録媒体
JP2006277660A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 変換規則作成プログラム及び変換規則評価プログラム

Also Published As

Publication number Publication date
WO2018131469A1 (ja) 2018-07-19
US20190317946A1 (en) 2019-10-17
JP6680218B2 (ja) 2020-04-15

Similar Documents

Publication Publication Date Title
CN106873949A (zh) 代码生成方法及其装置
CN105528418B (zh) 一种设计文档生成方法及装置
CN106775770A (zh) 基于类信息构建查询语句的查找方法
JP2017041171A (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
CN108875048B (zh) 报表生成方法、装置、电子设备及可读存储介质
CN103164393A (zh) 报表公式处理方法和系统
CN103077192A (zh) 一种数据处理方法及其系统
JP5526057B2 (ja) データ分析支援装置およびプログラム
JP2013020437A (ja) 要件管理支援装置
JP6680218B2 (ja) メタデータ処理方法、メタデータ処理装置及びメタデータ処理プログラム
JP2018092344A (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JPWO2009011057A1 (ja) アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
JP6665678B2 (ja) メタデータ登録方法、メタデータ登録プログラムおよびメタデータ登録装置
WO2017072872A1 (ja) 業務プログラム生成支援システムおよび業務プログラム生成支援方法
JP2018136640A (ja) 検出方法、検出装置および検出プログラム
JP2018028776A (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
JP5076700B2 (ja) データベース検証方法及び装置
JP4777740B2 (ja) テスト支援システム
JP2015200978A (ja) データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置
JP2011096154A (ja) 入力支援装置、入力支援方法及び入力支援プログラム
JPH09292986A (ja) 部品抽出方法
GB2529095A (en) Data link assistance device and data link assistance method
JP2012164177A (ja) プログラム自動生成システム
JP2020194411A (ja) マスター・データベース、その構築方法、および、プログラム
JP6801268B2 (ja) テーブル管理装置、テーブル管理方法およびテーブル管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200302

R150 Certificate of patent or registration of utility model

Ref document number: 6680218

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150