JP7276355B2 - 情報提供システム、方法およびプログラム - Google Patents

情報提供システム、方法およびプログラム Download PDF

Info

Publication number
JP7276355B2
JP7276355B2 JP2020567298A JP2020567298A JP7276355B2 JP 7276355 B2 JP7276355 B2 JP 7276355B2 JP 2020567298 A JP2020567298 A JP 2020567298A JP 2020567298 A JP2020567298 A JP 2020567298A JP 7276355 B2 JP7276355 B2 JP 7276355B2
Authority
JP
Japan
Prior art keywords
pair
tables
columns
joined
column
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.)
Active
Application number
JP2020567298A
Other languages
English (en)
Other versions
JPWO2020152804A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020152804A1 publication Critical patent/JPWO2020152804A1/ja
Application granted granted Critical
Publication of JP7276355B2 publication Critical patent/JP7276355B2/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、テーブルを結合する作業に関する情報を作業者(ユーザ)に提供する情報提供システム、情報提供方法および情報提供プログラムに関する。
非特許文献1には、オントロジを用いて、テーブルの列の意味を推定する技術が記載されている。
テーブルの列の意味を推定する技術は、特許文献1にも記載されている。
また、特許文献2には、テーブル形式のデータの結合処理を行うシステムが記載されている。
国際公開第2018/025706号 再表2015/025386号公報
Petros Venetis,外7名,"Recovering Semantics of Tables on the Web",[2016年7月20日検索]、インターネット<URL: http://www.vldb.org/pvldb/vol4/p528-venetis.pdf>
データ分析では、データの分析に必要なデータ整形に多くの時間が充てられている。具体的には、与えられた複数のテーブルを結合する作業に多くの時間が充てられている。
与えられた複数のテーブルを結合する作業には、多くの専門的知識が必要であり、そのため、その作業には多くのエキスパートが必要になる。
そこで、本発明は、専門的知識が少ない作業者(ユーザ)であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる情報提供システム、情報提供方法および情報提供プログラムを提供することを目的とする。
本発明による情報提供システムは、複数のテーブルが入力される入力部と、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力部とを備え、特定部が、異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定し、第1の条件は、所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、第2の条件は、種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件であることを特徴とする。
本発明による情報提供方法は、コンピュータが、複数のテーブルの入力を受け付け、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力し、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定するときに、異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定し、第1の条件は、所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、第2の条件は、種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件であることを特徴とする。
本発明による情報提供プログラムは、複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、コンピュータに、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力処理を実行させ、特定処理で、異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定させ、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がSimilarity-Join であると特定させ、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、列のペアを、結合可能な関係にある列のペアとして特定させ、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がTemporal-Joinであると特定させ、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定させ、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がSpatial-Joinであると特定させ、第1の条件は、所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、第2の条件は、種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件であることを特徴とする。
本発明によれば、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
本発明の第1の実施形態の情報提供システムの例を示すブロック図である。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 第1の実施形態の情報提供システムの処理経過の例を示すフローチャートである。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 入力されるテーブルの例を示す模式図である。 ステップS24で表示制御部6がディスプレイ装置5に表示する情報の例を示す模式図である。 図6から図9までに示す各テーブルを、図10が示す情報に従って結合した結果を示す模式図である。 第1の実施形態の変形例のうちの1つを示すブロック図である。 本発明の第2の実施形態の情報提供システムの例を示すブロック図である。 第2の実施形態において、ステップS24で表示されるGUIを含む画面の例を示す模式図である。 本発明の各実施形態の情報提供システムに係るコンピュータの構成例を示す概略ブロック図である。 本発明の情報提供システムの概要の例を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態の情報提供システムの例を示すブロック図である。本発明の情報提供システム1は、入力部2と、特定部3と、記憶部4と、ディスプレイ装置5と、表示制御部6とを備える。
入力部2は、複数のテーブルが入力される入力デバイスである。例えば、入力部2は、光磁気ディスク等のデータ記録媒体から、データ記録媒体に記録されている複数のテーブルを読み込むデータ読み込み装置であってもよい。
本実施形態では、入力部2に入力される個々のテーブルの個々の列には、予め、列の種別(列の意味)が割り当てられているものとする。なお、列の種別は、列名とは別に定められる。また、テーブルに列名が含まれていなくてもよい。列の種別は、例えば、作業者(ユーザ)または外部の情報処理装置が、各テーブルを情報提供システム1に入力する前に定めておけばよい。
列の種別として、少なくとも、「Entity-Identifier 」、「時間」および「場所」という種別があるものとする。本実施形態では、列の種別が、「Entity-Identifier 」、「時間」、「場所」および「None」の4種類である場合を例にして説明する。そして、個々のテーブルの個々の列には、予め、「Entity-Identifier 」、「時間」、「場所」および「None」のうちのいずれかの種別が定められているものとする。ただし、上記の4種類以外の種別が存在していてもよい。
種別「Entity-Identifier 」は、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列を表わす。以下、種別「Entity-Identifier 」を、「Entity-ID 」と記す。
種別「時間」は、個々の属性値が、日付、時刻、または日時である列を表わす。以下、種別「時間」を、「Time」と記す。
種別「場所」は、個々の属性値が、場所または位置である列を表わす。以下、種別「場所」を、「Space 」と記す。
種別「None」は、「Entity-ID 」、「Time」および「Space 」のいずれにも該当しない列を表わす。
特定部3は、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、さらに、結合されるテーブルの結合方法を特定する。
特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせは、1つとは限らず、複数の組み合わせが特定部3によって特定されてもよい。
なお、結合可能な関係にある列のペアに基づいて、ペアをなすテーブルを結合する結合方法として、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等がある。これらの結合方法の例については、後述する。
記憶部4は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせを記憶する記憶装置である。
表示制御部6は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を、ディスプレイ装置5に表示する。
特定部3および表示制御部6は、例えば、情報提供プログラムに従って動作するコンピュータのCPU(Central Processing Unit )によって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3および表示制御部6として動作すればよい。
次に、本実施形態の処理経過について説明する。図2、図3、図4および図5は、本実施形態の情報提供システム1の処理経過の例を示すフローチャートである。以下では、説明を簡単にするために、1つのテーブル内に種別が「Time」である列は最大で1つ存在し、同様に、1つのテーブル内に種別が「Space 」である列は最大で1つ存在する場合を例にして説明する。また、1つのテーブル内における種別が「Entity-ID 」である列の数は、特に限定されない場合を例にして説明する。
まず、入力部2は、複数のテーブルの入力を受け付ける(ステップS1)。入力される個々のテーブルの個々の列には、予め、列の種別が割り当てられている。本例では、ステップS1で、図6、図7、図8および図9に示す各テーブルが入力される場合を例にして説明する。
図6に示すテーブル21は、種別が「Entity-ID 」である列を2つ含み、種別が「Time」である列を1つ含み、種別が「None」である列を1つ含んでいる。
図7に示すテーブル22は、種別が「Entity-ID 」である列を1つ含み、種別が「None」である列を1つ含んでいる。
図8に示すテーブル23は、種別が「Entity-ID 」である列を1つ含み、種別が「Space 」である列を1つ含み、種別が「None」である列を1つ含んでいる。
図9に示すテーブル24は、種別が「Space 」である列を1つ含み、種別が「Time」である列を1つ含み、種別が「None」である列を2つ含んでいる。
ステップS1の次に、特定部3は、ステップS1で入力された複数のテーブルのうち、未選択のテーブルを1つ選択する(ステップS2)。選択されているテーブルを、以下、選択テーブルと記す。ここでは、ステップS2で、特定部3が、テーブル21(図6参照)を選択した場合を例にして説明する。すなわち、選択テーブルが、テーブル21である場合を例にして説明する。
ステップS2の次に、特定部3は、選択テーブル内に、種別が「Entity-ID 」である列が存在するか否かを判定する(ステップS3)。選択テーブル内に、種別が「Entity-ID 」である列が存在しない場合(ステップS3のNo)、後述のステップS11(図3参照)に移行する。また、選択テーブル内に、種別が「Entity-ID 」である列が存在する場合、ステップS4に移行する。本例では、選択テーブル(図6に示すテーブル21)は、種別が「Entity-ID 」である列を含んでいる。従って、ステップS4に移行する。
ステップS4において、特定部3は、選択テーブルから、種別が「Entity-ID 」である列を1つ選択する。このとき、特定部3は、ステップS4で既に選択済みの列は、選択対象から除外する。ここでは、特定部3は、図6に示すテーブル21から、列名が「店名」である列を選択したものとして説明する。
次に、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Entity-ID 」である列を特定する(ステップS5)。選択テーブル以外の各テーブルの各列の中に、種別が「Entity-ID 」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS5において、テーブル22(図7参照)内の列名が「商品名」である列と、テーブル23(図8参照)内の列名が「店名」である列とを特定する。
次に、特定部3は、ステップS5で特定した列の中から、未選択の列を1つ選択する(ステップS6)。ここでは、テーブル23内の列名が「店名」である列を選択した場合を例にして説明する。
次に、特定部3は、ステップS4で選択した列と、ステップS6で選択した列とが、結合可能な関係にあるか否かを判定する(ステップS7)。
ステップS7において、特定部3は、例えば、ステップS4で選択した列に含まれる個々の属性値と、ステップS6で選択した列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出する。そして、特定部3は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数以上であるならば、2つの列が結合可能な関係にあると判定すればよい。また、特定部3は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数未満であるならば、2つの列が結合可能な関係にないと判定すればよい。上記の閾値や所定の個数は、予め設定しておけばよい。
なお、ステップS7において、種別が「Entity-ID 」である2つ列が結合可能な関係にあるか否かを判定する方法(換言すれば、種別が「Entity-ID 」である2つ列が結合可能な関係にあると判定するための条件)は、上記の例に限定されない。特定部3は、ステップS7において、他の方法で、2つ列が結合可能な関係にあるか否かを判定してもよい。
2つの列が結合可能な関係にあると判定した場合(ステップS7のYes)、ステップS8に移行する。また、2つの列が結合可能な関係にないと判定した場合(ステップS7のNo)、ステップS9(図3参照)に移行する。
本例では、ステップS4で選択した列(テーブル21(図6参照)内の列名が「店名」である列)と、ステップS6で選択した列(テーブル23(図8参照)内の列名が「店名」である列)とは、いずれも店名を属性値とする。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数以上であり、特定部3が、その2つの列が結合可能な関係にあると判定した場合を例にする(ステップS7のYes)。
この場合、ステップS8に移行し、特定部3は、ステップS8で、選択テーブル(本例では、図6に示すテーブル21)と、ステップS6で選択した列を含むテーブル(本例では、図8に示すテーブル23)とを、「Similarity-Join 」で結合すると定める(ステップS8)。
ステップS7,S8の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS8において、結合されるテーブルのペア(本例では、テーブル21,23のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「店名」である列と、テーブル23内の列名が「店名」である列とのペア)と、結合方法(本例では、「Similarity-Join 」)との組み合わせを、記憶部4に記憶させる。
ステップS8の後、ステップS9(図3参照)に移行する。ステップS9で、特定部3は、ステップS5で特定した列が全て選択済みであるか否かを判定する。ステップS5で特定した列が全てステップS6で選択されているならば(ステップS9のYes)、ステップS10に移行する。また、ステップS5で特定した列のうち、まだステップS6で選択されていない列が存在するならば(ステップS9のNo)、特定部3は、ステップS6以降の処理を繰り返す。
本例では、まだ、テーブル22(図7参照)内の列名が「商品名」である列がステップS6で選択されていない。従って、ステップS6に移行し、特定部3は、ステップS6で、テーブル22内の列名が「商品名」である列を選択する。
そして、特定部3は、ステップS4で選択した列と、ステップS6で選択した列とが、結合可能な関係にあるか否かを判定する(ステップS7)。ステップS4で選択した列(テーブル21(図6参照)内の列名が「店名」である列)は、店名を属性値とする列である。一方、ステップS6で選択された列(テーブル22内の列名が「商品名」である列)は、商品名を属性値とする列である。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数未満であり、特定部3が、その2つの列が結合可能な関係にないと判定した場合を例にする(ステップS7のNo)。
この場合、ステップS8は実行されずに、ステップS9に移行する。ここでは、ステップS5で特定された2つの列はいずれもステップS6で選択済みである。従って、特定部3は、ステップS5で特定した列が全て選択済みであると判定し(ステップS9のYes)、ステップS10に移行する。
ステップS10において、特定部3は、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであるか否かを判定する。選択テーブル内の種別が「Entity-ID 」である列が全てステップS4で選択されているならば(ステップS10のYes)、ステップS11に移行する。また、選択テーブル内の種別が「Entity-ID 」である列のうち、まだステップS4で選択されていない列が存在するならば(ステップS10のNo)、特定部3は、ステップS4以降の処理を繰り返す。
本例では、まだ、選択テーブルに該当するテーブル21において、列名が「商品名」である列がステップS4で選択されていない。従って、ステップS4に移行し、特定部3は、ステップS4で、テーブル21内の列名が「商品名」である列を選択する。ステップS4~S10の処理については、既に説明したので、ここでは詳細な説明を省略する。なお、ここでは、ステップS6で、テーブル22(図7参照)内の列名が「商品名」である列が選択された場合、特定部3は、ステップS7,S8を順次、実行する。そして、特定部3は、ステップS8において、結合されるテーブルのペア(本例では、テーブル21,22のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「商品名」である列と、テーブル22内の列名が「商品名」である列とのペア)と、結合方法(本例では、「Similarity-Join 」)との組み合わせを、記憶部4に記憶させる。
再度、ステップS10に移行した時点では、テーブル21内の種別が「Entity-ID 」である列が全て選択済みになっている(ステップS10のYes)。従って、ステップS11に移行する。
ステップS11において、特定部3は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。選択テーブル内に、種別が「Time」である列が存在しない場合(ステップS11のNo)、後述のステップS17(図4参照)に移行する。また、選択テーブル内に、種別が「Time」である列が存在する場合(ステップS11のYes)、ステップS12に移行する。本例では、選択テーブル(図6に示すテーブル21)は、種別が「Time」である列を含んでいる。従って、ステップS12に移行する。
ステップS12において、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Time」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Time」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS12において、テーブル24(図9参照)内の列名が「日時」である列を特定する。すなわち、本例では、ステップS12で1つの列が特定される。
次に、特定部3は、ステップS12で特定した列の中から、未選択の列を1つ選択する(ステップS13)。本例では、特定部3は、テーブル24内の列名が「日時」である列を選択する。
次に、特定部3は、選択テーブル内に存在する種別が「Time」である列と、ステップS13で選択した列とが結合可能な関係にあるか否かを判定する(ステップS14)。
ステップS14では、特定部3は、種別が「Time」である2つ列が結合可能な関係にあるか否かを判定する。この判定の例を以下に示す。特定部3は、例えば、種別が「Time」である2つ列がいずれも時刻のみ(日付は含まない。)を属性値とする場合、または、種別が「Time」である2つ列がいずれも日付(時刻まで含んでいてもよい。)を属性値とする場合に、2つ列が結合可能な関係にあると判定すればよい(ステップS14のYes)。そして、その他の場合には、特定部3は、2つ列が結合可能な関係にないと判定すればよい(ステップS14のNo)。例えば、種別が「Time」である2つ列の一方が、時刻のみ(日付は含まない。)を属性値とし、他方が日付のみを属性値とする場合には、特定部3は、2つ列が結合可能な関係にないと判定する。
本例では、選択テーブル内に存在する種別が「Time」である列(テーブル21内の列名が「日時」である列)、および、ステップS13で選択された列(テーブル24内の列名が「日時」である列)は、いずれも、日付を属性値としている(図6、図9参照)。従って、本例では、ステップS14において、特定部3は、種別が「Time」である2つ列が結合可能な関係にあると判定する(ステップS14のYes)。
なお、ステップS14において、種別が「Time」である2つ列が結合可能な関係にあるか否かを判定する方法(換言すれば、種別が「Time」である2つ列が結合可能な関係にあると判定するための条件)は、上記の例に限定されない。特定部3は、ステップS14において、他の方法で、2つ列が結合可能な関係にあるか否かを判定してもよい。
ステップS14で2つ列が結合可能な関係にないと判定された場合(ステップS14のNo)、後述のステップS16(図4参照)に移行する。ステップS14で2つ列が結合可能な関係にあると判定された場合(ステップS14のYes)、ステップS15(図4参照)に移行する。本例では、ステップS15に移行する。
ステップS15において、特定部3は、選択テーブル(本例では、テーブル21)と、ステップS13で選択した列を含むテーブル(本例では、図9に示すテーブル24)とを、「Temporal-Join 」で結合すると定める。
ステップS14,S15の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS15において、結合されるテーブルのペア(本例では、テーブル21,24のペア)と、結合可能な関係にある列のペア(本例では、テーブル21内の列名が「日時」である列と、テーブル24内の列名が「日時」である列とのペア)と、結合方法(本例では、「Temporal-Join 」)との組み合わせを、記憶部4に記憶させる。
ステップS15の後、ステップS16に移行する。ステップS16で、特定部3は、ステップS12で特定した列が全て選択済みであるか否かを判定する。ステップS12で特定した列が全てステップS13で選択されているならば(ステップS16のYes)、ステップS17に移行する。また、ステップS12で特定した列のうち、まだステップS13で選択されていない列が存在するならば(ステップS16のNo)、特定部3は、ステップS13以降の処理を繰り返す。
本例では、ステップS12で1つの列のみ(テーブル24内の列名が「日時」である列)が特定され、その列がステップS13で選択されている(ステップS16のYes)。従って、ステップS17に移行する。
なお、ここでは、説明を簡単にするために、1つのテーブル内に種別が「Time」である列は最大で1つ存在する場合を例にしている。選択テーブル内に種別が「Time」である列が2以上存在する場合には、特定部3は、その列毎に、ステップS12~S16の処理を実行すればよい。
ステップS17において、特定部3は、選択テーブル内に、種別が「Space 」である列が存在するか否かを判定する。選択テーブル内に、種別が「Space 」である列が存在しない場合(ステップS17のNo)、ステップS23(図5参照)に移行する。また、選択テーブル内に、種別が「Space 」である列が存在する場合(ステップS17のYes)、ステップS18(図4参照)に移行する。
本例では、選択テーブルに該当するテーブル21内に、種別が「Space 」である列は存在しないので(ステップS17のNo)、ステップS23に移行する。ステップS18に移行する場合の処理については、後述する。
ステップS23において、特定部3は、ステップS1で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルが全てステップS2で選択されているならば(ステップS23のYes)、ステップS24に移行する。また、入力されたテーブルのうち、まだステップS2で選択されていないテーブルが存在するならば(ステップS23のNo)、特定部3は、ステップS2以降の処理を繰り返す。
本例では、特定部3は、まだテーブル22,23,24を選択していない。従って、特定部3は、ステップS2以降の処理を繰り返す。以下、ステップS23からステップS2に移行し、特定部3が、ステップS2において、テーブル23(図8参照)を選択する場合を例にして説明する。このステップS2以降では、テーブル23が選択テーブルに該当する。
ステップS2の後、ステップS3で、特定部3は、選択テーブル(テーブル23)内に、種別が「Entity-ID 」である列が存在すると判定する(ステップS3のYes)。従って、特定部3は、ステップS4以降の処理を実行する。ステップS4~S10のループ処理については既に説明したので、ここでは説明を省略する。
ステップS10(図3参照)で、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであると判定された場合(ステップS10のYes)、ステップS11に移行する。ステップS11で、特定部3は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。本例では、選択テーブル(テーブル23)内に、種別が「Time」である列は存在しないので(ステップS11のNo)、ステップS17(図4参照)に移行する。
ステップS17で、特定部3は、選択テーブル(テーブル23)内に、種別が「Space 」である列が存在するか否かを判定する。本例では、テーブル23内に、種別が「Space 」である列が存在する(ステップS17のYes)。従って、ステップS18に移行する。
ステップS18において、特定部3は、選択テーブル以外の各テーブルの各列の中から、種別が「Space 」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Space 」である列が複数存在するならば、特定部3は、その複数の列を全て特定する。本例では、特定部3は、ステップS18において、テーブル24(図9参照)内の列名が「都道府県」である列を特定する。すなわち、本例では、ステップS18で1つの列が特定される。
次に、特定部3は、ステップS18で特定した列の中から、未選択の列を1つ選択する(ステップS19)。本例では、特定部3は、テーブル24内の列名が「都道府県」である列を選択する。
次に、特定部3は、選択テーブル内に存在する種別が「Space 」である列(本例では、テーブル23内の列名が「住所」である列)と、ステップS19で選択した列(本例では、テーブル24内の列名が「都道府県」である列)とが、結合可能な関係にあると定める(ステップS20)。
次に、特定部3は、選択テーブル(本例では、テーブル23)と、ステップS19で選択した列を含むテーブル(本例では、テーブル24)とを、「Spatial-Join」で結合すると定める(ステップS21)。
ステップS20,S21の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部3は、ステップS21において、結合されるテーブルのペア(本例では、テーブル23,24のペア)と、結合可能な関係にある列のペア(本例では、テーブル23内の列名が「住所」である列と、テーブル24内の列名が「都道府県」である列とのペア)と、結合方法(本例では、「Spatial-Join」)との組み合わせを、記憶部4に記憶させる。
ステップS21の後、ステップS22に移行する。ステップS22では、特定部3は、ステップS18で特定した列が全て選択済みであるか否かを判定する。ステップS18で特定した列が全てステップS19で選択されているならば(ステップS22のYes)、ステップS23(図5参照)に移行する。ステップS18で特定した列のうち、まだステップS19で選択されていない列が存在するならば(ステップS22のNo)、特定部3は、ステップS19以降の処理を繰り返す。
本例では、ステップS18で1つの列のみ(テーブル24内の列名が「都道府県」である列)が特定され、その列がステップS19で選択されている(ステップS22のYes)。従って、ステップS23に移行する。
なお、ここでは、説明を簡単にするために、1つのテーブル内に種別が「Space 」である列は最大で1つ存在する場合を例にしている。選択テーブル内に種別が「Space 」である列が2以上存在する場合には、特定部3は、その列毎に、ステップS18~S22の処理を実行すればよい。
既に説明したように、ステップS23において、特定部3は、ステップS1で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルのうち、まだステップS2で選択されていないテーブルが存在するならば(ステップS23のNo)、特定部3は、ステップS2以降の処理を繰り返す。本例では、まだ、テーブル22,24が選択されていない。従って、特定部3は、ステップS2でテーブル22を選択し、ステップS3以降の処理を繰り返す。再度、ステップS2に移行した場合、特定部3は、テーブル24を選択し、ステップS3以降の処理を繰り返す。
ステップS23において、特定部3が、ステップS1で入力されたテーブルが全て選択済みであると判定すると(ステップS23のYes)、ステップS24に移行する。
ステップS24では、表示制御部6が、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを記憶部4から読み込む。そして、表示制御部6は、記憶部4から読み込んだ各組み合わせに基づいて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、それぞれ、ディスプレイ装置5に表示する。
図10は、ステップS24で表示制御部6がディスプレイ装置5に表示する情報の例を示す模式図である。表示制御部6は、例えば、入力された各テーブルをディスプレイ装置5に表示する。さらに、表示制御部6は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ毎に、結合可能な関係にある列同士を結ぶ線を、ディスプレイ装置5に表示し、その線の近傍に、組み合わせに含まれている結合方法を表示する(図10参照)。結合可能な関係にある列同士を線で結んだ場合、その列が属するテーブル同士も線で結ばれることになる。従って、図10に示す例では、表示制御部6は、結合可能な関係にある列同士を結ぶ線をディスプレイ装置5に表示することによって、結合可能な関係にある列のペアを表示するとともに、その列のペアに基づいて結合されるテーブルのペアも表示していることになる。図10に示す例では、その線の近傍に結合方法が表示される。
従って、図10に例示する表示態様で、表示制御部6は、特定部3によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示することができる。図10に示す例では、例えば、テーブル21,22が結合されるテーブルのペアであり、そのテーブル21,22を、テーブル21内の「商品名」の列とテーブル22内の「商品名」の列とに基づいて結合する場合の結合方法が「Similarity-Join 」であることを示している。ただし、表示制御部6による情報の表示態様は、図10に示す例に限定されない。
なお、フローチャートに例示した処理の結果、1つの列が、複数の列との間で、結合可能な関係にあると定められてもよい。この場合、その1つの列から複数の列に延びる線が表示されることになる。
本実施形態によれば、表示制御部6がディスプレイ装置5に、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示する。従って、本実施形態の情報提供システム1は、どのテーブルのどの列とどのテーブルのどの列とに基づいて、そのテーブル同士をどの方法で結合すればよいのかを、作業者(情報提供システム1のユーザ)に提示することができる。従って、専門的知識が少ない作業者であっても、複数のテーブルを結合する作業を円滑に進めることができる。すなわち、本実施形態によれば、データ分析のためにテーブルを結合する作業に有用な情報を作業者に提供することができる。
以下に、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理の例を示す。ただし、以下に示す結合処理は例示であり、各結合処理は、以下に示す例に限定されない。また、本発明の情報提供システム1は、表示制御部6が作業者に提示した内容に従って、テーブルの結合処理を実行する結合部(図示略)を備えていてもよいが、そのような結合部を備えていなくてもよい。情報提供システム1がそのような結合部を備える場合、結合部は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3、表示制御部6および結合部として動作すればよい。
また、情報提供システム1がそのような結合部を備えない構成の場合は、例えば、情報提供システム1以外の外部システムが作業者の指示に従って、テーブルを結合すれよい。このとき、作業者は、本発明の情報提供システム1が提供する情報(表示制御部6がディスプレイ装置5に表示する、図10に例示する情報)に基づいて、外部システムにテーブル結合に関する指示を与えればよい。
結合可能な関係にある2つの列とともに、結合方法「Similarity-Join 」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値同士の編集距離が閾値以下である組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。ここでは、属性値の編集距離を用いる場合を例示したが、単語分散表現を用いて、属性値の組を特定してもよい。例えば、属性値a,bそれぞれからword2vecによって得られるベクトル同士の距離を求め、その距離が閾値以下である組が特定されたとする。この場合に、上記のように、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加してもよい。
結合可能な関係にある2つの列とともに、結合方法「Temporal-Join 」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値aを中心とする所定範囲内の時間帯と、属性値bを中心とする所定範囲内の時間帯とが重複する組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。
結合可能な関係にある2つの列とともに、結合方法「Spatial-Join」が定められている場合について説明する。一方の列(列Aとする。)における任意の属性値(属性値aとする。)と、他方の列(列Bとする。)における任意の属性値(属性値bとする。)との組であって、属性値aから得られる座標(例えば、緯度および経度)と属性値bから得られる座標との距離が閾値以下である組が特定されたとする。この場合、列Bを含むテーブルにおける属性値bを含むレコードを、列Aを含むテーブルにおける属性値aを含むレコードに追加すればよい。なお、2つの座標間の距離として、例えば、ユークリッド距離やマンハッタン距離等を用いることができる。
これらの結合処理は例示であり、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理は、上記の例に限定されない。
前述の各テーブル21~24を、図10が示す情報に従って結合した結果を図11に示す。
次に、本実施形態の変形例について説明する。以下に示す種々の変形例は、後述の第2の実施形態にも適用可能である。
第1の実施形態で例示したフローチャートのステップS6(図2参照)、ステップS13(図3参照)、および、ステップS19(図4参照)において、特定部3は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外してもよい。この場合、特定部3は、既に他の列との間で結合可能な関係にあると定められていることによりステップS6で選択対象から除外した列を、ステップS9(図3参照)では、ステップS6で選択済みの列として扱う。同様に、特定部3は、ステップS13で選択対象から除外した列を、ステップS16(図4参照)では、ステップS13で選択済みの列として扱う。同様に、特定部3は、ステップS19で選択対象から除外した列を、ステップS22(図4参照)では、ステップS19で選択済みの列として扱う。このように、ステップS6,S13,S19において、既に他の列との間で結合可能な関係にあると定められている列を選択対象から除外することで、処理時間を短縮することができる。
また、第1の実施形態で例示したフローチャートのステップS2(図2参照)において、特定部3は、既に他のテーブルと結合されると定められているテーブルを、選択対象から除外してもよい。この場合、特定部3は、既に他のテーブルと結合されると定められていることによりステップS2で選択対象から除外したテーブルを、ステップS23(図5参照)では、ステップS2で選択済みのテーブルとして扱う。このように、ステップS2において、既に他のテーブルと結合されると定められているテーブルを選択対象から除外することで、処理時間を短縮することができる。
また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。すなわち、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよい。作業者は、作業者自身の持つ知識によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを全て定めることはできなくても、一部の組み合わせについては定められる場合がある。その場合、作業者は、作業者が定めることができた組み合わせを示す情報とともに、複数のテーブルを入力部2に入力すればよい。この場合、前述の変形例で説明したように、ステップS6(図2参照)、ステップS13(図3参照)、および、ステップS19(図4参照)において、特定部3は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外すればよい。そして、特定部3は、ステップS6で選択対象から除外した列を、ステップS9(図3参照)では、ステップS6で選択済みの列として扱えばよい。同様に、特定部3は、ステップS13で選択対象から除外した列を、ステップS16(図4参照)では、ステップS13で選択済みの列として扱えばよい。同様に、特定部3は、ステップS19で選択対象から除外した列を、ステップS22(図4参照)では、ステップS19で選択済みの列として扱えばよい。
また、第1の実施形態の他の変形例を、図12に示す。図1に示す構成要素と同様の構成要素については、図1と同一の符号を付し、説明を省略する。
図12に示す変形例では、情報提供システム1は、図1に示す各要素に加えて、列種別推定部7を備える。前述の第1の実施形態では、入力部2に入力される個々のテーブルの個々の列には、予め、列の種別(列の意味)が割り当てられている場合を説明した。本変形例では、入力部2に入力される個々のテーブルの個々の列に列の種別は割り当てられていなくてよい。
列種別推定部7は、入力部2に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加する(割り当てる)。本変形例では、ステップS1(図2参照)で入力部2に複数のテーブルが入力されたら、例えば、1回目のステップS2の実行前に、列種別推定部7が、入力部2に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加すればよい。そして、特定部3は、列種別推定部7によって個々のテーブルの個々の列毎に付加された列の種別を参照することによって、ステップS2以降の処理を実行すればよい。
列種別推定部7が個々の列の種別を、その列に含まれる属性値に基づいて推定する方法は公知の方法でよい。例えば、列種別推定部7は、非特許文献1に記載された列の意味の推定方法、または、特許文献1に記載された列の意味の推定方法で、個々の列の種別を推定してもよい。このとき、列の種別として、少なくとも、「Entity-ID 」、「Time」、「Space 」があるものとする。そして、列種別推定部7は、この3種類の種別以外の種別を推定結果として得た場合には、その種別を、「None」に置き換えればよい。
列種別推定部7は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、列種別推定部7、特定部3および表示制御部6として動作すればよい。
実施形態2.
第1の実施形態の変形例の1つとして、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよいことを説明した。
第2の実施形態の情報提供システムは、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者に提示し、さらに、作業者の操作に応じて、そのような組み合わせを追加する。
図13は、本発明の第2の実施形態の情報提供システムの例を示すブロック図である。図1に示す構成要素と同様の構成要素については、図1と同一の符号を付し、説明を省略する。第2の実施形態の情報提供システム1は、図1に示す各要素に加えて、情報追加部9を備える。
第1の実施形態で説明したステップS1(図2参照)からステップS24(図5参照)までの動作は、第2の実施形態でも同様である。
ただし、本実施形態では、表示制御部6は、ステップS24において、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者が追加するためのGUI(Graphical User Interface)を、特定部3によって特定された個々の組み合わせ(結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ)とともに表示する。
情報追加部9は、作業者によるそのGUIの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを受け付け、その組み合わせを記憶部4に記憶させる。
情報追加部9が記憶部4に新たな組み合わせを記憶させると、表示制御部6は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置5に追加で表示する。
図14は、ステップS24で表示されるGUIを含む画面の例を示す模式図である。第2の実施形態では、表示制御部6は、ステップS24で、図14に例示する画面をディスプレイ装置5に表示する。図14に示す画面は、プルダウンメニュー51および決定ボタン52を含む。プルダウンメニュー51および決定ボタン52以外の表示内容は、図10に例示する表示内容と同様である。ただし、図14に示す各テーブルの各列は、マウスクリック等の操作により、指定可能である。プルダウンメニュー51は、作業者が、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等のテーブルの結合方法を指定するために用いられる。
情報追加部9が、作業者から追加情報を受け付ける動作の例を、図14を参照して説明する。作業者によって、マウスクリック等の操作で、互いに異なるテーブルに属する2つの列(列のペア)が指定される。さらに、作業者によって、その2つの列の一方が属するテーブルと、その2つの列のもう一方が属するテーブルとの接続方法がプルダウンメニュー51によって指定される。そして、作業者によって決定ボタン52がマウスクリックされる。すると、情報追加部9は、指定された2つの列の一方が属するテーブルと、その2つの列のもう一方が属するテーブルとを、結合されるテーブルのペアとして定める。さらに、情報追加部9は、指定された2つの列を、結合可能な関係にある列のペアとして定める。そして、情報追加部9は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、プルダウンメニュー51によって指定された結合方法との組み合わせを、記憶部4に追加する。
既に説明したように、情報追加部9が記憶部4に新たな組み合わせを記憶させると、表示制御部6は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置5に追加で表示する。
情報追加部9は、例えば、情報提供プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部3、表示制御部6および情報追加部9として動作すればよい。
第2の実施形態によれば、第1の実施形態と同様の効果が得られる。さらに、第2の実施形態では、作業者が、作業者自身の判断によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、情報提供システム1に追加させることができる。
また、前述のように、第1の実施形態の種々の変形例は、第2の実施形態にも適用可能である。
図15は、本発明の各実施形態の情報提供システム1に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006とを備える。
本発明の各実施形態やその変形例の情報提供システム1は、コンピュータ1000によって実現される。情報提供システム1の動作は、情報提供プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その情報提供プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、その情報提供プログラムに従って、上記の各実施形態や各種変形例で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、上記の処理を実行してもよい。
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要を説明する。図16は、本発明の情報提供システムの概要の例を示すブロック図である。本発明の情報提供システムは、入力部81と、特定部82と、出力部83とを備える。
入力部81(例えば、実施形態における入力部2)は、複数のテーブルの入力を受け付ける。
特定部82(例えば、実施形態における特定部3)は、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する。
出力部83(例えば、実施形態における表示制御部6)は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する。
そのような構成により、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
また、特定部82が、個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する構成であってもよい。
また、特定部82が、異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定する構成であってもよい。
また、入力部81に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力されてもよい。
また、入力部81に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部(例えば、列種別推定部7)を備える構成であってもよい。
また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。
また、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを追加する情報追加部(例えば、情報追加部9)を備える構成であってもよい。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、テーブルを結合する作業に関する情報を作業者に提供する情報提供システムに好適に適用される。
1 情報提供システム
2 入力部
3 特定部
4 記憶部
5 ディスプレイ装置
6 表示制御部
7 列種別推定部
9 情報追加部

