JP2021531540A - マルチソース型の相互運用性および/または情報検索の最適化 - Google Patents

マルチソース型の相互運用性および/または情報検索の最適化 Download PDF

Info

Publication number
JP2021531540A
JP2021531540A JP2020565902A JP2020565902A JP2021531540A JP 2021531540 A JP2021531540 A JP 2021531540A JP 2020565902 A JP2020565902 A JP 2020565902A JP 2020565902 A JP2020565902 A JP 2020565902A JP 2021531540 A JP2021531540 A JP 2021531540A
Authority
JP
Japan
Prior art keywords
data
graph
query
neural network
model
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
JP2020565902A
Other languages
English (en)
Other versions
JP7420745B2 (ja
Inventor
エヴレン シリン,
マイケル ハワード グローブ,
ケンドール グラント クラーク,
ジェス エム. バリント,
オリヴェイラ, ペドロ カルヴァーリョ ド
パベル クリノフ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Stardog Union
Original Assignee
Stardog Union
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
Priority claimed from US16/007,850 external-priority patent/US10223417B1/en
Priority claimed from US16/007,639 external-priority patent/US10303688B1/en
Priority claimed from US16/007,911 external-priority patent/US10599719B2/en
Application filed by Stardog Union filed Critical Stardog Union
Publication of JP2021531540A publication Critical patent/JP2021531540A/ja
Priority to JP2024002844A priority Critical patent/JP2024041902A/ja
Application granted granted Critical
Publication of JP7420745B2 publication Critical patent/JP7420745B2/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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Operations Research (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ある実施形態では、データ検索プロセスにおけるクエリ関連のリソース使用を削減する。ある実施形態では、データリクエスト関連のグラフクエリを取得してもよい。グラフデータモデルおよびグラフクエリのパターンに基づいて、グラフクエリがクエリセットに変換されてもよい。生成されるクエリセットは、クエリおよびクエリをリンクするクエリ演算子を含んでもよく、クエリ演算子は第1のクエリと第2のクエリとをリンクする第1のクエリ演算子を含む。第1のクエリまたは第2のクエリの実行に先立って、(例えば、そのようなクエリに由来する結果を組み合わせることに関連する)充足可能性の問題が予測されてもよい。予測に基づいて、クエリセットを更新するために第1のクエリ演算子がクエリセットから削除されてもよく、更新されたクエリセットがグラフクエリを満足させるために実行されてもよい。他の実施形態では、予測に基づくデータサブグラフの生成を介して、データ検索の遅延が低減され得る。

Description

(関連出願の相互参照)
本出願は、2018年6月13日に出願された以下の米国出願の利益を主張し、これらの全内容は参照により本明細書に組み込まれる。(1)米国特許出願第16/007,639号、発明の名称「予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減するシステムおよび方法」、(2)米国特許出願第16/007,911号、発明の名称「予測モデルに基づくグラフデータモデルの生成を提供するためのシステムおよび方法」、(3)米国特許出願第16/07,850号、発明の名称「データ検索プロセスにおけるクエリ関連のリソース使用を低減するシステムおよび方法」。
本発明は、マルチソース型の相互運用性(interoperability)および/または情報検索の最適化を容易にすることに関する。
一般的に、組織が成長するにつれて組織内に存在するデータサイロの数が増加し、組織における他の部門に「接続されていない」固定データのリポジトリが多数作成される。データ形式またはデータソース技術が、以前のまたは現在の標準的に使用されているものと一致しないために、このようなデータサイロが存在している場合が多い。例えば、大企業は、継承された複数のレガシーデータシステムを有し、これらシステムは互いに互換性がないまたは新しいデータシステムとの互換性がない場合がある。様々なデータストレージタイプ、フォーマットまたはITシステムから現在の標準に対応する一つのデータシステムへと、データ移行システムを使用してデータを転送することは可能であるが、このような大規模なデータ移行プロセスには通常、かなりのオーバーヘッド(計算リソース、時間等)が必要であり、他の組織活動に重大な混乱を引き起こし得る。上記のような問題およびその他の問題が存在する。
本発明の側面は、マルチソース型の相互運用性または情報検索の最適化を容易にするための方法、装置またはシステムに関し、例えば、異なるデータソースタイプの複数のデータソースに対するマルチソースタイプのクエリを容易にするためのデータ変換モデルの使用、データ変換モデルを生成するための予測モデルの使用、変換されたデータに対するリクエストを予期して当該データを一時データストレージに格納するための予測モデルの使用、データ検索プロセスにおけるクエリに関連するリソース使用量を削減するためにデータリクエストから導出したクエリセットの最適化等に関する。
ある実施形態では、データ検索プロセスにおけるクエリ関連のリソース使用を削減する。一例として、データリクエスト関連のグラフクエリを取得してもよい。グラフデータモデルおよびグラフクエリのパターンに基づいて、グラフクエリがクエリセットに変換されてもよい。生成されるクエリセットは、クエリおよびクエリをリンクするクエリ演算子を含んでもよく、クエリ演算子は前記クエリの第1のクエリと第2のクエリとをリンクする第1のクエリ演算子またはその他の演算子を含む。前記第1のクエリおよび前記第2のクエリが実行される前に、充足可能性の問題が予測されてもよく、当該充足可能性の問題は、前記第1のクエリおよび前記第2のクエリから導出される結果を組み合わせることに関する。前記予測に基づいて、第1のクエリ演算子がクエリセットから削除されて、クエリセットが更新される。更新されたクエリセットを実行して、グラフクエリに応答してもよい。
上記以外の本発明のさまざまな態様、特徴および利点は、本発明の詳細な説明および添付の図面を参照することによって明らかになるであろう。また、上記の概要および以下の詳細な説明は共に例示に過ぎず、本発明の範囲を限定するものではないと理解されたい。本明細書および特許請求の範囲で用いる場合、単数形の「a」、「an」、および「the」は複数を示唆するものである。ただし、文脈によって別に解すべきことが明白な場合はこの限りでない。更に、本明細書および特許請求の範囲で用いる場合、「または」という用語は「および/または」を意味する。ただし、文脈によって別に解すべきことが明白な場合はこの限りではない。
一のまたは複数の実施形態に係る、マルチソース型の相互運用性および情報検索の最適化を容易にするためのシステムを示す。
一のまたは複数の実施形態に係る、システムの一つまたは複数の構成要素を含む企業環境を示す。
一のまたは複数の実施形態に係る、システムの一つまたは複数の構成要素のアーキテクチャの一例を示す。
一のまたは複数の実施形態に係る、グラフデータベース内のグラフの一例を示す。
一のまたは複数の実施形態に係る、グラフデータベースと互換性のないデータ表現、互換性のないデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するためのテンプレート、および、互換性のないデータ表現から導出されたグラフデータ表現を示す。
一のまたは複数の実施形態に係る、トレーニングされた予測モデルからのテンプレートに基づいて生成されたグラフデータ表現の2つの異なるセットの例を示す。
一のまたは複数の実施形態に係る、グラフデータモデルの一例を示す。
一のまたは複数の実施形態に係る、予測モデル推論の一例を示している。
一のまたは複数の実施形態に係る、予測モデルによる類似性予測の一例を示している。
一のまたは複数の実施形態に係る、グラフのノード間の類似度を決定するコードの一例を示している。
一のまたは複数の実施形態に係る、新しいノードまたはエッジの生成例、ならびに、ルールおよびオントロジーマッチの学習例を示す。
一のまたは複数の実施形態に係る、予測モデルに基づくグラフデータモデルの生成を提供する方法を示す。
一のまたは複数の実施形態に係る、予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減する方法を示す。
一のまたは複数の実施形態に係る、データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法のフローチャートを示す
以下の記載において、本発明の実施形態を完全に理解できるように、説明を目的として、多くの具体的且つ詳細な内容を記載する。しかしながら、当業者であれば、これらの具体的且つ詳細な内容がなくとも、または、均等な構成でも、本発明の実施形態が実施され得ることを理解するであろう。他の例では、周知の構造およびデバイスが、本発明の各実施形態を不必要に不明瞭にすることを避ける目的でブロック図の形式で示される。
図1は、一のまたは複数の実施形態に係る、マルチソース型の相互運用性および情報検索の最適化を容易にするためのシステム100を示す。図1に示されるように、システム100は、サーバ102、クライアントデバイス104a〜104n、データソース132、および、他の構成要素を備え得る。サーバ102は、データ管理サブシステム112、モデル管理サブシステム114、要求サブシステム116、最適化サブシステム118、プレゼンテーションサブシステム120、電子記憶装置122、および、その他の構成要素を備え得る。クライアントデバイス104はそれぞれ、任意のタイプのモバイル端末、固定端末、または、その他のデバイスを含み得る。クライアントデバイス104は、一例として、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイスまたは他のクライアントデバイスであってもよい。ユーザは、例えば、一つまたは複数のクライアントデバイス104を利用して、一つまたは複数のサーバ102またはシステム100の他の構成要素とやりとりすることができる。データソース132は、グラフデータソース134、非構造化データソース(例えば、タイプライター文書)、半構造化データソース(例えば、XML文書、電子メール等)、または、構造化データソース(例えば、リレーショナルデータベース管理システム(RDBMS)情報、軽量ディレクトリアクセスプロトコル(LDAP)情報等)136、および、その他のデータソース138を含み得る。データソースは、様々なデータベースまたはその他のデータソースを含み得る。いくつかの実施形態では、一つのデータベースが、一つまたは複数のデータソース132を含んでもよい。サーバ102の特定の構成要素が実行するものとして一つまたは複数の処理を本明細書で説明するが、これらの処理は、一部の実施形態では、サーバ102の他の構成要素、または、システム100の他の構成要素によって実行し得るものであることに留意されたい。一例として、サーバ102の構成要素が実行する処理として本明細書で説明する一つまたは複数の処理は、一部の実施形態において、クライアントデバイス104の構成要素によって実行されるとしてよい。
いくつかの実施形態において、企業環境200は、図2に示されるように、システム100の一つまたは複数の構成要素に対する環境であり得る。企業環境200は、アプリケーションおよび分析部分202、企業「データレイク」部分204、仮想部分206およびその他の部分を含み得る。サーバ102は、レポート208、分析210、機械学習またはデータマイニング情報212、非構造化情報214(例えば、タイプライトされた文書)、半構造化情報216(例えば、XML文書、電子メール等)、構造化情報218(例えば、RDBMS情報、LDAP情報等)およびその他の情報のような様々な種類の情報を受信するように構成されている。サーバ102は、例えば、様々なアプリケーションまたは分析操作を実行している一つまたは複数のクライアントデバイス104からもしくは他のソースから、そのような情報を受信することができる。
いくつかの実施形態において、アーキテクチャ300は、図3に示されるように、システム100の一つまたは複数の構成要素に対する環境であり得る。図3に示すように、サーバ102は、メタデータ抽出部302、テキスト抽出部304、グラフ抽出部306(例えば、リソースデスクリプションフレームワーク(RDF)抽出部)、機械学習コンポーネント308、地理空間インデックス310、グラフインデックス312、テキストインデックス314、リレーショナルマッピングコンポーネント316、クエリエンジン318およびその他の構成要素を備えてもよい。いくつかの実施形態では、これらの構成要素のうちの一つまたは複数は、図1に示される一つまたは複数のサーバ構成要素に含まれる、または、サーバ構成要素に関連する動作を実行してもよい。例えば、メタデータ抽出部302、テキスト抽出部304、グラフ抽出部306またはその他の構成要素が、図1に示したデータ管理サブシステム112に含まれてもよい。機械学習コンポーネント308は、図1に示したモデル管理サブシステム114であってもよい、または、モデル管理サブシステム114に含まれてもよい。地理空間インデックス310、グラフインデックス312、テキストインデックス314、リレーショナルマッピングコンポーネント316、クエリエンジン318またはその他の構成要素は、図1に示されたモデル管理サブシステム114、要求サブシステム116または最適化サブシステム118であってもよい、または、それらに含まれてもよい。いくつかの実施形態では、サーバ102は、ドキュメントストレージシステム320に関連付けられている。
いくつかの実施形態では、図3に示されるように、サーバ102は、グラフデータ、非構造化データ、リレーショナルデータベース管理システムからの情報、または、その他のソース134からのデータを受信してもよい。本明細書で説明するように、サーバ102の構成要素(例えば、クエリエンジン318)は、一つまたは複数のクエリを実行して、関連する結果を取得することができる。システムによって生成されたテンプレートまたは他の情報(例えば、地理空間インデックス310、グラフインデックス312、テキストインデックス314、リレーショナルマッピングコンポーネント316からの情報)に基づいて、本明細書でいかに説明されているように、サーバ102は、クエリから得られたデータ表現を1つまたは複数のデータ変換モデルを介してグラフ形式(または他の形式)へと変換する。
いくつかの実施形態では、システム100は、一つのデータソースのデータ表現を別のデータソースと互換性のあるデータ表現に(またはその逆に)変換するように構成されるデータ変換モデルまたは他のデータモデルの生成を介して、様々なデータソース技術または標準間におけるマルチソース型の相互運用性を容易にする。いくつかの実施形態では、システム100は、そのようなデータ変換モデルを利用して、互換性のない(例えば、異なるデータソースタイプ間の)クエリ結果を、目的のデータソースと互換性を有する結果のセットへと変換することにより、異なるデータソースタイプの複数のデータソースへのマルチソース型クエリを容易にすることができる。このような態様で、例えば、企業または他のエンティティが、新しいまたは異なるデータソース技術または標準を採用するために、レガシーまたは現在のデータベースを点検しなければならない手間を、システム100によって省くことができる。一つの使用例として、システム100は、一つまたは複数のそのようなデータ変換モデルを介して、様々なデータソースタイプの一つまたは複数のデータソースからのデータ表現をオンザフライ変換することができる。
いくつかの実施形態では、システム100は、第1のデータソースタイプ(例えば、リレーショナルモデルタイプまたは他のデータソースタイプ)のデータ表現を、第2のデータソースタイプ(例えば、グラフィックモデルタイプまたは他のデータソースタイプ)のデータ表現に変換するための一つまたは複数のテンプレートを取得することができ、取得したテンプレートに基づいてデータ変換モデルを作成または変更してもよい。一例として、テンプレートは、第1のデータソースタイプに対応するデータ特性(例えば、特定のSQLデータソースまたはその他のデータソースに固有の行または列の属性および値)を、第2のデータソースに対応するデータ特性(例えば、グラフデータソースまたは他のデータソースに固有のグラフ属性および値)へと変換するための命令を含んでもよい。更なる例として、システム100は、テンプレートを処理して、第1のデータソースタイプのデータ表現を、グラフ以外のデータ表現を第2のデータソースタイプのデータ表現に変換するのに使用可能なテンプレートのうちの少なくとも一つに合致させるためのパターン(例えば、正規表現または他のパターン)または(テンプレートに関連付けられる)ルールを決定してもよい。次に、システム100は、データ変換モデルを生成して、パターン、ルールまたはその他のモデリング情報を(例えば、データ変換モデルがそのようなテンプレート、パターンまたはルール等を含むようにまたは示すように)データ変換モデルの一部として組み込んでもよい。いくつかの実施形態では、システム100は、一つまたは複数の予測モデル(例えば、ニューラルネットワークまたは他の機械学習モデル)を利用して、本明細書で後に説明するように、(特定のグラフデータベースと互換性がない)データ表現をグラフデータベースと互換性があるグラフデータ表現に変換するように構成された一つまたは複数のグラフデータモデルを生成する、または、1つまたは複数のその他のデータ変換モデルを生成してもよい。
いくつかの実施形態では、システム100は遅延を低減させることにより、リクエストに対して十分な応答を提供するまたは一時的なデータストレージまたは他のコンピュータリソースの使用効率を改善することができる。システム100は、例えば、リクエストの予測および予測されたリクエストに関連するクエリ結果をグラフ形式で一時的に記憶することにより、予測されたリクエストに関連するクエリ結果のサブセットの選択的取得および一時的な記憶により、クエリセットの最適化により、またはその他の手法により、遅延の低減または効率改善を提供してもよい。一例として、クエリ結果に対するリクエストを予測し、結果のサブセットをリクエスト予測に応じて取得し、結果のサブセットをサーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ(例えば、電子記憶装置122)に格納してもよい。結果のサブセットは、(例えば、結果が適切なグラフ形式でない場合)一つまたは複数のサブグラフへと変換されてもよく、このサブグラフを一時データストレージに格納してもよい。予測されたリクエスト(または予測されたリクエストに一致する未来のリクエスト)が発生した場合、(例えば、非グラフ形式からグラフ形式へと変換が場合によっては必要であり、大幅に遅延が発生する他のデータストレージを介して結果のサブセットを取得する代わりに)1つまたは複数のサブグラフを一時データストレージから取得してもよく、発生した予測されたリクエストに応答するために使用される。このように、例えば、(特定のリクエストが発生する前に)変換された形式で結果を一時的に格納しておくことにより、リクエストに十分に応答するための待ち時間やその他の遅延を大幅に削減することができる場合がある。
いくつかの実施形態では、システム100は、グラフクエリ(またはデータリクエストに関連するその他のクエリ)へと変換されるクエリセット等、データリクエストから派生したクエリセットを最適化することによってデータ検索プロセスにおけるクエリ関連のリソース使用量を減らすことができる。いくつかの実施形態では、そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。このような最適化は、一つまたは複数の充足可能性の(例えば、特定のクエリから得られた複数の結果の組み合わせに関連する)問題、非互換性の問題または他の問題の予測に基づいて、このような問題またはこのような問題の悪影響を回避または軽減するために実行され得る。いくつかの実施形態では、データリクエストに関連するグラフクエリを取得することに応答して、システム100は、当該グラフクエリを、複数のクエリおよび当該クエリをリンクするクエリ演算子(例えば、union、joinまたはその他のクエリ演算子)を有するクエリセットへと変換してもよい。(2つのクエリから得られた結果の組み合わせに関連する)充足可能性の問題の予測に基づいて、システム100は、クエリセットからこの2つのクエリをリンクするクエリ演算子を削除するか、このクエリセットに対して他の最適化を実行して当該クエリセットを更新してもよい。上記のように、システム100が、グラフクエリ(したがって、データリクエスト)を満たすために更新されたクエリセットを実行する場合、システム100は、i)クエリセットの1つ以上の部分を実行し、そのようなクエリセットの実行から派生した互換性のない結果を組み合わせようとするのに使用されるリソースの無駄、(ii)そのような実行と試行から生じる遅延、または(iii)その他の悪影響といった、充足可能性の問題または充足可能性の問題の負の影響を回避または軽減することができる。
いくつかの実施形態では、システム100は、予測モデルベースの(i)データモデル(例えば、データ変換モデル、グラフデータモデル等)の生成、(ii)未来のリクエストまたはその他の情報に関連する結果の取得または保存、(iii)クエリの生成または実行、(iv)クエリセットの最適化、または(v)その他のオペレーションを容易にする。予測モデルは、ニューラルネットワーク、その他の機械学習モデルおよびその他の予測モデルを含み得る。一例として、ニューラルネットワークは、大量のニューラルユニット(または人工ニューロン)に基づいているとしてよい。ニューラルネットワークは、生物の脳の働き(例えば、軸索によって接続されている生物のニューロンの大きなクラスタによるもの)を大まかに模倣しているとしてよい。ニューラルネットワークのニューラルユニットそれぞれは、ニューラルネットワークの他の多くのニューラルユニットと接続されているとしてよい。このような接続は、接続されているニューラルユニットの活性状態に対して、強化または阻害する影響を持ち得る。一部の実施形態では、各ニューラルユニットは、全ての入力の値を組み合わせる合算機能を持つとしてよい。一部の実施形態では、各接続(またはニューラルユニット自体)は、しきい値関数を持つとしてよく、信号が他のニューラルユニットへと伝播するにはしきい値を超過しなければならない。これらのニューラルネットワークシステムは、明示的にプログラミングされるというより自動で学習しトレーニングされ得るものであり、従来のコンピュータプログラムに比べて所定の分野の問題解決において性能が大きく優れているとしてよい。一部の実施形態では、ニューラルネットワークは複数の層を持つとしてよい(例えば、信号経路は上位置から下位層へと横断している)。一部の実施形態では、ニューラルネットワークがバックプロパゲーションを利用するとしてよく、この場合、前方向の刺激を利用して「上位層」のニューラルユニットへの重みをリセットする。一部の実施形態では、ニューラルネットワークに対する刺激および阻害は、接続同士の相互作用がより混沌且つより複雑になるほど、流動性が高くなるとしてよい。
いくつかの実施形態では、システム100は、(i)データモデルに関連するモデリング情報(例えば、テンプレート、そのパターンまたはルール、もしくは、データ変換モデル、グラフデータモデル等に関連するその他の情報)、(ii)グラフのノードまたはエッジに関連するグラフ情報、もしくは、データポイントまたは他のデータソースの関係に関連するその他の情報、(iii)クエリ情報(例えば、グラフクエリ、SQLまたはその他の非グラフクエリ、グラフクエリまたは非グラフクエリから派生したクエリセット等)、(iv)最適化情報または問題情報(例えば、クエリセット最適化ロジックまたは他の最適化を示す情報、特定のクエリの結果の組み合わせに関連する潜在的な問題を示す情報等)、もしくは、他のトレーニング情報(例えば、非構造化ドキュメント、半構造化ドキュメント、構造化ドキュメントまたはその他の情報)、を取得してもよい。システム100は、トレーニング情報に基づいて一つまたは複数の予測モデルをトレーニングして、(i)一つまたは複数のデータモデル、グラフまたはその他のデータ構造、クエリセットもしくはその他の情報、または、(ii)予測パターン、ルール、テンプレート、最適化ロジック、充足可能性の問題、グラフノードまたはエッジの属性/値もしくはその他の属性/値等、予測モデルに関連する一つまたは複数の予測を生成してもよい。一例として、予測モデルをトレーニングするために使用される情報アイテム(例えば、パターン、ルール、テンプレート、グラフ、クエリセットまたはその他のトレーニング情報アイテム)の数は、500以上の情報アイテム、1000以上の情報アイテム、10000以上の情報アイテム、100000以上の情報アイテム、1000000以上の情報アイテムまたはその他の数であり得る。
[データモデルおよびデータ生成]
いくつかの実施形態では、モデル管理サブシステム114は、(i)一つまたは複数のデータモデル(例えば、データ変換モデル、グラフデータモデル等)またはそれに関連する情報を生成し、(ii)パターン、ルール、テンプレートまたは上記のようなデータモデルの他のモデリング情報を予測する、または(iii)その他のオプションを実行するように構成されてもよい。いくつかの実施形態では、モデル管理サブシステム114は、第1のデータソースタイプ(例えば、リレーショナルモデルタイプまたは他のデータソースタイプ)のデータ表現を、第2のデータソースタイプ(例えば、グラフィックモデルタイプまたは他のデータソースタイプ)のデータ表現に変換するための一つまたは複数のテンプレートを取得することができ、取得したテンプレートに基づいてデータ変換モデルを作成または変更してもよい。一例として、テンプレートは、第1のデータソースタイプに対応するデータ特性(例えば、特定のSQLデータソースまたはその他のデータソースに固有の行または列の属性および値)を、第2のデータソースに対応するデータ特性(例えば、グラフデータソースまたは他のデータソースに固有のグラフ属性および値)へと変換するための命令を含んでもよい。更なる例として、モデル管理サブシステムは、テンプレートを処理して、第1のデータソースタイプのデータ表現を第2のデータソースタイプのデータ表現に変換するのに使用可能なテンプレートのうちの少なくとも一つに前記第1のデータソースタイプのデータ表現を合致させるためのパターン(例えば、正規表現または他のパターン)または(テンプレートに関連付けられる)ルールを決定してもよい。次に、モデル管理サブシステム114は、データ変換モデルを生成して、パターン、ルールまたはその他のモデリング情報をデータ変換モデルの一部として組み込んでもよい。
一例として、図4に示されるように、非グラフデータ表現(例えば、表フィールド、表の行または列等)は、グラフ400にフ含まれる表現(例えば、グラフ400のノードまたはエッジ)のような動画に関連するデータ表現を含むグラフデータ表現に変換されてもよい。図4に示されるように、グラフ400は、様々な複数のノード402およびノード402を接続するエッジ404を含む。この例では、2つの異なる映画TT1583420およびTT016222に対応する2つの異なる映画ノード402が、映画のラベルノード402(例えば、映画名1および映画名2)、監督ノードNM000158およびNM000709、制作会社ノードC09940938および公開日ノード2000−12−22に接続されている。これらの接続は、個々のノード402間の様々なエッジ404で示されている。監督ノードNM000158およびNM000709ならびに制作会社ノードC09940938もまた、エッジ404によって対応するラベルノード402(例えば、人物1、人物2および会社名)に接続されている。
更なる例として、図5に示されるように、表500内の非グラフデータ表現(例えば、SQLまたは他のリレーショナルデータベースからの)は、テンプレート502を使用したグラフ504のグラフデータ表現(またはテンプレート502)に変換されてもよい。図5に示されるように、テンプレート502は、(例えば、表500の)行または列を、(例えば、結果のグラフ504の)グラフノードまたはエッジに(または、いくつかの実施形態ではその逆に)変換するための命令を含み得る。この例では、表500は映画3および映画4というタイトルの2つの映画の情報を含み、例えば、識別コード506、タイトル507、公開年508、興行収入国名510、国コード512および総収入514等の情報を含む。テンプレート502(図5にグラフ形式で示されている)は、映画タイトル、識別コード、公開年、興行収入、興行収入国、興行収入国ラベル、興行収入の国コードおよびその国での総収入に対する「プレースホルダー」ノード516を含む。複数のノード516は、これらノード516間の関係を示す対応するエッジ518によってリンクされている。テンプレート502(例えば、ノード516)の指示に基づいて、映画3についての表500の非グラフデータ表現が、ノード520を示すグラフ504のグラフデータ表現(例えば、ノード520)に変換される。
図1に示されるように、データ管理サブシステム112は、(i)一つまたは複数のグラフまたは他のデータ構造(例えば、SQLデータ構造、その他の非グラフデータ構造等)を生成し、(ii)ノード、エッジまたはそのようなデータ構造のその他の部分に対する情報を予測する、または、(iii)他のオプションを実行するように構成され得る。いくつかの実施形態では、データ管理サブシステム112は、一つまたは複数のグラフデータモデルを利用して、(例えば、SQLテーブルまたはその他のデータソースに格納されている)非グラフデータ表現からグラフを作成または変更してもよい。一例として、データ管理サブシステム112は、グラフデータモデルを使用して、(例えば、特定のグラフデータベースと互換性がある)非グラフデータ表現をグラフ表現に変換して、新しいグラフを作成するまたはグラフデータベース内の既存のグラフを補足/修正することができる。
いくつかの実施形態では、一つまたは複数のグラフについて、リクエストサブシステム116は、(例えば、2つのグラフノード間の全てのパスを決定するため、2つのグラフノード間の最短パスを決定するため、2つのグラフノード間の所定数の最短パスを決定するために、等)グラフのノード間の一つまたは複数のパスを見つけるための一つまたは複数のパスクエリを生成してもよい。いくつかの実施形態では、リクエストサブシステム116は、パスクエリが戻されるパスについての制限パラメータを含むように当該パスクエリを生成してもよい。一例として、そのようなパスクエリの1つは、指定された金額を超えるトランザクションに関連付けられたパスに結果を制限してもよい(例えば、最短パスの全てのノードまたはエッジは、10,000ドル以上または他の指定された金額を超えるトランザクションに関連付けられていなければならない)。別の例として、パスクエリは、結果を、ライフサイクル(例えば、製品ライフサイクル、動物ライフサイクル、ドキュメントライフサイクル等)に関連付けられたパスに制限してもよい。更に別の例として、パスクエリは、結果を、映画ノードから制作会社とその親会社を表すノードへのパスに制限してもよい(例えば、映画「ヒッチコック」は、21世紀フォックスが親会社のフォックス・スタジオが所有するフォックス・サーチライト・ピクチャーズによって制作されている)。いくつかの実施形態では、リクエストサブシステム116は、そのようなパスクエリが戻すそのようなパスに基づいてデータリクエストに応答するためのクエリプランを決定してもよい。一例として、そのようなパス情報に基づいて、リクエストサブシステム116は、(例えば、ユーザデバイスから取得されるまたは本明細書で説明されるように予測される)データリクエストを処理するための一つまたは複数のクエリを決定し、どのグラフまたはグラフデータベースがデータリクエストを処理するターゲットソースになるかを決定し、そのようなターゲットソースに関連するコストを決定してもよい。要求サブシステム116は、そのような決定に基づいてデータリクエストのクエリプランを作成または選択してもよい(例えば、ターゲットソースをクエリプランに組み込むことによって、コスト情報等に基づいたクエリまたはターゲットソースの優先順位を決定する)。
いくつかの実施形態では、予測モデル(例えば、ニューラルネットワーク、その他の機械学習モデルまたはその他の予測モデル)を利用して、グラフデータモデルまたはその他のデータモデルの生成、グラフまたはその他のデータ構造の生成、このようなデータモデルまたはデータ構造についての情報の予測、クエリプランの決定、もしくは、その他の操作を容易にしてもよい。予測モデルをトレーニングするのに使用されるトレーニングデータには、(i)予測モデルに提供される入力(例えば、他の予測モデルに提供されて処理される入力または他の入力)、(ii)そのような入力の予測モデル処理から導出される参照出力(例えば、ユーザが確認した出力またはユーザ提供の出力、そのような入力が1つまたは複数の予測モデルによる処理によって確認された出力、対応する予測モデルのセットによってそのような入力が処理されることにより複数回確認が行われた出力、もしくは、その他の参照出力)、(iii)そのような入力の予測モデルの処理から導出されない出力の参照表示(例えば、そのような出力が不正確であるというユーザ表示またはその他の参照表示)、または、(iv)他のトレーニングデータを含み得る。
いくつかの実施形態では、モデル管理サブシステム114は、(一つまたは複数のグラフデータモデルを含む)グラフデータモデルセットに関連するモデリング情報、(例えば、特定のグラフデータベースと互換性を有する)グラフデータ表現に変換するための各グラフデータモデルのデータ表現のコレクション、またはその他の情報を取得してもよい。モデル管理サブシステム114は、モデリング情報、データ表現のコレクションまたはその他の情報を予測モデルに提供して、予測モデルをトレーニングすることができる。
一例として、モデリング情報は、(i)データ表現(例えば、非グラフデータ表現または特定のグラフデータベースと互換性のないその他のデータ表現)をグラフデータベースと互換性を有するグラフデータ表現に変換するためのテンプレート、(2)互換性のないデータ表現を互換性のあるグラフデータ表現に変換するのに使用可能なテンプレートうちの少なくとも1つに互換性のないデータ表現を一致させるための(テンプレートに関連付けられている)パターンまたはルール、もしくは、(3)その他のモデリング情報を含み得る。グラフデータモデルセットの各グラフデータモデルおよび(グラフデータモデルが変換する)互換性のないデータ表現について、モデル管理サブシステム114は、グラフデータモデルのテンプレートのうちの一つまたは複数のテンプレートおよび互換性のないデータ表現を予測モデルに提供して、グラフデータモデルのテンプレートの1つ以上の追加テンプレートを予測してもよい。例えば、一使用例では、そのような追加テンプレートがグラフデータモデルの一部としてすでに存在する場合でも、予測モデルは、予測モデルのトレーニングの一部として追加テンプレートを予測する。この場合、一使用例では、予測モデルは、追加テンプレートに依存せずに(例えば、追加テンプレートの少なくともいくつかに依存せずにまたは追加のテンプレートのいずれにも依存せずに等)、追加のテンプレートを予測してもよい。
更なる例として、グラフデータモデルセットの各グラフデータモデルについて、モデル管理サブシステム114は、予測モデルが行った追加テンプレートの予測に対する参照フィードバックとして、グラフデータモデルのテンプレートの追加のテンプレートを予測モデルに提供して、当該予測モデルをトレーニングしてもよい。予測モデルは追加テンプレートを「参照テンプレート」として使用して、(例えば、予測モデルへの入力として提供されるその他のテンプレートに基づいて予測モデルによって生成されるテンプレートである)当該予測モデルが行った追加テンプレートの予測を評価してもよい。自身の予測の評価に基づいて、予測モデルは、(予測が正確であったかどうかまたはどの程度正確であるかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより)予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加テンプレートの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの1つまたは複数の層を更新してもよい。一例として、ニューラルネットワークは、順方向または逆方向伝搬技術を使用して、一つまたは複数の層(例えば、ニューラルネットワークの入力層と出力層との間の隠れ層またはニューラルネットワークのその他の層)内のニューラルユニットの重みを、予測の精度に基づいて(例えば、1つ以上の追加テンプレートの予測が正確であったかどうかまたはどれだけ正確であったかに基づいて)リセットまたは変更してもよい。
いくつかの実施形態では、予測モデルがトレーニングされる(またはそのようなトレーニングに基づいて更新される)と、モデル管理サブシステム114は、予測モデルを使用してグラフデータモデルを生成してもよい。一例として、モデル管理サブシステム114は、予測モデルに、グラフデータモデルまたはグラフデータモデルを生成するために使用可能な情報(例えば、テンプレート、パターン、ルールまたはグラフデータモデルを生成するためのその他の情報)を生成させることができる。更なる例として、非グラフデータ表現をグラフデータ表現に変換することに関して、モデル管理サブシステム114は、非グラフデータベースからの非グラフデータ表現のコレクションを予測モデルへの入力として提供してもよい。そのような入力に応答して、予測モデルはグラフデータモデルの一つまたは複数のテンプレート、パターン、ルールまたはその他の情報を出力してもよい。モデル管理サブシステム114は、テンプレート、当該テンプレートのパターンまたは規則もしくは他の情報を使用して、グラフデータモデルが(非グラフデータベースからの)非グラフデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されるようにグラフデータモデルを生成してもよい。
いくつかの実施形態では、データ管理サブシステム112は、一つまたは複数の予測モデルを利用してノード、エッジまたはその他のデータ表現の情報を予測し、グラフまたはその他のデータ構造を生成してもよく、例えば、ノード、エッジまたはその他のデータ表現についての予測情報に基づいて、データ構造の生成、データ構造の一つまたは複数の部分の変更またはデータ構造の補足を行ってもよい。いくつかの実施形態では、データ管理サブシステム112は、グラフのノードまたはエッジに関連するグラフ情報、データポイントに関するその他の情報またはその他のデータソースの関係性に関する情報を取得してもよい。データ管理サブシステム112は、そのようなグラフ情報またはその他の情報を予測モデルに提供して予測モデルをトレーニングし、追加または代替のノード、エッジまたはその他のデータ表現についての情報を予測する(例えば、新しいグラフまたはその他のデータ構造を作成する、既存のグラフまたはその他のデータ構造を修正する、または、既存のグラフまたはその他のデータ構造を補完するために)。
いくつかの実施形態では、データ管理サブシステム112は、一つまたは複数のデータ表現セットを取得し、予測モデルをトレーニングするために当該予測モデルにデータ表現セットを提供してもよい。一例として、データ表現セットは、ノード、エッジまたはその他のデータ表現を含んでもよい。データ管理サブシステム112は、予測モデルがデータ表現セットの一つまたは複数の追加ノードまたは追加エッジを予測するための予測モデルへの入力として、データ表現セットの一つまたは複数のノードまたはエッジを予測モデルに提供してもよい。本明細書において、ノードまたはエッジを提供するとは、ノードまたはエッジによって表されるデータを提供することも含まれる。一使用例では、例えば、そのような追加ノードまたは追加エッジが、データ表現セットの一部として(例えば、既存のグラフの一部として)既に存在する場合であっても、予測モデルのトレーニングの一部として、予測モデルに追加ノードまたは追加エッジを予測させてもよい。したがって、一使用例では、予測モデルは、追加ノードまたは追加エッジに依存することなく(例えば、追加ノードまたは追加エッジの少なくとも一部に依存することなく、追加ノードまたは追加エッジのいずれにも依存することなく等)、追加ノードまたは追加エッジを予測してもよい。
更なる例として、データ管理サブシステム112は、複数のデータ表現セットの各データ表現セットについて、予測モデルをトレーニングするために、予測モデルが行った追加ノードまたは追加エッジの予測に対する参照フィードバックとして、データ表現セットの追加ノードまたは追加エッジを予測モデルに提供してもよい。追加ノードまたは追加エッジ(例えば、予測モデルへの入力として提供された他のノードまたはエッジに基づいて予測モデルによって生成されたノードまたはエッジ)の予測を評価するために、予測モデルは、当該追加ノードまたは追加エッジを「参照ノードまたは参照エッジ」として使用してもよい。自身の予測の評価に基づいて、予測モデルは、(予測が正確であったかどうかまたはどの程度正確であるかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより)予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加ノードまたは追加エッジの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの1つまたは複数の層を更新してもよい。
いくつかの実施形態では、予測モデルがトレーニングされる(またはそのようなトレーニングに基づいて更新される)と、データ管理サブシステム112は、予測モデルを使用して新規または既存のデータ構造に対するデータ表現を作成または修正してもよい。一例として、データ管理サブシステム112は、予測モデルを使用して新規または既存のグラフの新しいノードまたはエッジを作成したり、既存のグラフの一つ以上のノードまたはエッジを修正したり、その他の操作を実行したりしてもよい。いくつかの実施形態では、データ管理サブシステム112は、グラフのノードまたはエッジを処理するために、グラフのトラバースを実行してもよい(例えば、予測モデルは、グラフをトラバースしてトラバース中にノードまたはエッジを入力として処理し、一つまたは複数のエージェントは、トラバース中にグラフのノードを抽出するためにグラフをクロール(crawl)して、抽出したノードまたはエッジを入力として予測モデルへ提供する)。トラバースの結果として得られるそのような入力を得ると、予測モデルは、(例えば、グラフについての追加ノードまたは追加エッジとして、グラフ内の既存のノードまたはエッジを置換するための置換ノードまたは置換エッジとして)グラフについての新しいノードまたはエッジを生成してもよい。
いくつかの実施形態では、予測モデルによるデータ表現(例えば、ノード、エッジまたはその他のデータ表現)の生成に応答して、データ管理サブシステム112は、(i)データ表現の生成に続いて、および(ii)データ表現を追加するか否かを表示することなく、データ表現をグラフまたは他のデータ構造にユーザ入力なしに自動的に追加してもよい。一例として、データ管理サブシステム112は、データ構造の新しいデータ表現として前記データ表現を追加する、または、データ構造の既存のデータ表現の代替データ表現として前記データ表現を追加してもよい、もしくは、前記データ表現に基づいてデータ構造を修正してもよい。
一方、いくつかの実施形態では、次いで実行されるユーザ入力に基づいて、グラフまたはその他のデータ構造への新しいデータ表現の追加(または新しいデータ表現を追加しない決定)が行われてもよい。一例として、予測モデルがノードまたはエッジを生成し、データ管理サブシステム112が、予測モデルからノードまたはエッジを取得し当該ノードまたはエッジに関するユーザへの通知を行ってもよい。一使用例では、通知は、前記ノードまたは前記エッジをレビューするためのプロンプト、グラフについての新規のまたは置換のノードまたはエッジとして前記ノードまたは前記エッジの使用を確認または拒否するためのプロンプト、もしくは、その他の通知を含んでもよい。ノードまたはエッジを(例えば、新規ノードまたは新規エッジとして、置換ノードまたは置換エッジとして等)追加することをユーザが了承したことに応答して、データ管理サブシステム112は、新規ノードまたは新規エッジをグラフに追加してもよい。あるいは、ノードまたはエッジを追加することをユーザが拒否したことに応答して、データ管理サブシステム112は、新規ノードまたは新規エッジをグラフに追加しないことを決定してもよい。
いくつかの実施形態では、データ管理サブシステム112は、予測モデルが生成したノードまたはエッジに関する参照フィードバックとして、ユーザの了承またはユーザの拒否を示す情報を提供してもよい。予測モデルは、ノードまたはエッジの予測を評価するために、参照フィードバックを使用してもよい。予測モデルは自身が行った予測の評価に基づいて、(例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより)予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加ノードまたは追加エッジの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの1つまたは複数の層を更新してもよい。
図5からの映画3および映画4に関する情報に続き、図6には、一つ以上の実施形態に係るトレーニングされた予測モデルからのテンプレートに基づいて生成された2つの異なるグラフデータ表現600および602の例が示されている。グラフデータ表現600および602は、予測モデルの追加のトレーニングのために生成された図5からのグラフデータ表現504の更新と大まかに考えられる。グラフデータ表現600および602は、予測モデルによって生成されたテンプレートに基づいて、データ管理サブシステム112(図1)により生成されてもよい。例えば、グラフデータ表現600は、図5からのグラフデータ表現504に示された映画3に関連するノード520およびエッジ518を含む。グラフデータ表現600はまた、映画3における更なる興行収入(例えば、オーストラリアの興行収入)に関連するノード604およびエッジ606を含む。ノード604およびエッジ606に関連する情報は、図5のデータ表現500には含まれていたが、グラフデータ表現504には含まれていなかった。しかしながら、予測モデルをトレーニングすることにより、予測モデルに追加テンプレートを生成させてもよく、これらの追加テンプレートは、グラフデータ表現600のような追加グラフデータ表現を生成するために使用されてもよい。
グラフデータ表現602についての更なる例を示す。グラフデータ表現602は、映画3に関連するノード520および604と、エッジ518および606とを含む。グラフデータ表現602はまた、映画4に関連するノード608およびエッジ610を含む。本例でも、ノード608およびエッジ610に関連する情報は、図5のデータ表現500には含まれていたが、グラフデータ表現602には含まれていなかった。しかしながら、予測モデルをトレーニングすることにより、予測モデルに追加テンプレートを生成させてもよく、これらの追加テンプレートは、グラフデータ表現602のような追加グラフデータ表現を生成するために使用されてもよい。
一使用例では、図7に示すように、データモデル700は映画702に関連付けられている。データモデル700は、文書ノード704、場所ノード706、人ノード708および組織ノード710を含む。文書ノード704は、映画のレビュー、映画の脚本、映画の要約等の情報を含むまたは(例えば、データモデル700には示されていない他のエッジおよびノードを介して)このような情報と関連付けられていてもよい。場所ノード706は、撮影場所、映画に描かれた場所等の情報またはその他の情報を含むもしくはこのような情報と関連付けられていてもよい。人物ノード708は、映画に登場する俳優、映画の脚本の作者、映画の監督またはその他の情報を含むもしくはこのような情報と関連付けられていてもよい。組織ノード710は、映画を担当する制作会社またはその他の情報を含むもしくはこのような情報に関連付けられていてもよい。グラフデータモデル700は、論理的推論を実行するために使用されてもよい。
別の使用例では、図8に示すように、推論を介してデータ関係を形成するのに予測モデルを使用してもよい。ステップ802において、2つの異なる俳優(俳優1、俳優2)および監督(監督1)についてのノード806、808および810と、2つの異なる映画(映画5、映画6)についてのノード812および814と、対応するエッジ816と、が識別されてもよい。ステップ804において、予測モデルは、逆に、映画が俳優を包含する場合、その俳優はその映画の俳優であると推論820してもよい。別の言い方をすると、エッジ816が映画と俳優とを結びつける場合、俳優と映画とを結びつけるインバースエッジ820が存在しなければならない。同様の推論820は、監督にも適用される。更に、予測モデルは、俳優または監督が映画の制作に関わったことを推論してもよい(そして、それを示す対応するエッジを確立してもよい)。予測モデルは誰がその映画で働いたかを知っていることから、予測モデルは、同じ映画で働いた2人が共演者であるはずだという推論824を行ってもよい(そして、それを示す対応するエッジを確立してもよい)。最後に、ステップ804において、予測モデルが共演者間の関係を確立したことから、予測モデルは俳優および監督が1人以上の共演者を介して互いに接続されていることを推論826(およびそれを示す対応するエッジを確立)してもよい。
別の使用例では、図9に示すように、データモデルに基づく推論および/または予測モデルによる教師あり学習(supervisedlearning)によって、予測モデルが(本明細書で使用される例では)どの映画が互いに類似しているかを予測することを可能にしてもよい。例えば、図9における第1の概略図900には、映画5および映画7が示されており、これらは共に映画6に類似している。いくつかの実施形態では、図9の第2の概略図902に示されるように、教師あり学習を使用して予測モデルをトレーニングしてもよい。上述したように、所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、予測モデルからの当該所与のノードまたはエッジをグラフに追加してもよい。予測モデルが所与のノードまたはエッジの生成したことに関する参照フィードバックとして、モデル管理サブシステム114(図1)によってユーザの了承を示す情報が予測モデルに提供されてもよい。いくつかの実施形態では、所与のノードまたはエッジを追加することをユーザが拒否したことが取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。概略図902に示すように、俳優1、監督2およびキーワードに対するノード904、906および908は、対応するエッジ912、914および916によって、映画5に対するノード910に接続されている。いくつかの実施形態では、予測モデルは、映画5について格付けノード918(エッジ920を介して接続されている)、および、映画5についての分類ノード922(エッジ924を介して接続されている)を提案するように構成されていてもよく、これらの情報はユーザによって了承または否定されてもよい。
いくつかの実施形態では、類似度値またはノード間の類似度の他の尺度が判定されてもよい。一例として、図10に示すように、プログラミングコードは、グラフのノード間の類似度値を決定するように構成されてもよい。この例では、ノードはそれぞれ、図9に示す映画5、6および7に対応している。図10に示すように、予測は、映画6が映画5に対して0.323291の類似度値を有し、映画7が映画5に対して0.290015の類似度値を有し、映画8が映画5に対して0.159687の類似度値を有することを予測するために使用されてもよい。
いくつかの実施形態では、モデル管理サブシステム114は、予測モデルに新しいノードまたはエッジの構築、ルールの学習またはオントロジーマッチの学習を行わせてもよい。一つまたは複数の実施形態において、映画のテーマに沿って、新規ノードまたは新規エッジの生成、ルールの学習およびオントロジーマッチの学習を行う例がそれぞれ、例1100、1102および1104として図11に示されている。例1100に示すように、予測モデルは、映画とそれに対応するタイトル、映画が製作された年、映画の監督、映画の製作者および映画に出演した1人以上の俳優等のノードを生成してもよい。いくつかの実施形態では、予測モデルは、予測モデルに提供されたテキストまたは他の情報に基づいて、これらのノードを生成してもよい。(いくつかの実施形態では、図3に示すように、テキストは、メタデータ抽出、テキスト抽出、グラフ抽出もしくはモデル管理サブシステム1104またはサーバ102の他のサブシステムによって実行されるその他の抽出プロセスを経たものであってもよい)。例1102に示すように、予測モデルは、ルールを学習してもよい。予測モデルは、グラフのノードやエッジ、ノードを通る経路またはその他の情報に基づいてルールを学習してもよい。この例では、予測モデルは、ある映画が暴力と関連している場合、その映画は犯罪ジャンルの映画であることを学習してもよい。最後に、例1104に示すように、予測モデルは、オントロジーマッチを学習してもよい。オントロジーマッチは、同一または類似の概念を参照する異なる複数の単語を含んでもよい。この例に示すように、予測モデルは、「俳優」と「映画スター」が同じ概念に対応していることを学習してもよい。オントロジーマッチは、用語間のマッピングを見つけるために、構文的類似性、意味的類似性、構造的類似性の3種類の類似性メトリクスを使用する。構文的類似性では、編集距離、ファジー文字列マッチングまたはトリグラムコサイン類似度等の技術を使用して、ラベルの文字に基づいて2つの用語の類似度を評価する。例えば、単語「誕生日」と「生年月日」との間の類似性を検出する。意味的類似性では、手動でキュレートされた語彙データベース(例:WordNet)または別途トレーニングされた単語埋め込みモデルを利用することにより、ラベルの意味を考慮する。単語埋め込みは、トレーニングデータセットの中で類似した方法で使用された単語が類似した表現を持つように、単語の使用法に基づいて単語をベクトル表現にマッピングする。これにより、「俳優」と「映画スター」のように統語的に異なるラベルの類似性を検出することができる。そして、構造的類似性では、用語がスキーマ内でどのように定義されているかを調べる。例えば、あるスキーマは「俳優(Actor)」および「映画(Film)」という概念間の関係「主演(starredIn)」を定義し、他のスキーマは「映画スター(MovieStar)」と「ムービー(Movie)」の間の関係「出演(workedOn)」を定義してもよい。概念間のマッピング(「俳優−映画スター」および「映画−ムービー」のマッピング)が確立されると、「主演」と「出演」の類似性は、同じソースおよびターゲットの種類を持つ関係に基づいて検出される。
いくつかの実施形態では、リクエストサブシステム116は、一つまたは複数のクエリプランを決定するのに一つまたは複数の予測モデルを利用してもよい。いくつかの実施形態では、リクエストサブシステム116は、一つ以上のグラフまたはグラフデータベースに対するパス情報(例えば、本明細書に記載されているようなパスクエリによって返されるパス)、クエリプラン情報(例えば、過去のクエリプラン、過去のクエリプランを実行するのに掛かった実際のコスト等を示す情報)またはその他の情報を、一つ以上の履歴データベースまたはその他のソースから取得してもよい。リクエストサブシステム116は、パス情報、クエリプラン情報またはその他の情報を予測モデルに提供して当該予測モデルをトレーニングし、一つ以上のリクエスト(例えば、ユーザからのリクエスト、予測されたリクエストまたはその他の自動生成されたリクエスト等)に応答するために使用される一つ以上のクエリプランについての情報を予測してもよい。いくつかの実施形態では、予測モデルがトレーニングされると(またはそのようなトレーニングに基づいて更新されると)、リクエストサブシステム116は予測モデルを使用して、(例えば、ユーザからのリクエストに応答して、リアルタイムで、リクエストの予測に応答して、等)一つ以上のクエリプランを生成してもよい。
[クエリ予測、格納および応答]
いくつかの実施形態では、リクエストサブシステム116は、データリクエストが将来発生することを予測するように構成されてもよい。一例として、リクエストは、クエリ送信(またはクライアントが開始したクエリ)、クライアントが開始したクエリに関連した更新リクエストまたはその他のリクエストを含んでもよい。いくつかの実施形態では、リクエストサブシステム116は、クエリ結果のリクエストを予測し、リクエスト予測に応じて結果のサブセットを取得してもよい。データ管理サブシステム112は、結果のサブセットを一時的なデータストレージ(例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ)に格納するようにしてもよい。いくつかの実施形態では、データ管理サブシステム112は、結果のサブセットを一つ以上のサブグラフに変換し(例えば、結果が適切なグラフ形式でない場合)、そのサブグラフを一時データストレージに格納してもよい。予測されたリクエスト(または予測されたリクエストに一致する未来のリクエスト)が発生した場合、リクエストサブシステム116は、一時データストレージから一つ以上のサブグラフを取得し、発生した予測されたリクエストに取得したサブグラフを使用して応答してもよい。このように、例えば、(特定のリクエストが発生する前に)変換された形式で結果を一時的に格納しておくことにより、リクエストに十分に応答するための待ち時間やその他の遅延を大幅に削減することができる場合がある。
いくつかの実施形態では、リクエストサブシステム116は、過去のクエリ(例えば、グラフデータモデルと互換性のある過去のクエリまたはその他の過去のクエリ)に基づいて、リクエストが将来発生することを予測してもよい。一例として、リクエスト予測は、例えば一つ以上の過去のクエリを示す情報であるリクエスト履歴情報、リクエストそれぞれの頻度を示す情報(例えば、過去クエリそれぞれの頻度、過去クエリに関連する更新リクエスト等)、過去リクエストを開始したユーザまたはクライアントデバイスに関する情報、または、その他の情報に基づいてもよい。あるシナリオでは、リクエストされたクエリ結果の少なくとも一部は、将来的にクライアントデバイスからリクエストが取得される前のリクエスト予測に基づいて取得されてもよい。得られたクエリ結果は、将来のリクエストの発生を予測して(例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュ等の一時データストレージまたはその他の一時データストレージに)格納されてもよく、格納されたクエリ結果は、将来のリクエストの発生時に将来のリクエストに応答するのに利用されてもよい。
いくつかの実施形態では、データリクエストの予測に応答して、リクエストサブシステム116は、予測されたデータリクエストの一つ以上のパラメータに基づいて一つ以上のグラフクエリを生成してもよい。一例として、パラメータは、キーワード、コンテンツアイテムまたはその識別子/場所(例えば、コンテンツID、コンテンツアイテムへのハイパーリンクまたはその他のポインタ等)、論理演算子(例えば、論理AND演算子、論理OR演算子、論理NOT演算子またはその他の論理演算子)等の一つ以上の検索パラメータもしくはその他のパラメータを含んでもよい。一使用例では、コンテンツアイテムが画像である場合、画像を、類似の画像の検索、同一の画像または類似の画像を有するコンテンツアイテムの検索、画像内の概念と類似の概念を有するコンテンツアイテムの検索または他の結果の検索に使用することができる。別の使用例では、コンテンツアイテムが動画である場合、動画を、類似の動画の検索、同一の動画または類似の動画を有するコンテンツアイテムの検索、ビデオ内の概念と類似の概念を有するコンテンツアイテムの検索または他の結果の検索のために使用することができる。
いくつかの実施形態では、リクエストサブシステム116は、グラフデータモデルに基づいて、グラフクエリの少なくとも一つを、(例えば、一つ以上のSQLまたはその他の非グラフデータベースと互換性のある)一つ以上の非グラフクエリに変換してもよい。一例として、非グラフクエリは、一つ以上の非グラフデータベースからデータサブセットを取得するために実行されてもよい。いくつかの実施形態では、グラフクエリの少なくとも一つは、一つ以上のグラフデータベースからデータサブセットを取得するために実行されてもよい。一例として、グラフクエリの一部が、非グラフデータベースに格納されている(予測データ要求に関連する)結果を取得するために非グラフクエリに変換されてもよい。しかしながら、その他のグラフクエリがグラフデータベースに格納された結果に関連している場合、グラフクエリを非グラフクエリに変換する必要はない場合もある。あるシナリオでは、例えば、リクエストサブシステム116は、グラフクエリに関連する結果がどこに格納されているか(例えば、非グラフデータベースまたはグラフデータベースのいずれかに結果が格納されているか)を判定し、そのような判定に基づいて、関連する結果を取得できる非グラフデータベースまたはグラフデータベースを選択してもよい。(所与のグラフクエリに関連する少なくともいくつかの結果を得るために)非グラフデータベースの選択に基づいて、リクエストサブシステム116は、グラフクエリを非グラフデータベースと互換性のある非グラフクエリに変換してもよい。
いくつかの実施形態では、データ管理サブシステム112は、グラフ、(例えば、集合的にグラフまたはその一部を構成している)一つ以上のサブグラフ、もしくは、一つ以上のグラフデータ表現(例えば、集合的にグラフ、サブグラフまたはグラフ/サブグラフの一部を構成するノード、エッジ等)を生成するように構成されてもよい。本明細書に示されるように、いくつかの実施形態では、データ管理サブシステム112は、(例えば、SQLテーブルまたは他のデータソースに格納されている)データ表現を(例えば、特定のグラフデータベースと互換性がある)グラフ表現に変換するのに、一つ以上のグラフデータモデルを利用してもよい。データリクエストが将来発生するという予測に応答して、リクエストサブシステム116は、将来のデータリクエストによって要求されると予測される一つ以上のデータサブセットを、一つ以上のデータソースから取得してもよい。そのようなデータサブセットを取得すると、データ管理サブシステム112は、本明細書に記載された一つまたは複数の技術に従って、(例えば、非グラフ形式またはその他の互換性を有さない表現の)データサブセットを、(例えば、特定のグラフデータベースと互換性を有する)一つ以上のグラフデータ表現、または、当該グラフデータ表現を含む一つ以上のサブグラフへと変換するために、グラフデータモデルを使用してもよい。
いくつかの実施形態では、データリクエストの予測に応答して、一つまたは複数のデータサブセットが、一つまたは複数の非グラフデータソース(例えば、SQLデータベースまたはその他の非グラフデータソース)から取得されてもよく、一つまたはその他のデータサブセットが、一つまたは複数のグラフデータソース(例えば、グラフデータベースまたはその他のグラフデータソース)から取得されてもよい。一例として、非グラフデータソースから、非グラフデータ表現(例えば、SQL行または列またはその他の非グラフデータ表現)として(非グラフデータソースからの)データサブセットを取得してもよい。また、グラフデータソースから、(例えば、特定のグラフデータベースと互換性を有する、グラフデータベースと互換性を有さない等)ノード、エッジまたはその他のグラフデータ表現として(グラフデータソースからの)その他のデータサブセットを取得してもよい。データ管理サブシステム112は、(非グラフデータソースからの)複数のデータサブセットを表す一つ以上のサブグラフ、および、(グラフデータソースからの)その他の複数のデータサブセットを表す一つ以上のサブグラフを生成してもよい。一例として、非グラフソースから取得されたデータサブセットに関して、データ管理サブシステム112は、グラフデータモデルを使用して、非グラフデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換し、グラフデータ表現を上記のサブグラフへとコンパイルしてもよい。別の例として、グラフソースから取得されたデータサブセットに関して、データ管理サブシステム112は、グラフデータモデルを使用して、(そのようなデータサブセットの)グラフデータ表現をその他の表現のサブグラフへとコンパイルしてもよい。グラフデータ表現がグラフデータベースと互換性を有さない形式である場合、データ管理サブシステム112は、グラフデータモデルを使用して、互換性のないデータ表現を互換性のあるグラフデータ表現へと変換し、互換性のあるグラフデータ表現をその他の表現のサブグラフへとコンパイルしてもよい。
いくつかの実施形態では、データ管理サブシステム112は、(非グラフデータサブセットに由来する)サブグラフ、および(グラフデータサブセットに由来する)その他のサブグラフを一時データストレージに格納してもよい。予測されたデータリクエストに一致する次のデータリクエストを取得することに応じて、要求サブシステム112は、一時データストレージから、サブグラフ、他のサブグラフまたはその他の情報を取得し、取得されたこのような情報を使用して前記次のデータリクエストに応答してもよい。いくつかの実施形態では、リクエストサブシステムは、取得したサブグラフのノード、エッジまたはその他のグラフデータ表現からデータサブセットを抽出し、次のデータリクエストに応答して抽出したデータサブセットを返してもよい。
いくつかの実施形態では、予測されたデータリクエストと一致する次のデータリクエストを得たことに応答して、リクエストサブシステム116は、当該次のデータリクエストに応答するためのクエリプランを生成してもよい。一例として、候補となるクエリプランは、クエリプラン(またはテンプレートクエリプラン)のコレクションから選択された後、前記次のデータリクエストに固有のクエリプランが生成されるように修正されてもよい。いくつかの実施形態では、予測されたデータリクエストに関連するサブグラフまたはその他の情報が一時データストレージに記憶されている場合、(i)一時データストレージからサブグラフまたは他の情報を取得すること、(ii)他のデータソース(例えば、グラフデータベース、非グラフデータベース等)からその他の情報を取得すること、を含むようにクエリプランが生成されてもよい。一例として、クエリプランに基づいて、リクエストサブシステム116は、予測されたデータリクエストに関連する一つ以上のサブグラフを一時データストレージから、一つ以上のその他のデータサブセット(例えば、予測データ要求に関連する、後続データ要求に関連する等)を一つまたは複数のデータソースから取得してもよい。リクエストサブシステム116は、次のデータ要求に応答するために、サブグラフ(またはサブグラフが表すデータセット)およびその他のデータサブセットを使用してもよい。
いくつかの実施形態では、データリクエストの予測に応答して実行されるクエリ(例えば、グラフクエリ、非グラフクエリ)は、予測されたデータリクエストがクライアントデバイスから取得されていた場合に予測されたデータリクエストに応答するために実行されたであろうクエリのセットの一部であってもよい。いくつかの実施形態では、データリクエストの予測から、一連のクエリのうちの一つ以上のその他のクエリの実行が発生しない場合がある。一例として、その他についてのクエリの実行は、リクエストの予測から生じなくてもよい。
いくつかの実施形態では、クエリに対する結果のサブセットは、リクエストがクライアントデバイスから取得されていた場合に当該リクエストに応答するために取得されていたであろう結果のセットの一部であってもよい。例えば、結果のセットが、クライアントデバイスに返答した第1のウェブページで提供されていたであろう全ての結果(例えば、最も関連性の高い結果のリストまたはその他の提示)である場合、結果のサブセットは、第1のウェブページで提供されていたそれら結果の一部であってもよい。別の使用例では、結果のセットは、リクエストがクライアントデバイスから取得されていた場合に当該リクエストに応答するために取得されていたであろう全ての結果であってもよい。一例として、(結果の前記セットの)その他のサブセットが(例えば、リクエスト予測に応答した一つ以上のクエリを介して)得られた場合であっても、(結果の前記セットの)その他のサブセットを一時データストレージに記憶しないことを(例えば、本明細書に記載されているように、頻度情報、コスト情報等に基づいて)決定してもよい。
いくつかの実施形態では、サブグラフまたはその他のデータの取得もしくは格納(もしくはその他のサブグラフまたはその他のデータを取得または格納しない決定)は、頻度情報、コスト情報またはその他の情報に基づいてもよい。いくつかの実施形態では、リクエストサブシステム116は、頻度情報、コスト情報またはその他の情報に基づいて、(他のクエリよりも)実行されるべきクエリのサブセットの選択を実行してもよい。頻度情報は、前記リクエストまたはその他の情報と一致するリクエストの頻度を示す情報を含んでもよい。コスト情報は、一時データストレージにデータを格納するのにかかるコストを示す情報、それぞれのクエリを実行するためにかかるコストを示す情報またはその他の情報を含んでもよい。このようなコストとしては、例えば、金銭的なコスト、コンピュータリソースのコスト(例えば、帯域幅等のネットワークリソースの使用量やその他のコンピュータリソースのコスト)、その他のコストが含まれる。
リクエスト予測に応答して、例えば、どの結果が得られるかまたは保存されるか、取得されるまたは保存される結果の量はどのくらいかを決定するためにコスト/ベネフィット分析が実行されてもよい。一実施形態では、リクエストサブシステム116は、クエリを実行するかどうか(またはどのクエリを実行するか)を、それぞれのコスト(例えば、データソースにデータを問い合わせるためのコスト)、これらクエリから得られる結果の利点(例えば、予測されたリクエストに一致するリクエストの頻度、リクエストを行った者の好みに基づいてどの結果が他の結果よりも優先されるべきか等)、それらの結果を一時データストレージに格納するためのそれぞれのコスト、またはその他の基準に基づいて、決定してもよい。更なる使用例では、これらクエリのコスト、これらクエリから得られる結果のそれぞれの利点、これらの結果を一時データストレージに格納するためのそれぞれのコストまたはその他の基準に基づいて、それぞれのクエリに(実行される前に)スコアを割り当ててもよい。一例として、データソースにデータを問い合わせるためのコストが低いほど、対応するクエリに割り当てられた(他のクエリのスコアと比較して)スコアが高くなるようにしてもよい。予測されたリクエストに一致するリクエストの頻度が高いほど、予測されたリクエストに関連するクエリに割り当てられるスコアが高くなってもよい。あるクエリから得られた結果がリクエストを行った者に(ユーザーインターフェース上で)提示される可能性が(例えば、リクエストを行った者の好みに基づいて他のクエリから得られた他の結果よりも)高いほど、そのクエリのスコアを(他のクエリのスコアと比較して)高くしてもよい。それぞれに割り当てられたスコアに基づいて、リクエストサブシステム116は、それらクエリのうちの一つ以上のクエリを実行するかどうかを決定してもよい。一例として、リクエストサブシステム116は、そのようなクエリの一のサブセットが他のサブセットよりも大きなスコアを有することに基づいて、実行するクエリのサブセットを選択してもよい。
別の使用例では、結果が得られた場合でも、一時リクエストサブシステム116は、一時データストレージでこれら結果それぞれを記憶するためのコスト、これらの結果それぞれの利点またはその他の基準に基づいて、結果を格納するかどうか(または格納されるべき結果の量)を決定してもよい。更なる使用例では、これら結果それぞれを一時データストレージに格納するためのコスト、これらの結果それぞれの利点またはその他の基準に基づいて、それぞれの結果(例えば、結果のサブセット)にスコアを割り当ててもよい。一例として、結果の特定のサブセットを格納するためのコストが低いほど、結果のサブセットにより高いスコアを割り当てることに影響が大きくなってもよい。予測されたリクエストに一致するリクエストの頻度が高いほど、予測されたリクエストに関連する結果に割り当てられるスコアが高くなってもよい。結果の特定のサブセットがリクエストを行った者に(ユーザーインターフェース上で)提示される可能性が(例えば、リクエストを行った者の好みに基づいて他の結果よりも)高いほど、そのような結果のサブセットの高いスコアに影響を与えるようにしてもよい。それぞれに割り当てられたスコアに基づいて、リクエストサブシステム116は、結果のうちのどれが一時データストレージに格納されるかを決定してもよい。リクエストサブシステム116は、例えば、(例えば、実行されたクエリから得られた)結果の他のサブセットよりも大きなスコアを有する結果のサブセットに基づいて、格納される結果のサブセットを選択してもよい。
いくつかの実施形態では、(本明細書に記載されているように)一つまたは複数のリクエストの予測に応答して、結果が得られるまたは格納されるが、他のリクエストの予測に応答して(例えば、それら他のリクエストそれぞれが発生する確率が確実性の閾値を満たしても)、結果が得られないまたは格納されなくてもよい。一例として、リクエストサブシステム116は、予測されたリクエストに関して実行されたコスト/ベネフィット分析に基づいて(例えば、頻度情報、コスト情報またはその他の情報に基づいて)、リクエストの予測に応答して、いかなるクエリも実行しないことを決定してもよい。別の例として、リクエストサブシステム116は、予測されたリクエストに関して実行されたコスト/ベネフィット分析に基づいて(例えば、頻度情報、コスト情報またはその他の情報に基づいて)、リクエスト予測から得られた結果を格納しないことを決定してもよい。
いくつかの実施形態では、モデル管理サブシステム114は、リクエスト履歴情報を取得し、予測モデルをトレーニングするために、リクエスト履歴情報を予測モデルに提供するように構成されてもよい。リクエスト履歴情報としては、(i)過去リクエストのコレクション(例えば、データに対してユーザが送信したリクエスト)、(ii)過去リクエストから生成された過去クエリのコレクション(例えば、グラフデータモデルと互換性を有するように構成されたグラフクエリ)、(iii)過去リクエストまたは過去クエリが取得された時刻を示すタイミング情報、(iv)過去リクエストまたは過去クエリの頻度を示す頻度情報、(v)過去リクエストを送信したユーザを示すユーザ情報(個人を特定できないユーザ識別子またはその他の識別子等)もしくはユーザの種類(年齢、性別、場所またはその他の分類等)、および、そのユーザまたはユーザの種類がどの過去リクエストを送信したか、もしくは、(vi)その他の情報が含まれてもよい。
いくつかの実施形態では、予測モデルは、リクエスト履歴情報の少なくとも1種類を取得し、取得した情報に基づいてリクエスト履歴情報の少なくとも別の種類を予測するように構成されてもよい。一例として、モデル管理サブシステム114は、予測モデルへの入力として提供される過去リクエストまたは過去クエリのそれぞれについて、タイミング情報(過去リクエストまたは過去クエリが取得された時刻を示す)、頻度情報(過去リクエストまたは過去クエリの頻度を示す)、ユーザ情報(過去リクエストを送信したユーザまたはユーザの種類を示す)もしくは過去リクエストまたは過去クエリに関連するその他の情報を、予測モデルが行った、タイミング情報、頻度情報、ユーザ情報もしくは過去リクエストまたは過去クエリについてのその他の情報の予測に対する参照フィードバックとして提供してもよく、それにより予測モデルがトレーニングされてもよい。予測モデルは、自身が予測した情報を評価するために参照フィードバックを使用してもよい。別の例として、予測モデルへの入力として提供されるタイミング情報、頻度情報またはユーザ情報について、モデル管理サブシステム114は入力情報に関連付けられた過去リクエストまたは過去クエリを、予測モデルが行ったリクエストまたはクエリの予測に対する参照フィードバックとして提供し、予測モデルがトレーニングされてもよい。予測モデルは、参照フィードバックを使用して、自身が行ったリクエストまたはクエリの予測を評価してもよい。予測モデルは自身が行った予測の評価に基づいて、(例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより)予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加テンプレートの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの1つまたは複数の層を更新してもよい。
いくつかの実施形態では、予測モデルがトレーニングされる(またはそのようなトレーニングに基づいて更新される)と、モデル管理サブシステム114は、当該予測モデルを使用して、(i)一つ以上のリクエストまたはクエリ、(ii)これらリクエストまたはクエリのタイミング情報、(iii)これらリクエストまたはクエリの頻度情報、(iv)これらリクエストまたはクエリについてのユーザ情報、または(v)これらリクエストまたはクエリについてのその他の情報を予測してもよい。一例として、そのような予測は、予測されたリクエストの一つ以上のパラメータ、例えば、検索パラメータ(例えば、キーワード、コンテンツアイテムまたはその識別子/場所、論理演算子等)またはその他のパラメータを含んでもよい。別の例として、そのような予測は、予測されたリクエスト(または予測されたリクエストに一致する次のリクエスト)の一つ以上の時間、予測されたリクエストの頻度、そのリクエストを送信することが予測されたユーザまたはユーザの種類またはその他の予測を含んでもよい。このような予測に基づいて、リクエストサブシステム116は、結果の一つ以上のサブセットを取得し、結果を本明細書に記載されているように一時データストレージ(例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ)に(例えば、グラフデータベースまたは他の形態と互換性を有する変換されたサブグラフの形態で)格納してもよい。予測されたリクエスト(または予測されたリクエストに一致する未来のリクエスト)が発生した場合、リクエストサブシステム116は、一時データストレージから一つ以上の結果を取得し、取得した結果を使用して発生した予測されたリクエストに応答してもよい。
[クエリセットの最適化]
いくつかの実施形態では、最適化サブシステム118は、データ検索プロセスにおけるクエリ関連リソースの使用量を削減するように構成されてもよい。
いくつかの実施形態では、最適化サブシステム118は、データリクエスト(例えば、ユーザからの明示的なリクエストまたはその他のリクエスト)から派生したクエリセット、例えば、グラフクエリ(またはデータリクエストに関連するその他のクエリ)が変換されるクエリセットを最適化することによって、そのようなクエリ関連のリソース使用量を削減してもよい。いくつかの実施形態では、そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。このような最適化は、充足可能性の(例えば、特定のクエリから得られた複数の結果の組み合わせに関連する)問題、非互換性の問題または他の問題の予測に基づいて、このような問題またはこのような問題の悪影響を回避または軽減するために実行され得る。
いくつかの実施形態では、リクエストサブシステム116は、複数のデータリクエストを(例えば、一つ以上のユーザデバイスから)取得して処理し、複数のデータリクエストが共通の対象データを求めているかどうか(例えば、複数のデータリクエストが求めるデータの少なくとも一部が当該複数のデータリクエストの間で同じであるかどうか)を判定してもよい。データリクエストが共通の対象データを求めていると判定されたことに基づいて、リクエストサブシステム116は、全てのデータリクエストに応答するのに一つ以上のクエリを(例えば、クエリセットの一部として)生成してもよい。ここで、クエリの各々は複数のデータリクエストによって共通に求められているデータの少なくとも一部を得るように構成されており、当該共通のデータ部分を取得するのにそのような一つのクエリが使用できる。いくつかの実施形態では、リクエストサブシステム116は、複数のクエリのうちの少なくとも一つが、共通に求められるデータの第1のセットを第1のソースから取得するように構成され、複数のクエリのうちの少なくとも別の一つが、共通に求められるデータの第2のセットを第2のソースから取得するように構成されるように、前記複数のクエリを生成してもよい。一例として、共通に求められているデータの第1のセットを第1のソースから取得するための所定のクエリは、第1のソースと互換性を有し、第1のソースと互換性を有するが第2のソースとは互換性がないように構成されてもよい。別の例として、共通に求められているデータの第2のセットを第2のソースから取得するための所定のクエリは、第2のソースと互換性を有し、第2のソースと互換性を有するが第1のソースとは互換性がないように構成されてもよい。異なるソース(例えば、第1のソース、第2のソース等)から共通に求められているデータのセットを取得することに応答して、リクエストサブシステム116は、共通に求められているデータのセットを組み合わせ、組み合わされたセットを返すことにより、データリクエストのそれぞれに応答するように構成されてもよい。
いくつかの実施形態では、リクエストサブシステム116は、(例えば、一つ以上のユーザデバイスから取得される)複数のデータリクエストがそれぞれ、全てのデータリクエストに共通する2つ以上の属性に関連付けられた2つ以上の値を求めることを判定してもよい。一例として、データリクエストは、(i)グループA内の複数の個人の名前、グループB内の複数の個人の名前等を一括して求めるように決定されてもよいし、(ii)グループA内の複数の個人の住所、グループB内の複数の個人の住所等を一括して求めるように決定されてもよい。一使用例では、第1のデータリクエストは、複数のグループのうちの一つの第1個人の名前およびアドレスを求めてもよく、第2のデータリクエストは、複数のグループのうちの一つの第2個人の名前およびアドレスを求めてもよい。いくつかの実施形態では、(i)第1の共通属性(例えば、名前)に関連付けられた値が第1のデータソースから取得可能であり、(ii)第2の共通属性(例えば、アドレス)に関連付けられた値が第2のデータソースから取得可能であるという判定に基づいて、リクエストサブシステム116は(例えば、クエリセットの一部として)一つ以上のクエリを生成してもよい。ここで、複数のクエリのうちの少なくとも一つは、第1の共通属性に関連付けられた値を第1のデータソースから取得するように構成され、複数のクエリのうちの少なくとも別の一つは、第2の共通属性に関連付けられた値を第2のデータソースから取得するように構成される。いくつかの実施形態では、データリクエストのそれぞれについて、リクエストサブシステム116は、第1のデータソースから取得されたリクエストした値と、第2のデータソースから取得されたリクエストした値とを結合し、結合されたリクエスト値を返してデータリクエストに応答してもよい。あるシナリオでは、例えば、それぞれが異なる個人の名前と住所を求める多数のデータリクエスト(例えば、数十個のリクエスト、数百個のリクエスト、数千個のリクエスト等)があるかもしれないが、それら全てのデータリクエストについて名前を第1のデータソースから取得するために一つのクエリが生成され、それら全てのデータリクエストについて住所を第2のデータソースから取得するために別のクエリが生成されてもよい。2つのクエリを実行して名前および住所の少なくとも一部を取得すると、各個人の名前と住所とが結合され、対応するデータリクエスト(すなわち、その特定の個人の名前と住所を求めたリクエスト)に応答するべく返答されてもよい。
いくつかの実施形態では、一つまたは複数の属性に関連付けられた一つまたは複数の値を求める第1のリクエストを取得した後、リクエストサブシステム116は、当該第1のリクエストに応答するためにデータを取得するように構成された一つ以上のクエリを生成または実行する前に所定の時間が経過するのを待ってもよい。この待機期間は、他のリクエスト(第1のリクエストで求められた属性と共通する少なくとも一つの属性に関連付けられた値を求める)を取得することを可能にし、それによって第1のリクエストおよび他のリクエストに応答するために実行する必要があるクエリの全体的な数を減少させる。いくつかの実施形態では、リクエストサブシステム116は、所定の時間が経過したかどうか(例えば、所定のリクエストを取得してからの時間)を判定してもよい。所定の時間が経過していない場合、リクエストサブシステム116は、所与のリクエストのデータを取得するように構成された一つ以上のクエリの生成または実行を遅らせてもよい。一方、所定の時間が経過している場合、リクエストサブシステム116は、所与のリクエストを取得した後、どの他のリクエストが取得されたかを判定してもよい。所与のリクエストおよび所与のリクエストで求められた値として少なくとも一つの属性に関連付けられた値を求める他のリクエストについて、リクエストサブシステム116は、これらリクエストが求める共通の属性に関連付けられた値を取得するように構成された一つ以上のクエリを生成し実行してもよい。
いくつかの実施形態では、リクエストサブシステム116は、(i)過去リクエストのコレクション、(ii)過去リクエストから生成された過去クエリのコレクション、(iii)過去リクエストまたは過去クエリが取得された時刻を示すタイミング情報、(iv)過去リクエストまたは過去クエリの頻度を示す頻度情報、(v)過去リクエストを送信したユーザまたはユーザの種類を示すユーザ情報および当該ユーザまたはユーザの種類によってどの過去リクエストが送信されたかを示すユーザ情報、もしくは(vi)その他の情報、といったリクエスト履歴情報に基づいて(本明細書に記載されている待ち時間として)所定の時間を設定してもよい。いくつかの実施形態では、リクエストの分類毎に所定の時間が設定されてもよく、リクエストは、リクエストによって求められたコンテンツ、ユーザまたはユーザの種類(例えば、年齢、性別、場所またはユーザの他の分類)またはその他の基準に基づいて分類される。いくつかの実施形態では、リクエストの取得に応答して(例えば、リアルタイムで)、そのような所定の時間が所与のリクエストに対して決定されてもよい。一例として、リクエストを取得することに応答して、リクエストサブシステム116はリクエストのカテゴリを決定した後、(例えば、より多くの類似したリクエストを取得できるようにするための)待ち時間として使用される所定の時間量を決定してもよい。
本明細書で示されるように、いくつかの実施形態では、リクエストサブシステム116は、それぞれが共通の(例えば、全てのリクエストに共通の)属性に関連付けられた値を求めるリクエストの予測等、一つ以上のリクエストが将来発生することを予測してもよい。本明細書で説明されるように、そのような予測はリクエスト履歴情報に基づいてもよい。いくつかの実施形態では、リクエストサブシステム116は、将来のリクエストに関連する予測(例えば、各カテゴリのリクエストがいつまたはどの程度の頻度で発生するかに関する予測)に基づいて、リクエストの各カテゴリの所与の時間を設定してもよい。また本明細書で説明されるように、そのような予測を示す情報を出力するために、予測モデルはリクエスト履歴情報に基づいてトレーニングされてもよい。いくつかの実施形態では、予測モデルは自身の予測を評価するように構成されてもよく、そのような評価に基づいて、予測モデルは、(例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することによって)予測モデルの一つ以上の部分を更新してもよい。
いくつかの実施形態では、リクエストサブシステム116は、ユーザデバイスまたは他のソースからデータリクエストを取得し、データリクエストに基づいて一つ以上のクエリを生成してもよい。いくつかの実施形態では、リクエストサブシステム116は、データリクエストに基づいてグラフクエリを生成してもよい。グラフクエリを取得することに応答して、最適化サブシステム118は、グラフクエリを、複数のクエリおよびこれらクエリをリンクするクエリ演算子(例えば、union、joinまたはその他のクエリ演算子)を有するクエリセットに変換してもよい。いくつかの実施形態では、グラフクエリはグラフデータベースと互換性を有し、グラフクエリを使用して、一つ以上の対象データソースと互換性を有するクエリセットに対する複数のクエリを生成してもよい。一例として、データソースのデータベース管理システムに従って、データソースからデータを取得するためにデータソースと互換性を有するクエリを実行してもよい。いくつかの実施形態では、前記複数のクエリは、対象データソースと互換性があるが、(グラフクエリは互換性を有する)グラフデータベースとは互換性がないものであってもよい。いくつかの実施形態では、データリクエストに基づいて、リクエストサブシステム116は、第1の再帰クエリ(例えば、グラフデータベースと互換性のあるグラフ再帰クエリ)を生成してもよい。リクエストサブシステム116は、第1の再帰クエリを、(例えば、クエリセットに対して)一つ以上の第2の再帰クエリに変換してもよい。一例として、第2の再帰クエリの各々は対象データソースと互換性を有するように構成されていてもよく、(例えば、対象データソースをホストしている)対象のコンピュータシステムによって第2の再帰クエリの一つが実行されると、実行された再帰クエリは、対象コンピュータシステムに第2の再帰クエリから複数のクエリを生成させ、データリクエストに関連するデータを対象データソースから取得するべく当該複数のクエリを実行させる。
いくつかの実施形態では、上記のクエリセットに関して、最適化サブシステム118は、上記クエリセットの一つ以上の部分に関連する一つ以上の問題を予測し、予測された問題に基づいてクエリセットに対する一つ以上の最適化を実行して、クエリセットを更新してもよい。そのように更新されたクエリセットがグラフクエリ(したがって、データリクエスト)を満たすために実行される場合、予測された問題または予測された問題の負の影響は回避されるまたは緩和され得る。
一例として、データリクエストは、ある従業員の給与と、その従業員に割り当てられたプロジェクトを尋ねてもよい。データリクエストは、(例えば、「従業員」ノードと「給与」ノードとが「hasSalary」エッジで接続され、「従業員」ノードと「プロジェクト」ノードとが「worksOn」エッジで接続されているグラフのデータ表現として、クエリの結果が格納される方法を反映した)以下の2つのパターンを有するグラフクエリとして記述されてもよい。
?従業員:hasSalary?給与
?従業員:worksOn?プロジェクト
ある使用例では、上記の例に関して、マッピング(またはそのようなマッピングによって定義されたテンプレート)が、給与情報またはプロジェクト情報を含むRDBMS内のソーステーブルを示してもよく、最適化サブシステム118は当該マッピングを(データベース固有のクエリトランスレータと共に)使用してグラフクエリをデータベースの言語でのクエリセットに変換してもよい。場合によっては、関係の各々に対して複数のソースが存在してもよく、その結果、多数のクエリ演算子を有するクエリセットが生成される。例えば、ある従業員が複数のプロジェクトで働いていて、これらのプロジェクトが複数のテーブルに格納されている場合がある。場合によっては、(RDBMSから結果を得るために)グラフクエリをクエリセットへ変換することにより、一つのパターンに対応するソースに対するUNIONが生成され、各パターンに対するUNIONの直交積をSQLjoinとして生成してもよい。グラフクエリにN個のパターンがあり、各タームに対してM個のソースがある場合、クエリ変換は、N×M個のUNIONを生成してもよい。最適化サブシステム118は、UNIONの数を減らしてもよいし、所与のUNION内の結合(join)を単純化してもよいし、そうでなければ、クエリセットを最適化してもよい。
いくつかの実施形態では、最適化サブシステム118は、クエリセット(例えば、グラフクエリまたは他のクエリから変換された初期クエリセット)に関連する一つ以上の充足可能性の問題を予測してもよい。幾つかの実施形態では、(2つのクエリから得られた結果の組み合わせに関連する)充足可能性の問題の予測に基づいて、最適化システム118は、クエリセットからこの2つのクエリをリンクするクエリ演算子を削除するか、このクエリセットに対して他の最適化を実行して当該クエリセットを更新してもよい。上記のように、システム100が、グラフクエリ(したがって、データリクエスト)を満たすために更新されたクエリセットを実行する場合、システム100は、(i)クエリセットの1つ以上の部分を実行し、そのようなクエリセットの実行から派生した互換性のない結果を組み合せようとするのに使用されるリソースの無駄、(ii)そのような実行と試行から生じる遅延、または(iii)その他の悪影響といった、充足可能性の問題または充足可能性の問題の負の影響を回避または軽減することができる。
いくつかの実施形態では、クエリセット内の複数のクエリが、一つ以上のクエリ演算子(例えば、union、joinまたはその他のクエリ演算子)によってリンクされている場合、最適化サブシステム118は、リンクされたクエリに対する結果を得るための一つ以上のソースを決定してもよい。複数のクエリのうちの2つについて結果を得るべきソースが少なくとも2つある(そして、そのような結果は、最初はグラフデータベースと互換性を有さない)場合、最適化サブシステム118は、そのようなソースからのデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されたテンプレートの評価を行ってもよい。最適化サブシステム118が、少なくとも2つのそのようなテンプレートに関連する非互換性があると判定した場合、最適化サブシステム118は、(2つのクエリに由来する結果を組み合わせることに関連する)満足度の問題を予測し、2つのクエリをリンクするクエリ演算子をクエリセットから削除するまたはクエリセットを更新するためにクエリセットに対して他の最適化を実行してもよい。ある使用例では、マッピングは、グローバルに一意な識別子(IRIと称される場合もある)を作成することで、RDBMSからの行をグラフ内のノードへと変換するためのテンプレートを定義してもよい。例として、ID123の従業員は、「http://example.org/employee/123」のような識別子にマッピングされてもよい。2つのソースに対するマッピングが互換性のないテンプレートを使用している場合、最適化サブシステム118は、結合結果が空になることを予測して、当該結合結果を排除してもよい。例として、あるテンプレートが「http://example.org/employee/{ID}」の形をしていて、別のテンプレートが「http://example.org/department/{ID}」の形をしている場合、IDの値に関係なく、2つのテンプレートは互換性がないと結論づけることができる。つまり、テンプレートには固定部分および変数部分、例えば「http://example.org/employee/」および「{ID}」がある。クエリを実行する前の変数の値は未知であるが、テンプレートの固定部分が不整合であれば、その不整合性を利用して、2つのテンプレート間の結合可能性を除外することができる。
いくつかの実施形態では、最適化サブシステム118は、クエリセット内の一つ以上のクエリ演算子によってリンクされたクエリに対する結果に対応するデータ型を決定し、当該データ型に関連する一つ以上の非互換性に基づいてクエリセットの最適化を実行してもよい。いくつかの実施形態では、最適化サブシステム118は、(クエリセットにおける複数のリンクされたクエリのうちの一つからの)結果の第1のセットをグラフデータベース内に格納するために使用される第1のデータ型が、(前記複数のリンクされたクエリのうちの別の一つからの)結果の第2のセットを前記グラフデータベース内に格納するために使用される第2のデータ型と非互換であると判定してもよい。データ型の非互換性との判定に基づいて、最適化サブシステム118は、(2つのクエリに由来する結果を組み合わせることに関連して)充足性の問題を予測し、クエリセットから前記2つのクエリをリンクしているクエリ演算子を削除するまたはクエリセットを更新するためにクエリセットに対してその他の最適化を実行してもよい。あるシナリオでは、例えば、テーブル内の列は、IRIの代わりにグラフ内のプリミティブ値(例えば、整数、文字列、日付等)にマッピングされてもよい。クエリが2つのテーブルから2つの互換性のない型(例えば、整数と日付)を結合しようとした場合、そのような試みは(このシナリオでは)失敗に終わる。このように、2つのデータセットをそれぞれ格納するためにそのようなデータ型が使用されると判断される場合、最適化サブシステム118は、充足可能性の問題(例えば、2つの互換性のない型の結合の失敗)を予測し、適切な最適化を実行してもよい(例えば、対応するクエリ演算子の削除、クエリ演算子の代わりに別の演算子を補足する、等)。
いくつかの実施形態では、クエリセットに関連する一つ以上の充足可能性の問題の予測に基づいて、最適化サブシステム118は、予測された充足可能性の問題およびクエリセットに関連する一つ以上の更なるの充足可能性問題を予測してもよい。最適化サブシステム118は、更なる充足可能性問題に関連する一つ以上のクエリ演算子を削除するまたはクエリセットに対してその他の最適化を実行してもよい。いくつかの実施形態では、第1のクエリ、第2のクエリおよび一つ以上のその他のクエリは、クエリセット内のクエリ演算子によってリンクされていてもよい。第1のクエリおよび第2のクエリに関連する(例えば、第1のクエリおよび第2のクエリに由来する結果を組み合わせることに関連した)第1の充足可能性の問題の予測に基づいて、最適化サブシステム118は、クエリセット内の第1のクエリおよび第2のクエリをリンクする第1のクエリ演算子を削除する、または、第1のクエリおよび第2のクエリを含むクエリセット部分を変更(例えば、第1のクエリ演算子を除外するまたはその他の変更を実行)してもよい。第1の充足可能性の問題の予測に基づいて、最適化サブシステム118は、一つ以上のその他の充足可能性の問題(例えば、第1のクエリおよび他のクエリの少なくとも一つに由来する結果の組み合わせ、第2のクエリおよび他のクエリの少なくとも一つに由来する結果の組み合わせ等に関連する)を予測してもよい。その他の充足可能性問題の予測に基づいて、最適化サブシステム118は、第1のクエリ、第2のクエリまたはその他のクエリのうちの2つ以上をリンクする第2のクエリ演算子を削除する、もしくはその他の方法で、前記2つ以上のクエリを含むクエリセットの部分を修正してもよい(例えば、第2のクエリ演算子を除外するまたはその他の変更を実行する)。一使用例では、最適化サブシステム118は、充足不可能性の伝播について最適化するために、クエリセットの一つ以上の部分を修正してもよい(例えば、一つ以上のクエリ演算子を除外するまたはその他の変更を実行する)。一例として、「?従業員:hasSalary?給与」と「?従業員:worksOn?プロジェクト」という2つのパターンを有するグラフクエリに関して、最適化サブシステム118は、前記2つのパターンに関連した充足可能性の問題があると判断した場合(例えば、そのようなパターンから生成されたクエリから導出された結果が結合できない場合)、パターンから伝播する可能性のあるその他の問題を予測してもよい。更なる例では、2つのパターンが充足不可能である(例えば、それらが結合できない)ことが判明したことに応答して、最適化サブシステム118は、他の充足可能なパターンが存在する可能性がある場合であっても、充足不可能性がクエリセットを介して伝播すると判断してもよい。例えば、グラフクエリに別のパターンが追加された場合(例えば、従業員名を取得しようとする場合)、最適化サブシステム118は、最初の2つのパターンが結合できなかったため、結果が返されないと判断してもよい。
いくつかの実施形態では、最適化サブシステム118は、(例えば、クエリが実行されるべき一つ以上のRDBMSまたは他のデータベース管理システムにクエリを送信する前に)クエリセットに対して一つ以上の自己結合除去またはその他の最適化を実行してもよい。いくつかの実施形態では、UNION構成要素のうちの一つを排除することはできないが、パフォーマンスを向上させるために簡略化してもよい。2つのパターンが同じソーステーブルにマッピングされ、そのテーブルに固有のキーが存在する場合、最適化サブシステム118は、結合(例えば、SELECTe1.suffer,e1.salary,e2.suffer,e2.salarayFROMemployeesASe1,employeesase2WHEREe1.suffer=e2.suffer)の代わりに、単一のクエリ(例えば、SELECTemployee,salary,projectFROMemployees)を生成してもよい。この場合、クエリ実行データベース管理システムのSQLオプティマイザがこの種の変換を実行することもあるが、クエリに更に多くのパターンが追加されることで、生成されるSQLクエリの複雑さはSQLオプティマイザが扱える範囲を超えてしまう。SQLWHERE句において結合条件や式が多すぎるクエリは、SQLオプティマイザの検索スペースを指数関数的に増加させ、その結果、オプティマイザはヒューリスティクス(heuristics)を使用して準最適クエリプランを生成することになる。
いくつかの実施形態では、(i)対応する複数のクエリセット各々に関連する一つ以上の問題、(iii)対応する複数のクエリセット各々に対する最適化、または(iii)他の情報、を予測モデルに予測させるために、最適化サブシステム118は、グラフクエリ、(グラフクエリから導出された)対応するクエリセットまたはその他の情報を予測モデルに提供してもよい。一例として、そのような問題には、(例えば、特定のクエリに由来する結果を組み合わせることに関連する)一つ以上の充足可能性の問題、非互換性の問題またはその他の問題が含まれ得る。そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。いくつかの実施形態では、対応するクエリセットの各々に関して、最適化サブシステム118は、対応するクエリセットについての一つ以上の参照問題または参照最適化を、予測モデルが行った当該問題または最適化の予測に対する参照フィードバックとして予測モデルに提供して、予測モデルをトレーニングしてもよい。一例として、参照問題または最適化は、予測モデルに予測した問題または最適化を参照問題または参照最適化に対して評価させるための参照フィードバックとして提供されてもよい。予測モデルは、参照課題または参照最適化を使用して、自身が行った問題または最適化の予測を評価するようにしてもよい。予測モデルは、その予測の評価に基づいて、予測モデルの一つ以上の部分を(本明細書に記載されているように)更新してもよい。
いくつかの実施形態では、最適化サブシステム118は、グラフクエリまたはその他の情報を予測モデルに提供して、予測モデルが複数のグラフクエリの各々についてクエリセットを予測するようにしてもよい。いくつかの実施形態では、複数のグラフクエリの各々に関して、最適化サブシステム118は、予測モデルが行ったクエリセットの予測に対する参照フィードバックとしてグラフクエリについての参照クエリセットを予測モデルに提供して、予測モデルをトレーニングしてもよい。一例として、参照クエリセットは、予測モデルが予測したクエリセットを参照クエリセットに対して評価させるような参照フィードバックとして提供されてもよい。予測モデルは、参照クエリセットを使用して、自身が行ったクエリセットの予測を評価してもよい。予測モデルは、その予測の評価に基づいて、予測モデルの一つ以上の部分を(本明細書に記載されているように)更新してもよい。
いくつかの実施形態では、予測モデルがトレーニングされると(またはそのようなトレーニングに基づいて更新されると)、最適化サブシステム118は、予測モデルを使用して、(i)グラフクエリ(またはその他のクエリ)から導出された初期クエリセットに関連する一つ以上の問題、または(ii)初期クエリセットに対する一つ以上の最適化を決定してもよい。一例として、最適化サブシステム118は、(i)初期クエリセットに関連する問題、(ii)初期クエリセットに対する最適化、または(iii)最適化されたクエリセット、についての予測を得るために、予測モデルへの入力としてグラフクエリまたは初期クエリセットを提供してもよい。ある使用例では、そのような入力に応答して予測モデルは、最適化されたクエリセット、そのような問題を示す情報またはそのような最適化を示す情報(例えば、そのような最適化のための指示または他の指示)を出力してもよい。別の使用例では、最適化サブシステム118は、問題または最適化を示す情報を使用して、初期クエリセットを最適化クエリセットに変換してもよい。
[クエリの応答結果の表示]
プレゼンテーションサブシステム120は、クエリ結果または他の情報の表示させるように構成されてもよい。プレゼンテーションサブシステム120は、グラフデータモデルテンプレート、クエリ結果に対するリクエストの予測、リクエストの予測に応答して得られた結果のサブセット、一時データストレージ内のサブグラフに格納された結果のサブセットまたはその他の情報に基づいて、クエリ結果を表示させるように構成されてもよい。表示されたクエリ結果は、グラフィカル・ユーザ・インタフェースまたはその他のインタフェースにおける一つ以上のビュー内の一つ以上のフィールドを含んでもよい。グラフィカル・ユーザ・インタフェースは、一つまたは複数のクライアントデバイス104またはその他のコンピュータシステム上で表示されてもよい。いくつかの実施形態では、表示は、グラフィック、テキストまたはその他の表現を含んでもよい。いくつかの実施形態では、表示は、グラフデータモデルのサブマップまたはその他のビューを含んでもよい。いくつかの実施形態では、表示は、グラフィカル・ユーザ・インタフェースまたはその他のディスプレイにおける様々なビューに、一つ以上のテキストおよび/またはグラフィカルフィールドを提供することを含んでもよい。
いくつかの実施形態では、プレゼンテーションサブシステム120は、ユーザからの情報の入力または選択を容易にするために、グラフィカル・ユーザ・インタフェースと通信するように構成されてもよい。例えば、本明細書に記載されるように、いくつかの実施形態では、所与のノードまたはエッジの追加に関してグラフィカル・ユーザ・インタフェースを介して入力または選択されるユーザの了承に基づいて、予測モデルからの前記所与のノードまたはエッジがグラフに追加されてもよい。ユーザが了承したことを示す情報は、予測モデルの前記所与のノードまたはエッジの生成に関する参照フィードバックとして、プレゼンテーションサブシステム120によって予測モデルに提供されてもよい。いくつかの実施形態では、前記所与のノードまたはエッジの追加に関してのユーザの拒否は、グラフィカル・ユーザ・インタフェースを介してプレゼンテーションサブシステム120によって取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルの前記所与のノードまたはエッジの生成に関する参照フィードバックとして、プレゼンテーションサブシステム120によって予測モデルに提供されてもよい。
いくつかの実施形態では、プレゼンテーションサブシステム120は、グラフィカル・ユーザ・インタフェースと通信して、一つ以上のメニュー、フィールドおよび/またはその他の一つ以上のフィールドの中または隣接するその他のオブジェクトの拡張および収縮、ポップアップおよび/またはその他の表示を容易にするように構成されてもよい。いくつかの実施形態では、プレゼンテーションサブシステム120は、ユーザによるポインタまたはその他のインジケータを用いた、表示の特定の部分のポインティング、クリックまたはホバリングに応答して、そのような表示を発生させてもよい。いくつかの実施形態では、拡張されたフィールド、ポップアップフィールド、追加のメニュー項目および/またはその他のオブジェクトは、クエリ結果に対応する追加のコンプリメンタリまたは追加情報をユーザに対して表示する。
[フローチャート例]
図12〜図14は、上記で詳細に説明したシステムの様々な特徴および機能を可能とするための方法を含む処理動作を示すフローチャートの一例である。以下で説明する各方法の各処理動作は例示を目的としたものであり、限定するものではない。一部の実施形態において、例えば、これらの方法は、説明していない一つ以上の処理を追加して実現されてもよいし、説明している処理のうちの一つ以上を省略して実現されてもよい。また、各方法の処理動作を図示する(そして以下で説明する)順序は、それに限定することを意図したものではない。
一部の実施形態において、各方法は、一つまたは複数の処理デバイス(例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、および/または、電子的に情報を処理するこれら以外の機構)において実装され得る。これらの処理デバイスは、電子記憶媒体に電子的に記憶された命令に応答して、各方法の処理の一部または全てを実行する一つまたは複数のデバイスを含んでもよい。これらの処理デバイスは、各方法の処理のうち一つまたは複数を実行するよう特別に設計されるべく、ハードウェア、ファームウェアまたはソフトウェアによって構成される1または複数のデバイスを含むとしてよい。
図12は、一つ以上の実施形態に従って、予測モデルを介してグラフを生成する方法1200のフローチャートを示す。いくつかの実施形態では、予測モデルは、ニューラルネットワーク、機械学習モデルまたはその他の予測モデルを含んでもよい。
処理1202において、第1のモデリング情報が取得されてもよい。第1のモデリング情報は、第1のグラフデータモデルに関連していてもよい。第1のモデリング情報は、第1のグラフデータベースと互換性のない第1のデータ表現を第1のグラフデータベースと互換性のあるグラフデータ表現に変換するための第1のテンプレートを含んでもよい。いくつかの実施形態では、処理1202は、所与のグラフデータベース内のグラフのノードおよびエッジに関連するグラフ情報を取得することを含んでもよい。グラフ情報は、データ表現セットを示してもよい。複数のデータ表現セットの各データ表現セットは、ノードと、ノードを接続するエッジとを含んでもよい。一つ以上の実施形態に従って、処理1202は、データ管理サブシステム112と同一または類似のグラフ生成サブシステムによって実行されてもよい。
処理1204において、第1のテンプレートのうちの1以上のテンプレートおよび第1のデータ表現が、予測モデルに提供されてもよい。予測モデルは、第1のテンプレートの追加テンプレートを一つ以上予測してもよい。予測モデルは、追加テンプレートに依存することなく、当該追加テンプレートの予測を実行するように構成されてもよい。いくつかの実施形態では、処理1204は、複数のデータ表現セットのデータ表現セットそれぞれについて、データ表現セットの一つ以上のノードまたはエッジを、予測モデルに提供することを含んでもよい。予測モデルは、データ表現セットの一つ以上の追加ノードまたは追加エッジを予測してもよい。予測モデルは、追加ノードまたは追加エッジの予測を、当該追加ノードまたは追加エッジに依存することなく実行するように構成されてもよい。一つ以上の実施形態に従って、処理1204は、データ管理サブシステム112と同一または類似のグラフ生成サブシステムによって実行されてもよい。
処理1206において、第1のテンプレートの追加テンプレートが予測モデルに提供されてもよい。これらのテンプレートは、予測モデルが行った追加テンプレートの予測に対する参照フィードバックとして提供されてもよい。このフィードバックにより予測モデルがトレーニングされてもよい。いくつかの実施形態では、処理1206は、複数のデータ表現セットの各データ表現セットについて、予測モデルをトレーニングするために、予測モデルが行った追加ノードまたは追加エッジの予測に対する参照フィードバックとして、データ表現セットの追加ノードまたは追加エッジを予測モデルに提供することを含んでもよい。一つ以上の実施形態に従って、処理1206は、データ管理サブシステム114と同一または類似のモデルサブシステムによって実行されてもよい。
処理1208において、所与のデータベースからのデータ表現のコレクションが予測モデルに提供されてもよい。これらのデータ表現により、所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現に変換するための一つ以上のテンプレートを、予測モデルが生成することを可能にしてもよい。いくつかの実施形態では、所与のグラフデータベースのグラフデータ表現は、グラフノードまたはグラフノードを接続するエッジを含む。一つ以上の実施形態に従って、処理1208は、データ管理サブシステム112と同一または類似のグラフ生成サブシステムによって実行されてもよい。
いくつかの実施形態では、処理1208は、グラフのノードまたはエッジを処理するために、グラフのトラバースを予測モデルを介して実行することを含んでもよい。これにより、予測モデルは、グラフの新しいノードまたはエッジを生成してもよい。予測モデルからの新しいノードまたはエッジは、グラフに追加されてもよい。予測モデルからの所与のノードまたはエッジは、グラフのトラバースに基づいてグラフに追加されてもよい。いくつかの実施形態では、前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、予測モデルからの当該所与のノードまたはエッジをグラフに追加してもよい。ユーザが了承したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。いくつかの実施形態では、所与のノードまたはエッジを追加することをユーザが拒否したことが取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。
いくつかの実施形態では、方法1200は、第2のグラフデータモデルに関連する第2のモデリング情報を得ることを更に含んでもよい。第2のモデリング情報は、第2のグラフデータベースと互換性のない第2のデータ表現を、第2のグラフデータベースと互換性のあるグラフデータ表現に変換するための第2のテンプレートを含んでもよい。いくつかの実施形態では、第1のデータ表現および第2のデータ表現は、同じデータベースと互換性があってもよい。いくつかの実施形態では、第1のデータ表現は、第1の非グラフデータベースと互換性があってもよい。第2のデータ表現は、第2の非グラフデータベースと互換性があり、第1の非グラフデータベースと互換性がないものであってもよい。いくつかの実施形態では、第1のデータ表現または第2のデータ表現は、少なくとも一つのグラフデータベースと互換性があってもよい。
いくつかの実施形態では、方法1200は、第2のテンプレートの一つ以上のテンプレートおよび第2のデータ表現を予測モデルに提供することを更に含む。予測モデルは、第1のテンプレートの追加テンプレートを一つ以上予測してもよい。予測モデルは、前記第2のテンプレートの追加テンプレートに依存することなく、前記第2のテンプレートの当該追加テンプレートを予測するように構成されていてもよい。いくつかの実施形態では、方法1200は、予測モデルをトレーニングするために、予測モデルによる第2のテンプレートの追加テンプレートの予測に対する参照フィードバックとして、当該第2のテンプレートの追加テンプレートを予測モデルに提供することを更に含む。
図13は、一のまたは複数の実施形態に係る、予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減する方法1300を示すフローチャートである。
処理1302において、データリクエストが将来発生するという予測がなされてもよい。予測は、グラフデータモデルと互換性を有する過去のクエリに基づいてもよい。処理1302は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
処理1304において、一つ以上のサブグラフが生成されてもよい。サブグラフの生成は、グラフデータモデルに基づいてもよい。サブグラフは、一のデータセットのデータサブセットの代表であってもよい。データセットは、データリクエストが要求すると予測されるデータであってもよい。サブグラフは、データリクエストの予測に応答して生成されてもよい。処理1304は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
処理1306において、サブグラフを一時データストレージに格納してもよい。処理1306は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
処理1308において、予測されたデータリクエストと一致する次のデータリクエストが取得されてもよい。次のデータリクエストは、サブグラフの格納に続いて取得されてもよい。処理1308は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
処理1310において、サブグラフを一時データストレージから取得してもよい。サブグラフは、予測されたデータリクエストに一致する次のデータリクエストに基づいて取得されてもよい。予測されたデータリクエストと一致する次のデータリクエストに基づいて、クエリプランが生成されてもよい。クエリプランは、次のデータリクエストに応答するように生成されてもよい。クエリプランは、予測されたデータリクエストに一致する次のデータリクエストに基づいて一時データストレージからデータを取得することを含むように生成されてもよい。処理1310は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
処理1312において、次のデータリクエストに応答するためにサブグラフを使用してもよい。一例として、データサブセットは一つ以上のサブグラフのノードおよびエッジから抽出され、次のデータリクエストに応答するべく抽出されたデータサブセットが返されてもよい。処理1312は、一つ以上の実施形態に従って、リクエストサブシステム116と同一または類似のリクエストサブシステムによって実行されてもよい。
図14は、一のまたは複数の実施形態に係る、データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法のフローチャートを示す。処理1402では、グラフクエリが取得されてもよい。グラフクエリは、データリクエストまたは他のリクエストに関連していてもよい。グラフクエリは、パターンまたはその他の情報を含んでもよい。処理1402は、一つ以上の実施形態に従って、最適化サブシステム118と同一または類似の最適化サブシステムによって実行されてもよい。
処理1404において、グラフクエリは、グラフクエリセットに変換されてもよい。変換は、グラフデータモデル、グラフクエリのパターンまたはその他の情報に基づいて行われてもよい。クエリセットは、クエリと、クエリをリンクするクエリ演算子とを含んでもよい。クエリ演算子は、複数のクエリのうちの第1のクエリと第2のクエリとをリンクする第1のクエリ演算子を含んでもよい。処理1404は、一つ以上の実施形態に従って、最適化サブシステム118と同一または類似の最適化サブシステムによって実行されてもよい。
いくつかの実施形態では、処理1404は、予測モデル(例えば、ニューラルネットワーク、機械学習モデル等)にグラフクエリを提供して、予測モデルにグラフクエリの各々について所与のクエリセットを予測させることを含んでもよい。予測された所与のクエリセットの少なくとも一つは、予測されたクエリ、および、予測されたクエリをリンクする予測されたクエリ演算子を含んでもよい。そのような実施形態では、処理1404は、複数のグラフクエリのそれぞれについて、当該グラフクエリに対する参照クエリセットを参照フィードバックとして予測モデルに提供することを含んでもよく、それにより、予測モデルが参照クエリセットに対して予測した所与のクエリセットの評価を行うようにしてもよい。予測モデルは、予測された所与のクエリセットに対する予測モデルの評価に基づいて更新されてもよい。そのような実施形態では、処理1404は、グラフクエリを予測モデルに提供して当該グラフクエリをクエリセットへと変換すること、および、更新されたクエリセットを参照フィードバックとして予測モデルに提供して予測モデルに更新されたクエリセットに対する前記クエリセットの評価を行わせることを含んでもよい。予測モデルは、予測モデルによるクエリセットの評価に基づいて更新されてもよい。
処理1406では、第1のクエリおよび第2のクエリから導出された結果の組み合わせに関連する充足可能性の問題が予測されてもよい。予測は、第1のクエリおよび第2のクエリの実行に先立って行われてもよい。いくつかの実施形態では、充足可能性の問題を予測することは、第1のクエリおよび第2のクエリの結果を得るための第1および第2のソースを決定すること、ならびに、第1および第2のテンプレートに関連する非互換性を決定することを含んでもよい。第1のテンプレートは、第1のソースからのデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されてもよい。第2のテンプレートは、第2のソースからのデータ表現を前記グラフデータベースと互換性のあるグラフデータ表現に変換するように構成されてもよい。処理1406は、一つ以上の実施形態に従って、最適化サブシステム118と同一または類似の最適化サブシステムによって実行されてもよい。
処理1408では、第1のクエリ演算子がクエリセットから削除されてもよい。いくつかの実施形態では、第1のクエリ演算子は、第1のクエリと第2のクエリとをリンクするunion、または、第1のクエリと第2のクエリをとリンクするjoinを含んでもよい。充足可能性の問題の予測またはその他の情報に基づいて演算子の削除が行われてもよい。更新されたクエリセットが第1のクエリ演算子を含まないようにクエリセットを更新するために、クエリセットから第1のクエリ演算子が削除されてもよい。いくつかの実施形態では、処理1406および/または1408は、充足可能性の問題の予測に基づいて、クエリセットのクエリのサブセットを実行する前に、クエリのサブセットから導出された結果を組み合わせることに関連する別の充足可能性の問題を予測することを含んでもよい。クエリのサブセットは、第1のクエリまたは第2のクエリを含まない場合がある。そのような実施形態では、処理1408は、その他の充足可能性の問題の予測に基づいて、クエリセットから第2のクエリ演算子を削除して、更新されたクエリセットが第2のクエリ演算子を含まないようにクエリセットを更新することを含んでもよい。処理1408は、一つ以上の実施形態に従って、最適化サブシステム118と同一または類似の最適化サブシステムによって実行されてもよい。
処理1410において、グラフクエリを満たす更新されたクエリセットが実行されてもよい。処理1410は、一つ以上の実施形態に従って、最適化サブシステム118と同一または類似の最適化サブシステムによって実行されてもよい。
いくつかの実施形態では、上述した方法1400の一つまたは複数の処理は、グラフクエリまたは対応するクエリセットを予測モデルに提供して、対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測モデルが予測するようにすることを含んでもよい。予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含んでもよい。方法1400は、対応するクエリセットの各々に関して、対応するクエリセットに対する一つ以上の参照最適化を、予測モデルに参照フィードバックとして提供して、予測モデルが予測した所与の最適化を一つ以上の参照最適化に対して評価することを含んでもよい。予測モデルは、予測された所与の最適化に対する予測モデルの評価に基づいて更新されてもよい。方法1400は、グラフクエリまたはグラフクエリから導出された初期クエリセットを予測モデルに提供して、初期クエリセットに対する一つ以上の最適化を得ることを含んでもよい。方法1400は、初期クエリセットに対して最適化を実行することにより、グラフクエリをクエリセットに変換することを含んでもよい。方法1400は、第1のクエリ演算子が削除されたことを示す情報を予測モデルへの参照フィードバックとして予測モデルに提供することを含んでもよく、それにより、予測モデルが第1のクエリ演算子の削除に対して最適化を評価してもよい。予測モデルは、予測モデルによる最適化の評価に基づいて更新されてもよい。
いくつかの実施形態では、上述した方法1400の1つ以上の処理は、所与のクエリセットを予測モデルに提供して、所与のクエリセットの各々に関連する1つ以上の充足可能性の問題を予測モデルが予測することを含んでもよい。方法1400は、所与のクエリセットの各々に関して、所与のクエリセットについての一つ以上の参照充足可能性問題を予測モデルに参照フィードバックとして提供して、予測モデルが予測した充足可能性の問題を参照充足可能性問題に対して評価することを含んでもよい。予測モデルは、予測された充足可能性の問題に対する予測モデルの評価に基づいて更新されてもよい。方法1400は、予測された充足可能性の問題の予測を示す情報を予測モデルから得るために、クエリセットを予測モデルに提供することを含んでもよい。方法1400は、予測モデルからの上記の情報に基づいて、第1のクエリおよび第2のクエリから導出された結果を組み合わせることに関連する充足可能性の問題を予測することを含んでもよい。
一部の実施形態において、図1に図示したさまざまなコンピュータおよびサブシステムは、本明細書に記載された機能を行うようプログラムされた1または複数のコンピューティングデバイスを含んでもよい。コンピューティングデバイスは、一つまたは複数の電子的記憶装置(例えば、データソース132または他の電子記憶装置)、一つまたは複数のコンピュータプログラム命令を使用してプログラムされた一つまたは複数の物理的プロセッサもしくはその他の構成要素を備えてもよい。コンピューティングデバイスは、ネットワーク(例えば、ネットワーク150)または他のコンピューティング・プラットフォームとの有線技術または無線技術(例えば、イーサネット、光ファイバ、同軸ケーブル、WiFi、Bluetooth、近距離無線通信、または他の技術等)を介した情報のやり取りを可能にする通信回線または通信ポートを含んでもよい。コンピューティングデバイスは、協働する複数のハードウェアコンポーネント、ソフトウェアコンポーネントまたはファームウェアコンポーネントを含むとしてよい。例えば、コンピューティングデバイスは、コンピューティングデバイスとして協動する多数のコンピューティング・プラットフォームによって実装されてもよい。
電子ストレージは、情報を電子的に記憶する非一時的記憶媒体を含み得る。電子ストレージの電子記憶媒体には、(i)サーバまたはクライアントデバイスと一体に(例えば、実質的に着脱不能に)設けられたシステムストレージ、または、(ii)例えばポート(例えばUSBポート、ファイヤーワイヤポート等)またはドライブ(例えばディスクドライブ等)を介してサーバまたはクライアントデバイスに着脱可能に接続されたリムーバブルストレージの一方または両方が含まれるとしてもよい。電子ストレージには、光学的に読み取り可能な記憶媒体(例えば光学ディスク等)、磁気的に読み取り可能な記憶媒体(例えば磁気テープ、磁気ハードドライブ、フロッピードライブ等)、電荷型記憶媒体(例えばEEPROM、RAM等)、ソリッドステート記憶媒体(例えばフラッシュドライブ等)、または、これら以外の電子的に読み取り可能な記憶媒体のうち1または複数が含まれるとしてよい。電子ストレージは、一又は複数の仮想ストレージリソース(例えば、クラウドストレージ、仮想プライベートネットワーク、または、これら以外の仮想ストレージリソース)を含んでもよい。電子ストレージは、ソフトウェアアルゴリズム、プロセッサが決定した情報、サーバから取得した情報、クライアントデバイスから取得した情報、または、本明細書に記載する機能を可能とする他の情報を記憶してもよい。
プロセッサは、コンピューティングデバイスにおける情報処理機能を実現するようプログラムされているとしてもよい。このため、プロセッサは、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、および/または電子的に情報を処理するための他のメカニズムのうちの1以上を含むとしてよい。一部の実施形態において、プロセッサは複数の処理ユニットを含むとしてもよい。これらの処理ユニットは物理的に同一の装置内に配置されてもよく、または、複数のプロセッサが、協調して動作する複数の装置の処理機能を実行してもよい。プロセッサは、コンピュータプログラム命令を実行してサブシステム112〜120または他のサブシステムの本明細書で説明する機能を実現するようにプログラムされてもよい。プロセッサは、ソフトウェア、ハードウェア、ファームウェア、何らかの方法で組み合わされたソフトウェア、ハードウェア、またはファームウェア、または、プロセッサにおいて処理機能を設定するための他のメカニズムによってコンピュータプログラム命令を実行するようにプログラムされてもよい。
本明細書で説明する複数の異なるサブシステム112〜120によって提供される機能の説明は例示を目的としたものであり、限定を意図したものではないと理解されたい。サブシステム112〜120はいずれも、説明した機能より多くの、または少ない機能を提供するとしてよい。例えば、サブシステム112〜120のうちの一つまたは複数を省略するとしてもよく、その機能の一部またはすべてを、サブシステム112〜120のうちの他のサブシステムで提供してもよい。他の例として、本明細書においてサブシステム112〜120のうちの一つのサブシステムに帰する機能の一部または全てを発揮するよう追加のサブシステムがプログラムされてもよい。
現時点で最も実用的であり好ましいと考えられる態様に基づいて本発明を例示のために詳細に説明したが、このような詳細な説明は例示を目的としたものに過ぎないと理解されたい。本発明は開示された実施形態に限定されるものではなく、むしろ、添付された特許請求の範囲の趣旨及び範囲に入る変形や均等な構成も本発明に含められることが意図されている。例えば、本発明においては任意の実施形態の1または複数の特徴を他の任意の実施形態の一のまたは複数の特徴と可能な限り組み合わせられると理解されたい。
本技術は以下に列挙する実施形態を参照することで理解がより深まる。
[実施形態1]
第1のグラフデータモデルに関連する第1のモデリング情報であって、第1のグラフデータベースと互換性のない第1のデータ表現を前記第1のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第1のテンプレートを含む前記第1のモデリング情報を取得する工程と、
前記第1のテンプレートの一つ以上のテンプレートおよび前記第1のデータ表現を前記機械学習モデルに提供する工程と、を備え、
前記機械学習モデルは、前記第1のテンプレートの一つ以上の追加テンプレートを前記第1のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、前記方法は更に、前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第1のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、
所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する工程と、を備える方法。
[実施形態2]
前記所与のグラフデータベースの前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、実施形態1に記載の方法。
[実施形態3]
第2のグラフデータモデルに関連する第2のモデリング情報であって、第2のグラフデータベースと互換性のない第2のデータ表現を前記第2のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第2のテンプレートを含む前記第2のモデリング情報を取得する工程と、
前記第2のテンプレートの一つ以上のテンプレートおよび前記第2のデータ表現を前記機械学習モデルに提供する工程と、を備え、
前記機械学習モデルは、前記第2のテンプレートの一つ以上の追加テンプレートを前記第2のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記第2のテンプレートの前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第2のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、を備える、実施形態1または2に記載の方法。
[実施形態4]
前記第1のデータ表現および前記第2のデータ表現は、同じデータベースと互換性がある、実施形態3に記載の方法。
[実施形態5]
前記第1のデータ表現は第1の非グラフデータベースと互換性があり、前記第2のデータ表現は第2の非グラフデータベースと互換性があるが前記第1の非グラフデータベースとは互換性がない、実施形態3に記載の方法。
[実施形態6]
前記第1のデータ表現または前記第2のデータ表現は、少なくとも一つのグラフデータベースと互換性がある、実施形態3に記載の方法。
[実施形態7]
前記所与のグラフデータベース内のグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報であって、前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含む、前記グラフ情報を取得する工程と、
前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの1つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの1つ以上のノードまたはエッジを前記機械学習モデルに提供する工程と、を更に備え、
前記機械学習モデルは、前記1つ以上の追加ノードまたは追加エッジに依存することなく、前記1つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記1つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記1つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する工程と、を備える、実施形態1から6の何れか一つに記載の方法。
[実施形態8]
前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させる工程と、
前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する工程と、を更に備える、実施形態7に記載の方法。
[実施形態9]
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記機械学習モデルからの前記所与のノードまたはエッジを前記グラフに追加する工程と、
前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの了承を示す情報を前記機械学習モデルに提供する工程と、を更に備える、実施形態8に記載の方法。
[実施形態10]
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得する工程と、を更に備え、
前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
前記方法は更に、前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの拒否を示す情報を前記機械学習モデルに提供する工程、を備える、実施形態8に記載の方法。
[実施形態11]
データリクエストが未来に発生すると予測する工程と、
グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成する工程と、
前記一つ以上のサブグラフを一時データストレージに格納する工程と、
予測された前記データリクエストに一致する次のデータリクエストを、前記一つ以上のサブグラフの前記格納の後に取得する工程と、
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得する工程と、前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する工程と、を備える方法。
[実施形態12]
前記一つ以上のサブグラフを使用する工程は、
前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出する工程と、
前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返す工程と、を有する、実施形態11に記載の方法。
[実施形態13]
前記データリクエストの前記予測に応答して、前記データサブセットの第1のデータサブセットを一つ以上の非グラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記第1のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第1のデータサブセットを表す第1のサブグラフを生成する工程を有し、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第1のサブグラフを使用するように前記第1のサブグラフを含む、実施形態11または12に記載の方法。
[実施形態14]
前記データリクエストの前記予測に応答して、前記データサブセットの第2のデータサブセットを一つ以上のグラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第2のサブグラフを使用するように、前記第2のデータサブセットを表す前記第2のサブグラフを含む、実施形態13に記載の方法。
[実施形態15]
予測された前記データリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成する工程と、
前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換する工程と、
前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第1のデータサブセットを取得する工程と、
前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第2のデータサブセットを取得する工程と、を更に備える、実施形態14に記載の方法。
[実施形態16]
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて前記一時データストレージからデータを取得することを含むように生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて前記一つ以上のサブグラフを前記一時データストレージから取得することを含む、実施形態11から15の何れか一つに記載の方法。
[実施形態17]
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、前記次のデータリクエストに応答して生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得することを含み、
前記一つ以上のサブグラフを使用する工程は、前記次のデータリクエストに応答するべく、(i)前記一つ以上のサブグラフによって表される前記データサブセット、および(ii)前記一つ以上のその他のデータを使用することを含む、実施形態11から16の何れか一つに記載の方法。
[実施形態18]
前記データリクエストの前記予測に応答して、クエリを実行する工程を更に備え、
実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記データサブセットおよび前記グラフデータモデルに基づいて前記一つ以上のサブグラフを生成することを含む、実施形態11から17の何れか一つに記載の方法。
[実施形態19]
前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、実施形態18に記載の方法。
[実施形態20]
機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供する工程と、
前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得する工程と、
前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する工程と、を更に備える、実施形態11から19の何れか一つに記載の方法。
[実施形態21]
データリクエストに関連するクエリであって、複数のパターンを含む前記グラフクエリを取得する工程と、
グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換する工程を備え、
前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、前記クエリ演算子は、前記複数のクエリのうちの第1のクエリと第2のクエリとをリンクする第1のクエリ演算子を含み、
前記方法は更に、
前記第1のクエリおよび前記第2のクエリが実行される前に、前記第1のクエリおよび前記第2のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測する工程と、
前記クエリセットを更新するべく、前記充足可能性の問題の前記予測に基づいて前記クエリセットの一つ以上の最適化を実行する工程と、
前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する工程と、を備える方法。
[実施形態22]
前記一つ以上の最適化を実行する工程は、前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第1のクエリ演算子を削除して、更新されたクエリセットが前記第1のクエリ演算子を含まないように前記クエリセットを更新することを含む、実施形態21に記載の方法。
[実施形態23]
前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第1のクエリまたは前記第2のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測する工程と、
前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第2のクエリ演算子を削除して、更新された前記クエリセットが前記第2のクエリ演算子を含まないように前記クエリセットを更新する工程と、を更に備える、実施形態22に記載の方法。
[実施形態24]
前記第1のクエリ演算子は、前記第1のクエリと前記第2のクエリとをリンクするunion、または、前記第1のクエリと前記第2のクエリをとリンクするjoinを含む、実施形態21から23の何れか一つに記載の方法。
[実施形態25]
前記充足可能性の問題を予測する工程は、
前記第1のクエリおよび前記第2のクエリに対する結果を取得するための第1のソースおよび第2のソースを決定する工程と、
第1のテンプレートおよび第2のテンプレートに関する非互換性を判定する工程と、を備え、
前記第1のテンプレートは、前記第1のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第2のテンプレートは、前記第2のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、
前記方法は更に、前記第1のテンプレートおよび前記第2のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測する工程を備える、実施形態21から24の何れか一つに記載の方法。
[実施形態26]
前記充足可能性の問題を予測する工程は、
前記グラフデータモデルに基づいて、前記第1のクエリに対する第1の結果をグラフデータベースに格納するためのデータタイプとして、第1のデータタイプを決定する工程と、
前記グラフデータモデルに基づいて、前記第2のクエリに対する第2の結果を前記グラフデータベースに格納するためのデータタイプとして、第2のデータタイプを決定する工程と、
前記第1のデータタイプおよび前記第2のデータタイプに関連する非互換性を判定する工程と、前記第1のデータタイプおよび前記第2のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測する工程と、を有する、実施形態21から25の何れか一つに記載の方法。 [実施形態27]
前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、実施形態26に記載の方法。
[実施形態28]
前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、実施形態26に記載の方法。
[実施形態29]
機械学習モデルに複数のグラフクエリのそれぞれについて所与のクエリセットを予測させるべく、前記機械学習モデルに前記複数のグラフクエリを提供する工程を更に備え、
予測された前記所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
前記方法は更に、前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記機械学習モデルに提供して、前記機械学習モデルに、前記予測した所与のクエリセットの前記参照クエリセットに対する評価を行わせる工程を備え、
予測された前記所与のクエリセットの前記機械学習モデルが行った前記評価に基づいて、前記機械学習モデルが更新され、
前記方法は更に、
前記グラフクエリを前記機械学習モデルに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを得る工程と、
前記機械学習モデルに対する参照フィードバックとして前記更新されたクエリセットを前記機械学習モデルに提供して、前記機械学習モデルに、前記更新されたクエリセットに対して前記クエリセットの評価を行わせる工程と、を備え、
前記機械学習モデルが行った前記クエリセットの前記評価に基づいて、前記機械学習モデルが更新される、実施形態21から28の何れか一つに記載の方法。
[実施形態30]
複数のグラフクエリまたは複数の対応するクエリセットを機械学習モデルに提供して、前記機械学習モデルに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させる工程を更に備え、
前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
前記方法は、前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記機械学習モデルに対する参照フィードバックとして提供して、前記機械学習モデルに、前記一つ以上の予測した所与の最適化を前記一つ以上の参照最適化に対して評価させる工程を更に備え、
前記機械学習モデルが行った前記一つ以上の予測した所与の最適化の前記評価に基づいて前記機械学習モデルが更新され、
前記方法は更に、
前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記機械学習モデルに提供して、前記初期クエリセットに対する一つ以上の最適化を得る工程と、
前記一つ以上の最適化を前記初期クエリセットに実行することにより、前記グラフクエリを前記クエリセットへと変換する工程と、
前記機械学習モデルに対する参照フィードバックとして、前記第1のクエリ演算子が削除されたことを示す情報を前記機械学習モデルに提供し、前記機械学習モデルに前記一つ以上の最適化を前記第1のクエリ演算子が削除されたことに対して評価させる工程と、を備え、
前記機械学習モデルが行った前記一つ以上の最適化の前記評価に基づいて前記機械学習モデルが更新される、実施形態21から29の何れか一つに記載の方法。
[実施形態31]
所与の複数のクエリセットを機械学習モデルに提供して、前記機械学習モデルに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させる工程と、
前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットに対する一つ以上の参照充足可能性問題を、前記機械学習モデルに対する参照フィードバックとして前記機械学習モデルに提供して、前記機械学習モデルに、前記一つ以上の予測した充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させる工程とを更に備え、
前記機械学習モデルが行った前記一つ以上の予測した充足可能性の問題の前記評価に基づいて前記機械学習モデルが更新され、
前記方法は更に、
前記クエリセットを前記機械学習モデルに提供して、前記機械学習モデルから前記充足可能性の問題の前記予測を示す情報を取得する工程と、
前記機械学習モデルからの前記情報に基づいて、前記第1のクエリおよび前記第2のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する工程と、を備える、実施形態21から30の何れか一つに記載の方法。
[実施形態32]
命令を格納している有形で非一時的な機械可読媒体であって、前記命令がデータ処理装置によって実行されると、前記データ処理装置に実施形態1−31のいずれかを備える処理を実行する、機械可読媒体。
[実施形態33]
一つまたは複数のプロセッサと、命令を格納しているメモリとを備えるシステムであって、前記命令が前記一つまたは複数のプロセッサによって実行されると、前記一つまたは複数のプロセッサによって実施形態1−31のいずれかを含む処理が実現される、システム。

Claims (60)

  1. データ検索プロセスにおけるクエリ関連のリソース使用を低減させるためのシステムであって、前記システムは、
    コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
    データリクエストに関連するグラフクエリであって、複数のパターンを含む前記グラフクエリを取得し、
    グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換し、
    前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、
    前記クエリ演算子は、前記複数のクエリのうちの第1のクエリと第2のクエリとをリンクする第1のクエリ演算子を含み、
    前記第1のクエリおよび前記第2のクエリが実行される前に、前記第1のクエリおよび前記第2のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測し、
    前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第1のクエリ演算子を削除させて、更新された前記クエリセットが前記第1のクエリ演算子を含まないように前記クエリセットを更新し、
    前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する、方法。
  2. 前記第1のクエリ演算子は、前記第1のクエリと前記第2のクエリとをリンクするunion、または、前記第1のクエリと前記第2のクエリをとリンクするjoinを含む、請求項1に記載のシステム。
  3. 前記充足可能性の問題を予測することは、
    前記第1のクエリおよび前記第2のクエリに対する結果を取得するための第1のソースおよび第2のソースを決定すること、
    第1のテンプレートおよび第2のテンプレートに関する非互換性を判定すること、ならびに、
    前記第1のテンプレートおよび前記第2のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測すること、を含み、
    前記第1のテンプレートは、前記第1のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第2のテンプレートは、前記第2のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成されている、請求項1に記載のシステム。
  4. 前記充足可能性の問題を予測することは、
    前記グラフデータモデルに基づいて、前記第1のクエリに対する第1の結果をグラフデータベースに格納するためのデータタイプとして、第1のデータタイプを決定すること、
    前記グラフデータモデルに基づいて、前記第2のクエリに対する第2の結果を前記グラフデータベースに格納するためのデータタイプとして、第2のデータタイプを決定すること、
    前記第1のデータタイプおよび前記第2のデータタイプに関連する非互換性を判定すること、ならびに、
    前記第1のデータタイプおよび前記第2のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含む、請求項1に記載のシステム。
  5. 前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、請求項4に記載のシステム。
  6. 前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、請求項4に記載のシステム。
  7. 前記コンピュータシステムは更に、
    前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第1のクエリまたは前記第2のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測し、
    前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第2のクエリ演算子を削除して、更新された前記クエリセットが前記第2のクエリ演算子を含まないように前記クエリセットを更新する、請求項1に記載のシステム。
  8. 前記コンピュータシステムは更に、
    ニューラルネットワークに複数のグラフクエリを提供し、前記ニューラルネットワークに、前記複数のグラフクエリのそれぞれに対する所与のクエリセットを予測させ、前記予測された所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
    前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記予測された所与のクエリセットを前記参照クエリセットに対して評価させ、前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークは更新され、
    前記グラフクエリを前記ニューラルネットワークに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを取得し、
    前記ニューラルネットワークに対する参照フィードバックとして、更新された前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記クエリセットを前記更新されたクエリセットに対して評価させ、前記クエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項1に記載のシステム。
  9. 前記コンピュータシステムは更に、
    複数のグラフクエリまたは複数の対応するクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させ、
    前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
    前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記ニューラルネットワークに対する参照フィードバックとして提供して、前記ニューラルネットワークに前記一つ以上の予測した所与の最適化を前記一つ以上の参照最適化に対して評価させ、前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークが更新され、
    前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記ニューラルネットワークに提供して、前記初期クエリセットに対する一つ以上の最適化を取得し、
    前記一つ以上の最適化を前記初期クエリセットに対して実行することにより、前記グラフクエリを前記クエリセットへと変換し、
    前記ニューラルネットワークに対する参照フィードバックとして、前記第1のクエリ演算子が削除されたことを示す情報を前記ニューラルネットワークに提供し、前記ニューラルネットワークに前記一つ以上の最適化を前記第1のクエリ演算子が削除されたことに対して評価させ、前記一つ以上の最適化の前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークが更新される、請求項1に記載のシステム。
  10. 前記コンピュータシステムは更に、
    所与の複数のクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させ、
    前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットについての一つ以上の参照充足可能性問題を、前記ニューラルネットワークに対する参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記一つ以上の予測された充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させ、前記一つ以上の予測された充足可能性の問題の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
    前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークから前記充足可能性の問題の前記予測を示す情報を取得し、
    前記ニューラルネットワークからの前記情報に基づいて、前記第1のクエリおよび前記第2のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する、請求項1に記載のシステム。
  11. データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、
    前記方法は、
    データリクエストに関連するクエリであって、複数のパターンを含む前記グラフクエリを取得する工程と、
    グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換する工程と、を備え、
    前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、前記クエリ演算子は、前記複数のクエリのうちの第1のクエリと第2のクエリとをリンクする第1のクエリ演算子を含み、
    前記方法は更に、
    前記第1のクエリおよび前記第2のクエリが実行される前に、前記第1のクエリおよび前記第2のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測する工程と、
    前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第1のクエリ演算子を削除させて、更新された前記クエリセットが前記第1のクエリ演算子を含まないように前記クエリセットを更新させる工程と、
    前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する工程と、を備える、方法。
  12. 前記第1のクエリ演算子は、前記第1のクエリと前記第2のクエリとをリンクするunion、または、前記第1のクエリと前記第2のクエリをとリンクするjoinを含む、請求項11に記載の方法。
  13. 前記充足可能性の問題を予測する工程は、
    前記第1のクエリおよび前記第2のクエリに対する結果を取得するための第1のソースおよび第2のソースを決定すること、
    第1のテンプレートおよび第2のテンプレートに関する非互換性を判定すること、ならびに
    前記第1のテンプレートおよび前記第2のテンプレートに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含み、
    前記第1のテンプレートは、前記第1のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第2のテンプレートは、前記第2のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成されており、
    前記方法は更に、前記第1のテンプレートおよび前記第2のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測する工程を備える、請求項11に記載の方法。
  14. 前記充足可能性の問題を予測する工程は、
    前記グラフデータモデルに基づいて、前記第1のクエリに対する第1の結果をグラフデータベースに格納するためのデータタイプとして、第1のデータタイプを決定すること、
    前記グラフデータモデルに基づいて、前記第2のクエリに対する第2の結果を前記グラフデータベースに格納するためのデータタイプとして、第2のデータタイプを決定すること、
    前記第1のデータタイプおよび前記第2のデータタイプに関連する非互換性を判定すること、ならびに、
    前記第1のデータタイプおよび前記第2のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含む、請求項11に記載の方法。
  15. 前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、請求項14に記載の方法。
  16. 前記第2の結果に対応する第2のデータ表現を第2のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第1の結果に対応する第1のデータ表現が第1のソースに格納される、請求項14に記載の方法。
  17. 前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第1のクエリまたは前記第2のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測する工程と、
    前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第2のクエリ演算子を削除して、更新された前記クエリセットが前記第2のクエリ演算子を含まないように前記クエリセットを更新する工程と、更に備える、請求項11に記載の方法。
  18. ニューラルネットワークに複数のグラフクエリを提供し、前記ニューラルネットワークに、前記複数のグラフクエリのそれぞれに対する所与のクエリセットを予測させる工程を更に備え、
    前記予測された所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
    前記方法は更に、前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記予測された所与のクエリセットを前記参照クエリセットに対して評価させる工程を備え、
    前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークは更新され、
    前記方法は更に、
    前記グラフクエリを前記ニューラルネットワークに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを取得する工程と、
    前記ニューラルネットワークに対する参照フィードバックとして、更新された前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記クエリセットを前記更新されたクエリセットに対して評価させる工程と、を備え、
    前記クエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項11に記載の方法。
  19. 複数のグラフクエリまたは複数の対応するクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させる工程を備え、
    前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
    前記方法は更に、前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記ニューラルネットワークに対する参照フィードバックとして提供して、前記ニューラルネットワークに前記予測された一つ以上の所与の最適化を前記一つ以上の参照最適化に対して評価させる工程を備え、
    前記予測された一つ以上の所与の最適化の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
    前記方法は更に、
    前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記ニューラルネットワークに提供して、前記初期クエリセットに対する一つ以上の最適化を取得する工程と、
    前記一つ以上の最適化を前記初期クエリセットに実行することにより、前記グラフクエリを前記クエリセットへと変換する工程と、
    前記ニューラルネットワークに対する参照フィードバックとして、前記第1のクエリ演算子が削除されたことを示す情報を前記ニューラルネットワークに提供し、前記ニューラルネットワークに前記一つ以上の最適化を前記第1のクエリ演算子が削除されたことに対して評価させる工程と、を備え、
    前記一つ以上の最適化の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項11に記載の方法。
  20. 所与の複数のクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させる工程と、
    前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットについての一つ以上の参照充足可能性問題を、前記ニューラルネットワークに対する参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記予測された一つ以上の充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させる工程と、を備え、
    前記予測された一つ以上の充足可能性の問題の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
    前記方法は更に、
    前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークから前記充足可能性の問題の前記予測を示す情報を取得する工程と、
    前記ニューラルネットワークからの前記情報に基づいて、前記第1のクエリおよび前記第2のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する工程と、備える、請求項11に記載の方法。
  21. 予測に基づくデータサブグラフの生成を介して、データ検索遅延を低減させるためのシステムであって、前記システムは、
    コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
    前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
    グラフデータモデルと互換性のある過去のクエリに基づいて、データリクエストが未来に発生することを予測し、
    グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成し、
    前記一つ以上のサブグラフを一時データストレージに格納し、
    前記一つ以上のサブグラフの前記格納の後に、前記予測されたデータリクエストに一致する次のデータリクエストを取得し、
    前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得し、
    前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する、システム。
  22. 前記コンピュータシステムは、
    前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出し、
    前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返すことにより、前記一つ以上のサブグラフを使用する、請求項21に記載のシステム。
  23. 前記コンピュータシステムは更に、
    前記データリクエストの前記予測に応答して、前記データサブセットの第1のデータサブセットを一つ以上の非グラフデータベースから取得し、
    前記第1のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第1のデータサブセットを表す第1のサブグラフを生成し、
    前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第1のサブグラフを使用するように前記第1のサブグラフを含む、請求項21に記載のシステム。
  24. 前記コンピュータシステムは更に、前記データリクエストの前記予測に応答して、前記データサブセットの第2のデータサブセットを一つ以上のグラフデータベースから取得し、
    前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第2のサブグラフを使用するように、前記第2のデータサブセットを表す前記第2のサブグラフを含む、請求項23に記載のシステム。
  25. 前記コンピュータシステムは更に、
    前記予測されたデータリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成し、
    前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換し、
    前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第1のデータサブセットを取得し、
    前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第2のデータサブセットを取得する、請求項24に記載のシステム。
  26. 前記コンピュータシステムは更に、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するべくクエリプランを生成し、
    前記クエリプランは、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記一時データストレージからデータを取得することを含むように生成され、
    前記コンピュータシステムは更に、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得する、請求項21に記載のシステム。
  27. 前記コンピュータシステムは更に、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成し、
    前記クエリプランは、前記次のデータリクエストに応答して生成され、
    前記コンピュータシステムは更に、
    前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得し、
    前記次のデータリクエストに応答するべく、(i)前記一つ以上のサブグラフによって表される前記データサブセット、および(ii)前記一つ以上のその他のデータを使用する、請求項21に記載のシステム。
  28. 前記コンピュータシステムは更に、
    前記データリクエストの前記予測に応答して、クエリを実行し、
    実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
    前記コンピュータシステムは更に、
    前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得し、
    前記データサブセットおよび前記グラフデータモデルに基づいて、前記一つ以上のサブグラフを生成する、請求項21に記載のシステム。
  29. 前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、請求項28に記載のシステム。
  30. 前記コンピュータシステムは更に、
    機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供し、
    前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得し、
    前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する、請求項21に記載のシステム。
  31. 予測に基づくデータサブグラフの生成を介して、データ検索遅延を低減させる方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、前記方法は、
    グラフデータモデルと互換性のある過去のクエリに基づいて、データリクエストが未来に発生することを予測する工程と、
    グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成する工程と、
    前記一つ以上のサブグラフを一時データストレージに格納する工程と、
    予測された前記データリクエストに一致する次のデータリクエストを、前記一つ以上のサブグラフの前記格納の後に取得する工程と、
    予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得する工程と、
    前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する工程と、を備える方法。
  32. 前記一つ以上のサブグラフを使用する工程は、
    前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出する工程と、
    前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返す工程と、を有する、請求項31に記載の方法。
  33. 前記データリクエストの前記予測に応答して、前記データサブセットの第1のデータサブセットを一つ以上の非グラフデータベースから取得する工程を更に備え、
    前記一つ以上のサブグラフを生成する工程は、前記第1のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第1のデータサブセットを表す第1のサブグラフを生成することを含み、
    前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第1のサブグラフを使用するように前記第1のサブグラフを含む、請求項31に記載の方法。
  34. 前記データリクエストの前記予測に応答して、前記データサブセットの第2のデータサブセットを一つ以上のグラフデータベースから取得する工程を更に備え、
    前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第2のサブグラフを使用するように、前記第2のデータサブセットを表す前記第2のサブグラフを含む、請求項33に記載の方法。
  35. 前記予測されたデータリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成する工程と、
    前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換する工程と、
    前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第1のデータサブセットを取得する工程と、
    前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第2のデータサブセットを取得する工程と、を更に備える、請求項34に記載の方法。
  36. 予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
    前記クエリプランは、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて前記一時データストレージからデータを取得することを含むように生成され、
    前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて前記一つ以上のサブグラフを前記一時データストレージから取得することを含む、請求項31に記載の方法。
  37. 予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
    前記クエリプランは、前記次のデータリクエストに応答して生成され、
    前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得することを含み、
    前記一つ以上のサブグラフを使用する工程は、前記次のデータリクエストに応答するべく、(i)前記一つ以上のサブグラフによって表される前記データサブセット、および(ii)前記一つ以上のその他のデータを使用することを含む、請求項31に記載の方法。
  38. 前記データリクエストの前記予測に応答して、クエリを実行する工程を更に備え、
    実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
    前記方法は、前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得する工程を更に備え、
    前記一つ以上のサブグラフを生成する工程は、前記データサブセットおよび前記グラフデータモデルに基づいて前記一つ以上のサブグラフを生成することを含む、請求項31に記載の方法。
  39. 前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、請求項38に記載の方法。
    ミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
    前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
    グラフデータモデルセットに関連するモデリング情報を取得し、前記グラフデータモデルセットのグラフデータモデルそれぞれに関連する前記モデリング情報は、非グラフデータベースにおける非グラフデータ表現を、グラフデータベースと互換性のあるグラフデータ表現へと変換するためのテンプレートを含み、
    前記グラフデータモデルセットの前記グラフデータモデルそれぞれおよび前記グラフデータモデルが変換するよう前記非グラフデータ表現について、前記グラフデータモデルの前記テンプレートのうちの1つまたは複数のテンプレートおよび前記非グラフデータ表現をニューラルネットワークに提供して、前記ニューラルネットワークに前記グラフデータモデルの前記テンプレートの1つ以上の追加テンプレートを予測させ、前記ニューラルネットワークは、前記一つ以上の追加テンプレートに依存することなく、前記一つ以上の追加テンプレートの前記予測を実行するように構成されており、
    前記ニューラルネットワークをトレーニングするべく、前記グラフデータモデルセットのグラフデータモデルそれぞれについて、前記グラフデータモデルの前記テンプレートの前記一つ以上の追加テンプレートを前記ニューラルネットワークに提供し、
    所与の非グラフデータベースからの非グラフデータ表現のコレクションを前記ニューラルネットワークに提供して、前記所与の非グラフデータベースにおける非グラフデータ表現を所与のグラフデータベースと互換性のあるグラフデータ表現へと変換するための所与のグラフデータモデルのための一つ以上のテンプレートを前記ニューラルネットワークに生成させる、システム。
  40. 機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供する工程と、
    前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得する工程と、
    前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する工程と、を更に備える、請求項31に記載の方法。
  41. 互換性があるグラフデータ表現へと非グラフデータ表現を変換するためのグラフデータモデルのニューラルネットワークに基づく生成を提供するシステムであって、
    コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
    前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
    グラフデータモデルセットに関連するモデリング情報を取得し、前記グラフデータモデルセットのグラフデータモデルそれぞれに関連する前記モデリング情報は、非グラフデータベースにおける非グラフデータ表現を、グラフデータベースと互換性のあるグラフデータ表現へと変換するためのテンプレートを含み、
    前記グラフデータモデルセットの前記グラフデータモデルそれぞれおよび前記グラフデータモデルが変換するよう前記非グラフデータ表現について、前記グラフデータモデルの前記テンプレートのうちの1つまたは複数のテンプレートおよび前記非グラフデータ表現をニューラルネットワークに提供して、前記ニューラルネットワークに前記グラフデータモデルの前記テンプレートの1つ以上の追加テンプレートを予測させ、前記ニューラルネットワークは、前記一つ以上の追加テンプレートに依存することなく、前記一つ以上の追加テンプレートの前記予測を実行するように構成されており、
    前記ニューラルネットワークをトレーニングするべく、前記グラフデータモデルセットのグラフデータモデルそれぞれについて、前記グラフデータモデルの前記テンプレートの前記一つ以上の追加テンプレートを前記ニューラルネットワークに提供し、
    所与の非グラフデータベースからの非グラフデータ表現のコレクションを前記ニューラルネットワークに提供して、前記所与の非グラフデータベースにおける非グラフデータ表現を所与のグラフデータベースと互換性のあるグラフデータ表現へと変換するための所与のグラフデータモデルのための一つ以上のテンプレートを前記ニューラルネットワークに生成させる、システム。
  42. 前記所与のグラフデータベースと互換性のある前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、請求項41に記載のシステム。
  43. 前記コンピュータシステムは更に、
    前記所与のグラフデータベースにおけるグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報を取得し、
    前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含み、
    前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記ニューラルネットワークが前記データ表現セットの1つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの1つ以上のノードまたはエッジを前記ニューラルネットワークに提供し、
    前記ニューラルネットワークは、前記1つ以上の追加ノードまたは追加エッジに依存することなく、前記1つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
    前記ニューラルネットワークをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記データ表現セットの前記1つ以上の追加ノードまたは追加エッジを、前記ニューラルネットワークによる前記1つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして前記ニューラルネットワークに提供する、請求項41に記載のシステム。
  44. 前記コンピュータシステムは更に、
    前記ニューラルネットワークを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記ニューラルネットワークに前記グラフに対する新しいノードまたは新しいエッジを生成させ、
    前記ニューラルネットワークからの前記新しいノードまたは前記新しいエッジの少なくとも一つを前記グラフに追加する、請求項43に記載のシステム。
  45. 前記コンピュータシステムは更に、
    前記グラフの前記トラバースに基づいて、前記ニューラルネットワークから所与のノードまたはエッジを取得し、
    前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記ニューラルネットワークからの前記所与のノードまたはエッジを前記グラフに追加し、
    前記ユーザが了承したことを示す情報を、前記ニューラルネットワークによる前記所与のノードまたはエッジの生成に関する参照フィードバックとして前記ニューラルネットワークに提供する、請求項44に記載のシステム。
  46. 前記コンピュータシステムは更に、
    前記グラフの前記トラバースに基づいて、前記ニューラルネットワークから所与のノードまたはエッジを取得し、
    前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得し、前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
    前記ユーザが了承したことを示す情報を、前記ニューラルネットワークによる前記所与のノードまたはエッジの生成に関する参照フィードバックとして前記ニューラルネットワークに提供する、請求項44に記載のシステム。
  47. 前記グラフデータモデルセットのグラフデータモデルはそれぞれ、データベースの行をグラフデータ表現に変換するように構成される、請求項41に記載のシステム。
  48. 非グラフデータ表現をグラフデータ表現へと変換するためのグラフデータモデルの機械学習モデルに基づく生成を提供する方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、
    前記方法は、
    第1のグラフデータモデルに関連する第1のモデリング情報であって、第1のグラフデータベースと互換性のない第1のデータ表現を前記第1のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第1のテンプレートを含む前記第1のモデリング情報を取得する工程と、
    前記第1のテンプレートの一つ以上のテンプレートおよび前記第1のデータ表現を前記機械学習モデルに提供する工程と、を備え、
    前記機械学習モデルは、前記第1のテンプレートの一つ以上の追加テンプレートを前記第1のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
    前記方法は更に、
    前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第1のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、
    所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する工程と、を備える方法。
  49. 前記所与のグラフデータベースの前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、請求項48に記載の方法。
  50. 第2のグラフデータモデルに関連する第2のモデリング情報であって、第2のグラフデータベースと互換性のない第2のデータ表現を前記第2のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第2のテンプレートを含む前記第2のモデリング情報を取得する工程と、
    前記第2のテンプレートの一つ以上のテンプレートおよび前記第2のデータ表現を前記機械学習モデルに提供する工程と、更に備え、
    前記機械学習モデルは、前記第2のテンプレートの一つ以上の追加テンプレートを前記第2のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
    前記方法は更に、前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記第2のテンプレートの前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第2のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程を備える、請求項48に記載の方法。
  51. 前記第1のデータ表現および前記第2のデータ表現は、同じデータベースと互換性がある、請求項50に記載の方法。
  52. 前記第1のデータ表現は第1の非グラフデータベースと互換性があり、前記第2のデータ表現は第2の非グラフデータベースと互換性があるが前記第1の非グラフデータベースとは互換性がない、請求項50に記載の方法。
  53. 前記第1のデータ表現または前記第2のデータ表現は、少なくとも一つのグラフデータベースと互換性がある、請求項50に記載の方法。
  54. 前記所与のグラフデータベース内のグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報であって、前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含む、前記グラフ情報を取得する工程と、
    前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの1つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの1つ以上のノードまたはエッジを前記機械学習モデルに提供する工程と、を更に備え、
    前記機械学習モデルは、前記1つ以上の追加ノードまたは追加エッジに依存することなく、前記1つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
    前記方法は更に、前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記1つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記1つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する工程を備える、請求項48に記載の方法。
  55. 前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させる工程と、
    前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する工程と、を更に備える、請求項54に記載の方法。
  56. 前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
    前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記機械学習モデルからの前記所与のノードまたはエッジを前記グラフに追加する工程と、
    前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの了承を示す情報を前記機械学習モデルに提供する工程と、を更に備える請求項55記載の方法。
  57. 前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
    前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得する工程と、を更に備え、
    前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
    前記方法は更に、前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの拒否を示す情報を前記機械学習モデルに提供する工程、を更に備える、請求項55に記載の方法。
  58. 互換性があるグラフデータ表現へと非グラフデータ表現を変換するためのグラフデータモデルの機械学習モデルに基づく生成を提供するシステムであって、
    コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
    第1のグラフデータモデルに関連する第1のモデリング情報であって、第1のグラフデータベースと互換性のない第1のデータ表現を前記第1のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第1のテンプレートを含む前記第1のモデリング情報を取得し、
    前記第1のテンプレートの一つ以上のテンプレートおよび前記第1のデータ表現を前記機械学習モデルに提供し、
    前記機械学習モデルは、前記第1のテンプレートの一つ以上の追加テンプレートを前記第1のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
    前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第1のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供し、
    所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する、システム。
  59. 前記コンピュータシステムは更に、
    前記所与のグラフデータベースにおけるグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報を取得し、
    前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含み、
    前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの1つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの1つ以上のノードまたはエッジを前記機械学習モデルに提供し、
    前記機械学習モデルは、前記1つ以上の追加ノードまたは追加エッジに依存することなく、前記1つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
    前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記1つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記1つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する、請求項58に記載のシステム。
  60. 前記コンピュータシステムは更に、
    前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させ、
    前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する、請求項59に記載のシステム。
JP2020565902A 2018-06-13 2019-06-11 マルチソース型の相互運用性および/または情報検索の最適化 Active JP7420745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024002844A JP2024041902A (ja) 2018-06-13 2024-01-11 マルチソース型の相互運用性および/または情報検索の最適化

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/007,850 US10223417B1 (en) 2018-06-13 2018-06-13 System and method for reducing query-related resource usage in a data retrieval process
US16/007,639 US10303688B1 (en) 2018-06-13 2018-06-13 System and method for reducing data retrieval delays via prediction-based generation of data subgraphs
US16/007,639 2018-06-13
US16/007,850 2018-06-13
US16/007,911 US10599719B2 (en) 2018-06-13 2018-06-13 System and method for providing prediction-model-based generation of a graph data model
US16/007,911 2018-06-13
PCT/US2019/036612 WO2019241293A1 (en) 2018-06-13 2019-06-11 Multi-source-type interoperability and/or information retrieval optimization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024002844A Division JP2024041902A (ja) 2018-06-13 2024-01-11 マルチソース型の相互運用性および/または情報検索の最適化

Publications (2)

Publication Number Publication Date
JP2021531540A true JP2021531540A (ja) 2021-11-18
JP7420745B2 JP7420745B2 (ja) 2024-01-23

Family

ID=68843577

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020565902A Active JP7420745B2 (ja) 2018-06-13 2019-06-11 マルチソース型の相互運用性および/または情報検索の最適化
JP2024002844A Pending JP2024041902A (ja) 2018-06-13 2024-01-11 マルチソース型の相互運用性および/または情報検索の最適化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024002844A Pending JP2024041902A (ja) 2018-06-13 2024-01-11 マルチソース型の相互運用性および/または情報検索の最適化

Country Status (6)

Country Link
EP (1) EP3807778A4 (ja)
JP (2) JP7420745B2 (ja)
KR (1) KR20210034547A (ja)
AU (1) AU2019284618B2 (ja)
CA (1) CA3102984A1 (ja)
WO (1) WO2019241293A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11302095B2 (en) * 2020-01-09 2022-04-12 International Business Machines Corporation Cognitive motion picture analysis
WO2023249641A1 (en) * 2022-06-24 2023-12-28 Hewlett Packard Enterprise Development Lp Retrieval, model-driven, and artificial intelligence-enabled search

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005251092A (ja) * 2004-03-08 2005-09-15 Konica Minolta Holdings Inc 情報検索システム、情報検索方法および情報検索プログラム
US7945561B1 (en) * 2006-06-21 2011-05-17 Actuate Corporation Methods and apparatus for processing a query joining tables stored at different data sources
WO2013175611A1 (ja) * 2012-05-24 2013-11-28 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
US20160275204A1 (en) * 2010-10-22 2016-09-22 Daniel Paul Miranker System for Accessing a Relational Database Using Semantic Queries

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659725A (en) * 1994-06-06 1997-08-19 Lucent Technologies Inc. Query optimization by predicate move-around
KR100912190B1 (ko) * 2007-10-31 2009-08-14 한양대학교 산학협력단 최적화 변환 규칙을 적용하여 rdql 질의를 sql질의로 변환하는 rdql-to-sql 시스템 및 방법
US10223417B1 (en) * 2018-06-13 2019-03-05 Stardog Union System and method for reducing query-related resource usage in a data retrieval process

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005251092A (ja) * 2004-03-08 2005-09-15 Konica Minolta Holdings Inc 情報検索システム、情報検索方法および情報検索プログラム
US7945561B1 (en) * 2006-06-21 2011-05-17 Actuate Corporation Methods and apparatus for processing a query joining tables stored at different data sources
US20160275204A1 (en) * 2010-10-22 2016-09-22 Daniel Paul Miranker System for Accessing a Relational Database Using Semantic Queries
WO2013175611A1 (ja) * 2012-05-24 2013-11-28 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機

Also Published As

Publication number Publication date
JP2024041902A (ja) 2024-03-27
KR20210034547A (ko) 2021-03-30
JP7420745B2 (ja) 2024-01-23
CA3102984A1 (en) 2019-12-19
AU2019284618B2 (en) 2024-05-16
EP3807778A1 (en) 2021-04-21
WO2019241293A1 (en) 2019-12-19
AU2019284618A1 (en) 2020-12-03
EP3807778A4 (en) 2022-03-09

Similar Documents

Publication Publication Date Title
US10599719B2 (en) System and method for providing prediction-model-based generation of a graph data model
US11727000B2 (en) System and method for reducing resource usage in a data retrieval process
US10223417B1 (en) System and method for reducing query-related resource usage in a data retrieval process
US11921751B2 (en) Technologies for data capture and data analysis
CN111753198B (zh) 信息推荐方法和装置、以及电子设备和可读存储介质
Shvaiko et al. Ontology matching: state of the art and future challenges
CN107391677B (zh) 携带实体关系属性的中文通用知识图谱的生成方法及装置
US10747958B2 (en) Dependency graph based natural language processing
WO2020073952A1 (zh) 用于图像识别的图像集的建立方法、装置、网络设备和存储介质
US10599777B2 (en) Natural language processing with dynamic pipelines
US9262506B2 (en) Generating mappings between a plurality of taxonomies
JP2024041902A (ja) マルチソース型の相互運用性および/または情報検索の最適化
Bellare et al. Woo: A scalable and multi-tenant platform for continuous knowledge base synthesis
US20160004973A1 (en) Business triz problem extractor and solver system and method
CN114996549A (zh) 基于活动对象信息挖掘的智能追踪方法与系统
Calçada et al. Evaluation of Couchbase, CouchDB and MongoDB using OSSpal.
US20180150543A1 (en) Unified multiversioned processing of derived data
Abdallah et al. Towards a GML-Enabled Knowledge Graph Platform
Mateen et al. An Improved Technique for Data Retrieval in Distributed Systems
US20230026656A1 (en) Machine learning for categorizing text
Dabroek Scalable and Reuse-Oriented Data Integration: A Distributed Semi-Automatic Approach
Thavornun Metadata Management for Knowledge Discovery
CN117474630A (zh) 一种基于电商应用的人工智能平台
Busschop A framework for automated document storage and annotation
Maccioni et al. NoXperanto: Crowdsourced polyglot persistence

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230814

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240111

R150 Certificate of patent or registration of utility model

Ref document number: 7420745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150