(57)【要約】  専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる情報提供システムを提供する。入力部８１は、複数のテーブルの入力を受け付ける。特定部８２は、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する。出力部８３は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する。
2020152804.tif 000002
【特許請求の範囲】
【請求項１】
複数のテーブルが入力される入力部と、
結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、
前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力部とを備える
ことを特徴とする情報提供システム。
【請求項２】
特定部は、
個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する
請求項１に記載の情報提供システム。
【請求項３】
特定部は、
異なるテーブルに属する列のペアであって、任意のテーブルの１行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第１の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、
異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第２の条件を満たしている場合に、前記列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、
異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定する
請求項１または請求項２に記載の情報提供システム。
【請求項４】
入力部に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力される
請求項１から請求項３のうちのいずれか１項に記載の情報提供システム。
【請求項５】
入力部に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部を備える
請求項１から請求項３のうちのいずれか１項に記載の情報提供システム。
【請求項６】
入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められている
請求項１から請求項５のうちのいずれか１項に記載の情報提供システム。
【請求項７】
結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを追加する情報追加部を備える
請求項１から請求項６のうちのいずれか１項に記載の情報提供システム。
【請求項８】
コンピュータが、
複数のテーブルの入力を受け付け、
結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、
前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する
ことを特徴とする情報提供方法。
【請求項９】
複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、
前記コンピュータに、
結合可能な関係にある列のペアを特定し、前記ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、
前記結合されるテーブルのペアと、前記結合可能な関係にある列のペアと、前記結合されるテーブルの結合方法とを出力する出力処理
を実行させるための情報提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルを結合する作業に関する情報を作業者（ユーザ）に提供する情報提供システム、情報提供方法および情報提供プログラムに関する。
【背景技術】
【０００２】
非特許文献１には、オントロジを用いて、テーブルの列の意味を推定する技術が記載されている。【０００３】
テーブルの列の意味を推定する技術は、特許文献１にも記載されている。【０００４】
また、特許文献２には、テーブル形式のデータの結合処理を行うシステムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１８／０２５７０６号
【特許文献２】再表２０１５／０２５３８６号公報
【非特許文献】
【０００６】
【非特許文献１】Petros Venetis，外７名，“Recovering Semantics of Tables on the Web”，［２０１６年７月２０日検索］、インターネット<URL: http://www.vldb.org/pvldb/vol4/p528-venetis.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
データ分析では、データの分析に必要なデータ整形に多くの時間が充てられている。具体的には、与えられた複数のテーブルを結合する作業に多くの時間が充てられている。【０００８】
与えられた複数のテーブルを結合する作業には、多くの専門的知識が必要であり、そのため、その作業には多くのエキスパートが必要になる。【０００９】
そこで、本発明は、専門的知識が少ない作業者（ユーザ）であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる情報提供システム、情報提供方法および情報提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明による情報提供システムは、複数のテーブルが入力される入力部と、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定部と、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力部とを備えることを特徴とする。【００１１】
本発明による情報提供方法は、コンピュータが、複数のテーブルの入力を受け付け、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定し、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力することを特徴とする。【００１２】
本発明による情報提供プログラムは、複数のテーブルが入力される入力部を備えるコンピュータに搭載される情報提供プログラムであって、コンピュータに、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する特定処理、および、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する出力処理を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の情報提供システムの例を示すブロック図である。
【図２】第１の実施形態の情報提供システムの処理経過の例を示すフローチャートである。
【図３】第１の実施形態の情報提供システムの処理経過の例を示すフローチャートである。
【図４】第１の実施形態の情報提供システムの処理経過の例を示すフローチャートである。
【図５】第１の実施形態の情報提供システムの処理経過の例を示すフローチャートである。
【図６】入力されるテーブルの例を示す模式図である。
【図７】入力されるテーブルの例を示す模式図である。
【図８】入力されるテーブルの例を示す模式図である。
【図９】入力されるテーブルの例を示す模式図である。
【図１０】ステップＳ２４で表示制御部６がディスプレイ装置５に表示する情報の例を示す模式図である。
【図１１】図６から図９までに示す各テーブルを、図１０が示す情報に従って結合した結果を示す模式図である。
【図１２】第１の実施形態の変形例のうちの１つを示すブロック図である。
【図１３】本発明の第２の実施形態の情報提供システムの例を示すブロック図である。
【図１４】第２の実施形態において、ステップＳ２４で表示されるＧＵＩを含む画面の例を示す模式図である。
【図１５】本発明の各実施形態の情報提供システムに係るコンピュータの構成例を示す概略ブロック図である。
【図１６】本発明の情報提供システムの概要の例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面を参照して説明する。
【００１６】
実施形態１．
図１は、本発明の第１の実施形態の情報提供システムの例を示すブロック図である。本発明の情報提供システム１は、入力部２と、特定部３と、記憶部４と、ディスプレイ装置５と、表示制御部６とを備える。
【００１７】
入力部２は、複数のテーブルが入力される入力デバイスである。例えば、入力部２は、光磁気ディスク等のデータ記録媒体から、データ記録媒体に記録されている複数のテーブルを読み込むデータ読み込み装置であってもよい。
【００１８】
本実施形態では、入力部２に入力される個々のテーブルの個々の列には、予め、列の種別（列の意味）が割り当てられているものとする。なお、列の種別は、列名とは別に定められる。また、テーブルに列名が含まれていなくてもよい。列の種別は、例えば、作業者（ユーザ）または外部の情報処理装置が、各テーブルを情報提供システム１に入力する前に定めておけばよい。
【００１９】
列の種別として、少なくとも、「Entity-Identifier 」、「時間」および「場所」という種別があるものとする。本実施形態では、列の種別が、「Entity-Identifier 」、「時間」、「場所」および「None」の４種類である場合を例にして説明する。そして、個々のテーブルの個々の列には、予め、「Entity-Identifier 」、「時間」、「場所」および「None」のうちのいずれかの種別が定められているものとする。ただし、上記の４種類以外の種別が存在していてもよい。
【００２０】
種別「Entity-Identifier 」は、任意のテーブルの１行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列を表わす。以下、種別「Entity-Identifier 」を、「Entity-ID 」と記す。
【００２１】
種別「時間」は、個々の属性値が、日付、時刻、または日時である列を表わす。以下、種別「時間」を、「Time」と記す。
【００２２】
種別「場所」は、個々の属性値が、場所または位置である列を表わす。以下、種別「場所」を、「Space 」と記す。
【００２３】
種別「None」は、「Entity-ID 」、「Time」および「Space 」のいずれにも該当しない列を表わす。
【００２４】
特定部３は、入力された複数のテーブルを参照し、結合可能な関係にある列のペアを特定し、そのペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、さらに、結合されるテーブルの結合方法を特定する。
【００２５】
特定部３によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせは、１つとは限らず、複数の組み合わせが特定部３によって特定されてもよい。
【００２６】
なお、結合可能な関係にある列のペアに基づいて、ペアをなすテーブルを結合する結合方法として、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等がある。これらの結合方法の例については、後述する。
【００２７】
記憶部４は、特定部３によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法の組み合わせを記憶する記憶装置である。
【００２８】
表示制御部６は、特定部３によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を、ディスプレイ装置５に表示する。
【００２９】
特定部３および表示制御部６は、例えば、情報提供プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）によって実現される。例えば、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部３および表示制御部６として動作すればよい。
【００３０】
次に、本実施形態の処理経過について説明する。図２、図３、図４および図５は、本実施形態の情報提供システム１の処理経過の例を示すフローチャートである。以下では、説明を簡単にするために、１つのテーブル内に種別が「Time」である列は最大で１つ存在し、同様に、１つのテーブル内に種別が「Space 」である列は最大で１つ存在する場合を例にして説明する。また、１つのテーブル内における種別が「Entity-ID 」である列の数は、特に限定されない場合を例にして説明する。
【００３１】
まず、入力部２は、複数のテーブルの入力を受け付ける（ステップＳ１）。入力される個々のテーブルの個々の列には、予め、列の種別が割り当てられている。本例では、ステップＳ１で、図６、図７、図８および図９に示す各テーブルが入力される場合を例にして説明する。
【００３２】
図６に示すテーブル２１は、種別が「Entity-ID 」である列を２つ含み、種別が「Time」である列を１つ含み、種別が「None」である列を１つ含んでいる。
【００３３】
図７に示すテーブル２２は、種別が「Entity-ID 」である列を１つ含み、種別が「None」である列を１つ含んでいる。
【００３４】
図８に示すテーブル２３は、種別が「Entity-ID 」である列を１つ含み、種別が「Space 」である列を１つ含み、種別が「None」である列を１つ含んでいる。
【００３５】
図９に示すテーブル２４は、種別が「Space 」である列を１つ含み、種別が「Time」である列を１つ含み、種別が「None」である列を２つ含んでいる。
【００３６】
ステップＳ１の次に、特定部３は、ステップＳ１で入力された複数のテーブルのうち、未選択のテーブルを１つ選択する（ステップＳ２）。選択されているテーブルを、以下、選択テーブルと記す。ここでは、ステップＳ２で、特定部３が、テーブル２１（図６参照）を選択した場合を例にして説明する。すなわち、選択テーブルが、テーブル２１である場合を例にして説明する。
【００３７】
ステップＳ２の次に、特定部３は、選択テーブル内に、種別が「Entity-ID 」である列が存在するか否かを判定する（ステップＳ３）。選択テーブル内に、種別が「Entity-ID 」である列が存在しない場合（ステップＳ３のＮｏ）、後述のステップＳ１１（図３参照）に移行する。また、選択テーブル内に、種別が「Entity-ID 」である列が存在する場合、ステップＳ４に移行する。本例では、選択テーブル（図６に示すテーブル２１）は、種別が「Entity-ID 」である列を含んでいる。従って、ステップＳ４に移行する。
【００３８】
ステップＳ４において、特定部３は、選択テーブルから、種別が「Entity-ID 」である列を１つ選択する。このとき、特定部３は、ステップＳ４で既に選択済みの列は、選択対象から除外する。ここでは、特定部３は、図６に示すテーブル２１から、列名が「店名」である列を選択したものとして説明する。
【００３９】
次に、特定部３は、選択テーブル以外の各テーブルの各列の中から、種別が「Entity-ID 」である列を特定する（ステップＳ５）。選択テーブル以外の各テーブルの各列の中に、種別が「Entity-ID 」である列が複数存在するならば、特定部３は、その複数の列を全て特定する。本例では、特定部３は、ステップＳ５において、テーブル２２（図７参照）内の列名が「商品名」である列と、テーブル２３（図８参照）内の列名が「店名」である列とを特定する。
【００４０】
次に、特定部３は、ステップＳ５で特定した列の中から、未選択の列を１つ選択する（ステップＳ６）。ここでは、テーブル２３内の列名が「店名」である列を選択した場合を例にして説明する。
【００４１】
次に、特定部３は、ステップＳ４で選択した列と、ステップＳ６で選択した列とが、結合可能な関係にあるか否かを判定する（ステップＳ７）。
【００４２】
ステップＳ７において、特定部３は、例えば、ステップＳ４で選択した列に含まれる個々の属性値と、ステップＳ６で選択した列に含まれる個々の属性値との組み合わせ毎に、属性値同士の編集距離を算出する。そして、特定部３は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数以上であるならば、２つの列が結合可能な関係にあると判定すればよい。また、特定部３は、編集距離が閾値以下となる属性値の組み合わせの個数が予め定めた所定の個数未満であるならば、２つの列が結合可能な関係にないと判定すればよい。上記の閾値や所定の個数は、予め設定しておけばよい。
【００４３】
なお、ステップＳ７において、種別が「Entity-ID 」である２つ列が結合可能な関係にあるか否かを判定する方法（換言すれば、種別が「Entity-ID 」である２つ列が結合可能な関係にあると判定するための条件）は、上記の例に限定されない。特定部３は、ステップＳ７において、他の方法で、２つ列が結合可能な関係にあるか否かを判定してもよい。
【００４４】
２つの列が結合可能な関係にあると判定した場合（ステップＳ７のＹｅｓ）、ステップＳ８に移行する。また、２つの列が結合可能な関係にないと判定した場合（ステップＳ７のＮｏ）、ステップＳ９（図３参照）に移行する。
【００４５】
本例では、ステップＳ４で選択した列（テーブル２１（図６参照）内の列名が「店名」である列）と、ステップＳ６で選択した列（テーブル２３（図８参照）内の列名が「店名」である列）とは、いずれも店名を属性値とする。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数以上であり、特定部３が、その２つの列が結合可能な関係にあると判定した場合を例にする（ステップＳ７のＹｅｓ）。
【００４６】
この場合、ステップＳ８に移行し、特定部３は、ステップＳ８で、選択テーブル（本例では、図６に示すテーブル２１）と、ステップＳ６で選択した列を含むテーブル（本例では、図８に示すテーブル２３）とを、「Similarity-Join 」で結合すると定める（ステップＳ８）。
【００４７】
ステップＳ７，Ｓ８の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部３は、ステップＳ８において、結合されるテーブルのペア（本例では、テーブル２１，２３のペア）と、結合可能な関係にある列のペア（本例では、テーブル２１内の列名が「店名」である列と、テーブル２３内の列名が「店名」である列とのペア）と、結合方法（本例では、「Similarity-Join 」）との組み合わせを、記憶部４に記憶させる。
【００４８】
ステップＳ８の後、ステップＳ９（図３参照）に移行する。ステップＳ９で、特定部３は、ステップＳ５で特定した列が全て選択済みであるか否かを判定する。ステップＳ５で特定した列が全てステップＳ６で選択されているならば（ステップＳ９のＹｅｓ）、ステップＳ１０に移行する。また、ステップＳ５で特定した列のうち、まだステップＳ６で選択されていない列が存在するならば（ステップＳ９のＮｏ）、特定部３は、ステップＳ６以降の処理を繰り返す。
【００４９】
本例では、まだ、テーブル２２（図７参照）内の列名が「商品名」である列がステップＳ６で選択されていない。従って、ステップＳ６に移行し、特定部３は、ステップＳ６で、テーブル２２内の列名が「商品名」である列を選択する。
【００５０】
そして、特定部３は、ステップＳ４で選択した列と、ステップＳ６で選択した列とが、結合可能な関係にあるか否かを判定する（ステップＳ７）。ステップＳ４で選択した列（テーブル２１（図６参照）内の列名が「店名」である列）は、店名を属性値とする列である。一方、ステップＳ６で選択された列（テーブル２２内の列名が「商品名」である列）は、商品名を属性値とする列である。従って、編集距離が閾値以下となる属性値の組み合わせの個数が所定の個数未満であり、特定部３が、その２つの列が結合可能な関係にないと判定した場合を例にする（ステップＳ７のＮｏ）。
【００５１】
この場合、ステップＳ８は実行されずに、ステップＳ９に移行する。ここでは、ステップＳ５で特定された２つの列はいずれもステップＳ６で選択済みである。従って、特定部３は、ステップＳ５で特定した列が全て選択済みであると判定し（ステップＳ９のＹｅｓ）、ステップＳ１０に移行する。
【００５２】
ステップＳ１０において、特定部３は、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであるか否かを判定する。選択テーブル内の種別が「Entity-ID 」である列が全てステップＳ４で選択されているならば（ステップＳ１０のＹｅｓ）、ステップＳ１１に移行する。また、選択テーブル内の種別が「Entity-ID 」である列のうち、まだステップＳ４で選択されていない列が存在するならば（ステップＳ１０のＮｏ）、特定部３は、ステップＳ４以降の処理を繰り返す。
【００５３】
本例では、まだ、選択テーブルに該当するテーブル２１において、列名が「商品名」である列がステップＳ４で選択されていない。従って、ステップＳ４に移行し、特定部３は、ステップＳ４で、テーブル２１内の列名が「商品名」である列を選択する。ステップＳ４〜Ｓ１０の処理については、既に説明したので、ここでは詳細な説明を省略する。なお、ここでは、ステップＳ６で、テーブル２２（図７参照）内の列名が「商品名」である列が選択された場合、特定部３は、ステップＳ７，Ｓ８を順次、実行する。そして、特定部３は、ステップＳ８において、結合されるテーブルのペア（本例では、テーブル２１，２２のペア）と、結合可能な関係にある列のペア（本例では、テーブル２１内の列名が「商品名」である列と、テーブル２２内の列名が「商品名」である列とのペア）と、結合方法（本例では、「Similarity-Join 」）との組み合わせを、記憶部４に記憶させる。
【００５４】
再度、ステップＳ１０に移行した時点では、テーブル２１内の種別が「Entity-ID 」である列が全て選択済みになっている（ステップＳ１０のＹｅｓ）。従って、ステップＳ１１に移行する。
【００５５】
ステップＳ１１において、特定部３は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。選択テーブル内に、種別が「Time」である列が存在しない場合（ステップＳ１１のＮｏ）、後述のステップＳ１７（図４参照）に移行する。また、選択テーブル内に、種別が「Time」である列が存在する場合（ステップＳ１１のＹｅｓ）、ステップＳ１２に移行する。本例では、選択テーブル（図６に示すテーブル２１）は、種別が「Time」である列を含んでいる。従って、ステップＳ１２に移行する。
【００５６】
ステップＳ１２において、特定部３は、選択テーブル以外の各テーブルの各列の中から、種別が「Time」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Time」である列が複数存在するならば、特定部３は、その複数の列を全て特定する。本例では、特定部３は、ステップＳ１２において、テーブル２４（図９参照）内の列名が「日時」である列を特定する。すなわち、本例では、ステップＳ１２で１つの列が特定される。
【００５７】
次に、特定部３は、ステップＳ１２で特定した列の中から、未選択の列を１つ選択する（ステップＳ１３）。本例では、特定部３は、テーブル２４内の列名が「日時」である列を選択する。
【００５８】
次に、特定部３は、選択テーブル内に存在する種別が「Time」である列と、ステップＳ１３で選択した列とが結合可能な関係にあるか否かを判定する（ステップＳ１４）。
【００５９】
ステップＳ１４では、特定部３は、種別が「Time」である２つ列が結合可能な関係にあるか否かを判定する。この判定の例を以下に示す。特定部３は、例えば、種別が「Time」である２つ列がいずれも時刻のみ（日付は含まない。）を属性値とする場合、または、種別が「Time」である２つ列がいずれも日付（時刻まで含んでいてもよい。）を属性値とする場合に、２つ列が結合可能な関係にあると判定すればよい（ステップＳ１４のＹｅｓ）。そして、その他の場合には、特定部３は、２つ列が結合可能な関係にないと判定すればよい（ステップＳ１４のＮｏ）。例えば、種別が「Time」である２つ列の一方が、時刻のみ（日付は含まない。）を属性値とし、他方が日付のみを属性値とする場合には、特定部３は、２つ列が結合可能な関係にないと判定する。
【００６０】
本例では、選択テーブル内に存在する種別が「Time」である列（テーブル２１内の列名が「日時」である列）、および、ステップＳ１３で選択された列（テーブル２４内の列名が「日時」である列）は、いずれも、日付を属性値としている（図６、図９参照）。従って、本例では、ステップＳ１４において、特定部３は、種別が「Time」である２つ列が結合可能な関係にあると判定する（ステップＳ１４のＹｅｓ）。
【００６１】
なお、ステップＳ１４において、種別が「Time」である２つ列が結合可能な関係にあるか否かを判定する方法（換言すれば、種別が「Time」である２つ列が結合可能な関係にあると判定するための条件）は、上記の例に限定されない。特定部３は、ステップＳ１４において、他の方法で、２つ列が結合可能な関係にあるか否かを判定してもよい。
【００６２】
ステップＳ１４で２つ列が結合可能な関係にないと判定された場合（ステップＳ１４のＮｏ）、後述のステップＳ１６（図４参照）に移行する。ステップＳ１４で２つ列が結合可能な関係にあると判定された場合（ステップＳ１４のＹｅｓ）、ステップＳ１５（図４参照）に移行する。本例では、ステップＳ１５に移行する。
【００６３】
ステップＳ１５において、特定部３は、選択テーブル（本例では、テーブル２１）と、ステップＳ１３で選択した列を含むテーブル（本例では、図９に示すテーブル２４）とを、「Temporal-Join 」で結合すると定める。
【００６４】
ステップＳ１４，Ｓ１５の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部３は、ステップＳ１５において、結合されるテーブルのペア（本例では、テーブル２１，２４のペア）と、結合可能な関係にある列のペア（本例では、テーブル２１内の列名が「日時」である列と、テーブル２４内の列名が「日時」である列とのペア）と、結合方法（本例では、「Temporal-Join 」）との組み合わせを、記憶部４に記憶させる。
【００６５】
ステップＳ１５の後、ステップＳ１６に移行する。ステップＳ１６で、特定部３は、ステップＳ１２で特定した列が全て選択済みであるか否かを判定する。ステップＳ１２で特定した列が全てステップＳ１３で選択されているならば（ステップＳ１６のＹｅｓ）、ステップＳ１７に移行する。また、ステップＳ１２で特定した列のうち、まだステップＳ１３で選択されていない列が存在するならば（ステップＳ１６のＮｏ）、特定部３は、ステップＳ１３以降の処理を繰り返す。
【００６６】
本例では、ステップＳ１２で１つの列のみ（テーブル２４内の列名が「日時」である列）が特定され、その列がステップＳ１３で選択されている（ステップＳ１６のＹｅｓ）。従って、ステップＳ１７に移行する。
【００６７】
なお、ここでは、説明を簡単にするために、１つのテーブル内に種別が「Time」である列は最大で１つ存在する場合を例にしている。選択テーブル内に種別が「Time」である列が２以上存在する場合には、特定部３は、その列毎に、ステップＳ１２〜Ｓ１６の処理を実行すればよい。
【００６８】
ステップＳ１７において、特定部３は、選択テーブル内に、種別が「Space 」である列が存在するか否かを判定する。選択テーブル内に、種別が「Space 」である列が存在しない場合（ステップＳ１７のＮｏ）、ステップＳ２３（図５参照）に移行する。また、選択テーブル内に、種別が「Space 」である列が存在する場合（ステップＳ１７のＹｅｓ）、ステップＳ１８（図４参照）に移行する。
【００６９】
本例では、選択テーブルに該当するテーブル２１内に、種別が「Space 」である列は存在しないので（ステップＳ１７のＮｏ）、ステップＳ２３に移行する。ステップＳ１８に移行する場合の処理については、後述する。
【００７０】
ステップＳ２３において、特定部３は、ステップＳ１で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルが全てステップＳ２で選択されているならば（ステップＳ２３のＹｅｓ）、ステップＳ２４に移行する。また、入力されたテーブルのうち、まだステップＳ２で選択されていないテーブルが存在するならば（ステップＳ２３のＮｏ）、特定部３は、ステップＳ２以降の処理を繰り返す。
【００７１】
本例では、特定部３は、まだテーブル２２，２３，２４を選択していない。従って、特定部３は、ステップＳ２以降の処理を繰り返す。以下、ステップＳ２３からステップＳ２に移行し、特定部３が、ステップＳ２において、テーブル２３（図８参照）を選択する場合を例にして説明する。このステップＳ２以降では、テーブル２３が選択テーブルに該当する。
【００７２】
ステップＳ２の後、ステップＳ３で、特定部３は、選択テーブル（テーブル２３）内に、種別が「Entity-ID 」である列が存在すると判定する（ステップＳ３のＹｅｓ）。従って、特定部３は、ステップＳ４以降の処理を実行する。ステップＳ４〜Ｓ１０のループ処理については既に説明したので、ここでは説明を省略する。
【００７３】
ステップＳ１０（図３参照）で、選択テーブル内の種別が「Entity-ID 」である列が全て選択済みであると判定された場合（ステップＳ１０のＹｅｓ）、ステップＳ１１に移行する。ステップＳ１１で、特定部３は、選択テーブル内に、種別が「Time」である列が存在するか否かを判定する。本例では、選択テーブル（テーブル２３）内に、種別が「Time」である列は存在しないので（ステップＳ１１のＮｏ）、ステップＳ１７（図４参照）に移行する。
【００７４】
ステップＳ１７で、特定部３は、選択テーブル（テーブル２３）内に、種別が「Space 」である列が存在するか否かを判定する。本例では、テーブル２３内に、種別が「Space 」である列が存在する（ステップＳ１７のＹｅｓ）。従って、ステップＳ１８に移行する。
【００７５】
ステップＳ１８において、特定部３は、選択テーブル以外の各テーブルの各列の中から、種別が「Space 」である列を特定する。選択テーブル以外の各テーブルの各列の中に、種別が「Space 」である列が複数存在するならば、特定部３は、その複数の列を全て特定する。本例では、特定部３は、ステップＳ１８において、テーブル２４（図９参照）内の列名が「都道府県」である列を特定する。すなわち、本例では、ステップＳ１８で１つの列が特定される。
【００７６】
次に、特定部３は、ステップＳ１８で特定した列の中から、未選択の列を１つ選択する（ステップＳ１９）。本例では、特定部３は、テーブル２４内の列名が「都道府県」である列を選択する。
【００７７】
次に、特定部３は、選択テーブル内に存在する種別が「Space 」である列（本例では、テーブル２３内の列名が「住所」である列）と、ステップＳ１９で選択した列（本例では、テーブル２４内の列名が「都道府県」である列）とが、結合可能な関係にあると定める（ステップＳ２０）。
【００７８】
次に、特定部３は、選択テーブル（本例では、テーブル２３）と、ステップＳ１９で選択した列を含むテーブル（本例では、テーブル２４）とを、「Spatial-Join」で結合すると定める（ステップＳ２１）。
【００７９】
ステップＳ２０，Ｓ２１の過程で特定したテーブルのペアは、結合されるテーブルのペアである。特定部３は、ステップＳ２１において、結合されるテーブルのペア（本例では、テーブル２３，２４のペア）と、結合可能な関係にある列のペア（本例では、テーブル２３内の列名が「住所」である列と、テーブル２４内の列名が「都道府県」である列とのペア）と、結合方法（本例では、「Spatial-Join」）との組み合わせを、記憶部４に記憶させる。
【００８０】
ステップＳ２１の後、ステップＳ２２に移行する。ステップＳ２２では、特定部３は、ステップＳ１８で特定した列が全て選択済みであるか否かを判定する。ステップＳ１８で特定した列が全てステップＳ１９で選択されているならば（ステップＳ２２のＹｅｓ）、ステップＳ２３（図５参照）に移行する。ステップＳ１８で特定した列のうち、まだステップＳ１９で選択されていない列が存在するならば（ステップＳ２２のＮｏ）、特定部３は、ステップＳ１９以降の処理を繰り返す。
【００８１】
本例では、ステップＳ１８で１つの列のみ（テーブル２４内の列名が「都道府県」である列）が特定され、その列がステップＳ１９で選択されている（ステップＳ２２のＹｅｓ）。従って、ステップＳ２３に移行する。
【００８２】
なお、ここでは、説明を簡単にするために、１つのテーブル内に種別が「Space 」である列は最大で１つ存在する場合を例にしている。選択テーブル内に種別が「Space 」である列が２以上存在する場合には、特定部３は、その列毎に、ステップＳ１８〜Ｓ２２の処理を実行すればよい。
【００８３】
既に説明したように、ステップＳ２３において、特定部３は、ステップＳ１で入力されたテーブルが全て選択済みであるか否かを判定する。入力されたテーブルのうち、まだステップＳ２で選択されていないテーブルが存在するならば（ステップＳ２３のＮｏ）、特定部３は、ステップＳ２以降の処理を繰り返す。本例では、まだ、テーブル２２，２４が選択されていない。従って、特定部３は、ステップＳ２でテーブル２２を選択し、ステップＳ３以降の処理を繰り返す。再度、ステップＳ２に移行した場合、特定部３は、テーブル２４を選択し、ステップＳ３以降の処理を繰り返す。
【００８４】
ステップＳ２３において、特定部３が、ステップＳ１で入力されたテーブルが全て選択済みであると判定すると（ステップＳ２３のＹｅｓ）、ステップＳ２４に移行する。
【００８５】
ステップＳ２４では、表示制御部６が、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを記憶部４から読み込む。そして、表示制御部６は、記憶部４から読み込んだ各組み合わせに基づいて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、それぞれ、ディスプレイ装置５に表示する。
【００８６】
図１０は、ステップＳ２４で表示制御部６がディスプレイ装置５に表示する情報の例を示す模式図である。表示制御部６は、例えば、入力された各テーブルをディスプレイ装置５に表示する。さらに、表示制御部６は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ毎に、結合可能な関係にある列同士を結ぶ線を、ディスプレイ装置５に表示し、その線の近傍に、組み合わせに含まれている結合方法を表示する（図１０参照）。結合可能な関係にある列同士を線で結んだ場合、その列が属するテーブル同士も線で結ばれることになる。従って、図１０に示す例では、表示制御部６は、結合可能な関係にある列同士を結ぶ線をディスプレイ装置５に表示することによって、結合可能な関係にある列のペアを表示するとともに、その列のペアに基づいて結合されるテーブルのペアも表示していることになる。図１０に示す例では、その線の近傍に結合方法が表示される。
【００８７】
従って、図１０に例示する表示態様で、表示制御部６は、特定部３によって特定される、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示することができる。図１０に示す例では、例えば、テーブル２１，２２が結合されるテーブルのペアであり、そのテーブル２１，２２を、テーブル２１内の「商品名」の列とテーブル２２内の「商品名」の列とに基づいて結合する場合の結合方法が「Similarity-Join 」であることを示している。ただし、表示制御部６による情報の表示態様は、図１０に示す例に限定されない。
【００８８】
なお、フローチャートに例示した処理の結果、１つの列が、複数の列との間で、結合可能な関係にあると定められてもよい。この場合、その１つの列から複数の列に延びる線が表示されることになる。
【００８９】
本実施形態によれば、表示制御部６がディスプレイ装置５に、結合されるテーブルのペア、結合可能な関係にある列のペア、およびそのテーブルの結合方法を表示する。従って、本実施形態の情報提供システム１は、どのテーブルのどの列とどのテーブルのどの列とに基づいて、そのテーブル同士をどの方法で結合すればよいのかを、作業者（情報提供システム１のユーザ）に提示することができる。従って、専門的知識が少ない作業者であっても、複数のテーブルを結合する作業を円滑に進めることができる。すなわち、本実施形態によれば、データ分析のためにテーブルを結合する作業に有用な情報を作業者に提供することができる。
【００９０】
以下に、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理の例を示す。ただし、以下に示す結合処理は例示であり、各結合処理は、以下に示す例に限定されない。また、本発明の情報提供システム１は、表示制御部６が作業者に提示した内容に従って、テーブルの結合処理を実行する結合部（図示略）を備えていてもよいが、そのような結合部を備えていなくてもよい。情報提供システム１がそのような結合部を備える場合、結合部は、例えば、情報提供プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部３、表示制御部６および結合部として動作すればよい。
【００９１】
また、情報提供システム１がそのような結合部を備えない構成の場合は、例えば、情報提供システム１以外の外部システムが作業者の指示に従って、テーブルを結合すれよい。このとき、作業者は、本発明の情報提供システム１が提供する情報（表示制御部６がディスプレイ装置５に表示する、図１０に例示する情報）に基づいて、外部システムにテーブル結合に関する指示を与えればよい。
【００９２】
結合可能な関係にある２つの列とともに、結合方法「Similarity-Join 」が定められている場合について説明する。一方の列（列Ａとする。）における任意の属性値（属性値ａとする。）と、他方の列（列Ｂとする。）における任意の属性値（属性値ｂとする。）との組であって、属性値同士の編集距離が閾値以下である組が特定されたとする。この場合、列Ｂを含むテーブルにおける属性値ｂを含むレコードを、列Ａを含むテーブルにおける属性値ａを含むレコードに追加すればよい。ここでは、属性値の編集距離を用いる場合を例示したが、単語分散表現を用いて、属性値の組を特定してもよい。例えば、属性値ａ，ｂそれぞれからｗｏｒｄ２ｖｅｃによって得られるベクトル同士の距離を求め、その距離が閾値以下である組が特定されたとする。この場合に、上記のように、列Ｂを含むテーブルにおける属性値ｂを含むレコードを、列Ａを含むテーブルにおける属性値ａを含むレコードに追加してもよい。
【００９３】
結合可能な関係にある２つの列とともに、結合方法「Temporal-Join 」が定められている場合について説明する。一方の列（列Ａとする。）における任意の属性値（属性値ａとする。）と、他方の列（列Ｂとする。）における任意の属性値（属性値ｂとする。）との組であって、属性値ａを中心とする所定範囲内の時間帯と、属性値ｂを中心とする所定範囲内の時間帯とが重複する組が特定されたとする。この場合、列Ｂを含むテーブルにおける属性値ｂを含むレコードを、列Ａを含むテーブルにおける属性値ａを含むレコードに追加すればよい。
【００９４】
結合可能な関係にある２つの列とともに、結合方法「Spatial-Join」が定められている場合について説明する。一方の列（列Ａとする。）における任意の属性値（属性値ａとする。）と、他方の列（列Ｂとする。）における任意の属性値（属性値ｂとする。）との組であって、属性値ａから得られる座標（例えば、緯度および経度）と属性値ｂから得られる座標との距離が閾値以下である組が特定されたとする。この場合、列Ｂを含むテーブルにおける属性値ｂを含むレコードを、列Ａを含むテーブルにおける属性値ａを含むレコードに追加すればよい。なお、２つの座標間の距離として、例えば、ユークリッド距離やマンハッタン距離等を用いることができる。
【００９５】
これらの結合処理は例示であり、「Similarity-Join 」、「Temporal-Join 」および「Spatial-Join」によるテーブルの結合処理は、上記の例に限定されない。
【００９６】
前述の各テーブル２１〜２４を、図１０が示す情報に従って結合した結果を図１１に示す。
【００９７】
次に、本実施形態の変形例について説明する。以下に示す種々の変形例は、後述の第２の実施形態にも適用可能である。
【００９８】
第１の実施形態で例示したフローチャートのステップＳ６（図２参照）、ステップＳ１３（図３参照）、および、ステップＳ１９（図４参照）において、特定部３は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外してもよい。この場合、特定部３は、既に他の列との間で結合可能な関係にあると定められていることによりステップＳ６で選択対象から除外した列を、ステップＳ９（図３参照）では、ステップＳ６で選択済みの列として扱う。同様に、特定部３は、ステップＳ１３で選択対象から除外した列を、ステップＳ１６（図４参照）では、ステップＳ１３で選択済みの列として扱う。同様に、特定部３は、ステップＳ１９で選択対象から除外した列を、ステップＳ２２（図４参照）では、ステップＳ１９で選択済みの列として扱う。このように、ステップＳ６，Ｓ１３，Ｓ１９において、既に他の列との間で結合可能な関係にあると定められている列を選択対象から除外することで、処理時間を短縮することができる。
【００９９】
また、第１の実施形態で例示したフローチャートのステップＳ２（図２参照）において、特定部３は、既に他のテーブルと結合されると定められているテーブルを、選択対象から除外してもよい。この場合、特定部３は、既に他のテーブルと結合されると定められていることによりステップＳ２で選択対象から除外したテーブルを、ステップＳ２３（図５参照）では、ステップＳ２で選択済みのテーブルとして扱う。このように、ステップＳ２において、既に他のテーブルと結合されると定められているテーブルを選択対象から除外することで、処理時間を短縮することができる。
【０１００】
また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。すなわち、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよい。作業者は、作業者自身の持つ知識によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを全て定めることはできなくても、一部の組み合わせについては定められる場合がある。その場合、作業者は、作業者が定めることができた組み合わせを示す情報とともに、複数のテーブルを入力部２に入力すればよい。この場合、前述の変形例で説明したように、ステップＳ６（図２参照）、ステップＳ１３（図３参照）、および、ステップＳ１９（図４参照）において、特定部３は、既に他の列との間で結合可能な関係にあると定められている列を、選択対象から除外すればよい。そして、特定部３は、ステップＳ６で選択対象から除外した列を、ステップＳ９（図３参照）では、ステップＳ６で選択済みの列として扱えばよい。同様に、特定部３は、ステップＳ１３で選択対象から除外した列を、ステップＳ１６（図４参照）では、ステップＳ１３で選択済みの列として扱えばよい。同様に、特定部３は、ステップＳ１９で選択対象から除外した列を、ステップＳ２２（図４参照）では、ステップＳ１９で選択済みの列として扱えばよい。
【０１０１】
また、第１の実施形態の他の変形例を、図１２に示す。図１に示す構成要素と同様の構成要素については、図１と同一の符号を付し、説明を省略する。
【０１０２】
図１２に示す変形例では、情報提供システム１は、図１に示す各要素に加えて、列種別推定部７を備える。前述の第１の実施形態では、入力部２に入力される個々のテーブルの個々の列には、予め、列の種別（列の意味）が割り当てられている場合を説明した。本変形例では、入力部２に入力される個々のテーブルの個々の列に列の種別は割り当てられていなくてよい。
【０１０３】
列種別推定部７は、入力部２に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加する（割り当てる）。本変形例では、ステップＳ１（図２参照）で入力部２に複数のテーブルが入力されたら、例えば、１回目のステップＳ２の実行前に、列種別推定部７が、入力部２に入力された個々のテーブルの個々の列毎に、列に含まれる属性値に基づいて、列の種別を推定し、その列に、推定した種別を付加すればよい。そして、特定部３は、列種別推定部７によって個々のテーブルの個々の列毎に付加された列の種別を参照することによって、ステップＳ２以降の処理を実行すればよい。
【０１０４】
列種別推定部７が個々の列の種別を、その列に含まれる属性値に基づいて推定する方法は公知の方法でよい。例えば、列種別推定部７は、非特許文献１に記載された列の意味の推定方法、または、特許文献１に記載された列の意味の推定方法で、個々の列の種別を推定してもよい。このとき、列の種別として、少なくとも、「Entity-ID 」、「Time」、「Space 」があるものとする。そして、列種別推定部７は、この３種類の種別以外の種別を推定結果として得た場合には、その種別を、「None」に置き換えればよい。
【０１０５】
列種別推定部７は、例えば、情報提供プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、列種別推定部７、特定部３および表示制御部６として動作すればよい。
【０１０６】
実施形態２．
第１の実施形態の変形例の１つとして、入力される複数のテーブルにおいて、既に定められた、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせが存在していてもよいことを説明した。
【０１０７】
第２の実施形態の情報提供システムは、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者に提示し、さらに、作業者の操作に応じて、そのような組み合わせを追加する。
【０１０８】
図１３は、本発明の第２の実施形態の情報提供システムの例を示すブロック図である。図１に示す構成要素と同様の構成要素については、図１と同一の符号を付し、説明を省略する。第２の実施形態の情報提供システム１は、図１に示す各要素に加えて、情報追加部９を備える。
【０１０９】
第１の実施形態で説明したステップＳ１（図２参照）からステップＳ２４（図５参照）までの動作は、第２の実施形態でも同様である。
【０１１０】
ただし、本実施形態では、表示制御部６は、ステップＳ２４において、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを作業者が追加するためのＧＵＩ（Graphical User Interface）を、特定部３によって特定された個々の組み合わせ（結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせ）とともに表示する。
【０１１１】
情報追加部９は、作業者によるそのＧＵＩの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを受け付け、その組み合わせを記憶部４に記憶させる。
【０１１２】
情報追加部９が記憶部４に新たな組み合わせを記憶させると、表示制御部６は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置５に追加で表示する。
【０１１３】
図１４は、ステップＳ２４で表示されるＧＵＩを含む画面の例を示す模式図である。第２の実施形態では、表示制御部６は、ステップＳ２４で、図１４に例示する画面をディスプレイ装置５に表示する。図１４に示す画面は、プルダウンメニュー５１および決定ボタン５２を含む。プルダウンメニュー５１および決定ボタン５２以外の表示内容は、図１０に例示する表示内容と同様である。ただし、図１４に示す各テーブルの各列は、マウスクリック等の操作により、指定可能である。プルダウンメニュー５１は、作業者が、「Similarity-Join 」、「Temporal-Join 」、「Spatial-Join」等のテーブルの結合方法を指定するために用いられる。
【０１１４】
情報追加部９が、作業者から追加情報を受け付ける動作の例を、図１４を参照して説明する。作業者によって、マウスクリック等の操作で、互いに異なるテーブルに属する２つの列（列のペア）が指定される。さらに、作業者によって、その２つの列の一方が属するテーブルと、その２つの列のもう一方が属するテーブルとの接続方法がプルダウンメニュー５１によって指定される。そして、作業者によって決定ボタン５２がマウスクリックされる。すると、情報追加部９は、指定された２つの列の一方が属するテーブルと、その２つの列のもう一方が属するテーブルとを、結合されるテーブルのペアとして定める。さらに、情報追加部９は、指定された２つの列を、結合可能な関係にある列のペアとして定める。そして、情報追加部９は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、プルダウンメニュー５１によって指定された結合方法との組み合わせを、記憶部４に追加する。
【０１１５】
既に説明したように、情報追加部９が記憶部４に新たな組み合わせを記憶させると、表示制御部６は、その組み合わせも読み込み、その組み合わせに含まれる、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法とを、ディスプレイ装置５に追加で表示する。
【０１１６】
情報追加部９は、例えば、情報提供プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から情報提供プログラムを読み込み、その情報提供プログラムに従って、特定部３、表示制御部６および情報追加部９として動作すればよい。
【０１１７】
第２の実施形態によれば、第１の実施形態と同様の効果が得られる。さらに、第２の実施形態では、作業者が、作業者自身の判断によって、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合方法との組み合わせを、情報提供システム１に追加させることができる。
【０１１８】
また、前述のように、第１の実施形態の種々の変形例は、第２の実施形態にも適用可能である。
【０１１９】
図１５は、本発明の各実施形態の情報提供システム１に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、ディスプレイ装置１００５と、入力デバイス１００６とを備える。
【０１２０】
本発明の各実施形態やその変形例の情報提供システム１は、コンピュータ１０００によって実現される。情報提供システム１の動作は、情報提供プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、その情報提供プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、その情報提供プログラムに従って、上記の各実施形態や各種変形例で説明した処理を実行する。
【０１２１】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【０１２２】
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
【０１２３】
また、各構成要素の一部または全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１２４】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１２５】
次に、本発明の概要を説明する。図１６は、本発明の情報提供システムの概要の例を示すブロック図である。本発明の情報提供システムは、入力部８１と、特定部８２と、出力部８３とを備える。
【０１２６】
入力部８１（例えば、実施形態における入力部２）は、複数のテーブルの入力を受け付ける。
【０１２７】
特定部８２（例えば、実施形態における特定部３）は、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する。
【０１２８】
出力部８３（例えば、実施形態における表示制御部６）は、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを出力する。
【０１２９】
そのような構成により、専門的知識が少ない作業者であっても複数のテーブルを結合する作業を円滑に進められるように、テーブルを結合する作業に有用な情報を作業者に提供することができる。
【０１３０】
また、特定部８２が、個々のテーブルの個々の列の種別に基づいて、結合可能な関係にある列のペアを特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、結合されるテーブルの結合方法を特定する構成であってもよい。
【０１３１】
また、特定部８２が、異なるテーブルに属する列のペアであって、任意のテーブルの１行に対応していることを示す属性値であって主キーとしての性質を備えている属性値からなる列であることを意味する所定の種別を有する列のペアが、第１の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSimilarity-Join であると特定し、異なるテーブルに属する列のペアであって、種別「時間」を有する列のペアが、第２の条件を満たしている場合に、その列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がTemporal-Joinであると特定し、異なるテーブルに属する列のペアであって、種別「場所」を有する列のペアを、結合可能な関係にある列のペアとして特定し、ペアをなす個々の列が属するテーブルのペアが結合されるテーブルのペアであると特定し、その結合されるテーブルの結合方法がSpatial-Joinであると特定する構成であってもよい。
【０１３２】
また、入力部８１に、予め個々の列に列の種別が割り当てられたテーブルが複数、入力されてもよい。
【０１３３】
また、入力部８１に入力された個々のテーブルの個々の列毎に、列の種別を推定する列種別推定部（例えば、列種別推定部７）を備える構成であってもよい。
【０１３４】
また、入力される複数のテーブルで、異なるテーブルに属する列のペアであって、結合可能な関係にあると予め定められている列のペアが存在し、その異なるテーブルの結合方法が予め定められていてもよい。
【０１３５】
また、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とが出力された後に、ユーザの操作に応じて、結合されるテーブルのペアと、結合可能な関係にある列のペアと、結合されるテーブルの結合方法とを追加する情報追加部（例えば、情報追加部９）を備える構成であってもよい。
【０１３６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【０１３７】
本発明は、テーブルを結合する作業に関する情報を作業者に提供する情報提供システムに好適に適用される。
【符号の説明】
【０１３８】
１  情報提供システム
２  入力部
３  特定部
４  記憶部
５  ディスプレイ装置
６  表示制御部
７  列種別推定部
９  情報追加部
【図１】
2020152804.tif 000003
【図２】
2020152804.tif 000004
【図３】
2020152804.tif 000005
【図４】
2020152804.tif 000006
【図５】
2020152804.tif 000007
【図６】
2020152804.tif 000008
【図７】
2020152804.tif 000009
【図８】
2020152804.tif 000010
【図９】
2020152804.tif 000011
【図１０】
2020152804.tif 000012
【図１１】
2020152804.tif 000013
【図１２】
2020152804.tif 000014
【図１３】
2020152804.tif 000015
【図１４】
2020152804.tif 000016
【図１５】
2020152804.tif 000017
【図１６】
2020152804.tif 000018
【国際調査報告】
2020152804.tif 000019
2020152804.tif 000020
2020152804.tif 000021
2020152804.tif 000022