Claims (8)

  1. 複数のテーブルが入力される入力部と、
    入力された前記複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、
    前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力部とを備え、
    前記特定部は、
    異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、
    異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、
    異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定し、
    前記第1の条件は、前記所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、
    前記第2の条件は、前記種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件である
    ことを特徴とする情報提供システム。
  2. 特定部は、
    個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する
    請求項1に記載の情報提供システム。
  3. 入力部に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力される
    請求項1または請求項2に記載の情報提供システム。
  4. 入力部に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部を備える
    請求項1または請求項2に記載の情報提供システム。
  5. 入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められている
    請求項1から請求項4のうちのいずれか1項に記載の情報提供システム。
  6. 結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを追加する情報追加部を備える
    請求項1から請求項5のうちのいずれか1項に記載の情報提供システム。
  7. コンピュータが、
    複数のテーブルの入力を受け付け、
    入力された前記複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、
    前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力し、
    結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定するときに、
    異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、
    異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、
    異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定し、
    前記第1の条件は、前記所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、
    前記第2の条件は、前記種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件である
    ことを特徴とする情報提供方法。
  8. 複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、
    前記コンピュータに、
    入力された前記複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、
    前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力処理を実行させ、
    前記特定処理で、
    異なるテーブルに属する列のペアであって、任意のテーブルの1行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第1の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定させ、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がSimilarity-Join であると特定させ、
    異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第2の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定させ、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がTemporal-Joinであると特定させ、
    異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定させ、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定させ、その結合されるテーブルの結合方法がSpatial-Joinであると特定させ
    前記第1の条件は、前記所定の種別を有する列のペアに属する2つの列のうちの一方の列に含まれる個々の属性値と、もう一方の列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出したときに、編集距離が閾値以下となる属性値の組み合わせの個数が予め定められた所定の個数以上であるという条件であり、
    前記第2の条件は、前記種別「時間」を有する列のペアに属する2つの列がいずれも時刻のみを属性値としているか、または、いずれも日付を属性値としているという条件である
    ための情報提供プログラム。
JP2020567298A 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム Active JP7276355B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/002052 WO2020152804A1 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2020152804A1 JPWO2020152804A1 (ja) 2021-12-09
JP7276355B2 true JP7276355B2 (ja) 2023-05-18

Family

ID=71736858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020567298A Active JP7276355B2 (ja) 2019-01-23 2019-01-23 情報提供システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US11860910B2 (ja)
JP (1) JP7276355B2 (ja)
WO (1) WO2020152804A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114254599A (zh) * 2021-10-11 2022-03-29 上海新氦类脑智能科技有限公司 表格合并方法、处理芯片以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288012A (ja) 2001-03-23 2002-10-04 Casio Comput Co Ltd ファイル結合装置、及びプログラム
JP2003271600A (ja) 1992-06-15 2003-09-26 Fuji Xerox Co Ltd データベース検索システムおよびデータベース検索方法
JP2015075970A (ja) 2013-10-09 2015-04-20 前田建設工業株式会社 表形式データ処理プログラム、方法、及び装置
JP2016081526A (ja) 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法
WO2018016001A1 (ja) 2016-07-19 2018-01-25 株式会社日立製作所 データモデリングシステム、データモデリング方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725498B2 (en) * 2004-04-22 2010-05-25 International Business Machines Corporation Techniques for identifying mergeable data
US8726177B2 (en) * 2007-07-18 2014-05-13 Sas Institute Inc. Systems and methods for generating a database query using a graphical user interface
JP6158623B2 (ja) * 2013-07-25 2017-07-05 株式会社日立製作所 データベース分析装置及び方法
JP6045706B2 (ja) 2013-08-21 2016-12-14 株式会社日立製作所 データ処理システム、データ処理方法およびデータ処理装置
WO2018025706A1 (ja) 2016-08-05 2018-02-08 日本電気株式会社 テーブル意味推定システム、方法およびプログラム
US11093494B2 (en) * 2016-12-06 2021-08-17 Microsoft Technology Licensing, Llc Joining tables by leveraging transformations
US10650050B2 (en) * 2016-12-06 2020-05-12 Microsoft Technology Licensing, Llc Synthesizing mapping relationships using table corpus
US11068453B2 (en) * 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
EP3407206B1 (en) * 2017-05-22 2021-08-04 Fujitsu Limited Reconciled data storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271600A (ja) 1992-06-15 2003-09-26 Fuji Xerox Co Ltd データベース検索システムおよびデータベース検索方法
JP2002288012A (ja) 2001-03-23 2002-10-04 Casio Comput Co Ltd ファイル結合装置、及びプログラム
JP2015075970A (ja) 2013-10-09 2015-04-20 前田建設工業株式会社 表形式データ処理プログラム、方法、及び装置
JP2016081526A (ja) 2014-10-10 2016-05-16 富士通株式会社 テーブル再構成装置と方法
WO2018016001A1 (ja) 2016-07-19 2018-01-25 株式会社日立製作所 データモデリングシステム、データモデリング方法

Also Published As

Publication number Publication date
US11860910B2 (en) 2024-01-02
US20220092088A1 (en) 2022-03-24
JPWO2020152804A1 (ja) 2021-12-09
WO2020152804A1 (ja) 2020-07-30

Similar Documents

Publication Publication Date Title
US11727203B2 (en) Information processing system, feature description method and feature description program
US9336184B2 (en) Representation of an interactive document as a graph of entities
TWI615787B (zh) 群體對象商品推薦系統、方法及其非揮發性電腦可讀取紀錄媒體
JP2015528593A (ja) 電子商取引プラットフォームにおける情報を検索するための方法及び装置
US20170300461A1 (en) Representation of an Interactive Document as a Graph of Entities
JP6291041B2 (ja) 検索推奨方法及び装置
JP7276355B2 (ja) 情報提供システム、方法およびプログラム
JP5786630B2 (ja) 情報処理装置及び情報処理プログラム
US20190019113A1 (en) Information provision method and information processing method
JP6287501B2 (ja) 情報処理装置及び情報処理プログラム
JP4852834B2 (ja) アプリケーション要件設計支援システムおよび方法
JP2012103929A (ja) 情報抽出装置、情報抽出方法および情報抽出プログラム
JP6665678B2 (ja) メタデータ登録方法、メタデータ登録プログラムおよびメタデータ登録装置
JP6157166B2 (ja) 部品生成システムおよび方法ならびにプログラム
JP2005228231A (ja) オークション方法、オークションプログラム及びオークション装置
CN113609311A (zh) 推荐项目的方法和装置
JP2013089057A (ja) モデル検査支援方法、モデル検査支援プログラム、およびモデル検査支援装置
JP5081889B2 (ja) 入力支援装置、入力支援方法及び入力支援プログラム
JP5467096B2 (ja) 商品情報補完方法,商品情報補完装置,および商品情報補完プログラム
JP2010122716A (ja) 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法
JP2009134511A (ja) サイジング装置、サイジング方法、サイジング用プログラム及び記録媒体
CN110059328A (zh) 结构分析模拟方法、信息处理设备和计算机可读存储介质
JP2008009966A (ja) 業務プロセス設定装置及び業務プロセス設定方法
WO2021171372A1 (ja) アイテム分類支援システム、方法およびプログラム
JP2010108173A (ja) 文書処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230316

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R151 Written notification of patent or utility model registration

Ref document number: 7276355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151