(57)【要約】【課題】データの関連付けの精度を向上させるデータ生成方法、データ生成プログラム及び情報処理装置を提供する。【解決手段】第１の軸を表す参照元データ及び第２の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得する。取得した参照元データの値を用いて参照先データのノードを照合し、照合された複数の照合ノードとの間でエッジを共有する第１のノードの種類を表す第２のノードを特定する。第１のノードと照合ノードとの間の第１エッジのドメインの定義を表す第３のノードを特定する。第２のノード及び第３のノードを基に、参照元データと参照先データとを対応付ける。【選択図】図８
2019200532.tif 000002
【特許請求の範囲】
【請求項１】
第１の軸を表す参照元データ及び第２の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、
取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間で第１エッジを共有する第１のノードの種類を表す第２のノードを特定し、
前記第１のノードと前記照合ノードとの間の前記第１エッジのドメインの定義を表す第３のノードを特定し、
前記第２のノード及び前記第３のノードを基に、前記参照元データと前記参照先データとを対応付ける
ことを特徴とするデータ生成方法。
【請求項２】
前記第２のノード及び前記第３のノード、並びに、前記第１エッジの前記参照元データに対する相関の強度を基に、前記参照元データの値と前記参照先データの値とを対応付けることで、前記参照元データと前記参照先データとを対応付ける
ことを特徴とする請求項１に記載のデータ生成方法。
【請求項３】
前記参照元データは、前記第１の軸上の値の種類を表す項目毎に分類され、
前記第２のノード及び前記第３のノードを基に、各前記項目に対応する前記第１エッジを特定し、前記参照元データの前記第１の軸方向に複数の値を有する行データ毎に、前記項目毎に特定された前記第１エッジを前記照合ノードとの間で共有し、且つ、各前記項目で共通する前記第１のノードを抽出し、抽出した各前記第１のノードと各前記行データとを対応付けることで、前記参照元データと前記参照先データとを対応付ける
ことを特徴とする請求項１又は２に記載のデータ生成方法。
【請求項４】
第１の軸を表す参照元データ及び第２の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、
取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間で第１エッジを共有する第１のノードの種類を表す第２のノードを特定し、
前記第１のノードと前記照合ノードとの間の前記第１エッジのドメインの定義を表す第３のノードを特定し、
前記第２のノード及び前記第３のノードを基に、前記参照元データと前記参照先データとを対応付ける
処理をコンピュータに実行させることを特徴とするデータ生成プログラム。
【請求項５】
第１の軸を表す参照元データ及び第２の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得し、取得した前記参照元データの値を用いて前記参照先データのノードを照合する照合部と、
前記照合部により照合された複数の照合ノードとの間で第１エッジを共有する第１のノードの種類を表す第２のノードを特定し、且つ、前記第１のノードと前記照合ノードとの間の前記第１エッジのドメインの定義を表す第３のノードを特定する特定部と、
前記第２のノード及び前記第３のノードを基に、前記参照元データと前記参照先データとを対応付ける結合部と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ生成方法、データ生成プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
近年、さまざまな知識に関するデータを集め、蓄積し、そして検索することへの関心が高まっている。このようなデータは、何らかのグラフデータモデルで表されると考えられる。このようなグラフデータモデルの一つとして、ＲＤＦ（Resource  Description  Framework）が知られている。
【０００３】
ＲＤＦのデータモデルでは、トリプル（triple）と称される主語（subject）、述語（predicate）及び目的語（object）の３つの要素でリソースにおける関係が表現される。グラフの分野の用語では、主語と述語がノードに相当し、述語がエッジ又はリンクに相当する。すなわち、トリプルは、グラフにおける二つのノードと、それをつなぐエッジに対応する。ＲＤＦでは、このトリプルと呼ばれる主語、述語及び目的語の３つの組が最小単位である。ＲＤＦデータセットは、トリプルの集合である。述語は、属性又はプロパティと呼ばれる場合があり、目的語は属性の値又はプロパティの値と呼ばれる場合がある。
【０００４】
例えば、「富士通、業種、電気機器」で表されるトリプルは、主語が「富士通」であり、述語が「業種」であり、目的語が「電気機器」であり、「富士通の業種は電気機器である」ことをあらわす。ここで、主語及び述語はＵＲＬ（Uniform  Resource  Locator）で表され、目的語はＵＲＬ又は文字列リテラルとも呼ばれる文字列で表される。
【０００５】
ここで、ＣＳＶ（Comma  Separated  Values）などで記述されたテーブルの値に対応するトリプルをＲＤＦデータセットから見つける処理が考えられる。この処理を行うことで、テーブルを用いた処理においてテーブルの情報としては存在せずにＲＤＦデータセットとして存在する情報を利用できるようになる。例えば、企業のオープンデータのＲＤＦデータセットに、銀行が保持する融資先企業の財務情報が登録されたテーブルを結合して、融資の可否を決定する場合などに用いられる。
【０００６】
このようなＲＤＦデータセットとテーブルとの結合を行う場合、従来は以下に示す手順で結合が行われてきた。まず、テーブルの値を利用してクエリを構築し、条件を満たす主語及び述語を特定する。次に、特定した各述語について、テーブルの列毎にスコアを計算する。ここで、スコアとは、各述語がテーブルの列に対応する述語であることの正答らしさを表す値であり、各列において述語が出現する頻度を表す。次に、テーブルの行毎に各列のラベルが述語、値が目的語となる共通の主語を見つけるためのクエリを作成し、条件を満たす主語を特定する。そして、最もスコアの高い述語で照合した結果の方が次にスコアの高い述語で照合した結果よりも多く照合できた場合、それを最終的な結果とする。最もスコアの高い述語で照合した結果の方が次にスコアの高い述語で照合した結果よりも照合できた数が少ない場合、２番目にスコアの高い述語で照合した結果と３番目にスコアの高い述語で照合した結果とを比較する。ある特定のスコアの述語で照合した結果がその次にスコアの高い述語で照合した結果よりも多く照合できるまでこの比較を繰り返す。そして、特定のスコアの述語を最終的な結果とする。
【０００７】
ここで、ＲＤＦデータセットを用いたデータ収集の技術として、複数のリソース間の関連付けを示すＲＤＦ記述の関連付け情報を記憶し、リソースに対する操作に応じて関連付け情報を更新する従来技術がある。また、数値表データにおける数値が入力された入力領域の並びに応じて各数値の属性情報を特定する従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２２１３１２号公報
【特許文献２】特開２０１７−３７４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、グラフデータのデータセットは、様々な種類の物や事及びその間の関係を表す。例えば、グラフデータには、グラフ構造の柔軟性を利用して複数のデータベースを統合したような形で様々な種類のデータが混在するデータセットが存在する。具体的な例としては、グラフデータの１つであるＲＤＦのデータセットには、企業、関連企業、人物、製品及びイベントなどの情報がその関係とともに表現されたものもある。
【００１０】
テーブルの値とＲＤＦデータセットにおける目的語との照合による主語及び述語の検出処理では、その値に関係するＲＤＦデータセットに含まれる様々な種類の情報と照合される。例えば、テーブルデータの各行が企業に関する情報の場合、テーブルデータの値をＲＤＦデータセットと照合すると、ＲＤＦデータセット中の企業以外にも企業に関する人物や製品なども照合される。照合結果において、テーブルデータの行の情報の種類とＲＤＦデータの種類が同じ場合は答えの確からしさは高くなるが、種類が異なる場合には答えの確からしさが低くなる。そのため、テーブルデータ上の情報に対するＲＤＦデータセット内の情報の単なる出現頻度を表すスコアでは上述の照合においてテーブルの値に対する正しい主語及び述語を導き出せないおそれがある。
【００１１】
また、従来のスコア計算では、照合結果のＲＤＦデータセットにおいて列の値と数多く対応する述語がその列に対応する述語として確からしいという仮説の上で計算が行われる。すなわち、この仮説を表現するスコアを用いて各列に対応する述語が決定される。しかし、照合結果には上述したように様々な述語が混在する。そのため、テーブルデータにおける行の情報の種類とＲＦＤデータセットの種類が異なる述語のスコアが高くなるおそれがある。このことから、上述した仮説の下では正しい述語を導くことは困難である。例えば、テーブルデータで企業の名称を表現する列に対応するＲＤＦデータセットにおける述語は実際には「名称」である。しかし、企業の名称の照合を行う場合に、異なる種類のＲＤＦデータセットとの照合の結果、人物に関連する「所属」のスコアが高くなるといった事態が発生するおそれがある。
【００１２】
また、リソースに対する操作に応じて関連付け情報を更新する従来技術を用いても、異なる種類のＲＤＦデータセットとの照合による述語の選択ミスや従来のスコアの不正確性による述語の選択ミスについては考慮されていない。したがって、この従来技術を用いてもデータの関連付けの確度を向上させることは困難である。また、数値表データにおける入力領域の並びに応じて各数値の属性情報を特定する従来技術は、異なるグループのデータ同士の関連付けへの適応は考慮されておらず、データの関連付けの確度を向上させることは困難である。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、データの関連付けの精度を向上させるデータ生成方法、データ生成プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置の一つの態様において、第１の軸を表す参照元データ及び第２の軸を表すとともにノードとエッジとで構成されるグラフ構造を有する参照先データを取得する。取得した前記参照元データの値を用いて前記参照先データのノードを照合し、照合された複数の照合ノードとの間でエッジを共有する第１のノードの種類を表す第２のノードを特定する。前記第１のノードと前記照合ノードとの間の第１エッジのドメインの定義を表す第３のノードを特定する。前記第２のノード及び前記第３のノードを基に、前記参照元データと前記参照先データとを対応付ける。
【発明の効果】
【００１５】
１つの側面では、本発明は、データの関連付けの精度を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、情報処理装置のブロック図である。
【図２】図２は、テーブル型のデータの一例を表す図である。
【図３】図３は、ＲＤＦデータの一例を表す図である。
【図４】図４は、テーブルの値を用いた照合処理を表す図である。
【図５】図５は、主語のタイプの取得結果を表す図である。
【図６】図６は、述語のドメインの取得結果を表す図である。
【図７】図７は、各行に関連する主語の抽出処理を表す図である。
【図８】図８は、データの結合処理全体のフローチャートである。
【図９】図９は、クエリの構築及びテーブルの値を用いた照合処理のフローチャートである。
【図１０】図１０は、第１照合部により構築されるクエリ及び照合結果の一例を表す図である。
【図１１】図１１は、追加情報の取得処理のフローチャートである。
【図１２】図１２は、追加情報取得のクエリ及び追加情報の取得結果を表す図である。
【図１３】図１３は、述語のスコア計算処理のフローチャートである。
【図１４】図１４は、述語のスコアの算出結果の一例を表す図である。
【図１５】図１５は、クエリの構築並びに述語及び目的語の照合処理のフローチャートである。
【図１６】図１６は、情報処理装置のハードウェア構成の一例を表す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するデータ生成方法、データ生成プログラム及び情報処理装置が限定されるものではない。
【実施例】
【００１８】
図１は、情報処理装置のブロック図である。本実施例に係る情報処理装置１は、図１に示すように、ＲＤＦデータ格納部１１、ＳＰＡＲＱＬ処理部１２、第１照合部１３、追加情報取得部１４、中間データ用ＤＢ１５、スコア計算部１６、第２照合部１７、一時格納部１８及び結果管理部１９を有する。
【００１９】
さらに、情報処理装置１は、テーブル２及びＲＤＦデータセット３にアクセスできる。テーブル２は、行列構造を有する。そして、テーブル２の列毎に項目が割り当てられ、各列に並んだ値は項目ごとに分類される。さらに、テーブル２の行毎に対応する値が並べられる。テーブル２は、例えば、ＣＳＶファイルなどである。
【００２０】
図２は、テーブル型のデータの一例を表す図である。テーブル２は、例えば、図２に示す形式のデータを保持する。テーブル２は、各列が、例えば、名称、所在地及び創業年などの項目を表す。そして、テーブル２では、項目毎に各項目に応じた値が記載される。そして、テーブル２は、行毎に各項目の値が対応する。このテーブル２が、「参照元データ」の一例にあたる。そして、テーブルの各列に対応する項目で表されるデータの並び、すなわち各行におけるデータの並びが「第１の軸」の一例にあたる。
【００２１】
ＲＤＦデータセット３は、ノード間をエッジで結んで関係を表すグラフ構造を有する。エッジはあるノードから他のノードへと延びる。主語、述語及び目的語で表されるトリプルでは、エッジの出発点のノードが主語を表す。また、エッジが述語を表す。そして、エッジの到達点のノードがエッジの出発点のノードである主語からエッジによって導かれる目的語である。このＲＤＦデータセット３が、「参照先データ」の一例にあたる。そして、グラフ構造により表されるデータの並びが「第２の軸」にあたる。
【００２２】
図３は、ＲＤＦデータの一例を表す図である。ＲＤＦデータセット３は、図３の場合、＿：ａ、＿：ａ１、＿：ａ２、＿：ｂ及び＿：ｃといった主語を有する。主語は、ＵＲＬで表される。ここでは、アンダーバー、コロン及び文字の形式で表示された情報は、そこで表示された文字に対応するＵＲＬを表す。また、ＲＤＦデータセット３は、図３の場合、＜名称＞、＜所在地＞、＜業種＞、＜主要株主＞及び＜開設＞といった述語を有する。述語も、ＵＲＬで表される。ここでは、＜＞で囲われた文字は、その文字に対応するＵＲＬを表す。さらに、ＲＤＦデータセット３は、図３の場合、“Ａ社”、“Ａ市”、“製造業”といった目的語を有する。目的語は、ＵＲＬ又はリテラル（文字列）である。ここでは、目的語が文字列で表されるとし、ダブルクォーテーションマークで囲われた文字はその文字列そのものを表す。
【００２３】
さらに、ＲＤＦデータには、タイプを表す述語が存在する。タイプとは、特定の主語又は述語の種類である。タイプを表す述語を有するトリプルの場合、目的語は主語のタイプを表す情報である。また、ＲＤＦデータには、ドメインを表す述語が存在する。ドメインとは、特定の述語が取りうる主語のタイプの制約である。例えば、特定の述語の定義のドメインとして「ＸＸＸ」と記述されている場合、その特定の述語の主語のタイプは「ＸＸＸ」である。また、ドメインが記載されていない場合、その述語の主語のタイプに制限はない。ドメインを表す述語を有するトリプルの場合、目的語はそのリテラルの主語が述語となった場合のドメインを表す情報である。
【００２４】
ＲＤＦデータ格納部１１は、記憶装置を有する。そして、ＲＤＦデータ格納部１１は、ＲＤＦデータセット３からＲＤＦデータを取得し格納する。以下では、ＲＤＦデータ格納部１１に格納されたＲＤＦデータの集合をＲＤＦストアとよぶ。
【００２５】
ＳＰＡＲＱＬ処理部１２は、ＲＤＦデータ格納部１１が保持するＲＤＦストアから指定された値を目的語とする主語及び述語の取得を指示するクエリの入力を第１照合部１３から受ける。そして、ＳＰＡＲＱＬ処理部１２は、第１照合部１３から受信したクエリにしたがい、ＲＤＦデータ格納部１１に格納されたＲＤＦストアから指定された値を目的語とする主語又は述語を表すＲＤＦデータを取得する。ここで、ＳＰＡＲＱＬ処理部１２は、ＲＤＦデータにおける主語又は述語を取得する場合、値としてＵＲＬを取得する。また、ＳＰＡＲＱＬ処理部１２は、ＲＤＦデータにおける目的語を取得する場合、値としてリテラルを取得する。そして、ＳＰＡＲＱＬ処理部１２は、取得した値をクエリである出力元の第１照合部１３へ出力する。
【００２６】
また、ＳＰＡＲＱＬ処理部１２は、ＲＤＦデータ格納部１１が保持するＲＤＦストアから指定された主語のタイプの情報又は指定された述語のドメインの情報の取得を指示するクエリの入力を追加情報取得部１４から受ける。そして、ＳＰＡＲＱＬ処理部１２は、追加情報取得部１４から受信したクエリにしたがい、ＲＤＦデータ格納部１１に格納されたＲＤＦストアからタイプの情報又はドメインの情報にあたるＲＤＦデータの値を取得する。そして、ＳＰＡＲＱＬ処理部１２は、取得した値をクエリの出力元である追加情報取得部１４へ出力する。
【００２７】
第１照合部１３は、テーブル２の各値を取得する。そして、第１照合部１３は、ＲＤＦストアに含まれるデータとテーブル２の各値を照合する。
【００２８】
具体的には、第１照合部１３は、取得した各値を目的語とする主語及び述語を取得するクエリを作成する。図４は、テーブルの値を用いた照合処理を表す図である。例えば、図４に示すテーブル２を有する場合で説明する。この場合、テーブル２の値として、富士通株式会社、神奈川県川崎市及び１９３５という値がある。そこで、第１照合部１３は、富士通株式会社、神奈川県川崎市又は１９３５を目的語とする主語と述語を取得するためのクエリ２１を作成する。クエリ２１における「？ｓ」は、任意の主語を表す。また、「？ｐ１、？ｐ２、？ｐ３」は、それぞれ任意の述語を表す。さらに、これらの文字列を目的語とする主語及び述語が存在しない場合に無視をするために、クエリ２１では、ｏｐｔｉｏｎａｌ句が用いられる。
【００２９】
そして、第１照合部１３は、作成したクエリをＳＰＡＲＱＬ処理部１２へ出力し、クエリで指定した語を目的語とする主語及び述語の取得を要求する。その後、第１照合部１３は、クエリで指定した語を目的語とする主語及び述語の入力をＳＰＡＲＱＬ処理部１２から受ける。この、第１照合部１３によるテーブル２の値を目的語とする主語及び述語の抽出が、テーブル２の値を用いたＲＤＦデータセット３の照合にあたる。そして、テーブル２の値に対応する主語及び述語が抽出できた場合を、照合ができたという。この照合によりテーブル２の値と照合されたＲＤＦデータセットにおける目的語が、「照合ノード」の一例にあたる。
【００３０】
例えば、第１照合部１３は、図４に示すクエリ２１による取得要求の結果としてＲＤＦデータ２２を取得する。例えば、第１照合部１３は、富士通株式会社及び神奈川県川崎市という目的語に対して、名称及び所在地を述語とする主語「＿：１」を取得する。この場合、「＿：１」は、ＲＤＦデータ２２の補足で示した富士通株式会社を表すＵＲＬである。また、第１照合部１３は、富士通株式会社及び神奈川県川崎市という目的語に対して、名称及び所在地を述語とする主語「＿：２」を取得する。この場合、「＿：２」は、ＲＤＦデータ２２の補足で示した川崎フロンターレを表すＵＲＬである。また、第１照合部１３は、１９３５という目的語に対して、開設を述語とする主語「＿：３」を取得する。この場合、「＿：３」は、ＲＤＦデータ２２の補足で示した築地市場を表すＵＲＬである。
【００３１】
第１照合部１３は、取得した主語及び述語を表すデータを中間データ用ＤＢ（Data  Base）１５に格納する。この取得した主語が、「第１のノード」にあたる。そして、取得した述語が、「第１エッジ」の一例にあたる。さらに、この第１照合部が、「照合部」の一例にあたる。
【００３２】
追加情報取得部１４は、中間データ用ＤＢ１５に格納された全ての主語を取得し、重複を取り除く。次に、追加情報取得部１４は、重複を取り除いた主語から１つを選択する。次に、追加情報取得部１４は、選択した主語のタイプを取得するクエリを作成する。例えば、追加情報取得部１４は、選択した主語をそのまま主語とし、主語のタイプを取得する述語を用いることで、目的語として選択した主語のタイプを目的語として取得するクエリを作成できる。
【００３３】
そして、追加情報取得部１４は、作成したクエリをＳＰＡＲＱＬ処理部１２へ出力し、選択した主語のタイプの取得を要求する。その後、追加情報取得部１４は、選択した主語のタイプの入力をＳＰＡＲＱＬ処理部１２から受ける。次に、追加情報取得部１４は、取得した主語のタイプを選択した主語に対応付けて中間データ用ＤＢ１５に格納する。追加情報取得部１４は、重複を取り除いた主語から１つずつ順次選択して、タイプの取得及び中間データ用ＤＢ１５への格納を、重複を取り除いた主語全てについて繰り返す。
【００３４】
図５は、主語のタイプの取得結果を表す図である。例えば、追加情報取得部１４は、主語である「＿：１」のタイプとして、タイプ３１及び３２を取得する。タイプ３１は、組織を表すＵＲＬであり、タイプ３２は、会社を表すＵＲＬである。そして、追加情報取得部１４は、「＿：１」のタイプとしてタイプ３１及び３２を中間データ用ＤＢ１５に格納する。また、追加情報取得部１４は、主語である「＿：２」のタイプとして、タイプ３３を取得する。タイプ３３は、組織を表すＵＲＬである。そして、追加情報取得部１４は、「＿：２」のタイプとしてタイプ３３２を中間データ用ＤＢ１５に格納する。さらに、追加情報取得部１４は、主語である「＿：３」のタイプとして、タイプ３４を取得する。タイプ３４は、市場を表すＵＲＬである。そして、追加情報取得部１４は、「＿：３」のタイプとしてタイプ３３を中間データ用ＤＢ１５に格納する。この主語のタイプが、「第２のノード」の一例にあたる。
【００３５】
次に、追加情報取得部１４は、中間データ用ＤＢ１５に格納された全ての述語を取得し、重複を取り除く。次に、追加情報取得部１４は、重複を取り除いた述語から１つを選択する。次に、追加情報取得部１４は、選択した述語のドメインを取得するクエリを作成する。例えば、追加情報取得部１４は、選択した述語を主語とし、ｒｄｆｓ：ｄｏｍａｉｎというコマンドを述語とすることで、目的語として選択した述語のドメインを目的語として取得するクエリを作成できる。
【００３６】
そして、追加情報取得部１４は、作成したクエリをＳＰＡＲＱＬ処理部１２へ出力し、選択した述語のドメインの取得を要求する。その後、追加情報取得部１４は、選択した述語のドメインの入力をＳＰＡＲＱＬ処理部１２から受ける。次に、追加情報取得部１４は、取得した述語のドメインを選択した述語に対応付けて中間データ用ＤＢ１５に格納する。追加情報取得部１４は、重複を取り除いた述語から１つずつ順次選択して、ドメインの取得及び中間データ用ＤＢ１５への格納を、重複を取り除いた主語全てについて繰り返す。
【００３７】
図６は、述語のドメインの取得結果を表す図である。例えば、追加情報取得部１４は、述語である主要株主のドメインとして、ドメイン４１及び４２を取得する。ドメイン４１は、組織を表すＵＲＬであり、ドメイン４２は、会社を表すＵＲＬである。そして、追加情報取得部１４は、主要株主のドメインとしてドメイン４１及び４２を中間データ用ＤＢ１５に格納する。また、追加情報取得部１４は、述語である所在地のドメインとして、ドメイン４３及び４４を取得する。ドメイン４３は、組織を表すＵＲＬであり、ドメイン４４は、会社を表すＵＲＬである。そして、追加情報取得部１４は、所在地のドメインとしてドメイン４３及び４４を中間データ用ＤＢ１５に格納する。この述語のドメインが、「第３のノード」の一例にあたる。また、この追加情報取得部１４が、「特定部」の一例にあたる。
【００３８】
中間データ用ＤＢ１５は、テーブル２とＲＤＦデータとを対応付ける処理の中間データを格納するためのデータベースである。中間データ用ＤＢ１５は、予め作成され情報処理装置１に格納されてもよいし、テーブル２とＲＤＦデータとを対応付ける処理の開始時に、情報処理装置１により生成されてもよい。中間データ用ＤＢ１５は、第１照合部１３が取得したテーブル２の各値を目的語とする主語及び述語、並びに、各主語のタイプ及び各述語のドメインが格納される。
【００３９】
スコア計算部１６は、中間データ用ＤＢ１５に格納された主語のタイプとして用いられるタイプを、重複を除いて取得する。以下では、ここで取得されたタイプを「制約タイプ」という。そして、スコア計算部１６は、各制約タイプのそれぞれのスコアを算出する。このスコアは、各制約タイプが照合においてどれだけ有力な候補となりうるかを示す値である。以下に、スコア計算部１６による各制約タイプのスコアの算出の詳細を説明する。
【００４０】
まず、スコア計算部１６は、テーブル２の列数及び行数を取得する。また、スコア計算部１６は、ＲＤＦデータ格納部１１に格納されたＲＤＦストアを参照し、全てのＲＤＦデータの中に含まれる異なる主語の数を表す主語の異なり数を算出する。また、スコア計算部１６は、ＲＤＦストアに含まれる全てのＲＤＦデータにおいて、各制約タイプを有する主語の異なり数を取得する。また、スコア計算部１６は、テーブル２において主語のタイプが各制約タイプであるとの制約のもとで照合できた列の最大数を算出する。
【００４１】
そして、スコア計算部１６は、次の数式（１）を用いて各制約タイプのスコアを算出する。ここでは、制約タイプの中から選択した制約タイプをタイプｔと表す。
【００４２】
【数１】
2019200532.tif 000003
【００４３】
ここで、Ｕｔは、タイプｔのスコアである。Ｃはテーブル２の列数である。Ｒは、テーブル２の行数である。Ｎは、ＲＤＦストアに含まれる全てのＲＤＦデータにおける主語の異なり数である。ｎｔは、ＲＤＦストアに含まれる全てのＲＤＦデータにおいて、タイプｔをタイプとして持つ主語の異なり数である。ｃｔ，ｒは、主語がタイプｔであるとの制約の下で照合できた列の最大数である。
【００４４】
ここで、数式（１）において、Ｎ／ｎｔは、頻繁に出現するタイプは抽象的なタイプであると考え、スコアを小さくするために用いられる。また、ｃｔ，ｒ／Ｃは、より多くの列を満たすタイプのスコアを大きくするために用いられる。
【００４５】
次に、スコア計算部１６は、全ての述語を、重複を除いて中間データ用ＤＢ１５から取得する。さらに、スコア計算部１６は、各述語のドメインを中間データ用ＤＢ１５から取得する。そして、スコア計算部１６は、算出した各制約タイプのスコアを用いて、次の数式（２）により各列に対応する述語のスコアを算出する。述語のスコアとは、ある列に特定の述語を対応させた場合の確からしさを表す。
【００４６】
【数２】
2019200532.tif 000004
【００４７】
Ｔは、制約タイプの種類の数である。Ｓｐ，ｃは、述語ｐで列ｃのスコアである。また、ｆｔ，ｐ，ｃ，ｒは、以下の条件を満たす関数である。すなわち、行ｒの列ｃに対応するタイプｔの主語と述語ｐが存在し、述語ｐのドメインの制約を主語のタイプｔが満たしている場合、ｆｔ，ｐ，ｃ，ｒは１である。また、行ｒの列ｃに対応するタイプｔの主語と述語ｐは存在するが、述語ｐのドメインの制約を主語のタイプｔが満たさない場合、ｆｔ，ｐ，ｃ，ｒは０．５である。また、行ｒの列ｃに対応するタイプｔの主語と述語ｐは存在しないが、行ｒに対応するタイプｔの主語が存在し、述語ｐのドメインの制約を主語のタイプｔが満たさない場合、ｆｔ，ｐ，ｃ，ｒは０．５である。以上の上限以外の場合、ｆｔ，ｐ，ｃ，ｒは０である。ｆｔ，ｐ，ｃ，ｒは、特定の述語がドメインの制約をどの程度満たしているかを表す。
【００４８】
その後、スコア計算部１６は、算出した各列に対応する述語のスコアを第２照合部１７へ出力する。このスコア計算部１６により算出された述語のスコアが、「相関の強度」にあたる。
【００４９】
第２照合部１７は、テーブル２の各列に対応する述語のスコアの入力をスコア計算部１６から受ける。第２照合部１７は、テーブル２の列の中から１列を選択する。次に、第２照合部１７は、その項目の列における最もスコアの高い述語と２番目にスコアの高い述語を特定する。この最もスコアの高い述語と２番目にスコアの高い述語が、その列を表す述語の最初の候補となる。そして、第２照合部１７は、最もスコアの高い述語を述語とし、選択した列の各値が目的語となる主語を取得するクエリを作成する。次に、第２照合部１７は、作成したクエリをＳＰＡＲＱＬ処理部１２へ出力し、主語の取得を要求する。その後、第２照合部１７は、最もスコアの高い述語を述語とし、選択した列の各値が目的語となる主語の入力をＳＰＡＲＱＬ処理部１２から受ける。同様にして、第２照合部１７は、２番目にスコアの高い述語を述語とし、選択した列の各値が目的語となる主語をＳＰＡＲＱＬ処理部１２から取得する。
【００５０】
この、第２照合部１７による目的語及び述語に対応する主語の抽出が、テーブル２の値及び選択した目的語による照合にあたる。そして、照合に用いた目的語及び述語に対応する主語が抽出できた場合を、照合ができたという。
【００５１】
そして、最もスコアの高い述語で照合した結果の方が、２番目にスコアの高い述語で照合した結果よりも多く照合できた場合、第２照合部１７は、最もスコアの高い述語が、選択した列を表すと決定する。この場合、第２照合部１７は、決定した結果を一時格納部１８へ格納する。
【００５２】
これに対して、最もスコアの高い述語で照合した結果の方が、２番目にスコアの高い述語で照合した結果よりも少なかった場合、第２照合部１７は、３番目にスコアの高い述語で選択した列について照合を行う。そして、２番目にスコアの高い述語で照合した結果の方が、３番目にスコアの高い述語で照合した結果よりも多く照合できた場合、第２照合部１７は、２番目に高い述語が、選択した列を表すと決定する。このように、第２照合部１７は、特定のスコアの述語で照合した結果が次にスコアの高い述語で照合した結果よりも多く照合できるまで、照合及び比較の処理を繰り返す。
【００５３】
第２照合部１７は、列毎に対応する述語の決定結果の一時格納部１８への格納を繰りかえす。そして、第２照合部１７は、最終的に全ての列について対応する述語の決定結果を一時格納部１８へ格納する。ここで、テーブル２の各列が「項目」の一例にあたる。そして、各列について対応する述語の特定が、「各項目に対応する第１エッジの特定」の一例にあたる。
【００５４】
次に、第２照合部１７は、一時格納部１８に格納された各列に対応する述語の情報を用いて、各列に対応する述語とし各列の各値を目的語とする主語を取得するクエリを列毎に作成する。その後、第２照合部１７は、作成したクエリをＳＰＡＲＱＬ処理部１２へ出力する。これにより、第２照合部１７は、行毎に、各列に対応する述語を述語とし各列の各値を目的語とする各列に共通の主語の取得を要求する。その後、第２照合部１７は、行毎の、各列の各値に対応する各列に共通する主語をＳＰＡＲＱＬ処理部１２から取得する。この主語の取得が、「項目毎に特定された第１エッジを照合ノードとの間で共有し、且つ、各項目で共通する第１のノードの抽出」の一例にあたる。
【００５５】
そして、第２照合部１７は、各列の各値に対応する各列に共通の主語の情報及び一時格納部１８に格納された各列に対応する述語の情報を結果管理部１９へ出力する。この行毎の各列の各値に対応する各列に共通の主語が、各行の関連情報と考えられる。
【００５６】
この第２照合部１８が、「特定部」の一例にあたる。また、テーブル２の各行が、「行データ」の一例にあたる。そして、このテーブル２の各行とＲＤＦデータである関連情報との対応付けが、「抽出した各第１のノードと各前記行データとの対応付け」及び「参照元データと参照先データとの対応付け」の一例にあたる。
【００５７】
図７は、各行に関連する主語の抽出処理を表す図である。ここでは、テーブル２の１行目を表す述語が＜名称＞であり、２行目を表す述語が＜所在地＞であり、３行目を表す述語が＜創業年＞であると、第２照合部１７が決定した場合で説明する。第２照合部１７は、テーブル２の１行目について、１列目では述語が＜名称＞であり目的語が富士通株式会社となり、２列目では述語が＜所在地＞であり目的語が神奈川県川崎市となり、３列目では述語が＜創業年＞であり目的語が１９３５となる各行共通の主語を取得するクエリ７１を作成する。この場合、これらを目的語及び述語とする主語が存在しない場合に無視をするために、クエリ７１では、ｏｐｔｉｏｎａｌ句が用いられる。そして、第２照合部１７は、作成したクエリ７１を用いてＳＰＡＲＱＬ処理部１２に主語の取得を要求する。その結果、第２照合部１７は、ＲＤＦデータ７２で表されるような、＜名称＞を述語の場合に富士通株式会社を目的語とし、且つ＜所在地＞が述語の場合に神奈川県川崎市を目的語とする主語として「＿：ｆ」を抽出する。ここで、ＲＤＦデータ７２では、「＿：ｆ」は、述語を＜業種＞とし目的語を電気機器ともするが、これは、照合の対象ではなくＲＤＦデータセット３に存在する情報である。
【００５８】
結果管理部１９は、各列の各値に対応する主語の情報及び一時格納部１８に格納された各列に対応する述語の情報の入力を第２照合部１７から受ける。そして、結果管理部１９は、各列の各値に対応する主語の情報及び一時格納部１８に格納された各列に対応する述語の情報をテーブル２の各行及び各列の関連情報として記憶する。この関連情報により、テーブル２のデータとＲＤＦデータセット３のデータが結合される。例えば、テーブル２の行を検索する場合に、その行に対応する関連情報及びその関連情報に紐付けられたＲＤＦデータセット３の値が取得される。このように、情報処理装置１によるテーブル２の各行とＲＤＦデータである関連情報との対応づけにより、テーブルデータの値に対応する適切なトリプルをＲＤＦデータの中から確実に検出することができる。すなわち、この対応付けを用いることで、テーブルの情報に無いＲＤＦデータセットの情報を有効に利用することが可能となる。
【００５９】
また、結果管理部１９は、テーブル２を用いて処理を行う他の装置へこの記憶した情報を出力し、他の装置がこの関連情報を用いて処理を行ってもよい。さらに、結果管理部１９は、関連情報をモニタなどの出力装置に出力させて利用者に関連情報と通知してもよい。
【００６０】
次に、図８を参照して、情報処理装置１によるデータの結合処理全体の流れについて説明する。図８は、データの結合処理全体のフローチャートである。
【００６１】
情報処理装置１の管理者は、テーブル２、中間データを保持するためのＤＢである中間データ用ＤＢ１５及び照合結果を格納する一時領域である一時格納部１８を用意する。また、管理者は、図示しない入力装置を用いてＲＤＦデータセット３からＲＤＦデータをロードして情報処理装置１のＲＤＦデータ格納部１１に格納することで、ＲＤＦストアを用意する（ステップＳ１）。
【００６２】
次に、第１照合部１３は、テーブル２の値を目的語とする主語及び述語を取得するクエリを構築し、テーブル２の値を用いたＲＤＦデータの照合を行う（ステップＳ２）。
【００６３】
次に、追加情報取得部１４は、主語のタイプ及び述語のドメインを追加情報として取得する（ステップＳ３）。
【００６４】
次に、スコア計算部１６は、各列に対する述語のスコアを計算する（ステップＳ４）。
【００６５】
次に、第２照合部１７は、列毎にスコアにしたがって述語を選択し、選択した述語によりテーブル２の各列の値が目的語となる主語を取得するクエリを構築し、述語及び目的語の照合を行い、照合結果を用いて各行及び各列の関連情報を抽出する（ステップＳ５）。
【００６６】
その後、結果管理部１９は、第２照合部１７により抽出された各行及び各列の関連情報の保管、他の装置への送信、及び、利用者への通知を行う（ステップＳ６）。
【００６７】
次に、図９及び１０を参照して、第１照合部１３によるクエリの構築及びテーブル２の値を用いた照合処理の流れについて説明する。図９は、クエリの構築及びテーブルの値を用いた照合処理のフローチャートである。図９で示した処理は、図８におけるステップＳ２において実行される処理の一例にあたる。また、図１０は、第１照合部により構築されるクエリ及び照合結果の一例を表す図である。ここでは、第１照合部１３が図１０に示すテーブル２及びＲＤＦデータ２３を用いて照合を行う場合で説明する。
【００６８】
第１照合部１３は、テーブル２における未選択の行を１行選択する（ステップＳ１０１）。
【００６９】
次に、第１照合部１３は、選択した行の各値を読み込む（ステップＳ１０２）。
【００７０】
次に、第１照合部１３は、読み込んだ行の各値を用いて、各値を目的語とする主語及び述語を取得するためのクエリを構築する（ステップＳ１０３）。例えば、第１照合部１３は、図１０に示すテーブル２の１行目の各値を目的語とする主語及び述語を取得するためのクエリ２４を構築する。クエリ２４は、Ａ社、Ａ市及び１９３５のそれぞれを目的語とする主語及び述語を取得するためのクエリである。クエリ２４では、指定した文字列を目的語とする主語及び述語が存在しない場合に無視をするために、ｏｐｔｉｏｎａｌ句が用いられる。
【００７１】
次に、第１照合部１３は、構築したクエリをＳＰＡＲＱＬ処理部１２へ出力する。その後、第１照合部１３は、ＲＤＦデータ格納部１１に格納されたＲＤＦストアからデータをＳＰＡＲＱＬ処理部１２を介して取得する（ステップＳ１０４）。例えば、第１照合部１３は、クエリ２４の応答として図１０のデータ２５を取得する。具体的には、第１照合部１３は、Ａ社を目的語とする、主語及び述語として「＿：ａ」及び＜名称＞を取得する。他にも、第１照合部１３は、Ａ社を目的語とする、主語及び述語として「＿：ａ１」及び＜主要株主＞を取得する。また、第１照合部１３は、Ａ市を目的語とする、主語及び述語として「＿：ａ」及び＜所在地＞を取得する。また、第１照合部１３は、１９３５を目的語とする、主語及び述語として「＿：ａ２」及び＜開設＞を取得する。
【００７２】
次に、第１照合部１３は、取得したデータを中間データ用ＤＢ１５に格納する（ステップＳ１０５）。例えば、第１照合部１３は、データ２５を中間データ用ＤＢ１５に格納する。
【００７３】
その後、第１照合部１３は、テーブル２における全ての行の選択が完了したか否かを判定する（ステップＳ１０６）。選択していない行が残っている場合（ステップＳ１０６：否定）、第１照合部１３は、ステップＳ１０１へ戻る。
【００７４】
これに対して、全ての行の選択が完了した場合（ステップＳ１０６：肯定）、第１照合部１３は、照合処理を終了する。
【００７５】
次に、図１１及び１２を参照して、追加情報取得部１４による追加情報の取得処理の流れについて説明する。図１１は、追加情報の取得処理のフローチャートである。図１１は、図８におけるステップＳ３において実行される処理の一例にあたる。図１２は、追加情報取得のクエリ及び追加情報の取得結果を表す図である。ここで、図１２に示すデータ２５が中間データ用ＤＢ１５に格納されている場合で説明する。
【００７６】
追加情報取得部１４は、中間データ用ＤＢ１５における主語の重複を取り除く（ステップＳ２０２）。例えば、追加情報取得部１４は、図１２のデータ２５では１行目の主語と２行目の主語とが「＿：ａ」であり重複する。そこで、追加情報取得部１４は、主語として「＿：ａ」を１つ残す。すなわち、主語は、「＿：ａ」、「＿：ａ１」及び「＿：ａ２」の３つになる。
【００７７】
次に、追加情報取得部１４は、重複を除いた主語の中から未選択の主語を１つ選択する（ステップＳ２０３）。
【００７８】
次に、追加情報取得部１４は、選択した主語のタイプを取得するクエリを構築する（ステップＳ２０４）。例えば、追加情報取得部１４は、図１２におけるクエリ３５を構築する。クエリ３５は、主語である「＿：ａ」のタイプを取得するためのクエリである。ここで、クエリ３５における述語ａは、タイプを取得するための述語である。
【００７９】
次に、追加情報取得部１４は、構築したクエリをＳＰＡＲＱＬ処理部１２へ出力して、選択した主語のタイプをＳＰＡＲＱＬ処理部１２から取得する（ステップＳ２０５）。例えば、追加情報取得部１４は、データ２５の各主語のタイプとしてデータ５０の３〜７行目までの目的語を各主語のタイプとして取得する。ここでは、データ５０において値が最初に格納されている行を０行とした。追加情報取得部１４は、１つの主語に対して複数のタイプを取得する場合もある。
【００８０】
次に、追加情報取得部１４は、取得したタイプの情報を中間データ用ＤＢ１５に格納する（ステップＳ２０６）。
【００８１】
その後、追加情報取得部１４は、中間データ用ＤＢ１５に格納された全ての主語のタイプの取得が完了したか否かを判定する（ステップＳ２０７）。タイプの取得が完了していない主語が残っている場合（ステップＳ２０７：否定）、追加情報取得部１４は、ステップＳ２０３へ戻る。
【００８２】
これに対して、全ての主語のタイプの取得が完了した場合（ステップＳ２０７：肯定）、追加情報取得部１４は、中間データ用ＤＢ１５における述語の重複を取り除く（ステップＳ２０８）。例えば、追加情報取得部１４は、図１２のデータ２５では述語の重複が無い。そこで、追加情報取得部１４は、重複を除いた述語として、＜名称＞、＜所在地＞、＜主要株主＞及び＜開設＞の４つを取得する。
【００８３】
次に、追加情報取得部１４は、重複を除いた述語の中から未選択の述語を１つ選択する（ステップＳ２０９）。
【００８４】
次に、追加情報取得部１４は、選択した述語のドメインを取得するクエリを構築する（ステップＳ２１０）。例えば、追加情報取得部１４は、図１２におけるクエリ４５を構築する。クエリ４５は、述語である＜所在地＞のドメインを取得するためのクエリである。ここで、ｒｄｆｓ：ｄｏｍａｉｎは、主語のドメインを取得するための述語である。
【００８５】
次に、追加情報取得部１４は、構築したクエリをＳＰＡＲＱＬ処理部１２へ出力して、選択した述語のドメインをＳＰＡＲＱＬ処理部１２から取得する（ステップＳ２１１）。例えば、追加情報取得部１４は、データ２５の各主語のタイプとしてデータ５０の８〜１２行目までの目的語を各述語のドメインとして取得する。追加情報取得部１４は、１つの述語に対して複数のドメインを取得する場合もある。
【００８６】
次に、追加情報取得部１４は、取得したドメインの情報を中間データ用ＤＢ１５に格納する（ステップＳ２１２）。
【００８７】
その後、追加情報取得部１４は、中間データ用ＤＢ１５に格納された全ての述語のドメインの取得が完了したか否かを判定する（ステップＳ２１３）。ドメインの取得が完了していない述語が残っている場合（ステップＳ２１３：否定）、追加情報取得部１４は、ステップＳ２０９へ戻る。
【００８８】
これに対して、全ての述語のドメインの取得が完了した場合（ステップＳ２１３：肯定）、追加情報取得部１４は、追加情報の取得処理を終了する。この場合、中間データ用ＤＢ１５には、データ５０が格納される。ここで、データ５０では、主語とタイプの関係及び述語とドメインの関係をトリプルの形式で格納したが、格納方法はこれに限らない。
【００８９】
次に、図１３及び１４を参照して、スコア計算部１６による述語のスコア計算処理の流れについて説明する。図１３は、述語のスコア計算処理のフローチャートである。図１３は、図８におけるステップＳ４において実行される処理の一例にあたる。図１４は、述語のスコアの算出結果の一例を表す図である。
【００９０】
スコア計算部１６は、数式（１）を用いて各タイプのスコアを算出する（ステップＳ３０１）。
【００９１】
次に、スコア計算部１６は、中間データ用ＤＢ１５から未選択の述語を１つ選択する（ステップＳ３０２）。
【００９２】
次に、スコア計算部１６は、テーブル２から未選択の列を１つ選択する（ステップＳ３０３）。
【００９３】
次に、スコア計算部１６は、数式（２）に算出した各タイプのスコアを用いて、選択した述語の選択した列におけるスコアを算出する（ステップＳ３０４）。
【００９４】
次に、スコア計算部１６は、選択した述語について全ての列のスコアの算出が完了したか否かを判定する（ステップＳ３０５）。スコアを算出していない列が残っている場合（ステップＳ３０５：否定）、スコア計算部１６は、ステップＳ３０３へ戻る。
【００９５】
これに対して、全ての列のスコアの算出が完了した場合（ステップＳ３０５：肯定）、スコア計算部１６は、中間データ用ＤＢ１５に格納された全ての述語についてスコアの算出が完了したか否かを判定する（ステップＳ３０６）。
【００９６】
スコアを算出していない述語が残っている場合（ステップＳ３０６：否定）、スコア計算部１６は、ステップＳ３０２へ戻る。これに対して、全ての述語のスコアの算出が完了した場合（ステップＳ３０６：肯定）、スコア計算部１６は、スコア算出処理を終了する。
【００９７】
スコア計算部１６は、例えば、図１４に示すスコア表６０に記載した各述語の各列に対するスコアを取得する。例えば、スコア計算部１６は、＜名称＞という述語のテーブル２の０列目におけるスコアを０．３と算出する。また、スコア計算部１６は、＜名称＞という述語のテーブル２の１列目におけるスコアを０．２と算出する。また、スコア計算部１６は、＜名称＞という述語のテーブル２の２列目におけるスコアを０．１と算出する。同様に、スコア計算部１６は、＜所在地＞という述語のテーブル２の０列目におけるスコアを０．２と算出する。また、スコア計算部１６は、＜所在地＞という述語のテーブル２の１列目におけるスコアを０．３と算出する。また、スコア計算部１６は、＜所在地＞という述語のテーブル２の２列目におけるスコアを０．１と算出する。
【００９８】
次に、図１５を参照して、第２照合部１７によるクエリの構築並びに述語及び目的語の照合処理の流れについて説明する。図１５は、クエリの構築並びに述語及び目的語の照合処理のフローチャートである。図１５は、図８におけるステップＳ５において実行される処理の一例にあたる。
【００９９】
第２照合部１７は、述語の番号を表すＮを−１に設定し、列の番号を表すＣを−１に設定する（ステップＳ４０１）。
【０１００】
次に、第２照合部１７は、Ｃを１つインクリメントする（ステップＳ４０２）。
【０１０１】
次に、第２照合部１７は、Ｎを１つインクリメントする（ステップＳ４０３）。
【０１０２】
次に、第２照合部１７は、Ｎ番目にスコアの高い述語及びＮ＋１番目にスコアの高い述語を取得する（ステップＳ４０４）。
【０１０３】
次に、第２照合部１７は、Ｎ番目にスコアの高い述語が照合できた行数を表すｉを０に設定する。また、第２照合部１７は、Ｎ＋１番目にスコアの高い述語が照合できた行数を表すｊを０に設定する（ステップＳ４０５）。
【０１０４】
次に、第２照合部１７は、テーブル２の行の中から未選択の行を１つ選択する（ステップＳ４０６）。
【０１０５】
次に、第２照合部１７は、Ｃ列目の値とＮ番目にスコアの高い述語からクエリＱ０を構築する（ステップＳ４０７）。
【０１０６】
次に、第２照合部１７は、Ｃ列目の値とＮ＋１番目にスコアの高い述語からクエリＱ１を構築する（ステップＳ４０８）。
【０１０７】
次に、第２照合部１７は、Ｑ０を用いてＲＤＦストアからデータの取得を実行する（ステップＳ４０９）。この場合、第２照合部１７は、Ｎ番目にスコアの高い述語を用いた場合にＣ列目の値を目的語とする主語を取得する。
【０１０８】
そして、第２照合部１７は、データを取得したか否かを判定する（ステップＳ４１０）。データを取得しない場合（ステップＳ４１０：否定）、第２照合部１７は、ステップＳ４１２へ進む。
【０１０９】
これに対して、データを取得した場合（ステップＳ４１０：肯定）、第２照合部１７は、ｉを１つインクリメントする（ステップＳ４１１）。
【０１１０】
次に、第２照合部１７は、Ｑ１を用いてＲＤＦストアからデータの取得を実行する（ステップＳ４１２）。この場合、第２照合部１７は、Ｎ＋１番目にスコアの高い述語を用いた場合にＣ列目の値を目的語とする主語を取得する。
【０１１１】
そして、第２照合部１７は、データを取得したか否かを判定する（ステップＳ４１３）。データを取得しない場合（ステップＳ４１３：否定）、第２照合部１７は、ステップＳ４１５へ進む。
【０１１２】
これに対して、データを取得した場合（ステップＳ４１３：肯定）、第２照合部１７は、ｊを１つインクリメントする（ステップＳ４１４）。
【０１１３】
その後、第２照合部１７は、テーブル２の全行の選択が完了したか否かを判定する（ステップＳ４１５）。テーブル２の行の中にまだ選択していない行が残っている場合（ステップＳ４１５：否定）、第２照合部１７は、ステップＳ４０６へ戻る。
【０１１４】
これに対して、テーブル２の全行の選択が完了した場合（ステップＳ４１５：肯定）、第２照合部１７は、Ｎ＋１番目にスコアの高い述語のスコアが最低のスコアか否かを判定する（ステップＳ４１６）。Ｎ＋１番目にスコアの高い述語のスコアが最低のスコアの場合、（ステップＳ４１６：肯定）、第２照合部１７は、Ｎを０とする（ステップＳ１４７）。
【０１１５】
これに対して、Ｎ＋１番目にスコアの高い述語のスコアが最低のスコアでない場合、（ステップＳ４１６：否定）、第２照合部１７は、行数ｉが行数ｊ未満か否かを判定する（ステップＳ４１８）。行数ｉが行数ｊ未満の場合（ステップＳ４１８：肯定）、第２照合部１７は、ステップＳ４０３へ戻る。
【０１１６】
一方、行数ｉが行数ｊ以上の場合（ステップＳ４１８：否定）、第２照合部１７は、Ｎ番目に高いスコアの述語がテーブル２のＣ列目を表すという情報を一時格納部１８へ格納する（ステップＳ４１９）。
【０１１７】
第２照合部１７は、Ｃがテーブル２における最後の列か否か、すなわち全ての列を選択したか否かを判定する（ステップＳ４２０）。Ｃが最後の列でない場合（ステップＳ４２０：否定）、第２照合部１７は、ステップＳ４０２へ戻る。
【０１１８】
これに対して、Ｃが最後の列の場合（ステップＳ４２０：肯定）、第２照合部１７は、一時格納部１８に格納したテーブル２の各列に対応する述語の情報を用いてクエリを構築する（ステップＳ４２１）。具体的には、第２照合部１７は、各行において、各列に対応する述語を用いた場合に各列の値が目的語となる全ての列に共通の主語を抽出するクエリを構築する。
【０１１９】
そして、第２照合部１７は、構築したクエリを用いてデータをＲＤＦストアから取得する（ステップＳ４２２）。具体的には、行毎に、第２照合部１７は、各列に対応する述語を用いた場合に各列の値が目的語となる全ての列に共通の主語の情報を取得する。
【０１２０】
以上に説明したように本実施例に係るデータ生成方法は、テーブルの値を用いて照合を行い主語及び述語を取得し、その主語及び述語についての制限を表す追加情報をＲＤＦデータセットから取得する。そして、本実施例に係るデータ生成方法は、取得した制限を用いて列毎に述語のスコアを算出し、算出したスコアを用いて各列に対応する述語を求める。さらに、本実施例に係るデータ生成方法は、求めた述語を用いて照合を行い、行毎に対応する主語を抽出する。
【０１２１】
このように、本実施例に係るデータ生成方法は、ＲＤＦデータセットの主語のタイプ及び述語のドメインの制約といったオントロジーの情報を用いることで、各列を表す適切な述語を導くことができる。そして、適切な述語を用いて照合を行うことで各行に対応する適切な主語を抽出することができる。これにより、テーブル型のデータとＲＤＦデータセットとを関連付けの精度を向上させることができ、テーブル型のデータとＲＤＦデータセットとを適切に結合することができる。したがって、テーブルデータの値に対応する適切なトリプルをＲＤＦデータの中から確実に検出することができ、テーブルの情報に無いＲＤＦデータセットの情報を有効に利用することが可能となる。
【０１２２】
（ハードウェア構成）
上述してきた実施例に係る情報処理装置１は、例えば図１６に示すようなハードウェア構成を有する。図１６は、情報処理装置のハードウェア構成の一例を表す図である。情報処理装置１は、ＣＰＵ（Central  Processing  Unit）９１、ＲＡＭ（Random  Access  Memory）９２、ＲＯＭ（Read  Only  Memory）９３及びＨＤＤ（Hard  Disk  Drive）９４を有する。さらに、情報処理装置１は、通信インターフェイス（Ｉ／Ｆ：Interface）９５、入出力インターフェイス（Ｉ／Ｆ）９６、及びメディアインターフェイス（Ｉ／Ｆ）９７を有する。
【０１２３】
ＣＰＵ９１は、ＲＯＭ９３またはＨＤＤ９４に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ９３は、情報処理装置１の起動時にＣＰＵ９１によって実行されるブートプログラムや、情報処理装置１のハードウェアに依存するプログラム等を格納する。
【０１２４】
ＨＤＤ９４は、ＣＰＵ９１によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス９５は、ネットワークを介して他の機器からデータを受信してＣＰＵ９１へ送り、ＣＰＵ９１が生成したデータをネットワークを介して他の機器へ送信する。
【０１２５】
ＣＰＵ９１は、入出力インターフェイス９６を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ９１は、入出力インターフェイス９６を介して、入力装置からデータを取得する。また、ＣＰＵ９１は、生成したデータを入出力インターフェイス９６を介して出力装置へ出力する。
【０１２６】
メディアインターフェイス９７は、記録媒体９８に格納されたプログラムまたはデータを読み取り、ＲＡＭ９２を介してＣＰＵ９１に提供する。ＣＰＵ９１は、かかるプログラムを、メディアインターフェイス９７を介して記録媒体９８からＲＡＭ９２上にロードし、ロードしたプログラムを実行する。記録媒体９８は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１２７】
例えば、情報処理装置１のＲＡＭ９２及びＨＤＤ９４は、ＲＤＦデータ格納部１１、中間データ用ＤＢ１５及び一時格納部１８の機能を実現する。さらに、情報処理装置１のＣＰＵ９１は、ＲＡＭ９２上にロードされたプログラムを実行することにより、ＳＰＡＲＱＬ処理部１２、第１照合部１３、追加情報取得部１４、スコア計算部１６、第２照合部１７及び結果管理部１９の機能を実現する。情報処理装置１のＣＰＵ９１は、これらのプログラムをＨＤＤ９４から読み取って実行するが、他の例として、記録媒体９８からプログラムを読みとってもよいし、他の装置からネットワークを介してこれらのプログラムを取得してもよい。
【符号の説明】
【０１２８】
１  情報処理装置
２  テーブル
３  ＲＤＦデータセット
１１  ＲＤＦデータ格納部
１２  ＳＰＡＲＱＬ処理部
１３  第１照合部
１４  追加情報取得部
１５  中間データ用ＤＢ
１６  スコア計算部
１７  第２照合部
１８  一時格納部
１９  結果管理部
【図１】
2019200532.tif 000005
【図２】
2019200532.tif 000006
【図３】
2019200532.tif 000007
【図４】
2019200532.tif 000008
【図５】
2019200532.tif 000009
【図６】
2019200532.tif 000010
【図７】
2019200532.tif 000011
【図８】
2019200532.tif 000012
【図９】
2019200532.tif 000013
【図１０】
2019200532.tif 000014
【図１１】
2019200532.tif 000015
【図１２】
2019200532.tif 000016
【図１３】
2019200532.tif 000017
【図１４】
2019200532.tif 000018
【図１５】
2019200532.tif 000019
【図１６】
2019200532.tif 000020