JP2019109782A - クエリ生成プログラム、クエリ生成方法およびクエリ生成装置 - Google Patents

クエリ生成プログラム、クエリ生成方法およびクエリ生成装置 Download PDF

Info

Publication number
JP2019109782A
JP2019109782A JP2017243104A JP2017243104A JP2019109782A JP 2019109782 A JP2019109782 A JP 2019109782A JP 2017243104 A JP2017243104 A JP 2017243104A JP 2017243104 A JP2017243104 A JP 2017243104A JP 2019109782 A JP2019109782 A JP 2019109782A
Authority
JP
Japan
Prior art keywords
schema
category
attribute
schemas
output target
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.)
Granted
Application number
JP2017243104A
Other languages
English (en)
Other versions
JP7081137B2 (ja
Inventor
成司 岡嶋
Seiji Okajima
成司 岡嶋
裕章 森川
Hiroaki Morikawa
裕章 森川
西野 文人
Fumito Nishino
文人 西野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017243104A priority Critical patent/JP7081137B2/ja
Priority to US16/204,269 priority patent/US10831746B2/en
Publication of JP2019109782A publication Critical patent/JP2019109782A/ja
Application granted granted Critical
Publication of JP7081137B2 publication Critical patent/JP7081137B2/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/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ取得を実行するクエリの誤りを低減することを課題とする。【解決手段】クエリ生成装置は、それぞれが属性スキーマの集合である複数のカテゴリスキーマから、取得対象のデータを規定する出力対象テーブルが有する複数の出力項目の属性名に基づき、出力対象テーブルと対応付けるメインカテゴリスキーマを決定する。クエリ生成装置は、複数の出力項目のうち、メインカテゴリスキーマに対応付けられない出力項目である未対応項目に対し、メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性と関連付けられるカテゴリスキーマから、未対応項目と対応付けるサブカテゴリスキーマを決定する。クエリ生成装置は、メインカテゴリスキーマ、および、サブカテゴリスキーマに基づき、複数のカテゴリスキーマに対するクエリを生成する。【選択図】図4

Description

本発明は、クエリ生成プログラム、クエリ生成方法およびクエリ生成装置に関する。
近年、オープンデータ運動の進展に伴い、公共性の高いデータがオープンデータとして、広く一般に利用可能な形で公開されてきている。ユーザがオープンデータを活用する場合、所望する項目を設定した出力対象テーブルを生成し、出力対象テーブルの項目に合わせて、オープンデータに対するクエリを生成する。そして、ユーザは、クエリを実行することで、オープンデータから所望のデータを取得する。
"富士通のLOD技術"、[online]、富士通研究所、[2017年10月1日検索]、インターネット(URL:http://www.fujitsu.com/jp/group/labs/resources/tech/techguide/list/lod/p06.html)
しかしながら、オープンデータの各テーブルの各項目と、ユーザが所望する出力対象のテーブルの各項目との対応付けの誤りなどが発生し、データを取得するためのクエリが間違って生成される。このため、オープンデータを有効利用できない状況が発生する。
例えば、出力対象テーブルの項目それぞれの対応付けを行う場合、オープンデータ内の利用可能な各テーブルから、対応付けのテーブルを順次決めていくことになるが、少数の項目から対応付けるテーブルの適否を判断する状況が発生する。このような状況で、特に、利用可能なテーブルの数が多く、かつ、対応付けの対象となる項目が一般的な名称である場合、対応付けを誤る可能性が高い。また、対応付けの適否について、項目の名称以外の情報を用いて判断する場合、オープンデータのサイズによっては、多大な時間とリソースが必要となる。
一つの側面では、データ取得を実行するクエリの誤りを低減することができるクエリ生成プログラム、クエリ生成方法およびクエリ生成装置を提供することを目的とする。
第1の案では、クエリ生成プログラムは、コンピュータに、それぞれが属性スキーマの集合である複数のカテゴリスキーマから、取得対象のデータを規定する出力対象テーブルが有する複数の出力項目の属性名に基づき、前記出力対象テーブルと対応付けるメインカテゴリスキーマを決定する処理を実行させる。クエリ生成プログラムは、コンピュータに、前記複数の出力項目のうち、前記メインカテゴリスキーマに対応付けられない出力項目である未対応項目に対し、前記メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性と関連付けられるカテゴリスキーマから、前記未対応項目と対応付けるサブカテゴリスキーマを決定する処理を実行させる。クエリ生成プログラムは、コンピュータに、前記メインカテゴリスキーマ、および、前記サブカテゴリスキーマに基づき、前記複数のカテゴリスキーマに対するクエリを生成する処理を実行させる。
一実施形態によれば、データ取得を実行するクエリの誤りを低減することができる。
図1は、実施例1にかかるシステムの全体構成例を示す図である。 図2は、テーブルの対応付けを説明する図である。 図3は、テーブルの対応付けの困難性を説明する図である。 図4は、実施例1にかかるクエリ生成装置の機能構成を示す機能ブロック図である。 図5は、出力対象情報DBに記憶される情報を説明する図である。 図6は、カテゴリスキーマDBに記憶される情報を説明する図である。 図7は、付加情報DBに記憶される情報を説明する図である。 図8は、カテゴリスキーマ決定後のサブカテゴリスキーマの決定例を説明する図である。 図9は、クエリの例を示す図である。 図10は、全体的な処理の流れを示すフローチャートである。 図11は、カテゴリスキーマの類似度計算処理の流れを示すフローチャートである。 図12は、サブカテゴリスキーマの選択処理の流れを示すフローチャートである。 図13は、カテゴリスキーマの継承関係を用いる例を説明する図である。 図14は、ハードウェア構成例を説明する図である。
以下に、本願の開示するクエリ生成プログラム、クエリ生成方法およびクエリ生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例1にかかるシステムの全体構成例を示す図である。図1に示すように、このシステムは、複数のDB1とユーザ端末5とクエリ生成装置10とがネットワークNを介して相互に通信可能に接続される。なお、ネットワークNは、有線や無線を問わず、インターネットなどの各種通信網を採用することができる。
複数のDB1は、世界中で公開されるオープンデータを記憶するデータベースやデータベースサーバなどの一例である。ここで記憶されるデータは、LOD(Linked Open Data)やナレッジグラフなどと呼ばれ、クラウドシステムなどを用いて一般的に公開されており、任意に利用することができる。本実施例では、ナレッジグラフを一例として説明する。
ユーザ端末5は、スマートフォン、パーソナルコンピュータ、サーバなどのコンピュータ装置の一例である。ユーザ端末5は、所望する項目を設定した出力対象テーブルを生成し、出力対象テーブルの項目に該当するデータをナレッジグラフから取得する。
クエリ生成装置10は、ナレッジグラフからデータを取得するためのクエリを生成するコンピュータ装置の一例である。具体的には、クエリ生成装置10は、ユーザ端末5から出力対象テーブルを受け付けて、出力対象テーブルに該当するデータをナレッジグラフから取得するためのクエリを生成する。そして、クエリ生成装置10は、生成したクエリをユーザ端末5に送信する。この結果、ユーザ端末5は、クエリを実行することで、出力対象テーブルに該当するデータをナレッジグラフから取得できる。
ここで、ユーザ自身がクエリを生成する際に発生する、クエリ生成の困難性について説明する。具体的には、図2を用いて、ユーザ自身が、出力対象テーブルの各項目とナレッジグラフが有する各項目との対応付けについて説明する。図2は、テーブルの対応付けを説明する図である。
まず、ナレッジグラフについて説明する。ナレッジグラフは、複数のカテゴリスキーマを有する。各カテゴリスキーマは、ナレッジグラフから得られる属性の情報でありグラフで表現される属性スキーマと、カテゴリスキーマの名称であるカテゴリ名とを有する。すなわち、カテゴリスキーマは、ナレッジグラフによって表現される属性スキーマの集合であり、属性スキーマは、ナレッジグラフによって表現される属性の情報である。また、属性名は、ナレッジグラフでは属性スキーマの名称であり、出力対象テーブルの項目名であり、いずれも文字列である。
図2を用いて具体的に説明すると、図2のAは、各カテゴリスキーマを含むナレッジグラフを示す。例えば、カテゴリ名が「サッカー選手」であるカテゴリスキーマは、属性スキーマとして、「名前、所属、生年、ポジション、利き足」を有する。ここで、「名前、所属、生年、ポジション、利き足」のそれぞれが属性名に該当する。また、図2のBは、ユーザが生成する出力対象テーブルの例であり、「名前、所属チーム名、リーグ名、年齢、ポジション、利き足」のそれぞれが属性名に該当する。
このような状況において、ユーザは、クエリ発行のために、ナレッジグラフ中のカテゴリスキーマと出力対象テーブルとの対応付けを考える。具体的には、ナレッジグラフ中の各カテゴリスキーマと出力対象テーブルの対応を順次求める。このとき、一般的には、属性名間の対応関係は文字列の部分一致などの類似度指標を利用して最も適したものを選択し、どの順番でカテゴリスキーマを割り当てるかは、属性名の数に対する被覆率などといった指標を利用して決定する。
しかし、順次対応付けを行っていくと、少数の属性名から対応関係を判断する状況が生じる。この状況で、対応付けの対象となるカテゴリスキーマの数が多かったり、出力対象テーブルの属性名が一般的な名称であったりすると、対応付けを誤る可能性が高くなる。すなわち、一般的なユーザでは、正しく対応付けを行うことが難しい。
図3は、テーブルの対応付けの困難性を説明する図である。図3に示すように、出力対象テーブルの各属性名と各カテゴリスキーマの各属性スキーマとを比較し、属性名に対する被覆率を計算する。ここでは、カテゴリスキーマ「サッカー選手」が有する5つの属性スキーマのうち4つが出力対象テーブルの属性名と類似するので、被覆率が最も高いカテゴリスキーマとして、「サッカー選手」が選択される。
そして、ユーザは、カテゴリスキーマ「サッカー選手」の属性スキーマ「名前、所属、ポジション、利き足」のそれぞれを、出力対象テーブルの属性名「名前、所属チーム、ポジション、利き足」に対応付ける。
続いて、出力対象テーブルの各属性名と、「サッカー選手」以外の各カテゴリスキーマの各属性スキーマとを比較し、属性名に対する被覆率を計算する。ここでは、カテゴリスキーマ「バレーボールチーム」が有する3つの属性スキーマのうち2つが出力対象テーブルの属性名と類似するので、被覆率が次に高いカテゴリスキーマとして、「バレーボールチーム」が選択される。しかし、ここでは、「バレーボールチーム」ではなく「サッカーチーム」を選択することが正しい。このように、一般的な手法である被覆率だけでは、対応付けの誤りが発生するとともに、ユーザがその誤りに気付くのも難しい。
そこで、実施例1にかかるクエリ生成装置10は、出力対象テーブルと対応付けるカテゴリスキーマを順次決定する際、メインカテゴリスキーマを決定した後、既に対応付けられたメインカテゴリスキーマのもつ属性スキーマの値域から対応付けの候補を列挙する。そして、クエリ生成装置10は、列挙したカテゴリスキーマと出力対象テーブルの対応付けを計算し、対応付けるカテゴリスキーマ(サブカテゴリスキーマ)を決定する。
つまり、クエリ生成装置10は、ナレッジグラフが有する各種情報を用いて、対応付け候補を絞り込んで、出力対象テーブルとの対応付けを行う。この結果、クエリ生成装置10は、データ取得を実行するクエリの誤りを低減することができる。
[機能構成]
図4は、実施例1にかかるクエリ生成装置10の機能構成を示す機能ブロック図である。図4に示すように、クエリ生成装置10は、通信部11、記憶部12、制御部20を有する。
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、各DB1からナレッジグラフを取得し、ユーザ端末5から出力対象テーブルを取得し、ユーザ端末5にクエリを送信する。
記憶部12は、データやプログラムを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、出力対象情報DB13、ナレッジグラフ情報DB14、カテゴリスキーマDB15、付加情報DB16、選択情報DB17、クエリDB18を記憶する。
出力対象情報DB13は、ユーザが生成した出力対象テーブルを記憶するデータベースである。図5は、出力対象情報DB13に記憶される情報を説明する図である。図5に示すように、出力対象情報DB13は、「名前、所属チーム名、リーグ名、年齢、ポジション、利き足」のそれぞれを属性名とする出力対象テーブルを記憶する。つまり、ユーザは、ナレッジグラフから、「名前、所属チーム名、リーグ名、年齢、ポジション、利き足」のそれぞれに該当するデータを取得するクエリの作成を検討する。
ナレッジグラフ情報DB14は、ナレッジグラフに関する情報を記憶するデータベースである。例えば、ナレッジグラフ情報DB14は、クラウドシステム上における各カテゴリスキーマの格納位置などを記憶する。ここで記憶される情報は、管理者等が格納することもでき、ナレッジグラフから取得することもできる。
カテゴリスキーマDB15は、ナレッジグラフが有する各カテゴリスキーマに関する情報を記憶するデータベースである。図6は、カテゴリスキーマDB15に記憶される情報を説明する図である。図6に示すように、カテゴリスキーマDB15は、カテゴリ名が「サッカー選手」、「バレーボール選手」、「バレーボールチーム」、「サッカーチーム」の各カテゴリスキーマを記憶する。
また、カテゴリスキーマ「サッカー選手」は、属性スキーマとして、「名前、所属、生年、ポジション、利き足」を有する。同様に、カテゴリスキーマ「バレーボール選手」は、属性スキーマとして、「名前、所属、生年、ポジション、指高」を有する。カテゴリスキーマ「バレーボールチーム」は、属性スキーマとして、「チーム名、代表者、所属リーグ」を有する。カテゴリスキーマ「サッカーチーム」は、属性スキーマとして、「チーム名、代表者、所属リーグ、ホームタウン」を有する。
一例を挙げると、カテゴリスキーマDB15は、カテゴリ名が「サッカー選手=特許太郎」であるカテゴリスキーマとして、「名前=特許太郎、所属=特許チーム、生年=200年1月1日、ポジション=FW(フォワード)、利き足=右」などを記憶する。また、カテゴリスキーマDB15は、カテゴリ名が「サッカーチーム=特許チーム」であるカテゴリスキーマとして、「チーム名=特許チーム、代表者=山田太郎、所属リーグ=国内プロリーグ、ホームタウン=東京」などを記憶する。
付加情報DB16は、ナレッジグラフから得られる属性に関する情報やカテゴリスキーマに関する情報を、ナレッジグラフと同様のグラフ形式で記憶するデータベースである。図7は、付加情報DB16に記憶される情報を説明する図である。図7に示すように、付加情報DB16は、各カテゴリスキーマについて、カテゴリスキーマのもつ属性スキーマの付加情報として、別名、重み、定義域、値域、計算式などを記憶する。
例えば、図7に示すように、付加情報DB16は、カテゴリスキーマ「サッカー選手」の属性スキーマ「所属」の付加情報として、名前(name)の「所属」、別名(altname)の「所属チーム」、定義域(domain)の「サッカー選手」、値域(range)の「サッカーチーム」を記憶する。また、付加情報DB16は、カテゴリスキーマ「サッカー選手」の属性スキーマ「生年」の付加情報として、第1項の「currentyear」、第2項として「生年」を記憶するとともに、「年齢」が「currentyear」−「生年」で計算(calc)できることを記憶する。
選択情報DB17は、後述する制御部20によって選択されたカテゴリスキーマを記憶するデータベースである。具体的には、選択情報DB17は、出力対象テーブルに対応付けるカテゴリスキーマを記憶する。
クエリDB18は、後述する制御部20によって生成されたクエリを記憶するデータベースである。具体的には、クエリDB18は、出力対象テーブルの各属性目に該当するデータを、データを記憶するカテゴリスキーマから取得するためのクエリを記憶する。
制御部20は、クエリ生成装置10全体を司る処理部であり、例えばプロセッサなどである。この制御部20は、情報取得部21、メイン選択部22、サブ選択部23、クエリ生成部24を有する。なお、情報取得部21、メイン選択部22、サブ選択部23、クエリ生成部24は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
情報取得部21は、他の装置から各種情報を取得して記憶部12の該当するDBに格納する処理部である。例えば、情報取得部21は、ユーザ端末5から出力対象テーブルを取得して、出力対象情報DB13に格納する。また、情報取得部21は、ナレッジグラフ(各DB1)からカテゴリスキーマに関する情報を取得して、ナレッジグラフ情報DB14に格納する。また、情報取得部21は、ナレッジグラフ(各DB1)からカテゴリスキーマを取得して、カテゴリスキーマDB15に格納する。
メイン選択部22は、それぞれが属性スキーマの集合である複数のカテゴリスキーマから、出力対象テーブルが有する複数の出力項目の属性名に基づき、出力対象テーブルに対するメインカテゴリスキーマを選択する処理部である。具体的には、メイン選択部22は、各カテゴリスキーマの属性名と出力対象テーブルの属性名との類似度を算出し、各カテゴリスキーマと出力対象テーブルとの間の類似度を算出する。そして、メイン選択部22は、類似度が最も大きいカテゴリスキーマを、メインカテゴリスキーマに決定する。
例えば、メイン選択部22は、カテゴリスキーマ「サッカー選手」の各属性スキーマと出力対象テーブルの属性名の類似度を計算する。まず、メイン選択部22は、サッカー選手の「名前」と最長部分一致する属性名を探して、類似度を計算する。ここでは、メイン選択部22は、「LCS(サッカー選手.名前,出力対象テーブル.名前)/max(length(サッカー選手.名前),length(出力対象テーブル.名前))」で計算する。すなわち、メイン選択部22は、「(LCS(サッカー選手.名前,出力対象テーブル.名前)=2)/(max(length(サッカー選手.名前)=2,length(出力対象テーブル.名前)=2)=2)」より、類似度=「2/2」=1を算出する。なお、「サッカー選手.名前」は、カテゴリスキーマ「サッカー選手」の属性名「名前」を表記したものである。
続いて、メイン選択部22は、サッカー選手の「所属」と最長部分一致する属性名を探して、類似度を計算する。ただし、付加情報DB16を参照すると、サッカー選手の「所属」は別名「所属チーム」を持つので、別名との類似度も計算して類似度が最大のものを選択する。ここでは、「LCS(サッカー選手.所属チーム,出力対象テーブル.所属チーム名)/max(length(サッカー選手.所属チーム),length(出力対象テーブル.所属チーム名))」の類似度が最も高い。すなわち、メイン選択部22は、「(LCS(サッカー選手.所属チーム=5,出力対象テーブル.所属チーム名=6)=5)/(max(length(サッカー選手.所属チーム)=5,length(出力対象テーブル.所属チーム名)=6)=6」より、類似度=「5/6」を算出する。
続いて、メイン選択部22は、サッカー選手の「生年」と最長部分一致する属性名を探して、類似度を計算する。ただし、付加情報DB16を参照すると、「年齢」から「生年」に変換可能であることから、「生年」と「年齢」のそれぞれについて類似度を計算して、類似度が最大のものを選択する。ここでは、「LCS(サッカー選手.年齢,出力対象テーブル.年齢)/max(length(サッカー選手.年齢),length(出力対象テーブル.年齢))」の類似度が最も高い。すなわち、メイン選択部22は、「(LCS(サッカー選手.年齢=2,出力対象テーブル.年齢=2)=2)/(max(length(サッカー選手.年齢)=2,length(出力対象テーブル.年齢)=2)=2」より、類似度=「2/2」=1を算出する。
続いて、メイン選択部22は、サッカー選手の「ポジション」と最長部分一致する属性名を探して、類似度を計算する。ここでは、「LCS(サッカー選手.ポジション,出力対象テーブル.ポジション)/max(length(サッカー選手.ポジション),length(出力対象テーブル.ポジション))」の類似度が最も高い。すなわち、メイン選択部22は、「(LCS(サッカー選手.ポジション,出力対象テーブル.ポジション)=5)/(max(length(サッカー選手.ポジション)=5,length(出力対象テーブル.ポジション)=5)=5)」より、類似度=「5/5」=1を算出する。
続いて、メイン選択部22は、サッカー選手の「利き足」と最長部分一致する属性名を探して、類似度を計算する。ここでは、「LCS(サッカー選手.利き足,出力対象テーブル.利き足)/max(length(サッカー選手.利き足),length(出力対象テーブル.利き足))」の類似度が最も高い。すなわち、メイン選択部22は、「(LCS(サッカー選手.利き足,出力対象テーブル.利き足)=3)/(max(length(サッカー選手.利き足)=3,length(出力対象テーブル.利き足)=3)=3)」より、類似度=「3/3」=1を算出する。
そして、メイン選択部22は、カテゴリスキーマ「サッカー選手」と出力対象テーブルの類似度を「出力対象テーブルに対する被覆率×各属性スキーマの類似度の平均値」で算出する。ここで、出力対象テーブルの6つの属性名のうち5つがカテゴリスキーマ「サッカー選手」の属性名と一致する(上記類似度が0以上)ので、被覆率は5/6となる。したがって、メイン選択部22は、「(5/6)×((1+5/6+1+1+1)/5)」=0.8055を、カテゴリスキーマ「サッカー選手」と出力対象テーブルの類似度として算出する。
同様に、メイン選択部22は、カテゴリスキーマ「バレーボール選手」の各属性スキーマと出力対象テーブルの属性名の類似度を計算する。具体的には、メイン選択部22は、「バレーボール選手.名前」については「出力対象テーブル.名前」が完全に一致するので、類似度を「1」と算出する。また、メイン選択部22は、「バレーボール選手.所属(別名:所属チーム)」については「出力対象テーブル.所属チーム名」と5文字が一致するので、類似度を「5/6」と算出する。メイン選択部22は、「バレーボール選手.生年(計算可能:年齢)」については「出力対象テーブル.年齢」と完全一致するので、類似度を「1」と算出する。メイン選択部22は、「バレーボール選手.ポジション」については「出力対象テーブル.ポジション」と完全一致するので、類似度を「1」と算出する。また、メイン選択部22は、「バレーボール選手.指高」については「出力対象テーブル」に被覆する文字列が存在しないので、類似度を「0」と算出する。
そして、メイン選択部22は、カテゴリスキーマ「バレーボール選手」と出力対象テーブルの類似度を「出力対象テーブルに対する被覆率×各属性スキーマの類似度の平均値」で算出する。ここで、出力対象テーブルの6つの属性名のうち4つがカテゴリスキーマ「バレーボール選手」の属性名と一致するので、被覆率は4/6となる。したがって、メイン選択部22は、「(4/6)×((1+5/6+1+1+0)/5)」=0.51111を、カテゴリスキーマ「バレーボール選手」と出力対象テーブルの類似度として算出する。
同様に、メイン選択部22は、カテゴリスキーマ「バレーボールチーム」の各属性スキーマと出力対象テーブルの属性名の類似度を計算する。具体的には、メイン選択部22は、「バレーボールチーム.チーム名」については、出力対象テーブルの「所属チーム名」と最長部分一致するので、類似度を「4/6」と算出する。メイン選択部22は、「バレーボールチーム.代表者」については、部分一致する出力対象テーブルの属性名が存在しないので、類似度を「0」と算出する。メイン選択部22は、「バレーボールチーム.所属リーグ」については、出力対象テーブルの「リーグ名」と最長部分一致するので、類似度を「3/5」と算出する。
そして、メイン選択部22は、カテゴリスキーマ「バレーボールチーム」と出力対象テーブルの類似度を、「出力対象テーブルに対する被覆率×各属性スキーマの類似度の平均値」=「(2/6)×((4/6+0+3/5)/3)」=0.14074を、カテゴリスキーマ「バレーボールチーム」と出力対象テーブルの類似度として算出する。
同様に、メイン選択部22は、カテゴリスキーマ「サッカーチーム」の各属性スキーマと出力対象テーブルの属性名の類似度を計算する。具体的には、メイン選択部22は、「サッカーチーム.チーム名」については、出力対象テーブルの「所属チーム名」と最長部分一致するので、類似度を「4/6」と算出する。メイン選択部22は、「サッカーチーム.代表者」については、部分一致する出力対象テーブルの属性名が存在しないので、類似度を「0」と算出する。メイン選択部22は、「サッカーチーム.所属リーグ」については、出力対象テーブルの「リーグ名」と最長部分一致するので、類似度を「3/5」と算出する。メイン選択部22は、「サッカーチーム.ホームタウン」については、部分一致する出力対象テーブルの属性名が存在しないので、類似度を「0」と算出する。
そして、メイン選択部22は、カテゴリスキーマ「サッカーチーム」と出力対象テーブルの類似度を、「出力対象テーブルに対する被覆率×各属性スキーマの類似度の平均値」=「(2/6)×((4/6+0+3/5+0)/4)」≒0.10556を、カテゴリスキーマ「サッカーチーム」と出力対象テーブルの類似度として算出する。
このようして類似度を算出した後、メイン選択部22は、類似度が最大かつ閾値(例えば0.1)を超えているカテゴリスキーマ「サッカー選手」をメインカテゴリスキーマに選択する。この結果、メイン選択部22は、カテゴリスキーマ「サッカー選手」の属性スキーマ「名前、所属、生年、ポジション、利き足」のうち、類似度が1であった属性スキーマ「名前、所属、ポジション、利き足」を出力対象テーブルの属性名「名前、所属チーム名、ポジション、利き足」にそれぞれ対応付ける。
そして、メイン選択部22は、この対応付けの情報や選択したカテゴリスキーマ「サッカー選手」に関する情報等を選択情報DB17に格納し、サブ選択部23にも通知する。なお、例えば閾値0.1以下の場合マッチするカテゴリスキーマなしと判定される。また、上記類似度の算出において、最長部分一致する属性名が複数ある場合は、類似度が最大のものが選択される。
図4に戻り、サブ選択部23は、出力対象テーブルの属性名のうち、メインカテゴリスキーマに対応付けられない属性名それぞれに対し、メインカテゴリスキーマの特性に関する情報、および、決定候補となるカテゴリスキーマそれぞれの属性スキーマに関する情報に基づき、サブカテゴリスキーマを決定する処理部である。
具体的には、サブ選択部23は、既に対応付けられたメインカテゴリスキーマのもつ属性スキーマのrangeからカテゴリスキーマの列挙を行い、類似度による対応付けを行う。そして、サブ選択部23は、対応付けが失敗もしくは出力対象テーブルのすべての属性名がカテゴリスキーマと対応付けられたところで処理を終了する。
上記例では、サブ選択部23は、出力対象テーブルのうち、メインカテゴリスキーマ「サッカー選手」の属性スキーマと対応していない属性名の集合(部分テーブル)について、サブカテゴリスキーマ候補「サッカーチーム」との類似度を計算する。
図8は、カテゴリスキーマ決定後のサブカテゴリスキーマの決定例を説明する図である。図8に示すように、カテゴリスキーマ「サッカー選手」の属性スキーマ「名前、所属、生年、ポジション、利き足」が出力対象テーブルの属性名「名前、所属チーム名、年齢、ポジション、利き足」のそれぞれに対応付けられたので、サブ選択部23は、付加情報DB16を参照して、カテゴリスキーマ「サッカー選手」の属性スキーマ「名前、所属、生年、ポジション、利き足」のそれぞれのrangeから次の対応付け候補を検索する。例えば、図8に示す状態の場合、サブ選択部23は、カテゴリスキーマ「サッカーチーム」、カテゴリスキーマ「社長」、カテゴリスキーマ「サッカー選手」、カテゴリスキーマ「バレーボール選手」を、サブカテゴリスキーマ候補とする。
ただし、上記例では、サブ選択部23は、「サッカー選手」が既に出力対象テーブルと対応付けられているため、サッカー選手をrangeとしてもつ「名前」から列挙される候補は除外するので、サッカーチームのみを候補とする。この場合、サブ選択部23は、カテゴリスキーマDB15を参照して、カテゴリスキーマ「サッカーチーム」の属性スキーマ「チーム名、代表者、所属リーグ、ホームタウン」を特定する。
そして、サブ選択部23は、出力対象テーブルの属性名「名前、所属チーム名、リーグ名、年齢、ポジション、利き足」のうち、メインカテゴリスキーマ「サッカー選手」と対応付けられていない属性スキーマ「リーグ名」について、上記類似度計算により、カテゴリスキーマ「サッカーチーム」がサブカテゴリスキーマとして選択可能か否かを判定する。なお、出力対象テーブルの属性名「所属チーム名」は、メインカテゴリスキーマ「サッカー選手」の属性スキーマ「所属」と対応しているが、「サッカーチーム」は「所属」のrangeであり、属性スキーマを共有する可能性があるので、類似度計算の対象とする。すなわち、サブ選択部23は、出力対象テーブルの属性名「所属チーム、リーグ名」について、類似度判定を実行する。
具体的には、サブ選択部23は、メイン選択部22と同様の手法により、カテゴリスキーマ「サッカーチーム」の各属性スキーマと出力対象テーブルの属性名の類似度を計算する。例えば、サブ選択部23は、「サッカーチーム.チーム名」については、出力対象テーブルの「所属チーム名」と最長部分一致するので、類似度を「4/6」と算出する。サブ選択部23は、「サッカーチーム.代表者」については、部分一致する出力対象テーブルの属性名が存在しないので、類似度を「0」と算出する。サブ選択部23は、「サッカーチーム.所属リーグ」については、出力対象テーブルの「リーグ名」と最長部分一致するので、類似度を「3/5」と算出する。サブ選択部23は、「サッカーチーム.ホームタウン」については、部分一致する出力対象テーブルの属性名が存在しないので、類似度を「0」と算出する。
そして、サブ選択部23は、類似度の判定対象である出力対象テーブルの属性名「所属チーム、リーグ名」がカテゴリスキーマ「サッカー選手」の属性スキーマと被覆(文字列の一致)しているので、被覆率を「(2/2)=1」と算出する。また、メイン選択部は、各属性スキーマの平均値として、「(4/6+0+3/5+0)/4≒0.31667」を算出する。この結果、サブ選択部23は、カテゴリスキーマ「サッカーチーム」と出力対象テーブルの類似度として、「出力対象テーブルに対する被覆率×各属性スキーマの類似度の平均値」=「1×0.31667=0.31667」を算出する。
続いて、サブ選択部23は、サブカテゴリスキーマ候補であるカテゴリスキーマ「サッカーチーム」の類似度が閾値以上であることから、カテゴリスキーマ「サッカーチーム」をサブカテゴリスキーマに選択する。この結果、サブ選択部23は、カテゴリスキーマ「サッカーチーム」の属性スキーマ「所属リーグ」を、出力対象テーブルの属性名「所属チーム名」に対応付ける。
そして、サブ選択部23は、この対応付けの情報や選択したサブカテゴリスキーマ「サッカーチーム」に関する情報等を選択情報DB17に格納し、なお、例えば閾値0.1以下の場合マッチするカテゴリスキーマなしと判定される。また、上記類似度の算出において、最長部分一致する属性名が複数ある場合は、類似度が最大のものが選択される。また、サブ選択部23は、rangeが複数存在する場合、各カテゴリスキーマについて上記類似度を算出し、類似度が最も高いカテゴリスキーマをサブカテゴリスキーマに選択する。
クエリ生成部24は、メイン選択部22およびサブ選択部23による対応付け結果に基づいて、クエリを生成する処理部である。具体的には、クエリ生成部24は、メイン選択部22によって選択されたカテゴリスキーマの属性スキーマと対応付けられるデータ、および、サブ選択部23によって選択されたサブカテゴリスキーマの属性スキーマと対応付けられるデータから、出力対象テーブルの属性名に対応するデータを読み出して取得するクエリを生成する。
例えば、ナレッジグラフをLinked Dataとして格納している場合で考えると、ナレッジグラフのノード、エッジはURI(Uniform Resource Identifier)で表現される。一例を挙げると、「サッカー選手」は「http://example/サッカー選手」などと表現される。そして、クエリ生成部24は、「サッカー選手」および「サッカーチーム」の各カテゴリスキーマが選択されている場合に、クエリ言語としてSPARQLを利用して図9に示すSPARQLクエリを生成することができる。図9は、クエリの例を示す図である。そして、クエリ生成部24は、図9に示すクエリをクエリDB18に格納したり、ユーザ端末5に送信したりする。なお、ユーザ端末5は、図9に示すクエリを実行することで、出力対象テーブルに該当するデータをナレッジグラフから取得することができる。
[処理の流れ]
次に、クエリ生成に関する処理の流れについて説明する。ここでは、全体的な処理、カテゴリスキーマの選択、サブカテゴリスキーマの選択の各処理について説明する。
(全体的な処理)
図10は、全体的な処理の流れを示すフローチャートである。図10に示すように、情報取得部21は、ユーザ端末5から出力対象テーブルを取得して、出力対象情報DB13に格納する(S101)。続いて、情報取得部21は、ナレッジグラフからカテゴリスキーマに関する情報を取得して、カテゴリスキーマDB15に格納する(S102)。なお、情報取得部21は、ナレッジグラフからナレッジグラフに関する情報を取得して、ナレッジグラフ情報DB14に格納することもできる。
そして、メイン選択部22は、カテゴリスキーマの類似度計算処理を実行し(S103)、類似度が最大かつ閾値を越えているカテゴリスキーマをメインカテゴリスキーマに決定する(S104)。
その後、サブ選択部23は、類似度計算によるサブカテゴリスキーマの選択処理を実行し(S105)、クエリ生成部24は、カテゴリスキーマと出力対象テーブルの対応情報に基づいてクエリを生成する(S106)。
(カテゴリスキーマの選択)
図11は、カテゴリスキーマの類似度計算処理の流れを示すフローチャートである。この処理は、図10のS103で実行される処理であり。
図11に示すように、メイン選択部22は、類似度の算出が完了していない場合(S201:No)、カテゴリスキーマDB15等から、類似度を調べていないカテゴリスキーマの情報を取得する(S202)。例えば、メイン選択部22は、すべてのカテゴリスキーマについて出力対象テーブルとの類似度を調べたかを判定し、完了していない場合には、S202を実行し、完了している場合には、処理を終了して、図10のS104が実行される。
続いて、メイン選択部22は、対応関係の判定が完了しているか否かを判定する(S203)。例えば、メイン選択部22は、取得したカテゴリスキーマのすべての属性スキーマについて、出力完了テーブルの属性名との対応関係を調べたか否かを判定する。
そして、メイン選択部22は、対応関係の判定が完了していない場合(S203:No)、まだ対応関係を調べていない属性スキーマの情報を取得する(S204)。続いて、メイン選択部22は、属性スキーマの情報を利用して出力対象テーブルの属性名と最長一致する属性スキーマを取得する(S205)。そして、メイン選択部22は、最長一致する属性スキーマのうち最も類似度が高くかつ閾値を超えているものを対応する属性スキーマとする(S206)。その後、S203以降の処理が繰り返される。
一方、S203において、メイン選択部22は、対応関係の判定が完了した場合(S203:Yes)、属性スキーマと出力対象テーブルの属性名の対応関係から、出力対象テーブルに対するカテゴリスキーマの被覆率を計算する(S207)。そして、メイン選択部22は、属性スキーマの対応関係と被覆率から、出力対象テーブルとカテゴリスキーマの類似度を計算する(S208)。その後、S201に戻って以降の処理が繰り返される。
(サブカテゴリスキーマの選択)
図12は、サブカテゴリスキーマの選択処理の流れを示すフローチャートである。この処理は、図10のS105で実行される処理であり。
図12に示すように、サブ選択部23は、対応付けが完了していない場合(S301:No)、既に対応付けられたカテゴリスキーマの属性スキーマについて付加情報(range)から対応付け候補となるカテゴリスキーマを列挙する(S302)。例えば、サブ選択部23は、出力対象テーブルにおいて対応付けが未完了の部分を示す部分テーブルのすべての属性名がカテゴリスキーマと対応付けられているかを判定し、完了していない場合には、S302を実行し、完了している場合には、処理を終了して、図10のS106が実行される。
続いて、サブ選択部23は、列挙したすべてのカテゴリスキーマについて、部分テーブルとの対応関係を調べたか否かを判定する(S303)。そして、サブ選択部23は、対応関係の未調査が存在する場合(S303:No)、まだ対応関係を調べていないカテゴリスキーマを取得する(S304)。
その後、サブ選択部23は、列挙したカテゴリスキーマのすべての属性スキーマについて部分テーブルとの対応関係を調べたか否かを判定する(S305)。そして、サブ選択部23は、対応関係の未調査が存在する場合(S305:No)、まだ対応関係を調べていない属性スキーマの情報を取得する(S306)。続いて、サブ選択部23は、属性スキーマの情報を利用して部分テーブルの属性名と名称が最長一致する属性スキーマを取得する(S307)。そして、サブ選択部23は、名称が最長一致する属性スキーマから最も類似度が高く、かつ、類似度が閾値を超えているものを対応する属性スキーマとする(S308)。その後、S305以降の処理が繰り返される。
一方、S305において、サブ選択部23は、対応関係の調査が完了した場合(S305:Yes)、属性スキーマの対応関係から部分テーブルに対するカテゴリスキーマの被覆率を計算する(S309)。そして、サブ選択部23は、属性スキーマの対応関係と被覆率から部分テーブルとカテゴリスキーマの類似度を計算する(S310)。その後、S303に戻って以降の処理が繰り返される。
一方、S303において、サブ選択部23は、対応関係の調査が完了した場合(S303:Yes)、属性名との新規対応関係をもつカテゴリスキーマが存在するか否かを判定する(S311)。ここで、サブ選択部23は、属性名との新規対応関係をもつカテゴリスキーマが存在しない場合(S311:No)、処理を終了する。一方、サブ選択部23は、属性名との新規対応関係をもつカテゴリスキーマが存在する場合(S311:Yes)、類似度が最大かつ閾値を超えているカテゴリスキーマをサブカテゴリスキーマとして選択する(S312)。その後、S301に戻って以降の処理が繰り返される。
[効果]
上述したように、クエリ生成装置10は、付加情報をグラフ形式で柔軟に持つことができるカテゴリスキーマを有するナレッジグラフの特徴を有効的に利用する。そして、クエリ生成装置10は、出力対象テーブルと対応付けるカテゴリスキーマを順次決定する際、メインカテゴリスキーマを決定した後、既に対応付けられたカテゴリスキーマのもつ属性スキーマの値域から対応付けの候補を列挙する。その後、クエリ生成装置10は、列挙したカテゴリスキーマと出力テーブルの対応付けを計算し、対応付けるカテゴリスキーマ(サブカテゴリスキーマ)を決定する。
このように、クエリ生成装置10は、カテゴリスキーマを絞り込みながら、出力対象テーブルに対応付けるカテゴリスキーマを選択することができる。したがって、クエリ生成装置10は、データ取得を実行するクエリの誤りを低減することができる。また、クエリ生成装置10は、出力対象テーブルの属性名それぞれに対するカテゴリスキーマの対応付けを、計算量を抑えつつ誤りを低減させて行うことができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
[類似度の算出式]
上記実施例で説明した類似度の算出式等は、あくまで例示であり、例示したものに限定されず、公知の様々な手法を採用することができる。また、カテゴリスキーマの数や閾値なども例示であり、任意に設定変更することができる。
[サブカテゴリスキーマ]
上記実施例では、メインカテゴリスキーマの選択後に、メインカテゴリスキーマが有する属性スキーマの値域(range)を用いて、対応付け候補のサブカテゴリスキーマを選択する例を説明したが、これに限定されるものではない。例えば、重みなど値域(range)以外の他の付加情報を用いて、対応付け候補のサブカテゴリスキーマを選択することもできる。
[継承関係]
例えば、ナレッジグラフの各カテゴリスキーマにクラスなどが設定されている場合、カテゴリスキーマ間で特性を引き継ぐ継承関係を有する場合がある。そのような場合に継承関係を用いて、対応付け候補となるカテゴリスキーマを絞り込むこともできる。
図13は、カテゴリスキーマの継承関係を用いる例を説明する図である。図13に示すように、カテゴリスキーマ「株式会社」の継承元がカテゴリスキーマ「会社」であり、カテゴリスキーマ「会社」の継承元がカテゴリスキーマ「組織」である例で説明する。この場合、クエリ生成装置10は、カテゴリスキーマのうち類似度が最も高いカテゴリスキーマとして「株式会社」を特定したとする。
すると、クエリ生成装置10は、サブカテゴリスキーマの選択に際して、カテゴリスキーマ「株式会社」を継承先とする継承元のカテゴリスキーマ「会社」に対して、類似度による判定を実行する。このとき、クエリ生成装置10は、継承元のカテゴリスキーマが複数存在する場合は、各継承元のカテゴリスキーマについて類似度による判定を行う。このようにして、クエリ生成装置10は、継承関係によって、対応付け候補のカテゴリスキーマを絞り込むこともできる。
図13の例では、カテゴリスキーマ「株式会社」の属性スキーマ「株価時価総額」が出力対象テーブルの属性名「時価総額」に対応付けられた後、継承関係にあるカテゴリスキーマ「会社」の属性スキーマ「社長」が出力対象テーブルの属性名「社長」に対応付けられる。その後、更なる継承関係にあるカテゴリスキーマ「組織」の属性スキーマ「名前」が出力対象テーブルの属性名「名前」に対応付けられる。
また、クエリ生成装置10は、対象のサブカテゴリスキーマに利用可能な属性スキーマが存在しない場合に、カテゴリスキーマの継承関係を用いて対応付け候補のカテゴリスキーマを絞り込む。例えば、クエリ生成装置10は、類似度が閾値のカテゴリスキーマが存在しない場合に、メインカテゴリスキーマを継承先とするカテゴリスキーマをサブカテゴリスキーマに決定したり、メインカテゴリスキーマを継承先とする複数のカテゴリスキーマそれぞれについて上記類似度を算出してサブカテゴリスキーマを決定したりすることもできる。この結果、より適切な対応付けを行うことができる場合がある。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア構成]
図14は、ハードウェア構成例を説明する図である。図14に示すように、クエリ生成装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。
通信インタフェース10aは、他の装置の通信を制御するネットワークインタフェースカードなどである。HDD10bは、プログラムやデータなどを記憶する記憶装置の一例である。
メモリ10cの一例としては、SDRAM(Synchronous Dynamic Random Access Memory)等のRAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等が挙げられる。プロセッサ10dの一例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)等が挙げられる。
また、クエリ生成装置10は、プログラムを読み出して実行することでクエリ生成方法を実行する情報処理装置として動作する。つまり、クエリ生成装置10は、情報取得部21、メイン選択部22、サブ選択部23、クエリ生成部24と同様の機能を実行するプログラムを実行する。この結果、クエリ生成装置10は、情報取得部21、メイン選択部22、サブ選択部23、クエリ生成部24と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、クエリ生成装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
1 DB
5 ユーザ端末
10 クエリ生成装置
11 通信部
12 記憶部
13 出力対象情報DB
14 ナレッジグラフ情報DB
15 カテゴリスキーマDB
16 付加情報DB
17 選択情報DB
18 クエリDB
20 制御部
21 情報取得部
22 メイン選択部
23 サブ選択部
24 クエリ生成部

Claims (7)

  1. コンピュータに、
    それぞれが属性スキーマの集合である複数のカテゴリスキーマから、取得対象のデータを規定する出力対象テーブルが有する複数の出力項目の属性名に基づき、前記出力対象テーブルと対応付けるメインカテゴリスキーマを決定し、
    前記複数の出力項目のうち、前記メインカテゴリスキーマに対応付けられない出力項目である未対応項目に対し、前記メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性と関連付けられるカテゴリスキーマから、前記未対応項目と対応付けるサブカテゴリスキーマを決定し、
    前記メインカテゴリスキーマ、および、前記サブカテゴリスキーマに基づき、前記複数のカテゴリスキーマに対するクエリを生成する
    処理を実行させることを特徴とするクエリ生成プログラム。
  2. 前記複数のカテゴリスキーマそれぞれについて、各カテゴリスキーマが有する属性スキーマの名称である属性名と、前記出力対象テーブルの前記属性名との類似度を算出し、類似度が最も高いカテゴリスキーマを、前記メインカテゴリスキーマに決定する処理を、前記コンピュータに実行させることを特徴とする請求項1に記載のクエリ生成プログラム。
  3. 前記メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性のうち、予め指定された特性と関連付けられるカテゴリスキーマが複数存在する場合、該当する複数のカテゴリスキーマそれぞれについて、各カテゴリスキーマが有する属性スキーマの名称である属性名と、前記出力対象テーブルの前記未対応項目の属性名との類似度を算出し、類似度が最も高いカテゴリスキーマを、前記サブカテゴリスキーマに決定する処理を、前記コンピュータに実行させることを特徴とする請求項2に記載のクエリ生成プログラム。
  4. 前記類似度が閾値以上であるカテゴリスキーマが存在しない場合、前記メインカテゴリスキーマの特性を引き継ぐ継承関係にあるカテゴリスキーマから、前記サブカテゴリスキーマを決定する処理を、前記コンピュータに実行させることを特徴とする請求項3に記載のクエリ生成プログラム。
  5. 前記出力対象テーブルが有する複数の出力項目それぞれに該当するデータを、前記メインカテゴリスキーマに記憶される複数のデータ、および、前記サブカテゴリスキーマに記憶される複数のデータから読み出すための前記クエリを生成することを特徴とする請求項1に記載のクエリ生成プログラム。
  6. コンピュータが、
    それぞれが属性スキーマの集合である複数のカテゴリスキーマから、取得対象のデータを規定する出力対象テーブルが有する複数の出力項目の属性名に基づき、前記出力対象テーブルと対応付けるメインカテゴリスキーマを決定し、
    前記複数の出力項目のうち、前記メインカテゴリスキーマに対応付けられない出力項目である未対応項目に対し、前記メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性と関連付けられるカテゴリスキーマから、前記未対応項目と対応付けるサブカテゴリスキーマを決定し、
    前記メインカテゴリスキーマ、および、前記サブカテゴリスキーマに基づき、前記複数のカテゴリスキーマに対するクエリを生成する
    処理を実行することを特徴とするクエリ生成方法。
  7. それぞれが属性スキーマの集合である複数のカテゴリスキーマから、取得対象のデータを規定する出力対象テーブルが有する複数の出力項目の属性名に基づき、前記出力対象テーブルと対応付けるメインカテゴリスキーマを決定する第1決定部と、
    前記複数の出力項目のうち、前記メインカテゴリスキーマに対応付けられない出力項目である未対応項目に対し、前記メインカテゴリスキーマが有する複数の属性スキーマそれぞれの特性と関連付けられるカテゴリスキーマから、前記未対応項目と対応付けるサブカテゴリスキーマを決定する第2決定部と、
    前記メインカテゴリスキーマ、および、前記サブカテゴリスキーマに基づき、前記複数のカテゴリスキーマに対するクエリを生成する生成部と
    を有することを特徴とするクエリ生成装置。
JP2017243104A 2017-12-19 2017-12-19 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置 Active JP7081137B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017243104A JP7081137B2 (ja) 2017-12-19 2017-12-19 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
US16/204,269 US10831746B2 (en) 2017-12-19 2018-11-29 Query generation method, query generation apparatus, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017243104A JP7081137B2 (ja) 2017-12-19 2017-12-19 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置

Publications (2)

Publication Number Publication Date
JP2019109782A true JP2019109782A (ja) 2019-07-04
JP7081137B2 JP7081137B2 (ja) 2022-06-07

Family

ID=66813926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017243104A Active JP7081137B2 (ja) 2017-12-19 2017-12-19 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置

Country Status (2)

Country Link
US (1) US10831746B2 (ja)
JP (1) JP7081137B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210082727A (ko) * 2019-12-26 2021-07-06 포항공과대학교 산학협력단 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734510B2 (en) * 2020-08-27 2023-08-22 Bayerische Motoren Werke Aktiengesellschaft Natural language processing of encoded question tokens and encoded table schema based on similarity
CN113377804B (zh) * 2021-06-30 2022-08-26 北京三快在线科技有限公司 一种数据处理方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139130A (ja) * 1992-10-23 1994-05-20 Fujitsu Ltd オブジェクト指向データベースにおける問い合わせ処理方式
JPH10143539A (ja) * 1996-09-11 1998-05-29 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法および情報検索システムおよび情報資源辞書データを記録した記録媒体および情報検索プログラムを記録した記録媒体
JPH11296532A (ja) * 1998-04-08 1999-10-29 Nippon Telegr & Teleph Corp <Ntt> 異種データ項目結合検索方法および装置と異種データ項目検索プログラムを記録した記録媒体
JP2000099542A (ja) * 1998-09-25 2000-04-07 Ricoh Co Ltd 生産実績の問い合わせ及びデータベースの問い合わせ装置
JP2016136354A (ja) * 2015-01-23 2016-07-28 三菱電機株式会社 データ連携推定装置、データ連携推定方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055655A1 (en) * 2005-09-08 2007-03-08 Microsoft Corporation Selective schema matching
US20070185868A1 (en) * 2006-02-08 2007-08-09 Roth Mary A Method and apparatus for semantic search of schema repositories
US7870117B1 (en) * 2006-06-01 2011-01-11 Monster Worldwide, Inc. Constructing a search query to execute a contextual personalized search of a knowledge base

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139130A (ja) * 1992-10-23 1994-05-20 Fujitsu Ltd オブジェクト指向データベースにおける問い合わせ処理方式
JPH10143539A (ja) * 1996-09-11 1998-05-29 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法および情報検索システムおよび情報資源辞書データを記録した記録媒体および情報検索プログラムを記録した記録媒体
JPH11296532A (ja) * 1998-04-08 1999-10-29 Nippon Telegr & Teleph Corp <Ntt> 異種データ項目結合検索方法および装置と異種データ項目検索プログラムを記録した記録媒体
JP2000099542A (ja) * 1998-09-25 2000-04-07 Ricoh Co Ltd 生産実績の問い合わせ及びデータベースの問い合わせ装置
JP2016136354A (ja) * 2015-01-23 2016-07-28 三菱電機株式会社 データ連携推定装置、データ連携推定方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210082727A (ko) * 2019-12-26 2021-07-06 포항공과대학교 산학협력단 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법
KR102345568B1 (ko) * 2019-12-26 2021-12-31 포항공과대학교 산학협력단 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법

Also Published As

Publication number Publication date
US20190188198A1 (en) 2019-06-20
JP7081137B2 (ja) 2022-06-07
US10831746B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
CN110162695B (zh) 一种信息推送的方法及设备
CN110362727B (zh) 用于搜索***的第三方搜索应用
US8880548B2 (en) Dynamic search interaction
US9299098B2 (en) Systems for generating a global product taxonomy
US20150379013A1 (en) Query Understanding Pipeline
US10268655B2 (en) Method, device, server and storage medium of searching a group based on social network
JPWO2007119567A1 (ja) 文書処理装置および文書処理方法
JP7081137B2 (ja) クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
JP2018028905A5 (ja)
US11544285B1 (en) Automated transformation of hierarchical data from a source data format to a target data format
KR101243056B1 (ko) 개체 식별 결과 검색 시스템 및 방법
JP5408658B2 (ja) 情報整合性判別装置、その方法及びプログラム
JP7022712B2 (ja) クエリ推薦装置及びクエリ推薦方法
US20170161359A1 (en) Pattern-driven data generator
JP5296822B2 (ja) プロフィールマッチング装置及び方法
JP5394512B2 (ja) 教師データ生成装置、方法及びプログラム
TW201416890A (zh) 文章資訊提供方法以及系統
CN113590736B (zh) 索引管理方法、装置、电子设备和可读存储介质
WO2022204845A1 (zh) 实体热度生成方法、装置、存储介质及电子设备
JP6494697B2 (ja) 文書管理システム
JP2008140082A (ja) 情報推薦システム及び情報推薦プログラム
JP5803902B2 (ja) 関連情報出力装置、関連情報出力方法および関連情報出力プログラム
KR20220141493A (ko) 링크드 데이터를 처리하는 장치
JP5555907B2 (ja) 関連度出力装置、関連度出力方法、およびプログラム
CN116049493A (zh) 一种多级企业关系图谱的生成方法、***及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220509

R150 Certificate of patent or registration of utility model

Ref document number: 7081137

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150