(57)【要約】【課題】対象のテーブルのタイプを適切に推定する。【解決手段】タイプ推定装置１は、カラム名とカラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、ナレッジグラフ２１に含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、テーブルのタイプの候補を特定し、前記ナレッジグラフ２１に含まれるタイプ同士の関係を規定したオントロジーの深さに関する情報に基づいて、特定したタイプの候補の中から、テーブルのタイプを推定する。【選択図】図１
2020035332.tif 000002
【特許請求の範囲】
【請求項１】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、グラフデータに含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、前記テーブルのタイプの候補を特定し、
前記グラフデータに含まれるタイプ同士の関係を規定したオントロジーの深さに関する情報に基づいて、特定したタイプの候補の中から、前記テーブルのタイプを推定する
処理をコンピュータが実行するタイプ推定方法。
【請求項２】
該推定する処理は、前記オントロジーの深さが深い程優先するように、特定したタイプの候補の中から、前記テーブルのタイプを推定する
処理を請求項１に記載のタイプ推定方法。
【請求項３】
前記推定したタイプを用いて、前記グラフデータから、前記テーブルの中で情報が入力されていない、前記カラム名のカラムに情報を設定する
処理を請求項１または請求項２に記載のタイプ推定方法。
【請求項４】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、グラフデータに含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、前記テーブルのタイプの候補を特定する特定部と、
前記グラフデータに含まれるタイプ同士の関係を規定したオントロジーの深さに関する情報に基づいて、特定したタイプの候補の中から、前記テーブルのタイプを推定する推定部と、
を有することを特徴とする情報処理装置。
【請求項５】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、グラフデータに含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、前記テーブルのタイプの候補を特定し、
前記グラフデータに含まれるタイプ同士の関係を規定したオントロジーの深さに関する情報に基づいて、特定したタイプの候補の中から、前記テーブルのタイプを推定する
処理をコンピュータに実行させるタイプ推定プログラム。
【請求項６】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、前記テーブルにおけるカラム名のそれぞれと相関の高い単語を前記タイプとして優先するように、前記タイプの候補を特定し、
特定したタイプの候補の中から、示す概念が相対的に具体的である単語ほど前記タイプとして優先するように、前記テーブルのタイプを推定する
処理をコンピュータが実行するタイプ推定方法。
【請求項７】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、前記テーブルにおけるカラム名のそれぞれと相関の高い単語を前記タイプとして優先するように、前記タイプの候補を特定する特定部と、
前記特定部によって特定されたタイプの候補の中から、示す概念が相対的に具体的である単語ほど前記タイプとして優先するように、前記テーブルのタイプを推定する推定部と、
を有することを特徴とする情報処理装置。
【請求項８】
カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、前記テーブルにおけるカラム名のそれぞれと相関の高い単語を前記タイプとして優先するように、前記タイプの候補を特定し、
特定したタイプの候補の中から、示す概念が相対的に具体的である単語ほど前記タイプとして優先するように、前記テーブルのタイプを推定する
処理をコンピュータに実行させるタイプ推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイプ推定方法などに関する。
【背景技術】
【０００２】
表のスキーマ情報から表の作成者の意図を推定し、ナレッジグラフに対するクエリを自動生成することにより表を生成するナレッジ活用システムが知られている。かかるシステムでは、表をできる限り埋めることができるクエリを自動生成するために、ナレッジグラフ内から表のタイプ（クラス）を推定する。
【０００３】
例えば、表のタイプの推定方法として、ｔｆ−ｉｄｆ（term  frequency−inverse  document  frequency）法を用いた方法がある（例えば、非特許文献１を参照）。かかる方法では、例えば、表のスキーマ情報から得られる各タイプのインスタンスに対して出現頻度を計算し、出現頻度（ｔｆ）をｔｆ−ｉｄｆ法によって重み付けして、各タイプのスコアを計算する。そして、スコアの最も高いタイプを表のタイプとして推定する。具体的には、タイプを文書、このタイプが付与されているインスタンスが持つ述語を単語とみなし、単語のスコア（ｔｆ−ｉｄｆ）を計算し、各タイプのスコアを計算する。なお、非特許文献１では、ナレッジグラフに盛り込まれる情報としてＤＢｐｅｄｉａやＦｒｅｅｂａｓｅ（登録商標）が用いられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１７−５３１２４０号公報
【特許文献２】特開２０１３−２５４４２１号公報
【非特許文献】
【０００５】
【非特許文献１】Duan  S.,  Fokoue  A.,  Hassanzadeh  O.,  Kementsietsidis  A.,  Srinivas  K.,  Ward  M.J.  (2012)  Instance-Based  Matching  of  Large  Ontologies  Using  Locality-Sensitive  Hashing.  In:  Cudre-Mauroux  P.  et  al.  (eds)  The  Semantic  Web−ISWC  2012.  ISWC  2012.  Lecture  Notes  in  Computer  Science,  vol  7649.  Springer,  Berlin,  Heidelberg
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、表のタイプを適切に推定することが難しいという問題がある。すなわち、かかる技術では、タイプを文書、このタイプが付与されているインスタンスが持つ述語を単語とみなし、単語のスコア（ｔｆ−ｉｄｆ）を計算し、各タイプのスコアを計算するが、一般的なタイプのスコアが高く計算される傾向がある。つまり、一般的なタイプを表のタイプとして推定してしまう。したがって、従来の技術では、表のタイプを適切に推定することが難しい。
【０００７】
本発明は、１つの側面では、対象の表のタイプを適切に推定することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、タイプ推定方法は、カラム名と前記カラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、グラフデータに含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、前記テーブルのタイプの候補を特定し、前記グラフデータに含まれる単語同士の概念的な関係を規定したオントロジーに関する情報に基づいて、特定したタイプの候補の中から、前記テーブルのタイプを推定する、処理をコンピュータが実行する。
【発明の効果】
【０００９】
１実施態様によれば、対象の表のタイプを適切に推定することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るタイプ推定装置の機能構成を示すブロック図である。
【図２】図２は、実施例に係るタイプ推定方法のイメージを示す図である。
【図３】図３は、統計スコア計算に用いられるクエリの一例を示す図である。
【図４】図４は、統計情報ＤＢのデータ構造の一例を示す図である。
【図５】図５は、実施例に係る演繹ルールＤＢのスキーマの一例を示す図である。
【図６】図６は、実施例に係るタイプ推定の一例を示す図である。
【図７】図７は、実施例に係るスコア計算処理のフローチャートの一例を示す図である。
【図８】図８は、実施例に係る演繹ルール抽出処理のフローチャートの一例を示す図である。
【図９】図９は、実施例に係るタイプ推定処理のフローチャートの一例を示す図である。
【図１０Ａ】図１０Ａは、実施例に係るタイプ推定の用途の一例を示す図（１）である。
【図１０Ｂ】図１０Ｂは、実施例に係るタイプ推定の用途の一例を示す図（２）である。
【図１１】図１１は、タイプ推定プログラムを実行するコンピュータの一例を示す図である。
【図１２】図１２は、タイプ推定方法の参考例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するタイプ推定方法、情報処理装置およびタイプ推定プログラムの実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例】
【００１２】
まず、タイプ推定方法の参考例を、図１２を参照して説明する。ここでは、対象のテーブルＴ１００をできる限り埋めることができるクエリを自動生成するために、当該テーブルＴ１００のスキーマ情報を入力してナレッジグラフ内からテーブルのタイプを推定する場合について説明する。ナレッジグラフに盛り込まれる情報として、例えば、ＤＢｐｅｄｉａが用いられる。
【００１３】
図１２は、タイプ推定方法の参考例を示す図である。図１２に示すように、対象のテーブルＴ１００のスキーマ情報は、「名前、所在地、資本金、事業内容、関連組織」であるとする。
【００１４】
タイプ推定を実行するアプリケーション（以降、アプリと略記）が、スキーマ情報を入力すると（Ｓ１００）、ナレッジグラフから、スキーマ情報に対応する、統計的なスコアを計算する（Ｓ１１０）。統計的なスコアは、一例として、ｔｆ−ｉｄｆ法を用いて計算される。
【００１５】
スコア計算の一例として、アプリは、タイプを文書、そのタイプが付与されているインスタンスが持つ述語（ここでは、スキーマ情報に含まれる各属性名）を単語とみなす。アプリは、ナレッジグラフから、各単語の文書内の出現頻度をそれぞれ計算し、出現頻度（ｔｆ）をｔｆ−ｉｄｆによって重み付けする。ｉｄｆは、各単語がいくつの文書内で共通して使われているかを表し、いくつもの文書で使われている単語は重要でなく、低いスコアとなる。そして、アプリは、タイプごとに各単語のスコアを合計し、タイプごとのスコアを計算する。ここでは、タイプが「会社」である場合には、インスタンスの数が２１４，７３４である。インスタンス（実体）の一例として、実際の会社名が含まれる。インスタンスが持つ述語の一例として、「名前」、「所在地」、「資本金」、「事業内容」、「関連組織」が含まれる。述語が「名前」である場合のスコアは、５．８５、「所在地」である場合のスコアは、３．０８、「資本金」である場合のスコアは、４４．６８である。「事業内容」である場合のスコアは、４４．１、「関連組織」である場合のスコアは、１３．４４である。そして、アプリは、タイプが「会社」である場合のスコアを１１１．１５と計算する。同様に、アプリは、タイプが「組織」である場合のスコアを１４６．９１と計算する。
【００１６】
そして、アプリは、最も高いスコアのタイプをテーブルＴ１００のタイプとして推定する（Ｓ１２０）。ここでは、タイプが「会社」である場合のスコア１１１．１５よりタイプが「組織」である場合のスコア１４６．９１の方が高い。したがって、テーブルＴ１００のタイプは、「組織」と推定される。
【００１７】
この後、アプリは、推定したタイプを用いて対象のテーブルＴ１００をできる限り埋めることができるクエリを自動生成する。そして、アプリは、生成したクエリを用いて、ナレッジグラフから、対象のテーブル１００の中で情報が設定されていない、カラム名のカラムに情報を設定する（Ｓ１３０）。ここでは、タイプが「組織」であるため、組織名が「ＦＬＥ」の正式名称が、架空組織である「Farm  Leader  Education  Organization」と設定されている（ｃ１００）。さらに、資本金が「１００億円」と設定されている（ｃ１１０）ほか、関連組織が設定されていない（ｃ１２０）。
【００１８】
すなわち、入力したスキーマ情報が「名前、所在地、資本金、事業内容、関連組織」である場合には、タイプとして「組織」より「会社」がよりもっともらしいため、「会社」をタイプとするのが望ましい。ところが、アプリは、統計的なスコアのみを利用すると、一般的な（上位の）タイプ「組織」のスコアを高く計算してしまう。したがって、アプリは、対象のテーブルＴ１００のタイプを適切に推定することができない場合がある。
【００１９】
そこで、以降では、対象のテーブルのタイプを適切に推定するタイプ推定装置について説明する。
【００２０】
［タイプ推定装置の機能構成］
図１は、実施例に係るタイプ推定装置の機能構成を示すブロック図である。図１に示すように、タイプ推定装置１は、ナレッジグラフから、カラム名とカラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、ナレッジグラフ全体から統計的に求めるスコアに加えて、ナレッジグラフに付与されているオントロジーを利用してより適切なタイプを推定する。オントロジーとは、ナレッジグラフに含まれる概念同士の関係を定義したものである。ナレッジグラフに盛り込まれる情報として、例えばＤＢｐｅｄｉａが挙げられる。なお、タイプ推定装置１は、情報処理装置の一例である。
【００２１】
ここで、実施例に係るタイプ推定装置１が実行するタイプ推定方法のイメージを、図２を参照して説明する。図２は、実施例に係るタイプ推定方法のイメージを示す図である。図２に示すように、タイプ推定装置１は、統計的手法と演繹的な手法とを組み合わせて、ナレッジグラフ２１から対象のテーブルのタイプを推定する。なお、対象のテーブルのスキーマ情報は、「名前、所在地、資本金、事業内容、関連組織」であるとする。
【００２２】
統計的手法は、図１２で示したタイプ推定方法と同じ方法である。すなわち、統計的手法は、ナレッジグラフ２１から、スキーマ情報に対応する、統計的なスコアを計算する。計算された統計的なスコアは、左図に示されている。統計的なスコアは、タイプが付与されているインスタンスが持つ述語ごとのスコアであり、タイプごとに設定されている。なお、統計的なスコアは、後述する統計情報ＤＢ（DataBase）２２に対応する。そして、統計的手法は、タイプごとに各述語のスコアを合計し、タイプごとの統計的なスコアを計算する。
【００２３】
演繹的手法は、ナレッジグラフ２１に付与されているオントロジー２３´を利用し、演繹ルールを抽出する。ここでいう演繹ルールとは、オントロジー２３´で定義された、概念（タイプ）同士の階層関係を示したルールのことをいう。オントロジー２３´は、右図に示されている。かかるオントロジー２３´は、ｒｏｏｔに位置する概念（タイプ）から下位に向かってタイプ同士の階層関係を示している。なお、演繹ルールは、後述する演繹ルールＤＢ２３に対応する。
【００２４】
タイプ推定装置１は、統計的手法によって計算されたタイプごとの統計的なスコアに加えて、オントロジー２３´を利用した演繹ルールを適用して、対象のテーブルのタイプを推定する。これにより、タイプ推定装置１は、統計的手法のみならず、ナレッジグラフ２１に整備された知識を利用することで、対象のテーブルのタイプを適切に推定することができる。
【００２５】
図１に戻って、タイプ推定装置１は、統計スコア計算部１１、演繹ルール抽出部１２、統計的推定部１３、演繹ルール適用部１４およびタイプ判定部１５を有する。これらの機能部は、図示しない制御部に含まれる。制御部は、ＣＰＵ（Central  Processing  Unit）などの電子回路に対応する。そして、制御部は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。なお、統計的推定部１３は、特定部の一例である。演繹ルール適用部１４およびタイプ判定部１５は、推定部の一例である。
【００２６】
また、タイプ推定装置１は、ナレッジグラフ２１、統計情報ＤＢ２２および演繹ルールＤＢ２３を有する。これらの機能部は、図示しない記憶部に含まれる。記憶部は、例えば、ＲＡＭ、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００２７】
ナレッジグラフ２１は、例えばＤＢｐｅｄｉａなどの情報を、ＬＯＤ（Linked  Open  Data）形式に変換したデータである。なお、ナレッジグラフ２１は、例えば、クラウドシステムなどを用いて一般的に公開されており、任意に利用することもできる
【００２８】
統計情報ＤＢ２２は、統計的手法によって計算された統計的な情報を記憶する。なお、統計情報ＤＢ２２は、後述する統計スコア計算部１１によって生成される。
【００２９】
演繹ルールＤＢ２３は、演繹的手法によって生成される演繹ルールを記憶する。なお、演繹ルールＤＢ２３は、後述する演繹ルール抽出部１２によって生成される。
【００３０】
統計スコア計算部１１は、ナレッジグラフ２１から、統計的にタイプを推定するための統計情報ＤＢ２２を構築する。
【００３１】
例えば、統計スコア計算部１１は、対象のテーブルのタイプを推定する際に、ナレッジグラフ２１に含まれるタイプを文書とみなし、タイプが付与されているインスタンスが持つ述語を単語とみなす。そして、統計スコア計算部１１は、ナレッジグラフ２１から、各単語の文書内の出現頻度（ｔｆ）をそれぞれ計算する。タイプの問い合わせや出現頻度の問い合わせは、それぞれクエリを用いて行えば良い。
【００３２】
そして、統計スコア計算部１１は、単語の出現頻度をｔｆ−ｉｄｆによって重み付けしてスコアを計算する。すなわち、統計スコア計算部１１は、単語の出現頻度を、各単語の複数の文書内でのユニーク性を示す値で重み付けしてスコアを計算する。つまり、統計スコア計算部１１は、いくつもの文書で使われている単語（述語）は重要でなく、低いスコアに重み付けする。そして、統計スコア計算部１１は、タイプ（文書）ごとに、タイプが付与されているインスタンスが持つ述語（単語）ごとに、計算されたスコアを統計情報ＤＢ２２に格納する。
【００３３】
ここで、統計スコア計算部１１によって用いられるクエリの一例を、図３を参照して説明する。図３は、統計スコア計算に用いられるクエリの一例を示す図である。図３上図に示すクエリは、ナレッジグラフ２１から全てのタイプを問い合わせるクエリである。図３下図に示すクエリは、ナレッジグラフ２１内の全てのタイプについて、タイプが付与されているインスタンスが持つ述語の出現頻度を問い合わせるクエリである。
【００３４】
また、統計情報ＤＢ２２のデータ構造の一例を、図４を参照して説明する。図４は、統計情報ＤＢのデータ構造の一例を示す図である。図４に示すように、統計情報ＤＢ２２は、タイプ２２ａ、述語２２ｂおよびスコア２２ｃを対応付けて記憶する。タイプ２２ａは、ナレッジグラフ２１に含まれる概念のことをいう。述語２２ｂは、タイプが付与されているインスタンス（実体）が持つ単語のことをいう。スコア２２ｃは、ｔｆ−ｉｄｆによって計算された統計的なスコアのことをいう。
【００３５】
一例として、タイプ２２ａが「会社」である場合に、述語２２ｂとして「名前」、スコア２２ｃとして「５．８５」を記憶している。述語２２ｂとして「所在地」、スコア２２ｃとして「３．０８」を記憶している。述語２２ｂとして「資本金」、スコア２２ｃとして「４４．６８」を記憶している。述語２２ｂとして「事業内容」、スコア２２ｃとして「４４．１」を記憶している。述語２２ｂとして「関連組織」、スコア２２ｃとして「１３．４４」を記憶している。
【００３６】
図１に戻って、演繹ルール抽出部１２は、ナレッジグラフ２１から、演繹ルールを抽出する。例えば、演繹ルール抽出部１２は、ナレッジグラフ２１に含まれる単語同士の概念的な関係を規定したオントロジーから演繹ルールを抽出する。演繹ルール抽出部１２は、抽出した演繹ルールを演繹ルールＤＢ２３に格納する。オントロジーから演繹ルールを抽出する問い合わせは、クエリを用いて行えば良い。一例として、クエリには、兄弟の演繹ルールを抽出する問い合わせのクエリや親子の演繹ルールを抽出する問い合わせのクエリが含まれる。
【００３７】
統計的推定部１３は、カラム名の集合に対応するタイプ候補を統計的なスコアから推定する。
【００３８】
例えば、統計的推定部１３は、後述するタイプ判定部１５からカラム名の集合を受け付けると、統計情報ＤＢ２２から、カラム名の集合に対応するタイプ２２ａ、述語２２ｂおよびスコア２２ｃを抽出する。統計的推定部１３は、タイプ２２ａごとに、述語２２ｂに対応付けられたスコア２２ｃを合計し、合計値を統計スコアとする。統計的推定部１３は、統計スコアの高いタイプの複数個をタイプ候補として推定する。言い換えると、統計的推定部１３は、対象のテーブルのタイプを推定する際に、テーブルにおけるカラム名のそれぞれと相関の高い単語をタイプとして優先するように、タイプ候補を推定する。そして、統計的推定部１３は、推定したタイプ候補ごとの統計スコアをタイプ判定部１５に出力する。
【００３９】
演繹ルール適用部１４は、演繹ルールを適用して、タイプ候補に対応する補正スコアを取得する。
【００４０】
例えば、演繹ルール適用部１４は、後述するタイプ判定部１５からタイプ候補を受け付けると、演繹ルールＤＢ２３に基づいて、タイプ候補に対応する補正スコアを取得する。すなわち、演繹ルール適用部１４は、演繹ルールＤＢ２３に基づいて、タイプ候補に対応するオントロジーの深さを補正スコアとして取得する。深さが深い程、示す概念（タイプ）が相対的に具体的になる。そして、演繹ルール適用部１４は、取得したタイプ候補ごとの補正スコアをタイプ判定部１５に出力する。
【００４１】
タイプ判定部１５は、統計的推定部１３および演繹ルール適用部１４を用いて、対象のテーブルのタイプを判定する。
【００４２】
例えば、タイプ判定部１５は、対象のテーブルのカラム名の集合を入力する。ここでいうテーブルのカラム名の集合は、例えば、スキーマ情報のことを示す。タイプ判定部１５は、カラム名の集合に対応するタイプ候補を統計スコアに基づいて推定させるために、入力したカラム名の集合を統計的推定部１３に出力する。また、タイプ判定部１５は、統計的推定部１３によって推定されたタイプ候補の統計スコアを調整するために、推定されたタイプ候補を演繹ルール適用部１４に出力する。そして、タイプ判定部１５は、タイプ候補ごとの統計スコアと、演繹ルール適用部１４によって演繹ルールから得られる、タイプ候補ごとの補正スコアとに基づいて、タイプ候補ごとのスコアを計算する。タイプ判定部１５は、計算したスコアが高いほどタイプとして優先するように、タイプ候補からタイプを判定する。言い換えれば、タイプ判定部１５は、示すタイプ候補が相対的に具体的である単語（述語）ほどタイプとして優先するように、統計的推定部１３によって推定されたタイプ候補から対象のテーブルのタイプを推定（判定）する。そして、タイプ判定部１５は、推定（判定）したタイプを出力する。
【００４３】
［演繹ルールＤＢのスキーマの一例］
図５は、実施例に係る演繹ルールＤＢのスキーマの一例を示す図である。なお、図５左図は、ナレッジグラフ２１に付与されているオントロジーを示す。オントロジーは、ｒｏｏｔに位置する概念（タイプ）としての「Ｔｈｉｎｇ」から下位に存在するタイプ同士の階層関係を示している。例えば、タイプが「組織」である場合には、「Ｔｈｉｎｇ」のサブクラスとして「エージェント」、「エージェント」のサブクラスとして「組織」および「人」、「組織」のサブクラスとして「会社」、「立法府」が存在する。一例として、「Ｔｈｉｎｇ」と「エージェント」との関係は、親子関係である。「組織」と「会社」との関係は、親子関係である。一例として、「組織」と「人」との関係は、兄弟関係である。「会社」と「立法府」との関係は、兄弟関係である。そして、オントロジーの深さは、「Ｔｈｉｎｇ」を「１」として１ずつ深くなる。
【００４４】
このようなオントロジーから生成される演繹ルールＤＢ２３は、ソース２３ａ、関係２３ｂおよびターゲット２３ｃを対応付けた情報を記憶する。ソース２３ａは、後述するターゲット２３ｃの上位のクラス（タイプ）を示す。ターゲット２３ｃは、ソース２３ａの下位にあるクラス（タイプ）を示す。関係２３ｂは、上位と下位との間の関係を示す。一例として、関係２３ｂが「ｓｕｂＣｌａｓｓＯｆ」とは、下位が上位のサブクラスであることを示す。
【００４５】
一例として、ソース２３ａが「Ｔｈｉｎｇ」である場合に、関係２３ｂとして「ｓｕｂＣｌａｓｓＯｆ」、ターゲット２３ｃとして「エージェント」を記憶している。ソース２３ａが「エージェント」である場合に、関係２３ｂとして「ｓｕｂＣｌａｓｓＯｆ」、ターゲット２３ｃとして「組織」、「人」を記憶している。ソース２３ａが「組織」である場合に、関係２３ｂとして「ｓｕｂＣｌａｓｓＯｆ」、ターゲット２３ｃとして「会社」、「立法府」を記憶している。
【００４６】
［タイプ推定の一例］
図６は、実施例に係るタイプ推定の一例を示す図である。なお、図６では、統計情報ＤＢ２２が統計スコア計算部１１によって生成されているとする。また、演繹ルールＤＢ２３が演繹ルール抽出部１２によって生成されているとし、演繹ルールＤＢ２３と同じ内容のオントロジー２３´が示されている。
【００４７】
このような状況の下、タイプ判定部１５は、対象のテーブルのカラム名の集合「名前、所在地、資本金、事業内容、関連組織」を受け付けると、カラム名の集合を統計的推定部１３に出力する。
【００４８】
統計的推定部１３は、タイプ判定部１５からカラム名の集合を受け付けると、統計情報ＤＢ２２からカラム名の集合に対応するタイプ２２ａ、述語２２ｂおよびスコア２２ｃを抽出する。ここでは、タイプ２２ａが「会社」である場合の述語２２ｂおよびスコア２２ｃと、タイプ２２ａが「組織」である場合の述語２２ｂおよびスコア２２ｃとが抽出される。
【００４９】
そして、統計的推定部１３は、タイプ２２ａごとに、述語２２ｂに対応付けられたスコア２２ｃを合計し、統計スコアを計算する。ここでは、タイプ２２ａが「会社」である場合には、統計スコアが１１１．１５と計算される。タイプ２２ａが「組織」である場合には、統計スコアが１４６．９１と計算される。統計的推定部１３は、合計した統計スコアの高い複数個のタイプをタイプ候補として推定する。ここでは、「会社」、「組織」が、タイプ候補として推定されたとする。統計的推定部１３は、推定したタイプ候補ごとの統計スコアをタイプ判定部１５に出力する。ここでは、タイプ候補「会社」の統計スコア「１１１．１５」およびタイプ候補「組織」の統計スコア「１４６．９１」がタイプ判定部１５に出力される。
【００５０】
そして、タイプ判定部１５は、統計的推定部１３によって推定されたタイプ候補を演繹ルール適用部１４に出力する。
【００５１】
演繹ルール適用部１４は、タイプ判定部１５からタイプ候補を受け付けると、演繹ルールＤＢ２３（オントロジー２３´）に基づいて、タイプ候補に対応する補正スコアとしてオントロジー２３´の深さを取得する。ここでは、演繹ルール適用部１４は、タイプ候補「会社」に対応する補正スコアとしてオントロジー２３´の深さ「４」を取得する。演繹ルール適用部１４は、タイプ候補「組織」に対応する補正スコアとしてオントロジー２３´の深さ「３」を取得する。オントロジー２３´の深さが深い程、示す概念（タイプ）が相対的に具体的となる。つまり、「組織」より「会社」が相対的に具体的となる。
【００５２】
そして、演繹ルール適用部１４は、タイプ候補ごとの補正スコアをタイプ判定部１５に出力する。ここでは、タイプ候補「会社」の補正スコア「４」およびタイプ候補「組織」の補正スコア「３」がタイプ判定部１５に出力される。
【００５３】
そして、タイプ判定部１５は、統計的推定部１３によって推定されたタイプ候補ごとの統計スコアと、演繹ルール適用部１４によって得られる、タイプ候補ごとの補正スコアとに基づいて、タイプ候補ごとのスコアを計算する。ここでは、スコアの計算方法は、統計スコアと補正スコアとが同じ重みである場合の一例であり、統計スコアと深さとを乗算する方法である。具体的には、タイプ候補が「会社」である場合には、スコアは、統計スコア「１１１．１５」と深さ「４」との乗算から得られる「４４４．６０」と計算される。また、タイプ候補が「組織」である場合には、スコアは、統計スコア「１４６．９１」と深さ「３」との乗算から得られる「４４０．７３」と計算される。そして、タイプ判定部１５は、計算したスコアが高いほどタイプとして優先するように、タイプ候補からタイプを推定（判定）する。ここでは、タイプ候補「会社」のスコアが「４４４．６０」であり、タイプ候補「組織」のスコアが「４４０．７３」であるので、タイプ候補「会社」の方がタイプ候補「組織」よりスコアが高い。したがって、タイプ候補「会社」がタイプとして推定（判定）される。
【００５４】
そして、タイプ判定部１５は、判定したタイプを出力する。ここでは、「会社」がタイプとして出力される。
【００５５】
この後、タイプ推定装置１は、判定されたタイプを用いて、対象のテーブルをできる限り埋めることができるクエリを自動生成する。そして、タイプ推定装置１は、生成したクエリを用いて、ナレッジグラフ２１から、対象のテーブルの中で情報が設定されていない、カラム名のカラムに情報を設定する。ここでは、タイプが「会社」であるため、組織名が「ＦＬＥ」の正式名称が「Ｆ  Laboratories  of  Europe」と設定される（ｃ１０）。さらに、資本金が「」と設定される（ｃ１１）ほか、関連組織が「F」と設定される（ｃ１２）。
【００５６】
すなわち、入力したカラム名の集合が「名前、所在地、資本金、事業内容、関連組織」である場合には、タイプとして「組織」より具体的な（下位の）「会社」がよりもっともらしい。タイプ推定装置１は、タイプを「会社」として推定（判定）することで、対象のテーブルに正しい情報を埋めることが可能となる。
【００５７】
なお、タイプ推定装置１は、該当のクエリを自動生成するために、スコアが最も高いタイプを用いると説明したが、これに限定されない。タイプ推定装置１は、優先順位が決められたタイプ候補を出力し、出力したタイプ候補からユーザによって選択されたタイプを用いても良い。
【００５８】
［スコア計算処理のフローチャート］演繹ルール抽出部１２は、
図７は、実施例に係るスコア計算処理のフローチャートの一例を示す図である。なお、統計スコア計算部１１は、例えば、統計スコアの計算要求を受け付けたとする。
【００５９】
図７に示すように、統計スコアの計算要求を受け付けた統計スコア計算部１１は、ナレッジグラフ２１内の全てのタイプを取得する（ステップＳ１１）。例えば、統計スコア計算部１１は、図３上図で示すようなクエリ（ナレッジグラフ２１から全てのタイプを問い合わせるクエリ）を用いて、ナレッジグラフ２１内の全てのタイプを取得する。
【００６０】
統計スコア計算部１１は、ナレッジグラフ２１内の全てのタイプを統計情報ＤＢ２２のタイプ２２ａに保持する（ステップＳ１２）。統計スコア計算部１１は、タイプを文書とみなし、タイプが付与されているインスタンスが持つ述語を単語とみなし、単語の文書内の出現頻度を計算する（ステップＳ１３）。例えば、統計スコア計算部１１は、図３下図で示すようなクエリ（タイプが付与されているインスタンスが持つ述語の出現頻度を問い合わせるクエリ）を用いて、取得したタイプが付与されているインスタンスが持つ述語の出現頻度を計算する。
【００６１】
統計スコア計算部１１は、タイプと述語の出現頻度とを用いて、ｔｆ−ｉｄｆを計算する（ステップＳ１４）。すなわち、統計スコア計算部１１は、単語（述語）の文書（タイプ）内の出現頻度を、各単語の複数の文書内でのユニーク性を示す値で重み付けしてスコアを計算する。
【００６２】
統計スコア計算部１１は、計算結果を統計情報ＤＢ２２に格納する（ステップＳ１５）。例えば、統計スコア計算部１１は、タイプ（文書）ごとに、タイプが付与されているインスタンスが持つ述語（単語）ごとに、計算されたスコアを統計情報ＤＢ２２に格納する。そして、統計スコア計算部１１は、統計スコア計算処理を終了する。
【００６３】
［演繹ルール抽出処理のフローチャート］
図８は、実施例に係る演繹ルール抽出処理のフローチャートの一例を示す図である。なお、演繹ルール抽出部１２は、例えば、演繹ルールの抽出要求を受け付けたとする。
【００６４】
図８に示すように、演繹ルールの抽出要求を受け付けた演繹ルール抽出部１２は、キュー（Ｑ）を初期化する（ステップＳ２１）。そして、演繹ルール抽出部１２は、ナレッジグラフ２１に付与されているオントロジーの先頭ノードであるｒｏｏｔ（Ｔｈｉｎｇ）をＱに入れる（ステップＳ２２）。
【００６５】
演繹ルール抽出部１２は、Ｑが空であるか否かを判定する（ステップＳ２３）。Ｑが空でないと判定した場合には（ステップＳ２３；Ｎｏ）、演繹ルール抽出部１２は、Ｑからノード（ｖ）を取り出す（ステップＳ２４）。演繹ルール抽出部１２は、取り出したノード（ｖ）の兄弟ノードリスト（Ｓｉｂｌｉｎｇ）を取得する（ステップＳ２５）。例えば、演繹ルール抽出部１２は、兄弟の演繹ルールを抽出する問い合わせのクエリを用いれば良い。
【００６６】
演繹ルール抽出部１２は、Ｓｉｂｌｉｎｇ内の全ての兄弟関係を演繹ルールＤＢ２３に登録する（ステップＳ２６）。一例として、図５で示す、選択されたノードが「組織」である場合に、「組織」と「人」とが兄弟の関係である。選択されたノードが「会社」である場合に、「会社」と「立法府」とが兄弟の関係である。
【００６７】
演繹ルール抽出部１２は、Ｓｉｂｌｉｎｇ内のノード（ｖ´）について全てＱに格納されているか否かを判定する（ステップＳ２７）。全てＱに格納されていないと判定した場合には（ステップＳ２７；Ｎｏ）、演繹ルール抽出部１２は、Ｓｉｂｌｉｎｇ内のＱに格納されていない兄弟ノード（ｖ´）を取り出し、ｖ´とｖとを親子関係として、演繹ルールＤＢ２３に格納する（ステップＳ２８）。
【００６８】
そして、演繹ルール抽出部１２は、ｖ´をＱに格納する（ステップＳ２９）。そして、演繹ルール抽出部１２は、Ｓｉｂｌｉｎｇ内のノード（ｖ´）について全てＱに格納するために、ステップＳ２７に移行する。
【００６９】
一方、全てＱに格納されていると判定した場合には（ステップＳ２７；Ｙｅｓ）、演繹ルール抽出部１２は、Ｑが空であるか否かを判定するために、ステップＳ２３に移行する。
【００７０】
ステップＳ２３について、Ｑが空であると判定した場合には（ステップＳ２３；Ｙｅｓ）、演繹ルール抽出部１２は、演繹ルール抽出処理を終了する。
【００７１】
［タイプ推定処理のフローチャート］
図９は、実施例に係るタイプ推定処理のフローチャートの一例を示す図である。なお、タイプ判定部１５は、例えば、タイプの判定要求を受け付けたとする。
【００７２】
図９に示すように、タイプの判定要求を受け付けたタイプ判定部１５は、対象テーブルのカラム名の集合を受け付ける（ステップＳ３１）。タイプ判定部１５は、受け付けたカラム名の集合を統計的推定部１３に出力する。
【００７３】
続いて、統計的推定部１３は、統計情報ＤＢ２２から、カラム名の集合に対応するタイプを、統計情報ＤＢ２２から読み出す（ステップＳ３２）。統計的推定部１３は、読出件数が０件であるか否かを判定する（ステップＳ３３）。読出件数が０件であると判定した場合には（ステップＳ３３；Ｙｅｓ）、統計的推定部１３は、タイプ推定処理を終了する。
【００７４】
一方、読出件数が０件でないと判定した場合には（ステップＳ３３；Ｎｏ）、統計的推定部１３は、読み出したタイプに対する統計スコアを計算し、統計スコアからタイプを推定する（ステップＳ３４）。例えば、統計的推定部１３は、統計情報ＤＢ２２から読み出したタイプ２２ａごとに、述語２２ｂに対応付けられたスコア２２ｃを合計し、統計スコアを計算する。統計的推定部１３は、統計スコアの高いタイプの複数個をタイプ候補として推定する。そして、統計的推定部１３は、推定されたタイプと統計スコアとを対応付ける（ステップＳ３５）。
【００７５】
続いて、演繹ルール適用部１４は、推定されたタイプに対し、演繹ルールを適用して補正スコアを取得する（ステップＳ３６）。例えば、演繹ルール適用部１４は、演繹ルールＤＢ２３に基づいて、統計的推定部１３によって推定されたタイプ候補に対応する補正スコアを取得する。一例として、演繹ルール適用部１４は、タイプ候補に対応するオントロジーの深さを補正スコアとして取得する。
【００７６】
そして、タイプ判定部１５は、推定されたタイプに対し、統計的なスコアと、補正スコアとを用いて、最終的なスコアを計算する（ステップＳ３７）。例えば、タイプ判定部１５は、統計的推定部１３によって推定されたタイプ候補ごとに、統計スコアと、演繹ルール適用部１４によって取得された補正スコアとに基づいて、タイプ候補ごとの最終的なスコアを計算する。
【００７７】
そして、タイプ判定部１５は、スコアの高いタイプを画面に出力する（ステップＳ３８）。そして、タイプ判定部１５は、タイプ推定処理を終了する。
【００７８】
［タイプ推定の用途例］
図１０Ａおよび図１０Ｂは、実施例に係るタイプ推定の用途の一例を示す図である。
【００７９】
図１０Ａに示すように、対象のテーブルのカラム名の集合が、「会社名、社名、所在地、資本金、主な事業内容、事業所、代表取締役社長、本社、株主」である場合である。かかる場合には、タイプ判定部１５は、タイプとして「会社」を出力する。
【００８０】
図１０Ｂに示すように、対象のテーブルのカラム名の集合が、「店名、住所、アクセス、営業時間、定休日、料金、予算、電話番号、駐車場、ホームページ」である場合である。かかる場合には、タイプ判定部１５は、タイプとして「レストラン」を出力する。
【００８１】
なお、実施例では、タイプ判定部１５は、統計的推定部１３によって推定されたタイプ候補ごとの統計スコアと、演繹ルール適用部１４によって得られたタイプ候補ごとの補正スコアとに基づいて、タイプ候補ごとのスコアを計算する。スコアの計算方法は、統計スコアと補正スコアとが同じ重みである場合の統計スコアと補正スコアとを乗算する方法と説明した。しかしながら、スコアの計算方法は、これに限定されず、統計スコアと補正スコアとが異なる重みである場合であっても良い。例えば、最終スコアｆは、以下の式（１）の計算方法であっても良い。なお、式（１）内のαは、０．０より大きく１．０より小さい実数であるとする。
ｆ＝α×統計スコア×（１−α）×補正スコア・・・式（１）
【００８２】
また、実施例では、タイプ判定部１５は、統計的推定部１３によって統計スコアを用いて推定されたタイプ候補について、統計スコアと、演繹ルール適用部１４によって得られた補正スコアとを用いて、最終的のタイプ候補をスコア化した。しかしながら、タイプ判定部１５は、これに限定されず、統計的推定部１３によって統計スコアを用いて推定されたタイプ候補について、演繹ルールを用いて選択的に排除（フィルタリング）しても良い。例えば、タイプ判定部１５は、演繹ルールを用いて深さが所定値未満のタイプ候補をフィルタリングしても良い。かかる所定値は、例えば、入力される、対象のテーブルのカラム名の集合によって決定されれば良い。
【００８３】
また、実施例では、演繹ルールＤＢ２３に記憶される演繹ルールとして、概念（タイプ）の階層関係を利用した。しかしながら、演繹ルールは、これに限定されず概念（タイプ）の階層以外のオントロジーの情報を利用しても良い。また、利用するオントロジーの情報は、実施例で利用したオントロジー２３´の情報に限定されず、いかなるオントロジーの情報であっても良い。
【００８４】
［実施例の効果］
上記実施例によれば、タイプ推定装置１は、カラム名とカラム名に対するカラムとが対応付けられたテーブルのタイプを推定する際に、以下の処理を行う。タイプ推定装置１は、ナレッジグラフ２１に含まれるタイプと、タイプごとのインスタンスの述語の出現頻度とに基づいて、テーブルのタイプの候補を特定する。タイプ推定装置１は、ナレッジグラフ２１に含まれるタイプ同士の関係を規定したオントロジーの深さに関する情報に基づいて、特定したタイプの候補の中から、テーブルのタイプを推定する。かかる構成によれば、タイプ推定装置１は、タイプごとのインスタンスの述語の出現頻度に加えて、タイプ同士の関係を規定したオントロジーの深さに関する情報を用いることで、テーブルの最適なタイプを推定することができる。
【００８５】
また、上記実施例によれば、タイプ推定装置１は、オントロジーの深さが深い程優先するように、特定したタイプの候補の中から、テーブルのタイプを推定する。かかる構成によれば、タイプ推定装置１は、タイプごとのインスタンスの述語の出現頻度を加味しながら、示す概念が具体的な（下位の）タイプを優先することができる。
【００８６】
また、上記実施例によれば、タイプ推定装置１は、推定したタイプを用いて、ナレッジグラフ２１から、テーブルの中で情報が入力されていない、カラム名のカラムに情報を設定する。かかる構成によれば、タイプ推定装置１は、タイプごとのインスタンスの述語の出現頻度に加えて、タイプ同士の関係を規定したオントロジーの深さに関する情報を用いて推定されたタイプを用いることで、カラム名のカラムに設定される情報の精度を向上させる。
【００８７】
［その他］
なお、図示したタイプ推定装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、タイプ推定装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、統計的推定部１３と演繹ルール適用部１４とタイプ判定部１５とを１つの部として統合しても良い。また、タイプ判定部１５を、入出力を行う入出力部と、タイプを判定する判定部とに分離しても良い。また、図示しない記憶部をタイプ推定装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００８８】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示したタイプ推定装置１と同様の機能を実現するタイプ推定プログラムを実行するコンピュータの一例を説明する。図１１は、タイプ推定プログラムを実行するコンピュータの一例を示す図である。
【００８９】
図１１に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【００９０】
ドライブ装置２１３は、例えばリムーバブルディスク２１０用の装置である。ＨＤＤ２０５は、タイプ推定プログラム２０５ａおよびタイプ推定処理関連情報２０５ｂを記憶する。
【００９１】
ＣＰＵ２０３は、タイプ推定プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、タイプ推定装置１の各機能部に対応する。タイプ推定処理関連情報２０５ｂは、ナレッジグラフ２１、統計情報ＤＢ２２および演繹ルールＤＢ２３に対応する。そして、例えばリムーバブルディスク２１０が、タイプ推定プログラム２０５ａなどの各情報を記憶する。
【００９２】
なお、タイプ推定プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrated  Circuit）カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからタイプ推定プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【００９３】
１  タイプ推定装置
１１  統計スコア計算部
１２  演繹ルール抽出部
１３  統計的推定部
１４  演繹ルール適用部
１５  タイプ判定部
２１  ナレッジグラフ
２２  統計情報ＤＢ
２３  演繹ルールＤＢ
【図１】
2020035332.tif 000003
【図２】
2020035332.tif 000004
【図３】
2020035332.tif 000005
【図４】
2020035332.tif 000006
【図５】
2020035332.tif 000007
【図６】
2020035332.tif 000008
【図７】
2020035332.tif 000009
【図８】
2020035332.tif 000010
【図９】
2020035332.tif 000011
【図１０Ａ】
2020035332.tif 000012
【図１０Ｂ】
2020035332.tif 000013
【図１１】
2020035332.tif 000014
【図１２】
2020035332.tif 000015