JP6764779B2 - 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム - Google Patents

同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム Download PDF

Info

Publication number
JP6764779B2
JP6764779B2 JP2016251592A JP2016251592A JP6764779B2 JP 6764779 B2 JP6764779 B2 JP 6764779B2 JP 2016251592 A JP2016251592 A JP 2016251592A JP 2016251592 A JP2016251592 A JP 2016251592A JP 6764779 B2 JP6764779 B2 JP 6764779B2
Authority
JP
Japan
Prior art keywords
column
synonymous
data model
rare
mapping
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.)
Expired - Fee Related
Application number
JP2016251592A
Other languages
English (en)
Other versions
JP2018106400A (ja
Inventor
卓也 小松田
卓也 小松田
俊彦 樫山
俊彦 樫山
真知子 朝家
真知子 朝家
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016251592A priority Critical patent/JP6764779B2/ja
Priority to US15/792,883 priority patent/US10936634B2/en
Publication of JP2018106400A publication Critical patent/JP2018106400A/ja
Application granted granted Critical
Publication of JP6764779B2 publication Critical patent/JP6764779B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • 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
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/374Thesaurus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、第1データモデルのカラムに対する同義カラムの候補を第2データモデルから選出する同義カラム候補選出装置等に関する。
工場のリソース(人、設備)の非稼働時間が長く、設備維持費のために、利益が少なくなることが問題になっており、複数の工場間でリソース共有したいという要求が近年提唱されている。そこで、リソース共有を仲介するサービス(リソース共有仲介サービス)が求められている。工場設備や人手などのリソースを工場間で共有することで、設備稼働率を向上させることが可能となる他、いくつかの利点が生まれる。
例えば、或る工場において、稼働率100%の設備の処理完了を待って作業が滞っている工程がある場合、他工場のリソースを借りることによってリードタイムを削減できる。また、例えば、高価な製造設備を一時利用したい場合、他工場から借りることで設備購入コストを削減することが可能である。
リソース共有仲介サービスの実現に向けて、工場現場から設備情報や生産計画などのデータ(CSV、Excel、RDBなど)を収集し、リソース共有サービスで利用される共通データモデル(RDB、XMLなど)に格納する必要があるが、工場現場データのデータモデルと、共通データモデルとが異なるために、工場現場データを共通データに変換する必要がある。
データ変換を支援する技術として、例えば、特許文献1には、データベースへの検索クエリを用いて同義カラムを検出する技術が記載されている。また、非特許文献1には、カラム特徴量を用いて同義カラムを検出する技術が記載されている。
特開2011−232879号公報
Embly,David W.,David Jackman,and Li Xu. "Multifaceted Exploitation of Metadata for Attribute Match Discovery in Information Integration." Workshop on information integration on the Web, 2001.
特許文献1の技術では、データベースへの検索クエリが存在しない場合、利用できないといった課題がある。例えば、新規にデータモデルを導入する場合には、検索クエリは、まだ発行されていないので、特許文献1の技術を使用することはできない。
非特許文献1の技術では、名前や型が類似している(もしくは同じ)カラム(例:IDや開始・終了時刻など)が同データモデル内に頻出する際、それら頻出カラムを区別することが難しく、データ変換に労力を要するといった課題がある。
本発明は、上記事情に鑑みなされたものであり、その目的は、第1データモデルのカラムに対する同義カラム候補を第2データモデルから容易かつ適切に選出することのできる技術を提供することにある。
上記目的を達成するため、一観点に係る同義カラム候補選出装置は、第1データモデルのカラムと同義であるカラムの候補である同義カラム候補を第2データモデルから検出する同義カラム候補選出装置であって、同義カラム候補選出装置のプロセッサは、第1データモデルにおける各テーブルの構成に係る語であって、第1データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第1希少語を検出するとともに、第2データモデルにおける各テーブルの構成に係る語であって、第2データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第2希少語を検出する希少語検出処理を実行し、第2データモデルの第2カラムが、第1データモデルの第1カラムの同義カラム候補であることを判定するための所定の判定条件を満たすか否かを判定する判定処理を実行し、判定条件を満たす場合に、第2カラムを第1カラムの同義カラム候補として選出する選出処理を実行し、判定条件は、第1カラムの周囲における第1希少語のいずれかと、第2カラムの周囲における第2希少語のいずれかと、が一致することである希少語判定条件を含む。
本発明によれば、第1データモデルのカラムに対する同義カラム候補を第2データモデルから容易かつ適切に選出することができる。
実施例1に係る計算機システムの一例を示す構成図である。 実施例1に係るマッピング候補選出処理の概要を示すフローチャートである。 実施例1に係る工場データモデル及び共通データモデルの一例を示す図である。 実施例1に係る工場データテーブルの一例を示す図である。 実施例1に係る共通データテーブルの一例を示す図である。 実施例1に係るデータ統合サーバの一部の機能構成図である。 実施例1に係るマッピング候補選出処理のフローチャートである。 実施例1に係るカラム特徴マッチによるマッピング候補選出処理のフローチャートである。 実施例1に係るカラム特徴管理情報の一例を示す図である。 実施例1に係るカラム特徴マッチ度管理情報の一例を示す図である。 実施例1に係る希少語マッチによるマッピング候補選出処理のフローチャートである。 実施例1に係る希少語抽出処理のフローチャートである。 実施例1に係る希少語管理情報の一例を示す図である。 実施例1に係るテーブルマッチによるマッピング候補選出処理のフローチャートである。 実施例1に係るテーブルマッチ度算出処理のフローチャートである。 実施例1に係るテーブルマッチ度管理情報の一例を示す図である。 実施例1に係るテーブルマッチ度の算出の具体例を説明する図である。 実施例1に係るマッピング候補表示画面の一例を示す図である。 実施例1に係る希少語調整画面の一例を示す図である。 実施例2に係るデータ統合サーバの一部の機能構成図である。 実施例2に係るマッピング候補選出処理のフローチャートである。 実施例2に係る算出式重み調整処理のフローチャートである。 実施例3に係る希少語マッチによるマッピング候補選出処理のフローチャートである。
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の実施例の構成図における制御線や情報線は、説明上必要と考えられるものを示しており、必ずしもすべての制御線や情報線を示しているとは限らない。
図1は、実施例1に係る計算機システムの一例を示す構成図である。
計算機システムは、データ統合サーバ10と、複数(図では、3)の工場サーバ20、21、22と、複数(図では、3)のクライント30、31、32とを備えている。
データ統合サーバ10と工場サーバ(20、21、22)とは、ネットワーク11を介して接続され、データ統合サーバ10とクライント(30、31、32)とは、ネットワーク12を介して接続されている。なお、ネットワーク11,12は、例えば、WAN(Wide Area Network)であってもよく、LAN(Local Area Network)やその他のいかなるネットワークであってもよい。
データ統合サーバ10は、同義カラム候補選出装置の一例であり、工場サーバ(20、21、22)から送信される工場データモデル210(第1データモデル)と、共通データモデル140(第2データモデル)とに基づいて、工場データモデル210のカラムと同義である共通データモデル140のカラムの候補(同義カラム候補)を選出するための処理を実行する。工場データモデル210は、工場データを格納するデータモデルである。工場データは、工場に勤務する作業者、製造設備や製品に関する情報を含む。データモデルは、複数のテーブルを含む。テーブルは、複数のカラムを含む。カラムは、情報を格納するためのフィールドであり、例えば、作業者の氏名、設備の稼動日時、製品の部品等が設定される。共通データモデル140は、工場データを用いたサービスで利用されるデータを共通化して格納するためのデータモデルである。例えば、リソース共有サービスで工場データを利用する場合には、共通データとしては、工場に勤務する作業者の氏名、設備の稼働時間等を含む。同義カラムは、或るカラムとは異なるデータモデルに属するカラムであって、或るカラムと同義のデータを格納するカラムのことをいう。
データ統合サーバ10は、CPU101、主記憶装置102、ストレージ103、及びネットワークI/F(インターフェース)104を含む。ネットワークI/F104は、ネットワーク11,12を介して他の装置(工場サーバ20、クライアント30)と通信するためインターフェースである。CPU101は、主記憶装置102に格納されているプログラムに従って各種処理を実行する。
ストレージ103は、例えばバードディスクやフラッシュメモリなどであり、CPU101で実行されるプログラムや、CPU101に利用されるデータを記憶する。本実施形態では、ストレージ103は、共通データモデル140を記憶する。
主記憶装置102は、例えば、RAMであり、CPU101で実行されるプログラムや、必要な情報を記憶する。本実施形態では、主記憶装置102は、カラム特徴マッチ部110、希少語マッチ部120、及びテーブルマッチ部130を実現するためのプログラムを記憶する。
カラム特徴マッチ部110は、カラム特徴マッチによってマッピング候補を選出する処理(カラム特徴マッチによるマッピング候補選出処理)を実行する。カラム特徴は、カラム名やカラムが属するテーブル名など、カラムを特徴付ける情報である。カラム特徴マッチは、異なるデータモデルの一対のカラム(カラムペア)に関してカラム特徴の類似度(カラム特徴マッチ度)を計算等する処理である。マッピング候補(同義カラム候補)とは、或るカラムに対して同義カラムの候補となるカラムのことをいう。
希少語マッチ部120は、希少語マッチによってマッピング候補を選出する処理(希少語マッチによるマッピング候補選出処理)を実行する。希少語は、テーブルの構成を特徴付けるテーブル内の語(テーブルの構成に係る語)であって、他のテーブルに所定数以下しか存在していない語である。所定数としては、ゼロ、すなわち、希少語を、他のテーブルには全く存在しない語としてもよい。所定数をどのようにするかは、対象とするデータモデルに応じて決定してもよく、所定数をどのようにするかによって、マッピング候補の数を多くするのか、マッピング候補の精度を高くするのかを調整することができる。テーブルの構成を特徴付けるテーブル内の語とは、例えば、テーブルの名称や、カラム名称に含まれる語である。希少語マッチは、工場データモデル210中のカラムと、共通データモデル140中のカラムとの一対のカラム(カラムペア)に関して、それぞれのカラム周囲の希少語が一致しているか否かを判定する処理である。カラム周囲としては、カラムが属するテーブル内としてもよく、カラムが属するテーブルと、その上位又は下位のテーブルの少なくとも一方を含んだ範囲としてもよい。カラム周囲をどのように設定するかは、対象とするデータモデルに応じて決定すればよく、カラム周囲を狭く設定すれば、精度が上がるが、マッピング候補の数は下がる傾向となる一方、カラム周囲を広く設定すれば、精度は下がるが、マッピング候補の数は上がる傾向となる。
テーブルマッチ部130は、テーブルマッチによりマッピング候補を選出する処理(テーブルマッチによるマッピング候補選出処理)を実行する。テーブルマッチとは、工場データモデル210中のテーブルと、共通データモデル140中のテーブルとの一対のテーブル(テーブルペア)のテーブル間の類似度(テーブルマッチ度)を計算する処理である。なお、カラム特徴マッチ部110、希少語マッチ部120、及びテーブルマッチ部130が有する機能は、一つの機能部にまとめてもよいし、また、複数の機能部に分割してもよい。例えば、カラム特徴マッチ部110が、希少語マッチ部120及びテーブルマッチ部130の機能を有してもよい。
工場サーバ20は、CPU201、主記憶装置202、ネットワークI/F203、及びストレージ204を含む。工場サーバ21及び22の構成は、工場サーバ20と同様である。
ネットワークI/F203は、ネットワーク11を介して他の装置(データ統合サーバ10等)と通信するためインターフェースである。CPU201は、主記憶装置202に格納されているプログラムに従って各種処理を実行する。
ストレージ204は、例えばバードディスクやフラッシュメモリなどであり、CPU201で実行されるプログラムや、CPU201に利用されるデータを記憶する。本実施形態では、ストレージ204は、工場データモデル210を記憶する。
主記憶装置202は、例えば、RAMであり、CPU201で実行されるプログラムや、必要な情報を記憶する。
クライアント30は、CPU301、主記憶装置302、ユーザI/F303、ネットワークI/F304、及びストレージ305を含む。クライアント31及び32は、クライアント30と同様の構成である。
ネットワークI/F304は、ネットワーク12を介して他の装置(データ統合サーバ10等)と通信するためインターフェースである。CPU301は、主記憶装置302に格納されているプログラムに従って各種処理を実行する。主記憶装置302は、例えば、RAMであり、CPU301で実行されるプログラムや、必要な情報を記憶する。ストレージ305は、例えばバードディスクやフラッシュメモリなどであり、CPU301で実行されるプログラムや、CPU301に利用されるデータを記憶する。ユーザインターフェース(ユーザI/F)303は、データ統合サーバ10での処理における出力結果を表示し、また、ユーザからの入力を受け付ける。
次に、マッピング候補選出処理の概要について説明する。
図2は、実施例1に係るマッピング候補選出処理の概要を示すフローチャートである。
まず、クライント30は、工場データモデル210及び共通データモデル140の取得を、ネットワーク12を介してデータ統合サーバ10に指示する。指示を受け取ったデータ統合サーバ10は、ネットワーク11を介して工場データモデル210の送信を工場サーバ20に依頼する。工場サーバ20は、ストレージ204から工場データモデル210を取得し、ネットワーク11を介してデータ統合サーバ10に送信する。データ統合サーバ10は、工場データモデル210を受信し、主記憶装置102に保持する。また、データ統合サーバ10は、ストレージ103から共通データモデル140を取得し、主記憶装置102に保持する(ステップS10)。
次いで、データ統合サーバ10のカラム特徴マッチ部110は、ステップS10で取得した工場データモデル210と、共通データモデル140とについて、カラム特徴マッチによるマッピング候補選出処理を行う(ステップS20)。このカラム特徴マッチによるマッピング候補選出処理によると、工場データモデル210のカラムのマッピング候補となる共通データモデル140のカラムが選出される。
次いで、データ統合サーバ10は、ステップS20で選出されたマッピング候補の多いカラムを対象に、希少語マッチによるマッピング候補選出処理を実行する(ステップS30)。この希少語マッチによるマッピング候補選出処理によると、カラム特徴が類似するためにステップS20においてマッピング候補が多く検出されたカラムに関して、マッピング候補を減らすことができる。
次いで、データ統合サーバ10は、テーブルマッチによるマッピング候補選出処理を実行する(ステップS40)。このマッピング候補選出処理によると、カラム特徴が類似しないためにステップS20でマッピング候補として検出されなかったカラムの中からマッピング候補を検出することができる。
図3は、実施例1に係る工場データモデル及び共通データモデルの一例を示す図である。
工場データモデル210は、複数の工場データテーブル2101を含む。工場データテーブル2101は、1以上の工場データカラム2102を含む。工場データカラム2102は、工場データに関する情報(具体的な、データの値)を保持するカラムである。工場データテーブル2101の詳細に関しては、図4を用いて説明する。例えば、工場データモデル210は、工場データテーブル2101として「MstProd」、「ShiftInfo」、及び「Tool」のテーブルを含む。「ShiftInfo」テーブルは、工場データカラム2102として、「ID」、「StartTime」、及び「EndTime」を含む。
共通データモデル140は、複数の共通データテーブル1401を含む。共通データテーブル1401は、1以上の共通データカラム1402を含む。共通データカラム1402は、共通データに関する情報を保持するカラムである。共通データテーブル1401の詳細に関して、図5を用いて説明する。例えば、共通データモデル140は、共通データテーブル1401として「Calendar」、「Shift」、「ScheduleItem」、「Schedule」、「Job」、及び「Part」のテーブルを含む。「Calendar」のテーブルは、共通データカラム1402として、「ID」、「EffectiveStartTime」、及び「EffectiveEndTime」を含む。
図4は、実施例1に係る工場データテーブルの一例を示す図である。
工場データテーブル2101は、テーブル名2103、カラム名2102、型2104、及びデータ2105を含む。テーブル名2103は、工場データテーブル2101の名前である。カラム名2104は、カラムの名前である。型2104は、カラムに含まれるデータの型である。データ2105は、カラムについての具体的なデータの値である。
例えば、テーブル名2103が「ShiftInfo」であるテーブルは、カラム名2102が「ID」であるカラムを含み、「ID」であるカラムの型2104はIntegerであり、「ID」であるカラムのデータ2105は、「1」、「2」、「3」などである。
図5は、実施例1に係る共通データテーブルの一例を示す図である。
共通データテーブル1401は、テーブル名1403、カラム名1402、型1404、及びデータ1405を含む。テーブル名1403は、共通データテーブル1401の名前である。カラム名1402は、カラムの名前である。型1404は、カラムに含まれるデータの型である。データ1404は、カラムについての具体的なデータである。
例えば、テーブル名1403が「Calendar」であるテーブルは、カラム名1402が「EffectiveStartTime」であるカラムを含み、「EffectiveStartTime」であるカラムの型1404はTimestampであり、「EffectiveStartTime」であるカラムのデータ1405は、「7:00:00」などである。
図6は、実施例1に係るデータ統合サーバの一部の機能構成図である。図6は、主記憶装置102に格納されているプログラムをCPU101が実行することにより構成される機能部と、主記憶装置102に格納されている各種情報とを示している。
主記憶装置102に格納されているプログラムがCPU101に実行されると、入出力部160と、カラム特徴マッチ部110と、希少語マッチ部120と、テーブルマッチ部130とが構成される。また、主記憶装置102は、確定マッピング管理情報141及びデータモデル管理情報151を記憶する。
確定マッピング管理情報141は、同義カラムであると確定したカラムのペア(確定カラムペア)の情報である。データモデル管理情報151は、工場サーバ20から取得した工場データモデル210及びストレージ103から取得した共通データモデル140の情報である。
入出力部160は、マッピング候補選出の際の入力の受付、及び結果の出力を行う。入出力部160は、例えば、クライアント30のユーザI/F303に、マッピング候補表示画面800(図18参照)、希少語調整画面900(図19参照)等を表示させ、クライアント30のユーザI/F303が受け付けたユーザによる画面に対する各種入力を受け付ける。入出力部160は、マッピング受付部161、データモデル受付部162、候補選出条件変更受付部163、希少語調整受付部164、及び結果出力部165を含む。マッピング受付部161は、ネットワークI/F104を介してクライアント30から受信したユーザによる確定カラムペアの指定を受け付け、受け付けた確定カラムペアを確定マッピング管理情報141に格納する。データモデル受付部162は、ネットワークI/F104を介してクライアント30から受信したユーザからのデータモデルの指定を受け付け、受け付けたデータモデルをデータモデルの格納先から取得してデータモデル管理情報151に格納する。
候補選出条件変更受付部163は、ネットワークI/F104を介してクライアント30から受信したユーザからの設定値(ユーザ設定値)を受け付け、ユーザ設定値を希少語マッチ部120のユーザ設定値管理情報126に格納する。ユーザ設定値としては、希少語によるマッピング候補選出機能のON/OFF、希少語マッチの際の部分一致の許容ON/OFF等がある。希少語調整受付部164は、ネットワークI/F104を介してクライアント30から受信したユーザの指定に従った希少語調整情報を受け付け、希少語マッチ部120の希少語マッチルール管理情報124に格納する。結果出力部165は、カラム特徴マッチ部110、希少語マッチ部120、及びテーブルマッチ部130で選出されたマッピング候補をネットワークI/F104を介してクライアント30に出力する。
カラム特徴マッチ部110は、カラム特徴マッチによりマッピング候補を選出する処理(カラム特徴マッチによるマッピング候補選出処理)を実行する。カラム特徴マッチ部110は、特徴抽出部111、特徴マッチ度算出部112、マッピング候補選出部113、重み管理情報116、カラム特徴管理情報400、及びカラム特徴マッチ度管理情報410を含む。
重み管理情報116は、カラム特徴マッチに用いるカラム特徴マッチ算出式の重みを格納する。カラム特徴管理情報400は、カラム特徴に関する情報を格納する。カラム特徴管理情報400の詳細については、後述する。カラム特徴マッチ度管理情報410は、カラム特徴マッチ度を格納する。カラム特徴マッチ度管理情報410の詳細については、後述する。
特徴抽出部111は、データモデル管理情報151からカラム特徴を抽出し、抽出したカラム特徴をカラム特徴管理情報400に格納する。特徴マッチ度算出部112は、カラム特徴管理情報400に基づいてカラム間の類似度(カラム特徴マッチ度)を算出し、カラム特徴マッチ度管理情報410に格納する。マッピング候補選出部113は、カラム特徴マッチ度管理情報410に基づいて、マッピング候補を選出する。例えば、マッピング候補選出部113は、カラム特徴マッチ度が閾値以上であることをマッピング候補であることの1つの条件としてマッピング候補を選出する。
希少語マッチ部120は、希少語マッチによってマッピング候補を選出する処理(希少語マッチによるマッピング候補選出処理)を実行する。希少語マッチ部120は、希少語抽出部121、希少語一致判定部122、マッピング候補選出部123、希少語マッチルール管理情報124、希少語管理情報500、及びユーザ設定値管理情報126を含む。
希少語マッチルール管理情報124は、同一とみなす希少語のペア(希少語ペア)を格納する。希少語管理情報500は、抽出された希少語を格納する。希少語管理情報500の詳細については後述する。ユーザ設定値管理情報126は、ユーザ設定値を記憶する。
希少語抽出部121は、データモデル管理情報151から希少語を抽出し、希少語管理情報500に格納する。希少語一致判定部122は、希少語管理情報500を用いて、対象となるカラムペアについて、希少語が一致するか否かを判定する。マッピング候補選出部123は、希少語一致判定部122により希少語が一致したカラムをマッピング候補として選出する。
テーブルマッチ部130は、テーブルマッチによってマッピング候補を選出する処理(テーブルマッチによるマッピング候補選出処理)を実行する。テーブルマッチ部130は、テーブルマッチ度算出部131、マッピング候補選出部132、及びテーブルマッチ度管理情報600を含む。
テーブルマッチ度管理情報600は、テーブルマッチ度を格納する。テーブルマッチ度管理情報600の詳細については後述する。
テーブルマッチ度算出部131は、確定マッピング管理情報141から確定カラムペアを受信し、受信した確定カラムペアに基づいてテーブルマッチ度を算出し、テーブルマッチ度管理情報600に格納する。ここで、確定カラムペアは、ユーザにより同義カラムであると判定されたカラムペアである。マッピング候補選出部132は、テーブルマッチ度管理情報600からテーブルマッチ度を取得し、取得したテーブルマッチ度に基づいて、マッピング候補を選出する。例えば、マッピング候補選出部132は、テーブルマッチ度が閾値以上であることをマッピング候補であることの1つの条件としてマッピング候補を選出する。
次に、カラム特徴マッチ部110のカラム特徴管理情報400について詳細に説明する。
図9は、実施例1に係るカラム特徴管理情報の一例を示す図である。
カラム特徴管理情報400は、データ統合サーバ10の特徴抽出部111がデータモデル管理情報151から抽出した情報であり、マッピング元フラグ401、カラム名402、テーブル名403、カラムの型404、及びデータ値の範囲405のカラムを有するエントリを複数含む。本実施例では、カラム特徴管理情報400には、工場データモデル及び共通データモデルのそれぞれのカラムに対して1つのエントリが存在する。なお、エントリの構成はこれに限られず、他のカラム、例えば、データ値の平均値、データ値の最頻値等のカラムを含んでもよい。
マッピング元フラグ401には、エントリに対応するカラムがマッピング元のカラムであるか否かを示すフラグが格納される。マッピング元フラグ401には、エントリに対応するカラムがマッピング元のカラムである場合には、Tが格納され、そうでない場合(マッピング先のカラムである場合)には、Fが格納される。本実施例においては、工場データモデルのカラムは、マッピング元カラムであり、共通データモデルのカラムは、マッピング先カラムである。
カラム名402には、エントリに対応するカラムの名前が格納される。テーブル名403には、カラム名402の名前のカラムが属するテーブルの名前が格納される。カラムの型404には、エントリに対応するカラムのデータの型が格納される。データ値の範囲405には、カラムに格納されるデータの値の範囲が格納される。
例えば、カラム特徴管理情報400の一番上のエントリは、工場データモデル210のShiftInfoのテーブルのカラム「ID」に対応し、マッピング元フラグ401に「T」が格納され、カラム名402に「ID」が格納され、テーブル名403に「ShiftInfo」が格納され、カラムの型404に「Integer」が格納され、データ値の範囲405に「1−100」が格納される。
次に、カラム特徴マッチ部110のカラム特徴マッチ度管理情報410について詳細に説明する。
図10は、実施例1に係るカラム特徴マッチ度管理情報の一例を示す図である。
カラム特徴マッチ度管理情報410は、データ統合サーバ10の特徴マッチ度算出部112が算出したカラム特徴マッチ度(カラム特徴類似度)を管理する情報であり、マッピング元カラムパス411、マッピング先カラムパス412、及びカラム特徴マッチ度413のカラムを有するエントリを複数含む。本実施例では、カラム特徴マッチ度管理情報410には、マッピング元カラムとマッピング先カラムとのペアに対して一つのエントリが存在する。
マッピング元カラムパス411には、マッピング元のカラムの識別子が格納される。本実施例では、マッピング元のカラムの識別子は、マッピング元カラムが属するテーブル名と、マッピング元カラムのカラム名とをドットで繋いで表現されている。マッピング先カラムパス412には、マッピング先のカラムの識別子が格納される。本実施例では、マッピング先のカラムの識別子は、マッピング先カラムが属するテーブル名と、マッピング先カラムのカラム名とをドットで繋いで表現されている。マッピング元のカラムの識別子と、マッピング先のカラムの識別子と、をテーブル名とカラム名とをドットで接続した文字列としているので、同データモデル内に同一の名前を持つカラムが存在した場合であっても、カラムを一意に特定することができる。
カラム特徴マッチ度413には、マッピング元カラムパス411が示すカラムと、マッピング先カラムパス412が示すカラムとのカラム特徴マッチ度が百分率で設定される。
例えば、カラム特徴マッチ度管理情報410の一番上のエントリは、マッピング元カラムパス411に設定されている「ShiftInfo.ID」のカラム、すなわち、工場データモデル210のShiftInfoテーブルに属する「ID」カラムと、マッピング先カラムパス412に設定されている「Schedule.ID」のカラム、すなわち、共通データモデル140のScheduleテーブルに属する「ID」カラムのカラム特徴マッチ度が80%であることを示している。
次に、希少語マッチ部120の希少語管理情報500について詳細に説明する。
図13は、実施例1に係る希少語管理情報の一例を示す図である。
希少語管理情報500は、希少語抽出部121がデータモデル管理情報151から抽出した情報であり、マッピング元フラグ501、テーブル名502、語503、及び希少語フラグ504のカラムを有するエントリを複数含む。希少語管理情報500には、例えば、データモデル管理情報151(すなわち、工場データモデル、共通データモデル)のテーブル名、カラム名から得られたそれぞれの語に対して一つのエントリが格納されている。
マッピング元フラグ501には、エントリに対応するカラムがマッピング元のカラムであるか否かを示すフラグが格納される。テーブル名502には、エントリに対応する語が格納されているテーブルの名称が格納される。語503には、希少語抽出部121がデータモデル管理情報151のテーブル名、カラム名に形態素解析を適用して得られた語のいずれかが格納される。希少語フラグ504には、語503に格納された語が希少語であるか否かを示すフラグが格納される。希少語フラグ504には、語503に格納された語が希少語である場合には、Tが格納され、そうでない場合には、Fが格納される。
次に、テーブルマッチ部130のテーブルマッチ度管理情報600について詳細に説明する。
図16は、実施例1に係るテーブルマッチ度管理情報の一例を示す図である。
テーブルマッチ度管理情報600は、テーブルマッチ度に関する情報であり、マッピング元テーブル601、マッピング先テーブル602、テーブル内カラム寄与率603、確定カラム寄与率604、希少語マッチ率605、及びテーブルマッチ度606のカラムを有するエントリを複数含む。本実施例では、テーブルマッチ度管理情報600には、工場データモデルのテーブルと、共通データモデルのテーブルとの組み合わせからなるそれぞれのテーブルペアに対して一つのエントリが存在する。
マッピング元テーブル601には、マッピング元となるテーブルのテーブル名が格納される。マッピング先テーブル602には、マッピング先となるテーブルのテーブル名が格納される。テーブル内カラム寄与率603には、マッピング元テーブルに関する、マッピング先テーブルへの寄与率が格納される。確定カラム寄与率604には、マッピング元テーブルの確定マッピングカラムに関する、マッピング先テーブルへの寄与率が格納される。希少語マッチ率605には、テーブルペア内の希少語総数における、テーブルペア内の共通する希少語数の割合が格納される。テーブルマッチ度606には、テーブルペアのテーブルマッチ度が格納されるである。テーブル内カラム寄与率603、確定カラム寄与率604、希少語マッチ度605、及びテーブルマッチ度606のそれぞれには、「0」〜「1.0」までの間の数が格納される。
次に、入出力部160が、クライアント30のユーザI/F303に表示させるマッピング候補表示画面について説明する。
図18は、実施例1に係るマッピング候補表示画面の一例を示す図である。
マッピング候補表示画面800は、終了ボタン801、マッピング元データモデル入力フォーム802、マッピング先データモデル入力フォーム803、マッピング候補選出ボタン804、マッピング元カラム一覧確認欄805、マッピング先カラム一覧確認欄806、希少語調整ボタン807、テーブルマッチによるマッピング候補選出ボタン808、希少語を用いたマッピング候補選出ON/OFFボタン809、希少語の部分一致ON/OFFボタン810、及びマッピング確定チェックボックス811を含む。
終了ボタン801は、マッピング候補選出処理(マッピング候補選出プログラム)を終了するための操作ボタンである。マッピング元データモデル入力フォーム802は、マッピング元となるデータモデルを指定するための入力フォームである。マッピング先データモデル入力フォーム803は、マッピング先となるデータモデルを指定するための入力フォームである。マッピング候補選出ボタン804は、マッピング元データモデルのカラムに関する同義カラムをマッピング先データモデルから選出するための処理を開始させるためのボタンである。
マッピング元カラム一覧確認欄805には、マッピング元データモデルのカラム一覧が表示される。マッピング先カラム一覧確認欄806には、マッピング元カラムに関するマッピング候補一覧が表示される。マッピング先カラム一覧確認欄806には、マッピング元カラム一覧確認欄805に表示されたカラムの中からいずれかのカラムがクリックされると、クリックされたカラムに対するマッピング候補の一覧が表示される。
希少語調整ボタン807は、ユーザが希少語を調整するための操作ボタンである。希少語調整ボタン807がクリックされると、希少語調整画面900(図19参照)が表示される。
テーブルマッチによるマッピング候補選出ボタン808は、テーブルマッチによるマッピング候補を選出する処理を実行させるためのボタンである。希少語を用いたマッピング候補選出ON/OFFボタン809は、マッピング候補選出処理において、希少語を用いたマッピング候補選出処理(図7のステップS30)を実行させるか否かを選択するためのボタンである。同義カラムの中には、希少語が一致しないものも存在する可能性があり、希少語を用いたマッピング候補選出ON/OFFボタン809をOFFにすることによって、このような場合において、同義カラムを検出することができる。
希少語の部分一致ON/OFFボタン810は、希少語の一致判断をする際(図11のステップS305)において、希少語の一致に、希少語の部分一致を含めるか否かを選択するためのボタンである。ここで、部分一致とは、二つの文字列を比較した際に文字列の一部分が一致することをいう。希少語の部分一致ON/OFFボタン810をONにすることにより、希少語の一致判断に部分一致を含めることができ、一部分の表記が異なる、同じ意味合いを持つ希少語同士を一致と判断することができる。例えば、「Prod」及び「Production」という二つの希少語に関して、「Prod」は「Production」の略語であり、「Prod」と「Production」との意味は一致するが、文字列は異なる。このような場合に、希少語の部分一致ON/OFFボタン810をONにすることにより、希少語が部分一致しているので、結果として希少語が一致すると判断されるようになり、このような関係にあるカラムペアがマッピング候補として適切に選出されることとなる。
マッピング確定チェックボックス811は、ユーザが同義カラムであると判定したカラムを確定する指示を行うためのチェックボックスであり、このチェックボックスが選択されると、チェックボックスに対応するカラムが、マッピング元の所定のカラムの同義カラムであることを示す確定マッピング情報(同義カラム確定情報)がデータ統合サーバ10に送信される。マッピング確定チェックボックス811は、マッピング先カラム一覧806に表示されるカラムのそれぞれに対して一つずつ表示される。
次に、入出力部160が、クライアント30のユーザI/F303に表示させる希少語調整画面について説明する。
図19は、実施例1に係る希少語調整画面の一例を示す図である。
希少語調整画面900は、希少語をクライアント30のユーザが調整するための画面であり、終了ボタン901、マッピング元希少語一覧表示欄902、マッピング先希少語一覧表示欄903、希少語マッピングリンク904、及び希少語マッチング確定ボタン905を含む。
終了ボタン901は、希少語の調整処理を終了するためのボタンである。マッピング元希少語一覧表示欄902には、マッピング元データモデルの希少語の一覧が表示される。マッピング先希少語一覧表示欄903には、マッピング先データモデルの希少語の一覧が表示される。希少語マッチングリンク904は、マッピング元の希少語と、マッピング先の希少語とについて、一致する希少語を結びつけるためのリンクである。希少語マッチングリンク904は、ユーザI/F303を介してのユーザの操作により、追加及び削除することができる。希少語マッチング確定ボタン905は、希少語マッチングリンク904により結びつけた希少語の組を一致する希少語として確定させるためのボタンである。希少語マッチング確定ボタン905が押下されると、その際に設定されている希少語マッチングリンク904に対応する希少語の組を含む希少語調整情報がデータ統合サーバ10に送信されることとなる。
希少語調整画面900によると、希少語の表記自体が異なっていても、ユーザが指定した希少語の組を一致するものとして、希少語マッチによるマッピング候補の選出の処理に使用することができるようになる。
次に、マッピング候補選出処理について詳細に説明する。
図7は、実施例1に係るマッピング候補選出処理のフローチャートである。
データ統合サーバ10のデータモデル受付部162は、クライアント30から同義カラムを選出する対象となるマッピング元とマッピング先のデータモデル(本例では、工場データモデル210及び共通データモデル140)の指定を受け付ける。データモデルの指定を受け付けると、データ統合サーバ10のデータモデル受付部162は、ネットワーク11を介して工場サーバ20に、工場データモデル210の送信を依頼する。これに対して、工場サーバ20は、ストレージ204から工場データモデル210を取得し、ネットワーク11を介してデータ統合サーバ10に送信する。データ統合サーバ10のデータモデル受付部162は、工場データモデル210を受信し、主記憶装置102にデータモデル管理情報151として格納する。また、データ統合サーバ10のデータモデル受付部162は、ストレージ103から共通データモデル140を取得し、主記憶装置102にデータモデル管理情報151として格納する(ステップS10)。
次いで、データ統合サーバ10のカラム特徴マッチ部110は、データモデル管理情報151を受信して、カラム特徴マッチによりマッピング候補を選出するカラム特徴マッチによるマッピング候補選出処理(図8参照)を行い、選出したマッピング候補を希少語マッチ部120に送信する(ステップS20)。
次いで、データ統合サーバ10の希少語マッチ部120は、ステップS20で選出されたマッピング候補を受信して、希少語マッチによりマッピング候補を選出する希少語マッチによるマッピング候補選出処理(図11参照)を行い、選出したマッピング候補を結果出力部165に送信する(ステップS30)。
結果出力部165は、希少語マッチ部120から受信したマッピング候補に基づいて、マッピング候補表示画面800のマッピング先カラム一覧確認欄806に、マッピング候補一覧を表示させる(ステップS61)。
次いで、マッピング受付部161は、クライアント30から同義カラムを確定した指示を示す確定マッピング情報を受け付けたか否かを判定し(ステップS62)、確定マッピング情報を受け付けた場合(ステップS62:YES)には、受信した確定マッピング情報を確定マッピング管理情報141に格納し(ステップS50)、処理をステップS62に移す。一方、確定マッピング情報を受け付けていない場合(ステップS62:NO)には、マッピング受付部161は、処理をステップS63に進める。
次いで、希少語調整受付部164は、クライアント30から希少語調整情報を受け付けたか否かを判定し(ステップS63)、希少語調整情報を受け付けた場合(ステップS63:YES)には、希少語調整受付部164は、希少語調整情報を希少語マッチルール管理情報124に格納し(ステップS60)、処理をステップS62に移す。一方、希少語調整情報を受信していない場合(ステップS63:NO)には、希少語調整受付部164は、処理をステップS64に移す。
ステップS64では、入出力部160がクライアント30からテーブルマッチによるマッピング候補選出の要求を受けたか否かを判定し(ステップS64)、テーブルマッチによるマッピング候補選出の要求を受け付けた場合(ステップS64:YES)には、テーブルマッチ部130は、確定マッピング情報141を取得し、テーブルマッチによりマッピング候補を選出するテーブルマッチによるマッピング候補選出処理(図14参照)を実行し(ステップS40)、処理をステップS61に移す。一方、テーブルマッチによるマッピング候補選出の要求を受け付けていない場合(ステップS64:NO)には、テーブルマッチ部130は、処理をステップS65に移す。
ステップS65では、入出力部160がクライアント30からマッピング候補の再選出の要求を受け付けたか否かを判定し(ステップS65)、マッピング候補の再選出の要求を受け付けた場合(ステップS65:YES)には、処理をステップS20に移す。一方、マッピング候補の再選出の要求を受け付けていない場合(ステップS65:NO)には、入出力部160は、処理をステップS66に移す。
ステップS66では、入出力部160は、クライアント30からプログラム終了を要求されたか否かを判定し、プログラム終了を要求されている場合(ステップS66:YES)には、データ統合サーバ10はマッピング候補選出処理を終了させる一方、プログラム終了を要求されていない場合(ステップS66:NO)には、処理をステップS61に移す。
次に、カラム特徴マッチによるマッピング候補選出処理(図7のステップS20)について説明する。
図8は、実施例1に係るカラム特徴マッチによるマッピング候補選出処理のフローチャートである。
データ統合サーバ10の特徴抽出部111は、データモデル情報151を受信し、マッピング元とマッピング先のデータモデルのすべてのカラム特徴を抽出する(ステップS200)。カラム特徴とは、例えば、カラム名、テーブル名、カラムの型、データ値の範囲を含む。テーブル名は、カラムが属するテーブルの名前であり、データ値の範囲は、カラムに格納されるデータの値の範囲である。なお、カラム特徴は、カラム名、テーブル名、カラムの型、及びデータ値の範囲に限られず、例えば、カラム名とテーブル名とで構成してもよいし、また、カラム名、テーブル名、カラムの型、及びデータ値の範囲に、データの平均値やデータの最頻値などの他の特徴を加えるようにしてもよい。
次いで、特徴マッチ度算出部112は、マッピング元データモデル(本例では、工場データモデル)のカラムと、マッピング先データモデル(共通データモデル)のカラムとの組(カラムペア)の中で、カラム特徴マッチ度を算出していないカラムペアが存在するか否かを判定する(ステップS201)。
この結果、カラム特徴マッチ度を算出していないカラムペアが存在する場合(ステップS201:YES)には、特徴マッチ度算出部112は、カラム特徴マッチ度を算出していないカラムペアを選出し(ステップS202)、選出したカラムペアのカラム特徴マッチ度を算出し、算出した特徴マッチ度をカラム特徴マッチ度管理情報410に格納する(ステップS203)。
特徴マッチ度算出部112は、例えば、カラムXとカラムYとのカラム特徴マッチ度(MatchFeature(X,Y))を以下の式(1)により算出する。
MatchFeature(X,Y)=
*MatchCName(x,y
+w*MatchTName(x,y
+w*MatchCType(x,y
+w*MatchDataRange(x,y)・・・(1)
ここで、Xは、カラムXのカラム特徴であり、x、x、x、xの集合である。x、x、x、及びxは、それぞれ、カラムXのカラム名、テーブル名、カラムの型、及びデータ値範囲である。また、YはカラムYのカラム特徴であり、y、y、y、yの集合である。y、y、y、及びyはそれぞれ、カラムYのカラム名、テーブル名、カラムの型、及びデータ値範囲である。
MatchCName(x,y)は、カラム名マッチ度算出式であり、例えば、xとyとが一致すれば1となり、そうでなければ0となる。
MatchTName(x,y)は、テーブル名マッチ度算出式であり、例えば、xとyとが一致すれば1となり、そうでなければ0となる。
MatchCType(x,y)は、カラム型マッチ度算出式であり、例えば、x3とy3とが一致すれば1となり、そうでなければ0となる。
MatchDataRange(x,y)は、データ値範囲マッチ度算出式であり、例えば、x4とy4とが一致すれば1となり、そうでなければ0となる。
、w、w、及びwは、それぞれカラム名マッチ度算出式、テーブル名マッチ度算出式、カラム型マッチ度算出式、及びデータ値範囲マッチ度算出式における重みであり、それぞれの値は、0から1までの範囲の値となっている。なお、これらの重みは、重み管理情報116に格納されている。
ここで、カラム特徴マッチ度を算出する具体例として、図4の一列目のカラムであるShiftInfoテーブルのIDカラムと、図5の一列目のカラムであるCalendarテーブルのIDカラムとのカラム特徴マッチ度の算出方法について説明する。なお、式(1)の重みw、w、w、及びwがそれぞれ、0.6、0.2、0.1、及び0.1であるとする。
ShiftInfoテーブルのIDカラムのカラム特徴は、カラム名が「ID」、テーブル名が「ShiftInfo」、カラムの型が「Integer」、データ値の範囲が「1−100」となっている。一方、CalendarテーブルのIDカラムのカラム特徴は、カラム名が「ID」、テーブル名が「Calendar」、カラムの型が「Integer」、及びデータ値の範囲が「1−100」となっている。
この場合には、式(1)において、MatchCName(“ID”,“ID”)=1、MatchTName(“Shift”,“Calendar”)=0、MatchCType(“Integer”,“Integer”)=1、及びMatchDataRange(“1−100”、“1−100”)=1であるために、カラム特徴マッチ度は、0.6*1+0.2*0+0.1*1+0.1*1=0.8(80%)となる。
なお、カラム特徴マッチ度を算出する式は、式(1)に限定されない。例えば、テーブル名マッチ度算出式において、xとyが部分的に一致する場合に1となり、そうでなければ0となるようにしてもよく、他のいかなる算出方法を用いてよい。
次いで、マッピング候補検出部113は、算出したカラム特徴マッチ度が閾値以上であるか否かを判定し(ステップS204)、算出したカラム特徴マッチ度が閾値以上であれば(ステップS204:YES)、処理の対象としたカラムペアをマッピング候補として選出し、選出されたマッピング候補を希少語マッチ部120に渡し(ステップS205)、処理をステップS201に移す。一方、算出したカラム特徴マッチ度が閾値以上でなければ(ステップS204:NO)、マッピング候補検出部113は、処理をステップS201に移す。
そして、ステップS201で、カラム特徴マッチ度を算出していないカラムペアが存在しない場合(ステップS201:NO)には、すべてのカラムペアを対象にカラム特徴マッチ度を算出し、マッピング候補か否かを判定する処理を行ったことを意味するのでカラム特徴マッチによるマッピング候補選出処理を終了する。
カラム特徴マッチによるマッピング候補選出処理によると、カラム特徴マッチ度が高いマッチング候補を適切に選出することができる。
次に、希少語マッチによるマッピング候補選出処理(図7のステップS30)について説明する。
図11は、実施例1に係る希少語マッチによるマッピング候補選出処理のフローチャートである。
希少語抽出部121は、データモデル管理情報151を受信し、希少語を抽出する希少語抽出処理(図12参照)を実行する(ステップS300)。
次いで、希少語一致判定部122は、カラム特徴マッチ部110で選出されたマッピング候補をマッピング候補選出部113から受信し(ステップS301)、受信したマッピング候補に基づいて、マッピング候補件数が閾値以上のマッピング元カラム、すなわち、閾値以上のマッピング先カラムが候補として選出されているマッピング元カラムを抽出する(ステップS302)。
次いで、希少語一致判定部122は、抽出したマッピング元カラムにおいて、希少語によるマッピング候補選出の判定処理の対象としていないカラムが存在するか否かを判定する(ステップS303)。
この結果、希少語によるマッピング候補選出の判定処理の対象としていないカラムが存在する場合(ステップS303:YES)には、希少語一致判定部122は、希少語によるマッピング候補選出の判定処理の対象としていないカラムを一つ選出し(ステップS304)、選出したカラムと、そのカラムについてのカラム特徴マッチによるマッピング候補のカラム(マッピング先カラム)とに対して、それぞれのカラム周囲の希少語を比較し、カラム周囲の希少語が一致するか否かを判定する(ステップS305)。この判定においては、カラムと、そのカラムについてのカラム特徴マッチによるマッピング候補のカラム(マッピング先カラム)とのそれぞれのカラム周囲の希少語が一致することが、希少語を考慮した際に、カラム特徴マッチによるマッピング候補のカラムが、マッピング元カラムの同義カラム候補であることを判定するための判定条件(希少語判定条件)となっている。
カラム周囲の希少語が一致するカラムペアが存在する場合(ステップS305:YES)には、マッピング候補選出部123は、そのカラムペアのマッピング先カラムを希少語によるマッピング候補として選出して(ステップ306)、処理をステップS303に移す。一方、カラム周囲の希少語が一致するカラムペアが存在しない場合(ステップS305:NO)には、希少語一致判定部122は、処理をステップS303に移す。
そして、ステップS303で、希少語によるマッピング候補選出の判断を行う処理の対象としていないカラムが存在しない場合(ステップS303:NO)には、ステップS302で抽出した全てのマッピング元カラムを対象に希少語によるマッピング候補選出の判定を行ったことを意味するので希少語マッチによるマッピング候補選出処理を終了する。
ここで、例えば、図3に示す工場データモデル210と、共通データモデル140とに対して、カラム特徴マッチによるマッピング候補選出処理が行われて、ShiftInfoテーブルのIDカラムのマッピング候補として、ScheduleテーブルのIDカラム、ShiftテーブルのIDカラム、CalendarテーブルのIDカラム、及びShceduleItemテーブルのIDカラムが選出されている場合を例にあげて、希少語マッチによるマッピング候補選出処理を説明する。
ステップS304では、希少語一致判定部122は、ShiftInfoテーブルのIDカラムを選出し、ShiftInfoテーブルのIDカラムに関するマッピング候補であるScheduleテーブルのIDカラム、ShiftテーブルのIDカラム、CalendarテーブルのIDカラム、及びShceduleItemテーブルのIDカラムを受信する。
次いで、ステップS305において、希少語一致判定部122は、ShiftInfoテーブルのIDカラムに関する希少語である「Shift」及び「End」を、ScheduleテーブルのIDカラムに関する希少語である「Schedule」及び「Creation」、ShiftテーブルのIDカラムに関する希少語である「Shift」及び「Duration」、CalendarテーブルのIDカラムに関する希少語である「Calendar」及び「Effective」、及びScheduleItemテーブルのIDカラムに関する希少語である「Item」、「Associate」、及び「Process」と比較した結果、ShiftInfoテーブルのIDカラムに関する希少語「Shift」とShiftテーブルのIDカラムに関する希少語「Shift」が一致するため、一致する希少語が存在すると判定することとなる。
この結果、ステップS306において、マッピング候補選出部123は、ShiftInfoテーブルのIDカラムの同義カラム(マッピング候補)としてShiftテーブルのIDカラムを選出する。
以上説明したように、希少語を用いてマッピング候補を選出することにより、カラム特徴マッチによるマッピング候補選出処理では、識別できなかった頻出カラムを含むマッピング候補の中から適切なマッピング候補を選出することができる。ここで、頻出カラムは、同一データモデル内に頻出するカラム名であり、例えば、図3に示す工場データモデル210と、共通データモデル140とにおいては、「ID」カラムや「StartTime」カラムなどである。
次に、希少語抽出処理(図11のステップS300)について説明する。
図12は、実施例1に係る希少語抽出処理のフローチャートである。
希少語抽出部121は、データモデル管理情報151を受信し、受信したデータモデル管理情報151に格納されているデータモデルのテーブル構成に係る名称(テーブル名、カラム名)に形態素解析を適用し、語(テーブル内の語という)を抽出し、抽出結果を希少語管理情報500に登録する(ステップS310)。形態素解析を利用した語の抽出方法の一例としては、小文字の前にある大文字を区切り目として、その大文字を語頭とした語に分割することにより語を抽出する方法が考えられる。例えば、この方法によると、「ShiftInfo」から「Shift」、及び「Info」の2語が抽出される。
次いで、希少語抽出部121は、ステップS310で抽出した語の中で希少語判定をしていない語が存在するか否かを判定する(ステップS311)。この結果、希少語判定をしていない語が存在する場合(ステップS311:YES)には、希少語抽出部121は、希少誤判定していない語を一つ選択し(ステップS312)、同一のデータモデルにおける、選択した語が属するテーブルとは異なるテーブル(他テーブル)に存在するか否かを判定する(ステップ313)。
この結果、選択した語が他テーブルに存在しない場合(ステップS313:YES)には、希少語抽出部121は、選択した語を希少語として選出して、希少語管理情報500の対応する語のエントリにおける希少語フラグ504に希少語であることを示す「T」を設定し(ステップS314)、処理をステップS311に移す。一方、選択した語が他テーブルに存在する場合(ステップS313:NO)には、選択した語は、希少語ではないので、希少語抽出部121は、処理をステップS311に移す。なお、上記例では、希少語として選出する基準として、同一のデータモデルの他テーブルに存在しないものを希少語としているが、本発明はこれに限られず、例えば、同一データモデルの他のテーブルに存在する数が1以上の所定数以下の語を希少語としてもよく、要は、同一データモデルの他のテーブルに存在する数が所定数(0以上の数)以下のものとすればよい。所定数については、対象とするデータモデル等に応じて任意に設定してもよい。
そして、ステップS311で、抽出した語の中で希少語判定をしていない語が存在しない場合(ステップS311:NO)には、ステップS310で抽出した全ての語を対象として希少語判定を行ったことを意味するので、希少語抽出部121は、希少語抽出処理を終了する。
ここで、図3に示す工場データモデル210に対して、希少語抽出処理を行った例について説明する。工場データモデル210は、ShiftInfoテーブル、MstProdテーブル、及びToolテーブルを含んでいる。ステップS310では、希少語抽出部121が工場データモデル210を形態素解析すると、ShiftInfoテーブルの語として「Shift」、「Info」、「ID」、「Start」、「Time」、及び「End」が抽出され、MstProdテーブルの語として、「Mst」、「Prod」、「ID」、「Attr」、「Type」、及び「Val」が抽出され、Toolテーブルの語として、「Tool」、「ID」、「Name」、「Lot」、「Attr」、及び「Type」が抽出される。
この場合、ShiftInfoテーブルの語「Shift」は、工場データモデル210の他のテーブルであるMstProdテーブル及びToolテーブルには存在しないため、ステップS314では、希少語抽出部121は、「Shift」をShiftInfoテーブルの希少語として抽出する。同様にして、希少語抽出部121は「Prod」(MstProdテーブルの希少語)や「Tool」(Toolテーブルの希少語)を希少語として抽出する。
次に、テーブルマッチによるマッピング候補選出処理(図7のステップS40)について説明する。
図14は、実施例1に係るテーブルマッチによるマッピング候補選出処理のフローチャートである。
データ統合サーバ10のテーブルマッチ度算出部131は、確定マッピング管理情報141及びデータモデル管理情報151を受信する(ステップS400)。
次いで、テーブルマッチ度算出部131は、データモデル管理情報151に含まれる工場データモデル210及び共通データモデル140のそれぞれ一つずつのテーブルを組み合わせた全テーブルペアに関して、テーブルマッチ度を算出していないテーブルペアが存在するか否かを判定する(ステップS401)。この結果、テーブルマッチ度を算出していないテーブルペアが存在する場合(ステップS401:YES)には、テーブルマッチ度算出部131は、テーブルマッチ度を算出していないテーブルペアを選出し(ステップS402)、選出したテーブルペアのテーブルマッチ度を算出するテーブルマッチ度算出処理(図15参照)を実行する(ステップS403)。
次いで、マッピング候補選出部132は、算出されたテーブルマッチ度が閾値以上であるか否かを判定し(ステップS404)、テーブルマッチ度が閾値以上である場合(ステップS404:YES)には、このテーブルペアに関して、マッピングが確定していないカラム同士をマッピング候補として選出し(ステップS405)、処理をステップS401に移す。一方、テーブルマッチ度が閾値以上でない、すなわち、閾値未満である場合(ステップS404:NO)には、マッピング候補選出部132は、処理をステップS401に移す。
そして、ステップS401で、テーブルマッチ度を算出していないテーブルペアが存在しない場合(ステップS401:NO)には、全てのテーブルペアを対象にテーブルマッチ度の算出を行ったことを意味するので、テーブルマッチ度算出部131は、テーブルマッチによるマッピング候補選出処理を終了する。
このテーブルマッチによるマッピング候補選出処理によると、カラム特徴が類似していない同義カラムの候補を適切に選出することができる。具体的には、例えば、図3に示す工場データモデル210のShiftInfoテーブルのEndTimeカラムの同義カラムが共通データモデル140のShiftテーブルのUnitカラムとValueカラムである場合、EndTimeカラムとUnitカラム、または、EndTimeカラムとValueカラムとのカラム特徴が似ていないために、これらのカラムペアに関するカラム特徴マッチ度が低く、ShiftテーブルのUnitカラムと、Valueカラムとを、ShiftInfoテーブルのEndTimeカラムの同義カラムの候補として選出することができない。しかしながら、ShiftInfoテーブルとShiftテーブルとのテーブルマッチ度が高い場合には、ShiftテーブルのUnitカラムとValueカラムをShiftInfoテーブルのEndTimeカラムの同義カラム候補として選出することができる。
次に、テーブルマッチ度算出処理(図14のステップS403)について説明する。
図15は、実施例1に係るテーブルマッチ度算出処理のフローチャートである。
テーブルマッチ度算出部131は、ステップS402で取得したテーブルペアに関して、テーブル内カラム寄与率を算出し、テーブルマッチ度管理情報600にテーブルペアに対応するエントリを作成し、算出したテーブル内カラム寄与率を、作成したエントリのテーブル内カラム寄与率603に格納する(ステップS410)。ここで、テーブル内カラム寄与率は、例えば、マッピング元テーブル内のカラム数における、取得したテーブルペア内の同義カラムが確定したカラムペアの数(確定カラムペア数)の割合である。このテーブル内カラム寄与率は、高い値になるほどテーブルペアのテーブル同士が類似している可能性が高いことを意味する。
次いで、テーブルマッチ度算出部131は、確定カラム寄与率を算出し、算出した確定カラム寄与率をテーブルマッチ度管理情報600のテーブルペアに対応するエントリの確定カラム寄与率604に格納する(ステップS411)。ここで、確定カラム寄与率は、マッピング元テーブル内の確定マッピングカラム数における、取得したテーブルペア内の確定カラムペア数の割合である。また、確定マッピングカラム数は、マッピング先(マッピングする同義カラム)が確定しているカラムの数である。この確定カラム寄与率は、高い値になるほどテーブルペアのテーブル同士が類似している可能性が高いことを意味する。
次いで、テーブルマッチ度算出部131は、希少語マッチ率を算出し、算出した希少語マッチ率をテーブルマッチ度管理情報600のテーブルペアに対応するエントリの希少語マッチ率605に格納する(ステップS412)。ここで、希少語マッチ率は、テーブルペア内希少語総数における、テーブルペア内共通希少語数の割合である。ここで、テーブルペア内希少語総数は、マッピング先テーブルの希少語とマッピング元テーブルの希少語との重複を除いた希少語の総和であり、テーブルペア内共通希少語数は、マッピング先テーブルの希少語とマッピング元テーブルの希少語とで共通する希少語の数である。この希少語マッチ率は、高い値になるほどテーブルペアのテーブル同士が類似している可能性が高いことを意味する。
次いで、テーブルマッチ度算出部131は、テーブルマッチ度を算出し、算出したテーブルマッチ度をテーブルマッチ度管理情報600のテーブルペアに対応するエントリのテーブルマッチ度606に格納する(ステップS413)。具体的には、テーブルマッチ度算出部131は、ステップS410で算出したテーブル内カラム寄与率、ステップS411で算出した確定カラム寄与率、及びステップS412で算出した希少語マッチ率の積を算出することにより、テーブルマッチ度を算出する(ステップS413)。このテーブルマッチ度は、高い値になるほどテーブルペアのテーブル同士が類似している可能性が高いことを意味する。すなわち、テーブルペアのカラム同士が同義カラムとなる可能性が高いことを意味する。
次に、テーブルマッチ度の算出の具体例について説明する。
図17は、実施例1に係るテーブルマッチ度の算出の具体例を説明する図である。
例えば、テーブルマッチ度算出部131は、ステップS402で、工場データテーブル2101としてShiftInfoテーブルを、共通データテーブル1401としてShiftテーブルを取得し、確定マッピングペア1000として、ShiftInfoテーブルのIDカラムと、ShiftテーブルのIDカラムとのペア、及びShiftInfoテーブルのStartTimeカラムと、ShiftテーブルのIDカラムと、のペアを取得する。ここで、確定マッピングペア1000は、ユーザによって同義カラムと判断(確定)された工場データカラム2102と共通データカラム1402とのペアである。
ShiftInfoテーブルは、マッピング元テーブルであり、IDカラム、StartTimeカラム、及びEndTimeカラムを含む。ShiftInfoテーブルの希少語は、ShiftとEndとである。Shiftテーブルは、マッピング先テーブルであり、IDカラム、StartTimeカラム、Unitカラム、Valueカラム、Descriptionカラムを含む。Shiftテーブルの希少語は、ShiftとUnitとである。
ステップS410では、ShiftInfoテーブルのカラム数が3件、及びShiftInfoテーブルとShiftテーブルとの確定マッピングペア1000の数が、ShiftInfoテーブルのIDカラムとShiftテーブルのIDカラムとのペア、及びShiftInfoテーブルのStartTimeカラムとShiftテーブルのIDカラムとのペアとの2件であるために、テーブル内カラム寄与率は2/3と算出される。
ステップS411では、ShiftInfoテーブルの確定マッピングペア1000の数が2件、及びShiftInfoテーブルとShiftテーブルの確定カラムペアの数が2件であるために、確定カラム寄与率は1と算出される。
ステップS412では、テーブルペア内希少語総数は3件(「Shift」、「End」、及び「Unit」)であり、テーブル内共通希少語数は1件(「Shift」)であるので、希少語マッチ率は、1/3と算出される。
この結果、ステップS413では、算出されたテーブル内カラム寄与率、確定カラム寄与率、及び希少語マッチ率から、テーブルマッチ率が2/9と算出される。
以上説明したように、本実施例に係るデータ統合サーバ10によると、カラム特徴マッチ部110がカラム特徴に基づいて同義カラムの候補を選出し、希少語マッチ部120がカラム特徴マッチ部110で選出された同義カラムの候補のうち同義カラムの候補が多いカラムを対象に、希少語マッチにより同義カラムの候補を絞り込み、入出力受付部160が絞り込んだ同義カラムの候補をクライアント30に送信し、同義カラムの候補をクライアント30に表示させる。これにより、カラム特徴に基づいて選出された複数の同義カラムの候補を適切に絞り込んでユーザに提示することができるこれにより、ユーザは、限られた同義カラムの候補から適切な同義カラムを容易に選択することができる。
また、本実施例に係るデータ統合サーバ10によると、テーブルマッチ部130が希少語に基づいて、テーブルペアについてのテーブルマッチ度を算出し、テーブルマッチ度の高いテーブルペアにおけるカラムの中から同義カラムの候補を選出してクライアント30に表示させる。これにより、カラム特徴が類似していない同義カラムの候補を適切に選出して、ユーザに提示することができる。
次に、実施例2に係る計算機システムについて説明する。なお、実施例2については、主に、実施例1との差異について説明する。実施例2に係る計算機システムでは、実施例1に係る計算機システムに対して、データモデルの翻訳の機能と、カラム特徴マッチ度の計算式における重みを自動調整する機能とをさらに備えるようにしている。
図20は、実施例2に係るデータ統合サーバの一部の機能構成図である。図20は、主記憶装置102に格納されているプログラムをCPU101が実行することにより構成される機能部と、主記憶装置102に格納されている各種情報とを示している。なお、図20では、図6に示す実施例1に係る機能要素と同様な部分については、同一の符号を付している。
主記憶装置102に格納されているプログラムがCPU101に実行されると、実施例1と同様な構成要素に加えて、重み調整部114と、翻訳部171とが構成される。
重み調整部114は、確定マッピング管理情報141を受信し、式(1)に示すカラム特徴マッチ度算出式の重みを自動的に調整する処理を実行する。
翻訳部171は、データモデル受付部162から工場データモデル210及び共通データモデル140を受信し、工場データモデル210内で使用されている言語と、共通データモデル140内で使用されている言語とが異なる場合、工場データモデル210内で使用されている言語と、共通データモデル140内で使用されている言語とが同一となるように、工場データモデル210内で使用されている言語、または共通データモデル140内で使用されている言語を翻訳する。例えば、工場データモデル140が日本語で表記され、共通データモデル210が英語で表記されている場合には、翻訳部171は、工場データモデル140内の日本語を英語に翻訳する。これにより、同一の意味を表している異なる言語で表記されている語、例えば、「製品」と「Product」とのような語を同一の表記にすることができ、言語の違いのみに起因する表記の違いによるカラム特徴マッチにおける不一致や、希少語マッチにおける不一致を防ぐことができる。
次に、実施例2に係るマッピング候補選出処理について詳細に説明する。
図21は、実施例2に係るマッピング候補選出処理のフローチャートである。なお、図7に示す実施例1に係るマッピング候補選出処理と同様なステップには、同一の符号を付し、重複する説明を省略する。
実施例2に係るマッピング候補選出処理においては、実施例1に係るマッピング候補選出処理に対して、データモデルの翻訳処理(ステップS11及びステップS12)及び算出式重み調整処理S51をさらに含む。
ステップS11では、データ統合サーバ10の翻訳部171は、マッピング元データモデル内で使用されている言語と、マッピング先データモデル内で使用されている言語とが異なるか否かを判定し(ステップS11)、それらの言語が異なる場合(ステップS11:YES)には、マッピング元データモデル内で使用されている言語、またはマッピング先データモデル内で使用されている言語を翻訳し、翻訳後のデータモデルをデータモデル管理情報151として主記憶装置102に格納する。なお、以降の処理ステップにおいては、翻訳後のデータモデルを使用して、処理が行われることとなる。
ステップS62において、確定マッピング情報を受け付けた場合(ステップS62:YES)には、受信した確定マッピング情報を確定マッピング管理情報141に格納し、重み調整部134が、式(1)に示すカラム特徴マッチ度算出式の重みを自動的に調整する算出式重み調整処理(図22参照)を実行する(ステップS51)。
次に、算出式重み調整処理(図21のステップS51)について説明する。
図22は、実施例2に係る算出式重み調整処理のフローチャートである。
データ統合サーバ10のマッピング受付部161は、受け付けた確定マッピング情報を確定マッピング管理情報141に格納し(ステップS500)、確定マッピング管理情報141を重み調整部114に送信する(ステップS501)。
重み調整部114は、受信した確定マッピング管理情報141に含まれるカラムペアに関して、カラム名マッチ度、カラム型マッチ度、テーブル名マッチ度、及びデータ値範囲マッチ度を算出する(ステップS502)。ここで、カラム名マッチ度、カラム型マッチ度、テーブル名マッチ度、及びデータ値範囲マッチ度は、式(1)における、カラム名マッチ度算出式、カラム型マッチ度算出式、テーブル名マッチ度算出式、及びデータ値範囲マッチ度算出式によって算出される値である。
次いで、重み調整部114は、ステップS502で算出したカラム名マッチ度、カラム型マッチ度、テーブル名マッチ度、及びデータ値範囲マッチ度を尤度関数に代入し、最尤推定法により尤度関数を最大化する(ステップS503)。次いで、重み調整部114は、尤度関数が最大のときの重みを重み管理情報116に格納する(ステップS504)。
使用する尤度関数は、例えば、以下の式(2)及び式(3)で表現される。
L(W|X,Y)=Πi=1 (f(W|X,Y))・・・(2)
f(W|X,Y)=
*MatchCName(xi1,yi1
+w*MatchTName(xi2,yi2
+w*MatchCType(xi3,yi3
+w*MatchDataRange(xi4,yi4)・・・(3)
ここで、L(W|X,Y)は、尤度関数であり、f(W|X,Y)は、確定マッピング管理情報141に含まれるi番目のカラムペアのカラム特徴マッチ度である。Nは、確定マッピング管理情報141に含まれるカラムペアの数である。Xは、マッピング元のカラム特徴であり、X、X、…、Xの集合である。Xは、i番目のカラムに関するカラム特徴であり、xi1、xi2、xi3、xi4の集合である。xi1、xi2、xi3、及びxi4はそれぞれ、カラム名、テーブル名、カラムの型、及びデータ値範囲である。Yは、マッピング先のカラム特徴であり、Y、Y、…、Yの集合である。Yは、i番目のカラムに関するカラム特徴であり、yi1、yi2、yi3、yi4の集合である。yi1、yi2、yi3、及びyi4はそれぞれ、カラム名、テーブル名、カラムの型、及びデータ値範囲である。
MatchCName(xi1,yi1)は、カラム名マッチ度算出式であり、例えば、xi1とyi1が一致すれば1となり、そうでなければ0となる。
MatchTName(xi2,yi2)は、テーブル名マッチ度算出式であり、例えば、xi2とyi2が一致すれば1となり、そうでなければ0となる。
MatchCType(xi3,yi3)は、カラム型マッチ度算出式であり、例えば、xi3とyi3が一致すれば1となり、そうでなければ0となる。
MatchDataRange(xi4,yi4)は、データ値範囲マッチ度算出式であり、例えば、xi4とyi4が一致すれば1となり、そうでなければ0となる。
Wは、重みであり、w、w、w、wの集合である。w、w、w、wはそれぞれカラム名マッチ度算出式、テーブル名マッチ度算出式、カラム型マッチ度算出式、及びデータ値範囲マッチ度算出式に対する重みであり、それぞれの値の範囲は0から1である。なお、重みw、w、w、wの総和は1である。
また、最尤推定法は、重みを決定する手法であり、例えば、グリッドサーチを用いることができる。グリッドサーチとは、一定の間隔刻みで重みの値を尤度関数に入力し、尤度関数の出力値が最も大きくなる時の重みの値を決定する方法である。重み調整部114は、尤度関数の出力値が最も大きくなる時の重みの値をカラム特徴マッチ式の重みとする。
例えば、カラムマッチ式がf(X,Y)=w*MatchCName(x,y)+w*MatchTName(x,y)であり、確定マッピング管理情報141が2種類のカラムペアA、カラムペアBを格納し、確定マッピング管理情報141に格納されているカラムペアAのMatchCName(x,y)、MatchTName(x,y)の値がそれぞれ0.1、0.8、カラムペアBのMatchCName(x,y)、MatchTName(x,y)の値がそれぞれ0.6、0.2である場合、尤度関数は、L(W|X、Y)=(w*0.1+w*0.8)*(w*0.6+w*0.2)である。また、尤度関数を用いてグリッドサーチで重みを決定する場合、尤度関数のw、wに0.1間隔で値を入力し、尤度関数の出力値が最も大きくなる時の値(w,w)=(0.3,0.7)が検出される。この値がカラム特徴マッチ式の重みとなる。
以上説明したように、実施例2に係るデータ統合サーバ10では、ユーザの指示に基づく確定マッピング情報に基づいて、重み調整部114が、カラム特徴マッチ度算出式の重みを調整するようにしたので、以降におけるカラム特徴マッチ度の算出精度を向上することができ、適切な同義カラムの候補を選出して、ユーザに提供することができるようになる。
次に、実施例3に係る計算機システムについて説明する。なお、実施例3については、主に、実施例1との差異について説明する。実施例3に係る計算機システムでは、実施例1に係る計算機システムに対して、過去にユーザによって一致すると判定された希少語ペアを利用して希少語の一致を判定する機能をさらに備えるようにしている。
次に、実施例3に係る希少語マッチによるマッピング候補選出処理(図7のステップS30)について詳細に説明する。
図23は、実施例3に係る希少語マッチによるマッピング候補選出処理のフローチャートである。なお、図11に示す実施例1に係る希少語マッチによるマッピング候補選出処理と同様なステップには、同一の符号を付し、重複する説明を省略する。
実施例3に係る希少語マッチによるマッピング候補選出処理においては、実施例1に係る希少語マッチによるマッピング候補選出処理に対して、希少語マッチルール管理情報124の取得処理(ステップS320)、及びユーザの指示により作成された希少語マッチルールの中に一致する希少語が存在するか否かの判定処理(ステップS321)をさらに含む。
ステップS320では、希少語一致判定部122は、希少語マッチルール管理情報124を受信する(ステップS320)。
ステップS305では、カラム周囲の希少語が一致するカラムペアが存在しない場合(ステップS305:NO)には、希少語一致判定部122は、ステップS304で選出されたカラムペアに関する希少語のペアが希少語マッチルール管理情報124に含まれる希少語ペアと一致するか否かを判定する(ステップS321)。
この結果、希少語マッチルール管理情報124に含まれる希少語ペアと一致する場合(ステップS321:YES)には、マッピング候補選出部123がステップS304で選出されたカラムペアをマッピング候補として選出する(ステップ306)。一方、希少語マッチルール管理情報124に含まれる希少語ペアと一致しない場合(ステップS321:NO)には、希少語一致判定部122は、処理をステップS303に進める。
ここで、希少語マッチルール管理情報124に、「Prod」と「Production」とのペアが希少語ペアとして登録されている場合において、希少語マッチによるマッピング候補選出処理のステップS304において、カラムペアとして、図3に示すMstProdテーブルのProdIDカラムと、PartテーブルのIDカラムとが取得された場合を例にとって説明する。
ステップS305では、希少語一致判定部122は、一致する希少語が存在するかを判定する。ProdテーブルのProdIDカラムの希少語は「Prod」であり、PartテーブルのIDカラムの希少語は「Part」、「Production」、及び「BillOfMaterials」の3つであるが、ProdテーブルのProdIDカラムの希少語は、PartテーブルのIDカラムのいずれの希少語とも一致しないために、一致する希少語が存在しないと判定されて、処理は、ステップS321へ移る。
ステップS321では、希少語一致判定部122により、希少語マッチルール管理情報124に含まれる「Prod」と「Production」との希少語ペアと、ProdテーブルのProdIDカラムの希少語「Prod」と、PartテーブルのIDカラムの希少語「Production」のペアとが一致していると判定されて、ステップS306において、ProdテーブルのProdIDカラムと、PartテーブルのIDカラムとがマッピング候補として選出されることとなる。
以上説明したように、実施例3に係るデータ統合サーバ10では、ユーザの指示によって希少語ペアとして希少語マッチルール管理情報124に格納された希少語ペアについては、同一の希少語として判断されることとなるので、ユーザの意図に沿ったマッピング候補を適切に選出することができる。
なお、本発明は、上述の実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、カラム特徴によりマッピング候補として選択されたカラムのカラムペアに対して、希少語マッチによりマッピング候補か否かを判断するようにしていたが、本発明はこれに限られず、マッピング元データモデルのカラムと、マッピング先データモデルのカラムとの任意のカラムペアに対して、希少語マッチによるマッチングを行ってマッピング候補であるか否かを判断するようにしてもよい。すなわち、希少語マッチによる判定条件だけを満たす場合にマッピング候補であるとして選出するようにしてもよい。
また、上記した各機能部について、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、機能部を構成するプログラムは、プログラムコードを記録した記録媒体により提供されてもよい。この場合には、記録媒体のプログラムをコンピュータのプロセッサが読み出して実行することにより、機能部を実現することができる。プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM,ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いてよい。また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装してもよい。
また、実施例の機能部を実現するためのプログラムコードを、ネットワークを介して配信することによって、コンピュータのハードディスクやメモリ等の記憶部又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが記憶部や記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
10…データ統合サーバ、20…工場サーバ、30…クライアント、101…CPU、102…主記憶装置、103…ストレージ、110…カラム特徴マッチ部、114…重み調整部、116…重み管理情報、120…希少語マッチ部、121…希少語抽出部、122…希少語一致判定部、124…希少語マッチルール管理情報、130…テーブルマッチ部、140…共通データモデル、141…確定マッピング管理情報、151…データモデル管理情報、171…翻訳部、210…工場データモデル

Claims (15)

  1. 第1データモデルのカラムと同義であるカラムの候補である同義カラム候補を第2データモデルから検出する同義カラム候補選出装置であって、
    前記同義カラム候補選出装置のプロセッサは、
    前記第1データモデルにおける各テーブルの構成に係る語であって、前記第1データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第1希少語を検出するとともに、前記第2データモデルにおける各テーブルの構成に係る語であって、前記第2データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第2希少語を検出する希少語検出処理を実行し、
    前記第2データモデルの第2カラムが、前記第1データモデルの第1カラムの同義カラム候補であることを判定するための所定の判定条件を満たすか否かを判定する判定処理を実行し、
    前記判定条件を満たす場合に、前記第2カラムを前記第1カラムの同義カラム候補として選出する選出処理を実行し、
    前記判定条件は、前記第1カラムの周囲における前記第1希少語のいずれかと、前記第2カラムの周囲における前記第2希少語のいずれかと、が一致することである希少語判定条件を含む
    同義カラム候補選出装置。
  2. 前記プロセッサは、
    前記第1カラムと、前記第1カラムの同義カラム候補として選定された前記第2カラムと、を表示出力する
    請求項1に記載の同義カラム候補選出装置。
  3. 前記プロセッサは、
    前記第1カラムと前記第2カラムとのカラムの特徴の類似度であるカラム特徴類似度を特定し、
    前記判定条件は、前記カラム特徴類似度が所定の閾値以上であることである条件を含む
    請求項1又は請求項2に記載の同義カラム候補選出装置。
  4. 前記プロセッサは、
    前記カラム特徴類似度が所定の閾値以上である第1カラムと第2カラムとを対象に、前記判定処理を実行する
    請求項3に記載の同義カラム候補選出装置。
  5. 前記プロセッサは、
    同一の第1カラムとの前記カラム特徴類似度が所定の閾値以上であると特定された所定数以上の第2カラムと、前記第1カラムとを対象に、前記判定処理を実行する
    請求項4に記載の同義カラム候補選出装置。
  6. 前記判定条件は、前記第1カラムの周囲における前記第1希少語のいずれかと、前記第2カラムの周囲における前記第2希少語のいずれかと、が一致することには、前記第1希少語のいずれかと、前記第2希少語のいずれかとが部分一致する場合も含む
    請求項1から請求項5のいずれか一項に記載の同義カラム候補選出装置。
  7. 前記所定数は、0である
    請求項1から請求項6のいずれか一項に記載の同義カラム選出装置。
  8. 前記第1カラムの周囲とは、前記第1カラムを含む第1テーブル、又は前記第1テーブルと前記第1テーブルの上位又は下位の少なくとも一方のテーブルを含む範囲であり、前記第2カラムの周囲とは、前記第2カラムを含む第2テーブル、又は前記第2テーブルと前記第2テーブルの上位又は下位の少なくとも一方のテーブルを含む範囲である
    請求項1から請求項7のいずれか一項に記載の同義カラム選出装置。
  9. 前記プロセッサは、
    ユーザからの、判定条件として、希少語判定条件を含めるか否かの指定を受け付け、
    前記希少語判定条件を含めないとの指定を受け付けた場合には、前記判定処理において、前記希少語判定条件以外の条件を満たすか否かを判定する
    請求項1から請求項8のいずれか一項に記載の同義カラム候補選出装置。
  10. 前記プロセッサは、
    ユーザからの同一の希少語とみなす語の組の指定を受け付け、
    前記受け付けた語の組を記憶装置に記憶させ、
    前記第1カラムの周囲における前記第1希少語のいずれかと、前記第2カラムの周囲における前記第2希少語のいずれかと、が一致することには、前記第1希少語のいずれかと、前記第2希少語のいずれかとの組が、前記語の組と一致する場合も含む
    請求項1から請求項9のいずれか一項に記載の同義カラム候補選出装置。
  11. 前記プロセッサは、
    ユーザからの、第1カラムと、前記第1カラムの同義カラムとする第2カラムとを指定する同義カラム確定情報を取得し、
    前記同義カラム確定情報に基づいて、前記第2テーブルに前記第1テーブルの第1カラムの同義カラム候補となる第2カラムが存在する可能性を示すテーブル類似度を特定し、
    前記テーブル類似度が所定値以上である前記第1テーブル及び前記第2テーブルについて、同義カラムが確定していない第1カラムに対する同義カラム候補として、同義カラムとして指定されていない第2カラムを選出する
    請求項に記載の同義カラム候補選出装置。
  12. 前記プロセッサは、
    前記第1データモデル又は前記第2データモデルの一方のテーブル構成に係る語を、他方のテーブル構成に係る語の言語に翻訳し、
    前記翻訳後のテーブル構成に係る語を利用して、前記希少語検出処理、前記判定処理を実行する
    請求項1から請求項11のいずれか一項に記載の同義カラム候補選出装置。
  13. 前記プロセッサは、
    前記第1カラムと、前記第2カラムとのカラム特徴類似度を所定の計算式に基づいて特定し、
    ユーザからの、第1カラムと、前記第1カラムの同義カラムとする第2カラムとを指定する同義カラム確定情報を取得し、
    前記同義カラム確定情報に含まれる前記第1カラムと、前記第2カラムとの前記カラム特徴類似度が高く特定されるように、前記計算式を調整する
    請求項1から請求項12のいずれか一項に記載の同義カラム候補選出装置。
  14. 第1データモデルのカラムと同義であるカラムの候補である同義カラム候補を第2データモデルから検出する同義カラム候補選出装置による同義カラム候補選出方法であって、
    前記同義カラム候補選出装置が、
    前記第1データモデルにおける各テーブルの構成に係る語であって、前記第1データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第1希少語を検出するとともに、前記第2データモデルにおける各テーブルの構成に係る語であって、前記第2データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第2希少語を検出する希少語検出処理を実行し、
    前記第2データモデルの第2カラムが、前記第1データモデルの第1カラムの同義カラム候補であることを判定するための所定の判定条件を満たすか否かを判定する判定処理を実行し、
    前記判定条件を満たす場合に、前記第2カラムを前記第1カラムの同義カラム候補として選出する選出処理を実行し、
    前記判定条件は、前記第1カラムの周囲における前記第1希少語のいずれかと、前記第2カラムの周囲における前記第2希少語のいずれかと、が一致することである希少語判定条件を含む
    同義カラム候補選出方法。
  15. 第1データモデルのカラムと同義であるカラムの候補である同義カラム候補を第2データモデルから検出する同義カラム候補選出装置を構成するコンピュータに実行させるための同義カラム候補選出プログラムであって、
    前記コンピュータに、
    前記第1データモデルにおける各テーブルの構成に係る語であって、前記第1データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第1希少語を検出するとともに、前記第2データモデルにおける各テーブルの構成に係る語であって、前記第2データモデルにおける自テーブル以外のテーブルの構成に係る語として存在する個数が所定数以下である1以上の第2希少語を検出する希少語検出処理を実行させ、
    前記第2データモデルの第2カラムが、前記第1データモデルの第1カラムの同義カラム候補であることを判定するための所定の判定条件を満たすか否かを判定する判定処理を実行させ、
    前記判定条件を満たす場合に、前記第2カラムを前記第1カラムの同義カラム候補として選出する選出処理を実行させ、
    前記判定条件は、前記第1カラムの周囲における前記第1希少語のいずれかと、前記第2カラムの周囲における前記第2希少語のいずれかと、が一致することである希少語判定条件を含む
    同義カラム候補選出プログラム。















JP2016251592A 2016-12-26 2016-12-26 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム Expired - Fee Related JP6764779B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016251592A JP6764779B2 (ja) 2016-12-26 2016-12-26 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム
US15/792,883 US10936634B2 (en) 2016-12-26 2017-10-25 Synonymous column candidate selecting apparatus, synonymous column candidate selecting method, and synonymous column candidate selecting program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016251592A JP6764779B2 (ja) 2016-12-26 2016-12-26 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム

Publications (2)

Publication Number Publication Date
JP2018106400A JP2018106400A (ja) 2018-07-05
JP6764779B2 true JP6764779B2 (ja) 2020-10-07

Family

ID=62629778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016251592A Expired - Fee Related JP6764779B2 (ja) 2016-12-26 2016-12-26 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム

Country Status (2)

Country Link
US (1) US10936634B2 (ja)
JP (1) JP6764779B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
CN110555203B (zh) * 2018-05-31 2023-05-30 北京百度网讯科技有限公司 文本复述方法、装置、服务器及存储介质
US11698890B2 (en) * 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US20210150481A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for mechanisms for sharing responsibility in collaborative work systems
EP4062313A1 (en) 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
IL297858A (en) 2020-05-01 2023-01-01 Monday Com Ltd Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11392556B1 (en) 2021-01-14 2022-07-19 Monday.com Ltd. Digital processing systems and methods for draft and time slider for presentations in collaborative work systems
JP2022186543A (ja) 2021-06-04 2022-12-15 株式会社日立製作所 データ管理システム及びデータ管理方法
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826568B2 (en) * 2001-12-20 2004-11-30 Microsoft Corporation Methods and system for model matching
US20070185868A1 (en) * 2006-02-08 2007-08-09 Roth Mary A Method and apparatus for semantic search of schema repositories
JP5506527B2 (ja) 2010-04-26 2014-05-28 三菱電機株式会社 同義カラム検出装置及び同義カラム検出方法

Also Published As

Publication number Publication date
US20180181650A1 (en) 2018-06-28
US10936634B2 (en) 2021-03-02
JP2018106400A (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
JP6764779B2 (ja) 同義カラム候補選出装置、同義カラム候補選出方法、及び同義カラム候補選出プログラム
JP5825122B2 (ja) 生成プログラム、生成方法、および生成システム
US9658848B2 (en) Stored procedure development and deployment
WO2017175378A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2015512095A (ja) 画像データベースにおける画像管理のための方法、装置、および、コンピュータで読取り可能な記録媒体
JP5966696B2 (ja) 制御プログラム、情報処理装置およびシステム
KR102243794B1 (ko) 데이터 통합 장치 및 데이터 통합 방법
JP6446819B2 (ja) 文書差分表示プログラム及び情報処理装置
JP2009129067A (ja) ファイル検索方法、ファイル検索装置、検索システム、及び、ファイル検索プログラム
JP2018081403A (ja) インシデント管理システム、インシデント管理方法およびコンピュータプログラム
CN113961592A (zh) 基于主从数据库的数据查询方法、装置、设备及存储介质
JP6007320B2 (ja) 計算機、関連性算出方法及び記憶媒体
US8836466B2 (en) Monitoring system, device, monitoring method, and monitoring program
JP6546704B2 (ja) データ処理方法、分散型データ処理システム及び記憶媒体
JP5358981B2 (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御用プログラム
JP2021068365A5 (ja)
US20190026795A1 (en) Evaluation device and evaluation method
JP2021068365A (ja) 計算機システム及びデータの管理方法
TWI574169B (zh) 解決方案搜尋系統之操作方法及解決方案搜尋系統
JP5600826B1 (ja) 非構造化データ処理システム、非構造化データ処理方法およびプログラム
JP6193491B2 (ja) 計算機システム
JP6139399B2 (ja) 分散クエリ処理装置、クエリ処理方法及びクエリ処理プログラム
US11195121B2 (en) Machine learning method and machine learning device
JP6585327B1 (ja) エピソード管理装置、エピソード管理プログラム及びエピソード管理方法
JP2018106398A (ja) テスト支援プログラムおよびテスト支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200214

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: 20200825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6764779

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees