(57)【要約】  ある実施形態では、データ検索プロセスにおけるクエリ関連のリソース使用を削減する。ある実施形態では、データリクエスト関連のグラフクエリを取得してもよい。グラフデータモデルおよびグラフクエリのパターンに基づいて、グラフクエリがクエリセットに変換されてもよい。生成されるクエリセットは、クエリおよびクエリをリンクするクエリ演算子を含んでもよく、クエリ演算子は第１のクエリと第２のクエリとをリンクする第１のクエリ演算子を含む。第１のクエリまたは第２のクエリの実行に先立って、（例えば、そのようなクエリに由来する結果を組み合わせることに関連する）充足可能性の問題が予測されてもよい。予測に基づいて、クエリセットを更新するために第１のクエリ演算子がクエリセットから削除されてもよく、更新されたクエリセットがグラフクエリを満足させるために実行されてもよい。他の実施形態では、予測に基づくデータサブグラフの生成を介して、データ検索の遅延が低減され得る。
2021531540.tif 000002
【特許請求の範囲】
【請求項１】
データ検索プロセスにおけるクエリ関連のリソース使用を低減させるためのシステムであって、前記システムは、
コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
データリクエストに関連するグラフクエリであって、複数のパターンを含む前記グラフクエリを取得し、
グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換し、
前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、
前記クエリ演算子は、前記複数のクエリのうちの第１のクエリと第２のクエリとをリンクする第１のクエリ演算子を含み、
前記第１のクエリおよび前記第２のクエリが実行される前に、前記第１のクエリおよび前記第２のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測し、
前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第１のクエリ演算子を削除させて、更新された前記クエリセットが前記第１のクエリ演算子を含まないように前記クエリセットを更新し、
前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する、方法。
【請求項２】
前記第１のクエリ演算子は、前記第１のクエリと前記第２のクエリとをリンクするｕｎｉｏｎ、または、前記第１のクエリと前記第２のクエリをとリンクするｊｏｉｎを含む、請求項１に記載のシステム。
【請求項３】
前記充足可能性の問題を予測することは、
前記第１のクエリおよび前記第２のクエリに対する結果を取得するための第１のソースおよび第２のソースを決定すること、
第１のテンプレートおよび第２のテンプレートに関する非互換性を判定すること、ならびに、
前記第１のテンプレートおよび前記第２のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測すること、を含み、
前記第１のテンプレートは、前記第１のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第２のテンプレートは、前記第２のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成されている、請求項１に記載のシステム。
【請求項４】
前記充足可能性の問題を予測することは、
前記グラフデータモデルに基づいて、前記第１のクエリに対する第１の結果をグラフデータベースに格納するためのデータタイプとして、第１のデータタイプを決定すること、
前記グラフデータモデルに基づいて、前記第２のクエリに対する第２の結果を前記グラフデータベースに格納するためのデータタイプとして、第２のデータタイプを決定すること、
前記第１のデータタイプおよび前記第２のデータタイプに関連する非互換性を判定すること、ならびに、
前記第１のデータタイプおよび前記第２のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含む、請求項１に記載のシステム。
【請求項５】
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、請求項４に記載のシステム。
【請求項６】
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、請求項４に記載のシステム。
【請求項７】
前記コンピュータシステムは更に、
前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第１のクエリまたは前記第２のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測し、
前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第２のクエリ演算子を削除して、更新された前記クエリセットが前記第２のクエリ演算子を含まないように前記クエリセットを更新する、請求項１に記載のシステム。
【請求項８】
前記コンピュータシステムは更に、
ニューラルネットワークに複数のグラフクエリを提供し、前記ニューラルネットワークに、前記複数のグラフクエリのそれぞれに対する所与のクエリセットを予測させ、前記予測された所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記予測された所与のクエリセットを前記参照クエリセットに対して評価させ、前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークは更新され、
前記グラフクエリを前記ニューラルネットワークに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを取得し、
前記ニューラルネットワークに対する参照フィードバックとして、更新された前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記クエリセットを前記更新されたクエリセットに対して評価させ、前記クエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項１に記載のシステム。
【請求項９】
前記コンピュータシステムは更に、
複数のグラフクエリまたは複数の対応するクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させ、
前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記ニューラルネットワークに対する参照フィードバックとして提供して、前記ニューラルネットワークに前記一つ以上の予測した所与の最適化を前記一つ以上の参照最適化に対して評価させ、前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークが更新され、
前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記ニューラルネットワークに提供して、前記初期クエリセットに対する一つ以上の最適化を取得し、
前記一つ以上の最適化を前記初期クエリセットに対して実行することにより、前記グラフクエリを前記クエリセットへと変換し、
前記ニューラルネットワークに対する参照フィードバックとして、前記第１のクエリ演算子が削除されたことを示す情報を前記ニューラルネットワークに提供し、前記ニューラルネットワークに前記一つ以上の最適化を前記第１のクエリ演算子が削除されたことに対して評価させ、前記一つ以上の最適化の前記ニューラルネットワークによる評価に基づいて前記ニューラルネットワークが更新される、請求項１に記載のシステム。
【請求項１０】
前記コンピュータシステムは更に、
所与の複数のクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させ、
前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットについての一つ以上の参照充足可能性問題を、前記ニューラルネットワークに対する参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記一つ以上の予測された充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させ、前記一つ以上の予測された充足可能性の問題の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークから前記充足可能性の問題の前記予測を示す情報を取得し、
前記ニューラルネットワークからの前記情報に基づいて、前記第１のクエリおよび前記第２のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する、請求項１に記載のシステム。
【請求項１１】
データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、
前記方法は、
データリクエストに関連するクエリであって、複数のパターンを含む前記グラフクエリを取得する工程と、
グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換する工程と、を備え、
前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、前記クエリ演算子は、前記複数のクエリのうちの第１のクエリと第２のクエリとをリンクする第１のクエリ演算子を含み、
前記方法は更に、
前記第１のクエリおよび前記第２のクエリが実行される前に、前記第１のクエリおよび前記第２のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測する工程と、
前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第１のクエリ演算子を削除させて、更新された前記クエリセットが前記第１のクエリ演算子を含まないように前記クエリセットを更新させる工程と、
前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する工程と、を備える、方法。
【請求項１２】
前記第１のクエリ演算子は、前記第１のクエリと前記第２のクエリとをリンクするｕｎｉｏｎ、または、前記第１のクエリと前記第２のクエリをとリンクするｊｏｉｎを含む、請求項１１に記載の方法。
【請求項１３】
前記充足可能性の問題を予測する工程は、
前記第１のクエリおよび前記第２のクエリに対する結果を取得するための第１のソースおよび第２のソースを決定すること、
第１のテンプレートおよび第２のテンプレートに関する非互換性を判定すること、ならびに
前記第１のテンプレートおよび前記第２のテンプレートに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含み、
前記第１のテンプレートは、前記第１のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第２のテンプレートは、前記第２のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成されており、
前記方法は更に、前記第１のテンプレートおよび前記第２のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測する工程を備える、請求項１１に記載の方法。
【請求項１４】
前記充足可能性の問題を予測する工程は、
前記グラフデータモデルに基づいて、前記第１のクエリに対する第１の結果をグラフデータベースに格納するためのデータタイプとして、第１のデータタイプを決定すること、
前記グラフデータモデルに基づいて、前記第２のクエリに対する第２の結果を前記グラフデータベースに格納するためのデータタイプとして、第２のデータタイプを決定すること、
前記第１のデータタイプおよび前記第２のデータタイプに関連する非互換性を判定すること、ならびに、
前記第１のデータタイプおよび前記第２のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測すること、を含む、請求項１１に記載の方法。
【請求項１５】
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、請求項１４に記載の方法。
【請求項１６】
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、請求項１４に記載の方法。
【請求項１７】
前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第１のクエリまたは前記第２のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測する工程と、
前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第２のクエリ演算子を削除して、更新された前記クエリセットが前記第２のクエリ演算子を含まないように前記クエリセットを更新する工程と、更に備える、請求項１１に記載の方法。
【請求項１８】
ニューラルネットワークに複数のグラフクエリを提供し、前記ニューラルネットワークに、前記複数のグラフクエリのそれぞれに対する所与のクエリセットを予測させる工程を更に備え、
前記予測された所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
前記方法は更に、前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに、前記予測された所与のクエリセットを前記参照クエリセットに対して評価させる工程を備え、
前記予測された所与のクエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークは更新され、
前記方法は更に、
前記グラフクエリを前記ニューラルネットワークに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを取得する工程と、
前記ニューラルネットワークに対する参照フィードバックとして、更新された前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記クエリセットを前記更新されたクエリセットに対して評価させる工程と、を備え、
前記クエリセットの前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項１１に記載の方法。
【請求項１９】
複数のグラフクエリまたは複数の対応するクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させる工程を備え、
前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
前記方法は更に、前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記ニューラルネットワークに対する参照フィードバックとして提供して、前記ニューラルネットワークに前記予測された一つ以上の所与の最適化を前記一つ以上の参照最適化に対して評価させる工程を備え、
前記予測された一つ以上の所与の最適化の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
前記方法は更に、
前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記ニューラルネットワークに提供して、前記初期クエリセットに対する一つ以上の最適化を取得する工程と、
前記一つ以上の最適化を前記初期クエリセットに実行することにより、前記グラフクエリを前記クエリセットへと変換する工程と、
前記ニューラルネットワークに対する参照フィードバックとして、前記第１のクエリ演算子が削除されたことを示す情報を前記ニューラルネットワークに提供し、前記ニューラルネットワークに前記一つ以上の最適化を前記第１のクエリ演算子が削除されたことに対して評価させる工程と、を備え、
前記一つ以上の最適化の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新される、請求項１１に記載の方法。
【請求項２０】
所与の複数のクエリセットをニューラルネットワークに提供して、前記ニューラルネットワークに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させる工程と、
前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットについての一つ以上の参照充足可能性問題を、前記ニューラルネットワークに対する参照フィードバックとして前記ニューラルネットワークに提供して、前記ニューラルネットワークに前記予測された一つ以上の充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させる工程と、を備え、
前記予測された一つ以上の充足可能性の問題の前記ニューラルネットワークによる評価に基づいて、前記ニューラルネットワークが更新され、
前記方法は更に、
前記クエリセットを前記ニューラルネットワークに提供して、前記ニューラルネットワークから前記充足可能性の問題の前記予測を示す情報を取得する工程と、
前記ニューラルネットワークからの前記情報に基づいて、前記第１のクエリおよび前記第２のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する工程と、備える、請求項１１に記載の方法。
【請求項２１】
予測に基づくデータサブグラフの生成を介して、データ検索遅延を低減させるためのシステムであって、前記システムは、
コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
グラフデータモデルと互換性のある過去のクエリに基づいて、データリクエストが未来に発生することを予測し、
グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成し、
前記一つ以上のサブグラフを一時データストレージに格納し、
前記一つ以上のサブグラフの前記格納の後に、前記予測されたデータリクエストに一致する次のデータリクエストを取得し、
前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得し、
前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する、システム。
【請求項２２】
前記コンピュータシステムは、
前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出し、
前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返すことにより、前記一つ以上のサブグラフを使用する、請求項２１に記載のシステム。
【請求項２３】
前記コンピュータシステムは更に、
前記データリクエストの前記予測に応答して、前記データサブセットの第１のデータサブセットを一つ以上の非グラフデータベースから取得し、
前記第１のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第１のデータサブセットを表す第１のサブグラフを生成し、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第１のサブグラフを使用するように前記第１のサブグラフを含む、請求項２１に記載のシステム。
【請求項２４】
前記コンピュータシステムは更に、前記データリクエストの前記予測に応答して、前記データサブセットの第２のデータサブセットを一つ以上のグラフデータベースから取得し、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第２のサブグラフを使用するように、前記第２のデータサブセットを表す前記第２のサブグラフを含む、請求項２３に記載のシステム。
【請求項２５】
前記コンピュータシステムは更に、
前記予測されたデータリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成し、
前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換し、
前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第１のデータサブセットを取得し、
前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第２のデータサブセットを取得する、請求項２４に記載のシステム。
【請求項２６】
前記コンピュータシステムは更に、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するべくクエリプランを生成し、
前記クエリプランは、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記一時データストレージからデータを取得することを含むように生成され、
前記コンピュータシステムは更に、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得する、請求項２１に記載のシステム。
【請求項２７】
前記コンピュータシステムは更に、前記予測されたデータリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成し、
前記クエリプランは、前記次のデータリクエストに応答して生成され、
前記コンピュータシステムは更に、
前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得し、
前記次のデータリクエストに応答するべく、（ｉ）前記一つ以上のサブグラフによって表される前記データサブセット、および（ｉｉ）前記一つ以上のその他のデータを使用する、請求項２１に記載のシステム。
【請求項２８】
前記コンピュータシステムは更に、
前記データリクエストの前記予測に応答して、クエリを実行し、
実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
前記コンピュータシステムは更に、
前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得し、
前記データサブセットおよび前記グラフデータモデルに基づいて、前記一つ以上のサブグラフを生成する、請求項２１に記載のシステム。
【請求項２９】
前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、請求項２８に記載のシステム。
【請求項３０】
前記コンピュータシステムは更に、
機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供し、
前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得し、
前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する、請求項２１に記載のシステム。
【請求項３１】
予測に基づくデータサブグラフの生成を介して、データ検索遅延を低減させる方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、前記方法は、
グラフデータモデルと互換性のある過去のクエリに基づいて、データリクエストが未来に発生することを予測する工程と、
グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成する工程と、
前記一つ以上のサブグラフを一時データストレージに格納する工程と、
予測された前記データリクエストに一致する次のデータリクエストを、前記一つ以上のサブグラフの前記格納の後に取得する工程と、
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得する工程と、
前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する工程と、を備える方法。
【請求項３２】
前記一つ以上のサブグラフを使用する工程は、
前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出する工程と、
前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返す工程と、を有する、請求項３１に記載の方法。
【請求項３３】
前記データリクエストの前記予測に応答して、前記データサブセットの第１のデータサブセットを一つ以上の非グラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記第１のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第１のデータサブセットを表す第１のサブグラフを生成することを含み、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第１のサブグラフを使用するように前記第１のサブグラフを含む、請求項３１に記載の方法。
【請求項３４】
前記データリクエストの前記予測に応答して、前記データサブセットの第２のデータサブセットを一つ以上のグラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第２のサブグラフを使用するように、前記第２のデータサブセットを表す前記第２のサブグラフを含む、請求項３３に記載の方法。
【請求項３５】
前記予測されたデータリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成する工程と、
前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換する工程と、
前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第１のデータサブセットを取得する工程と、
前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第２のデータサブセットを取得する工程と、を更に備える、請求項３４に記載の方法。
【請求項３６】
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて前記一時データストレージからデータを取得することを含むように生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて前記一つ以上のサブグラフを前記一時データストレージから取得することを含む、請求項３１に記載の方法。
【請求項３７】
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、前記次のデータリクエストに応答して生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得することを含み、
前記一つ以上のサブグラフを使用する工程は、前記次のデータリクエストに応答するべく、（ｉ）前記一つ以上のサブグラフによって表される前記データサブセット、および（ｉｉ）前記一つ以上のその他のデータを使用することを含む、請求項３１に記載の方法。
【請求項３８】
前記データリクエストの前記予測に応答して、クエリを実行する工程を更に備え、
実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
前記方法は、前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記データサブセットおよび前記グラフデータモデルに基づいて前記一つ以上のサブグラフを生成することを含む、請求項３１に記載の方法。
【請求項３９】
前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、請求項３８に記載の方法。
ミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
グラフデータモデルセットに関連するモデリング情報を取得し、前記グラフデータモデルセットのグラフデータモデルそれぞれに関連する前記モデリング情報は、非グラフデータベースにおける非グラフデータ表現を、グラフデータベースと互換性のあるグラフデータ表現へと変換するためのテンプレートを含み、
前記グラフデータモデルセットの前記グラフデータモデルそれぞれおよび前記グラフデータモデルが変換するよう前記非グラフデータ表現について、前記グラフデータモデルの前記テンプレートのうちの１つまたは複数のテンプレートおよび前記非グラフデータ表現をニューラルネットワークに提供して、前記ニューラルネットワークに前記グラフデータモデルの前記テンプレートの１つ以上の追加テンプレートを予測させ、前記ニューラルネットワークは、前記一つ以上の追加テンプレートに依存することなく、前記一つ以上の追加テンプレートの前記予測を実行するように構成されており、
前記ニューラルネットワークをトレーニングするべく、前記グラフデータモデルセットのグラフデータモデルそれぞれについて、前記グラフデータモデルの前記テンプレートの前記一つ以上の追加テンプレートを前記ニューラルネットワークに提供し、
所与の非グラフデータベースからの非グラフデータ表現のコレクションを前記ニューラルネットワークに提供して、前記所与の非グラフデータベースにおける非グラフデータ表現を所与のグラフデータベースと互換性のあるグラフデータ表現へと変換するための所与のグラフデータモデルのための一つ以上のテンプレートを前記ニューラルネットワークに生成させる、システム。
【請求項４０】
機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供する工程と、
前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得する工程と、
前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する工程と、を更に備える、請求項３１に記載の方法。
【請求項４１】
互換性があるグラフデータ表現へと非グラフデータ表現を変換するためのグラフデータモデルのニューラルネットワークに基づく生成を提供するシステムであって、
コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、
前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
グラフデータモデルセットに関連するモデリング情報を取得し、前記グラフデータモデルセットのグラフデータモデルそれぞれに関連する前記モデリング情報は、非グラフデータベースにおける非グラフデータ表現を、グラフデータベースと互換性のあるグラフデータ表現へと変換するためのテンプレートを含み、
前記グラフデータモデルセットの前記グラフデータモデルそれぞれおよび前記グラフデータモデルが変換するよう前記非グラフデータ表現について、前記グラフデータモデルの前記テンプレートのうちの１つまたは複数のテンプレートおよび前記非グラフデータ表現をニューラルネットワークに提供して、前記ニューラルネットワークに前記グラフデータモデルの前記テンプレートの１つ以上の追加テンプレートを予測させ、前記ニューラルネットワークは、前記一つ以上の追加テンプレートに依存することなく、前記一つ以上の追加テンプレートの前記予測を実行するように構成されており、
前記ニューラルネットワークをトレーニングするべく、前記グラフデータモデルセットのグラフデータモデルそれぞれについて、前記グラフデータモデルの前記テンプレートの前記一つ以上の追加テンプレートを前記ニューラルネットワークに提供し、
所与の非グラフデータベースからの非グラフデータ表現のコレクションを前記ニューラルネットワークに提供して、前記所与の非グラフデータベースにおける非グラフデータ表現を所与のグラフデータベースと互換性のあるグラフデータ表現へと変換するための所与のグラフデータモデルのための一つ以上のテンプレートを前記ニューラルネットワークに生成させる、システム。
【請求項４２】
前記所与のグラフデータベースと互換性のある前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、請求項４１に記載のシステム。
【請求項４３】
前記コンピュータシステムは更に、
前記所与のグラフデータベースにおけるグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報を取得し、
前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含み、
前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記ニューラルネットワークが前記データ表現セットの１つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの１つ以上のノードまたはエッジを前記ニューラルネットワークに提供し、
前記ニューラルネットワークは、前記１つ以上の追加ノードまたは追加エッジに依存することなく、前記１つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
前記ニューラルネットワークをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記データ表現セットの前記１つ以上の追加ノードまたは追加エッジを、前記ニューラルネットワークによる前記１つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして前記ニューラルネットワークに提供する、請求項４１に記載のシステム。
【請求項４４】
前記コンピュータシステムは更に、
前記ニューラルネットワークを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記ニューラルネットワークに前記グラフに対する新しいノードまたは新しいエッジを生成させ、
前記ニューラルネットワークからの前記新しいノードまたは前記新しいエッジの少なくとも一つを前記グラフに追加する、請求項４３に記載のシステム。
【請求項４５】
前記コンピュータシステムは更に、
前記グラフの前記トラバースに基づいて、前記ニューラルネットワークから所与のノードまたはエッジを取得し、
前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記ニューラルネットワークからの前記所与のノードまたはエッジを前記グラフに追加し、
前記ユーザが了承したことを示す情報を、前記ニューラルネットワークによる前記所与のノードまたはエッジの生成に関する参照フィードバックとして前記ニューラルネットワークに提供する、請求項４４に記載のシステム。
【請求項４６】
前記コンピュータシステムは更に、
前記グラフの前記トラバースに基づいて、前記ニューラルネットワークから所与のノードまたはエッジを取得し、
前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得し、前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
前記ユーザが了承したことを示す情報を、前記ニューラルネットワークによる前記所与のノードまたはエッジの生成に関する参照フィードバックとして前記ニューラルネットワークに提供する、請求項４４に記載のシステム。
【請求項４７】
前記グラフデータモデルセットのグラフデータモデルはそれぞれ、データベースの行をグラフデータ表現に変換するように構成される、請求項４１に記載のシステム。
【請求項４８】
非グラフデータ表現をグラフデータ表現へと変換するためのグラフデータモデルの機械学習モデルに基づく生成を提供する方法であって、前記方法は、コンピュータプログラム命令を実行する一つまたは複数のプロセッサを備えるコンピュータシステムによって実装され、前記コンピュータプログラム命令が実行されると、前記方法を実行し、
前記方法は、
第１のグラフデータモデルに関連する第１のモデリング情報であって、第１のグラフデータベースと互換性のない第１のデータ表現を前記第１のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第１のテンプレートを含む前記第１のモデリング情報を取得する工程と、
前記第１のテンプレートの一つ以上のテンプレートおよび前記第１のデータ表現を前記機械学習モデルに提供する工程と、を備え、
前記機械学習モデルは、前記第１のテンプレートの一つ以上の追加テンプレートを前記第１のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
前記方法は更に、
前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第１のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、
所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する工程と、を備える方法。
【請求項４９】
前記所与のグラフデータベースの前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、請求項４８に記載の方法。
【請求項５０】
第２のグラフデータモデルに関連する第２のモデリング情報であって、第２のグラフデータベースと互換性のない第２のデータ表現を前記第２のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第２のテンプレートを含む前記第２のモデリング情報を取得する工程と、
前記第２のテンプレートの一つ以上のテンプレートおよび前記第２のデータ表現を前記機械学習モデルに提供する工程と、更に備え、
前記機械学習モデルは、前記第２のテンプレートの一つ以上の追加テンプレートを前記第２のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
前記方法は更に、前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記第２のテンプレートの前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第２のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程を備える、請求項４８に記載の方法。
【請求項５１】
前記第１のデータ表現および前記第２のデータ表現は、同じデータベースと互換性がある、請求項５０に記載の方法。
【請求項５２】
前記第１のデータ表現は第１の非グラフデータベースと互換性があり、前記第２のデータ表現は第２の非グラフデータベースと互換性があるが前記第１の非グラフデータベースとは互換性がない、請求項５０に記載の方法。
【請求項５３】
前記第１のデータ表現または前記第２のデータ表現は、少なくとも一つのグラフデータベースと互換性がある、請求項５０に記載の方法。
【請求項５４】
前記所与のグラフデータベース内のグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報であって、前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含む、前記グラフ情報を取得する工程と、
前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの１つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの１つ以上のノードまたはエッジを前記機械学習モデルに提供する工程と、を更に備え、
前記機械学習モデルは、前記１つ以上の追加ノードまたは追加エッジに依存することなく、前記１つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
前記方法は更に、前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記１つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記１つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する工程を備える、請求項４８に記載の方法。
【請求項５５】
前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させる工程と、
前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する工程と、を更に備える、請求項５４に記載の方法。
【請求項５６】
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記機械学習モデルからの前記所与のノードまたはエッジを前記グラフに追加する工程と、
前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの了承を示す情報を前記機械学習モデルに提供する工程と、を更に備える請求項５５記載の方法。
【請求項５７】
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得する工程と、を更に備え、
前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
前記方法は更に、前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの拒否を示す情報を前記機械学習モデルに提供する工程、を更に備える、請求項５５に記載の方法。
【請求項５８】
互換性があるグラフデータ表現へと非グラフデータ表現を変換するためのグラフデータモデルの機械学習モデルに基づく生成を提供するシステムであって、
コンピュータプログラム命令を使用してプログラミングされている一つまたは複数のプロセッサを有するコンピュータシステムを備え、前記コンピュータプログラム命令が実行されると、前記コンピュータシステムは、
第１のグラフデータモデルに関連する第１のモデリング情報であって、第１のグラフデータベースと互換性のない第１のデータ表現を前記第１のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第１のテンプレートを含む前記第１のモデリング情報を取得し、
前記第１のテンプレートの一つ以上のテンプレートおよび前記第１のデータ表現を前記機械学習モデルに提供し、
前記機械学習モデルは、前記第１のテンプレートの一つ以上の追加テンプレートを前記第１のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第１のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供し、
所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する、システム。
【請求項５９】
前記コンピュータシステムは更に、
前記所与のグラフデータベースにおけるグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報を取得し、
前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含み、
前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの１つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの１つ以上のノードまたはエッジを前記機械学習モデルに提供し、
前記機械学習モデルは、前記１つ以上の追加ノードまたは追加エッジに依存することなく、前記１つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、
前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記１つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記１つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する、請求項５８に記載のシステム。
【請求項６０】
前記コンピュータシステムは更に、
前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させ、
前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する、請求項５９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１８年６月１３日に出願された以下の米国出願の利益を主張し、これらの全内容は参照により本明細書に組み込まれる。（１）米国特許出願第１６／００７，６３９号、発明の名称「予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減するシステムおよび方法」、（２）米国特許出願第１６／００７，９１１号、発明の名称「予測モデルに基づくグラフデータモデルの生成を提供するためのシステムおよび方法」、（３）米国特許出願第１６／０７，８５０号、発明の名称「データ検索プロセスにおけるクエリ関連のリソース使用を低減するシステムおよび方法」。
【０００２】
本発明は、マルチソース型の相互運用性（ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ）および／または情報検索の最適化を容易にすることに関する。
【背景技術】
【０００３】
一般的に、組織が成長するにつれて組織内に存在するデータサイロの数が増加し、組織における他の部門に「接続されていない」固定データのリポジトリが多数作成される。データ形式またはデータソース技術が、以前のまたは現在の標準的に使用されているものと一致しないために、このようなデータサイロが存在している場合が多い。例えば、大企業は、継承された複数のレガシーデータシステムを有し、これらシステムは互いに互換性がないまたは新しいデータシステムとの互換性がない場合がある。様々なデータストレージタイプ、フォーマットまたはＩＴシステムから現在の標準に対応する一つのデータシステムへと、データ移行システムを使用してデータを転送することは可能であるが、このような大規模なデータ移行プロセスには通常、かなりのオーバーヘッド（計算リソース、時間等）が必要であり、他の組織活動に重大な混乱を引き起こし得る。上記のような問題およびその他の問題が存在する。
【発明の概要】
【０００４】
本発明の側面は、マルチソース型の相互運用性または情報検索の最適化を容易にするための方法、装置またはシステムに関し、例えば、異なるデータソースタイプの複数のデータソースに対するマルチソースタイプのクエリを容易にするためのデータ変換モデルの使用、データ変換モデルを生成するための予測モデルの使用、変換されたデータに対するリクエストを予期して当該データを一時データストレージに格納するための予測モデルの使用、データ検索プロセスにおけるクエリに関連するリソース使用量を削減するためにデータリクエストから導出したクエリセットの最適化等に関する。
【０００５】
ある実施形態では、データ検索プロセスにおけるクエリ関連のリソース使用を削減する。一例として、データリクエスト関連のグラフクエリを取得してもよい。グラフデータモデルおよびグラフクエリのパターンに基づいて、グラフクエリがクエリセットに変換されてもよい。生成されるクエリセットは、クエリおよびクエリをリンクするクエリ演算子を含んでもよく、クエリ演算子は前記クエリの第１のクエリと第２のクエリとをリンクする第１のクエリ演算子またはその他の演算子を含む。前記第１のクエリおよび前記第２のクエリが実行される前に、充足可能性の問題が予測されてもよく、当該充足可能性の問題は、前記第１のクエリおよび前記第２のクエリから導出される結果を組み合わせることに関する。前記予測に基づいて、第１のクエリ演算子がクエリセットから削除されて、クエリセットが更新される。更新されたクエリセットを実行して、グラフクエリに応答してもよい。
【０００６】
上記以外の本発明のさまざまな態様、特徴および利点は、本発明の詳細な説明および添付の図面を参照することによって明らかになるであろう。また、上記の概要および以下の詳細な説明は共に例示に過ぎず、本発明の範囲を限定するものではないと理解されたい。本明細書および特許請求の範囲で用いる場合、単数形の「ａ」、「ａｎ」、および「ｔｈｅ」は複数を示唆するものである。ただし、文脈によって別に解すべきことが明白な場合はこの限りでない。更に、本明細書および特許請求の範囲で用いる場合、「または」という用語は「および／または」を意味する。ただし、文脈によって別に解すべきことが明白な場合はこの限りではない。
【図面の簡単な説明】
【０００７】
【図１】一のまたは複数の実施形態に係る、マルチソース型の相互運用性および情報検索の最適化を容易にするためのシステムを示す。
【０００８】
【図２】一のまたは複数の実施形態に係る、システムの一つまたは複数の構成要素を含む企業環境を示す。
【０００９】
【図３】一のまたは複数の実施形態に係る、システムの一つまたは複数の構成要素のアーキテクチャの一例を示す。
【００１０】
【図４】一のまたは複数の実施形態に係る、グラフデータベース内のグラフの一例を示す。
【００１１】
【図５】一のまたは複数の実施形態に係る、グラフデータベースと互換性のないデータ表現、互換性のないデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するためのテンプレート、および、互換性のないデータ表現から導出されたグラフデータ表現を示す。
【００１２】
【図６】一のまたは複数の実施形態に係る、トレーニングされた予測モデルからのテンプレートに基づいて生成されたグラフデータ表現の２つの異なるセットの例を示す。
【００１３】
【図７】一のまたは複数の実施形態に係る、グラフデータモデルの一例を示す。
【００１４】
【図８】一のまたは複数の実施形態に係る、予測モデル推論の一例を示している。
【００１５】
【図９】一のまたは複数の実施形態に係る、予測モデルによる類似性予測の一例を示している。
【００１６】
【図１０】一のまたは複数の実施形態に係る、グラフのノード間の類似度を決定するコードの一例を示している。
【００１７】
【図１１】一のまたは複数の実施形態に係る、新しいノードまたはエッジの生成例、ならびに、ルールおよびオントロジーマッチの学習例を示す。
【００１８】
【図１２】一のまたは複数の実施形態に係る、予測モデルに基づくグラフデータモデルの生成を提供する方法を示す。
【００１９】
【図１３】一のまたは複数の実施形態に係る、予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減する方法を示す。
【００２０】
【図１４】一のまたは複数の実施形態に係る、データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法のフローチャートを示す
【発明を実施するための形態】
【００２１】
以下の記載において、本発明の実施形態を完全に理解できるように、説明を目的として、多くの具体的且つ詳細な内容を記載する。しかしながら、当業者であれば、これらの具体的且つ詳細な内容がなくとも、または、均等な構成でも、本発明の実施形態が実施され得ることを理解するであろう。他の例では、周知の構造およびデバイスが、本発明の各実施形態を不必要に不明瞭にすることを避ける目的でブロック図の形式で示される。
【００２２】
図１は、一のまたは複数の実施形態に係る、マルチソース型の相互運用性および情報検索の最適化を容易にするためのシステム１００を示す。図１に示されるように、システム１００は、サーバ１０２、クライアントデバイス１０４ａ〜１０４ｎ、データソース１３２、および、他の構成要素を備え得る。サーバ１０２は、データ管理サブシステム１１２、モデル管理サブシステム１１４、要求サブシステム１１６、最適化サブシステム１１８、プレゼンテーションサブシステム１２０、電子記憶装置１２２、および、その他の構成要素を備え得る。クライアントデバイス１０４はそれぞれ、任意のタイプのモバイル端末、固定端末、または、その他のデバイスを含み得る。クライアントデバイス１０４は、一例として、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイスまたは他のクライアントデバイスであってもよい。ユーザは、例えば、一つまたは複数のクライアントデバイス１０４を利用して、一つまたは複数のサーバ１０２またはシステム１００の他の構成要素とやりとりすることができる。データソース１３２は、グラフデータソース１３４、非構造化データソース（例えば、タイプライター文書）、半構造化データソース（例えば、ＸＭＬ文書、電子メール等）、または、構造化データソース（例えば、リレーショナルデータベース管理システム（ＲＤＢＭＳ）情報、軽量ディレクトリアクセスプロトコル（ＬＤＡＰ）情報等）１３６、および、その他のデータソース１３８を含み得る。データソースは、様々なデータベースまたはその他のデータソースを含み得る。いくつかの実施形態では、一つのデータベースが、一つまたは複数のデータソース１３２を含んでもよい。サーバ１０２の特定の構成要素が実行するものとして一つまたは複数の処理を本明細書で説明するが、これらの処理は、一部の実施形態では、サーバ１０２の他の構成要素、または、システム１００の他の構成要素によって実行し得るものであることに留意されたい。一例として、サーバ１０２の構成要素が実行する処理として本明細書で説明する一つまたは複数の処理は、一部の実施形態において、クライアントデバイス１０４の構成要素によって実行されるとしてよい。
【００２３】
いくつかの実施形態において、企業環境２００は、図２に示されるように、システム１００の一つまたは複数の構成要素に対する環境であり得る。企業環境２００は、アプリケーションおよび分析部分２０２、企業「データレイク」部分２０４、仮想部分２０６およびその他の部分を含み得る。サーバ１０２は、レポート２０８、分析２１０、機械学習またはデータマイニング情報２１２、非構造化情報２１４（例えば、タイプライトされた文書）、半構造化情報２１６（例えば、ＸＭＬ文書、電子メール等）、構造化情報２１８（例えば、ＲＤＢＭＳ情報、ＬＤＡＰ情報等）およびその他の情報のような様々な種類の情報を受信するように構成されている。サーバ１０２は、例えば、様々なアプリケーションまたは分析操作を実行している一つまたは複数のクライアントデバイス１０４からもしくは他のソースから、そのような情報を受信することができる。
【００２４】
いくつかの実施形態において、アーキテクチャ３００は、図３に示されるように、システム１００の一つまたは複数の構成要素に対する環境であり得る。図３に示すように、サーバ１０２は、メタデータ抽出部３０２、テキスト抽出部３０４、グラフ抽出部３０６（例えば、リソースデスクリプションフレームワーク（ＲＤＦ）抽出部）、機械学習コンポーネント３０８、地理空間インデックス３１０、グラフインデックス３１２、テキストインデックス３１４、リレーショナルマッピングコンポーネント３１６、クエリエンジン３１８およびその他の構成要素を備えてもよい。いくつかの実施形態では、これらの構成要素のうちの一つまたは複数は、図１に示される一つまたは複数のサーバ構成要素に含まれる、または、サーバ構成要素に関連する動作を実行してもよい。例えば、メタデータ抽出部３０２、テキスト抽出部３０４、グラフ抽出部３０６またはその他の構成要素が、図１に示したデータ管理サブシステム１１２に含まれてもよい。機械学習コンポーネント３０８は、図１に示したモデル管理サブシステム１１４であってもよい、または、モデル管理サブシステム１１４に含まれてもよい。地理空間インデックス３１０、グラフインデックス３１２、テキストインデックス３１４、リレーショナルマッピングコンポーネント３１６、クエリエンジン３１８またはその他の構成要素は、図１に示されたモデル管理サブシステム１１４、要求サブシステム１１６または最適化サブシステム１１８であってもよい、または、それらに含まれてもよい。いくつかの実施形態では、サーバ１０２は、ドキュメントストレージシステム３２０に関連付けられている。
【００２５】
いくつかの実施形態では、図３に示されるように、サーバ１０２は、グラフデータ、非構造化データ、リレーショナルデータベース管理システムからの情報、または、その他のソース１３４からのデータを受信してもよい。本明細書で説明するように、サーバ１０２の構成要素（例えば、クエリエンジン３１８）は、一つまたは複数のクエリを実行して、関連する結果を取得することができる。システムによって生成されたテンプレートまたは他の情報（例えば、地理空間インデックス３１０、グラフインデックス３１２、テキストインデックス３１４、リレーショナルマッピングコンポーネント３１６からの情報）に基づいて、本明細書でいかに説明されているように、サーバ１０２は、クエリから得られたデータ表現を１つまたは複数のデータ変換モデルを介してグラフ形式（または他の形式）へと変換する。
【００２６】
いくつかの実施形態では、システム１００は、一つのデータソースのデータ表現を別のデータソースと互換性のあるデータ表現に（またはその逆に）変換するように構成されるデータ変換モデルまたは他のデータモデルの生成を介して、様々なデータソース技術または標準間におけるマルチソース型の相互運用性を容易にする。いくつかの実施形態では、システム１００は、そのようなデータ変換モデルを利用して、互換性のない（例えば、異なるデータソースタイプ間の）クエリ結果を、目的のデータソースと互換性を有する結果のセットへと変換することにより、異なるデータソースタイプの複数のデータソースへのマルチソース型クエリを容易にすることができる。このような態様で、例えば、企業または他のエンティティが、新しいまたは異なるデータソース技術または標準を採用するために、レガシーまたは現在のデータベースを点検しなければならない手間を、システム１００によって省くことができる。一つの使用例として、システム１００は、一つまたは複数のそのようなデータ変換モデルを介して、様々なデータソースタイプの一つまたは複数のデータソースからのデータ表現をオンザフライ変換することができる。
【００２７】
いくつかの実施形態では、システム１００は、第１のデータソースタイプ（例えば、リレーショナルモデルタイプまたは他のデータソースタイプ）のデータ表現を、第２のデータソースタイプ（例えば、グラフィックモデルタイプまたは他のデータソースタイプ）のデータ表現に変換するための一つまたは複数のテンプレートを取得することができ、取得したテンプレートに基づいてデータ変換モデルを作成または変更してもよい。一例として、テンプレートは、第１のデータソースタイプに対応するデータ特性（例えば、特定のＳＱＬデータソースまたはその他のデータソースに固有の行または列の属性および値）を、第２のデータソースに対応するデータ特性（例えば、グラフデータソースまたは他のデータソースに固有のグラフ属性および値）へと変換するための命令を含んでもよい。更なる例として、システム１００は、テンプレートを処理して、第１のデータソースタイプのデータ表現を、グラフ以外のデータ表現を第２のデータソースタイプのデータ表現に変換するのに使用可能なテンプレートのうちの少なくとも一つに合致させるためのパターン（例えば、正規表現または他のパターン）または（テンプレートに関連付けられる）ルールを決定してもよい。次に、システム１００は、データ変換モデルを生成して、パターン、ルールまたはその他のモデリング情報を（例えば、データ変換モデルがそのようなテンプレート、パターンまたはルール等を含むようにまたは示すように）データ変換モデルの一部として組み込んでもよい。いくつかの実施形態では、システム１００は、一つまたは複数の予測モデル（例えば、ニューラルネットワークまたは他の機械学習モデル）を利用して、本明細書で後に説明するように、（特定のグラフデータベースと互換性がない）データ表現をグラフデータベースと互換性があるグラフデータ表現に変換するように構成された一つまたは複数のグラフデータモデルを生成する、または、１つまたは複数のその他のデータ変換モデルを生成してもよい。
【００２８】
いくつかの実施形態では、システム１００は遅延を低減させることにより、リクエストに対して十分な応答を提供するまたは一時的なデータストレージまたは他のコンピュータリソースの使用効率を改善することができる。システム１００は、例えば、リクエストの予測および予測されたリクエストに関連するクエリ結果をグラフ形式で一時的に記憶することにより、予測されたリクエストに関連するクエリ結果のサブセットの選択的取得および一時的な記憶により、クエリセットの最適化により、またはその他の手法により、遅延の低減または効率改善を提供してもよい。一例として、クエリ結果に対するリクエストを予測し、結果のサブセットをリクエスト予測に応じて取得し、結果のサブセットをサーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ（例えば、電子記憶装置１２２）に格納してもよい。結果のサブセットは、（例えば、結果が適切なグラフ形式でない場合）一つまたは複数のサブグラフへと変換されてもよく、このサブグラフを一時データストレージに格納してもよい。予測されたリクエスト（または予測されたリクエストに一致する未来のリクエスト）が発生した場合、（例えば、非グラフ形式からグラフ形式へと変換が場合によっては必要であり、大幅に遅延が発生する他のデータストレージを介して結果のサブセットを取得する代わりに）１つまたは複数のサブグラフを一時データストレージから取得してもよく、発生した予測されたリクエストに応答するために使用される。このように、例えば、（特定のリクエストが発生する前に）変換された形式で結果を一時的に格納しておくことにより、リクエストに十分に応答するための待ち時間やその他の遅延を大幅に削減することができる場合がある。
【００２９】
いくつかの実施形態では、システム１００は、グラフクエリ（またはデータリクエストに関連するその他のクエリ）へと変換されるクエリセット等、データリクエストから派生したクエリセットを最適化することによってデータ検索プロセスにおけるクエリ関連のリソース使用量を減らすことができる。いくつかの実施形態では、そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。このような最適化は、一つまたは複数の充足可能性の（例えば、特定のクエリから得られた複数の結果の組み合わせに関連する）問題、非互換性の問題または他の問題の予測に基づいて、このような問題またはこのような問題の悪影響を回避または軽減するために実行され得る。いくつかの実施形態では、データリクエストに関連するグラフクエリを取得することに応答して、システム１００は、当該グラフクエリを、複数のクエリおよび当該クエリをリンクするクエリ演算子（例えば、ｕｎｉｏｎ、ｊｏｉｎまたはその他のクエリ演算子）を有するクエリセットへと変換してもよい。（２つのクエリから得られた結果の組み合わせに関連する）充足可能性の問題の予測に基づいて、システム１００は、クエリセットからこの２つのクエリをリンクするクエリ演算子を削除するか、このクエリセットに対して他の最適化を実行して当該クエリセットを更新してもよい。上記のように、システム１００が、グラフクエリ（したがって、データリクエスト）を満たすために更新されたクエリセットを実行する場合、システム１００は、ｉ）クエリセットの１つ以上の部分を実行し、そのようなクエリセットの実行から派生した互換性のない結果を組み合わせようとするのに使用されるリソースの無駄、（ｉｉ）そのような実行と試行から生じる遅延、または（ｉｉｉ）その他の悪影響といった、充足可能性の問題または充足可能性の問題の負の影響を回避または軽減することができる。
【００３０】
いくつかの実施形態では、システム１００は、予測モデルベースの（ｉ）データモデル（例えば、データ変換モデル、グラフデータモデル等）の生成、（ｉｉ）未来のリクエストまたはその他の情報に関連する結果の取得または保存、（ｉｉｉ）クエリの生成または実行、（ｉｖ）クエリセットの最適化、または（ｖ）その他のオペレーションを容易にする。予測モデルは、ニューラルネットワーク、その他の機械学習モデルおよびその他の予測モデルを含み得る。一例として、ニューラルネットワークは、大量のニューラルユニット（または人工ニューロン）に基づいているとしてよい。ニューラルネットワークは、生物の脳の働き（例えば、軸索によって接続されている生物のニューロンの大きなクラスタによるもの）を大まかに模倣しているとしてよい。ニューラルネットワークのニューラルユニットそれぞれは、ニューラルネットワークの他の多くのニューラルユニットと接続されているとしてよい。このような接続は、接続されているニューラルユニットの活性状態に対して、強化または阻害する影響を持ち得る。一部の実施形態では、各ニューラルユニットは、全ての入力の値を組み合わせる合算機能を持つとしてよい。一部の実施形態では、各接続（またはニューラルユニット自体）は、しきい値関数を持つとしてよく、信号が他のニューラルユニットへと伝播するにはしきい値を超過しなければならない。これらのニューラルネットワークシステムは、明示的にプログラミングされるというより自動で学習しトレーニングされ得るものであり、従来のコンピュータプログラムに比べて所定の分野の問題解決において性能が大きく優れているとしてよい。一部の実施形態では、ニューラルネットワークは複数の層を持つとしてよい（例えば、信号経路は上位置から下位層へと横断している）。一部の実施形態では、ニューラルネットワークがバックプロパゲーションを利用するとしてよく、この場合、前方向の刺激を利用して「上位層」のニューラルユニットへの重みをリセットする。一部の実施形態では、ニューラルネットワークに対する刺激および阻害は、接続同士の相互作用がより混沌且つより複雑になるほど、流動性が高くなるとしてよい。
【００３１】
いくつかの実施形態では、システム１００は、（ｉ）データモデルに関連するモデリング情報（例えば、テンプレート、そのパターンまたはルール、もしくは、データ変換モデル、グラフデータモデル等に関連するその他の情報）、（ｉｉ）グラフのノードまたはエッジに関連するグラフ情報、もしくは、データポイントまたは他のデータソースの関係に関連するその他の情報、（ｉｉｉ）クエリ情報（例えば、グラフクエリ、ＳＱＬまたはその他の非グラフクエリ、グラフクエリまたは非グラフクエリから派生したクエリセット等）、（ｉｖ）最適化情報または問題情報（例えば、クエリセット最適化ロジックまたは他の最適化を示す情報、特定のクエリの結果の組み合わせに関連する潜在的な問題を示す情報等）、もしくは、他のトレーニング情報（例えば、非構造化ドキュメント、半構造化ドキュメント、構造化ドキュメントまたはその他の情報）、を取得してもよい。システム１００は、トレーニング情報に基づいて一つまたは複数の予測モデルをトレーニングして、（ｉ）一つまたは複数のデータモデル、グラフまたはその他のデータ構造、クエリセットもしくはその他の情報、または、（ｉｉ）予測パターン、ルール、テンプレート、最適化ロジック、充足可能性の問題、グラフノードまたはエッジの属性／値もしくはその他の属性／値等、予測モデルに関連する一つまたは複数の予測を生成してもよい。一例として、予測モデルをトレーニングするために使用される情報アイテム（例えば、パターン、ルール、テンプレート、グラフ、クエリセットまたはその他のトレーニング情報アイテム）の数は、５００以上の情報アイテム、１０００以上の情報アイテム、１００００以上の情報アイテム、１０００００以上の情報アイテム、１００００００以上の情報アイテムまたはその他の数であり得る。
【００３２】
［データモデルおよびデータ生成］
【００３３】
いくつかの実施形態では、モデル管理サブシステム１１４は、（ｉ）一つまたは複数のデータモデル（例えば、データ変換モデル、グラフデータモデル等）またはそれに関連する情報を生成し、（ｉｉ）パターン、ルール、テンプレートまたは上記のようなデータモデルの他のモデリング情報を予測する、または（ｉｉｉ）その他のオプションを実行するように構成されてもよい。いくつかの実施形態では、モデル管理サブシステム１１４は、第１のデータソースタイプ（例えば、リレーショナルモデルタイプまたは他のデータソースタイプ）のデータ表現を、第２のデータソースタイプ（例えば、グラフィックモデルタイプまたは他のデータソースタイプ）のデータ表現に変換するための一つまたは複数のテンプレートを取得することができ、取得したテンプレートに基づいてデータ変換モデルを作成または変更してもよい。一例として、テンプレートは、第１のデータソースタイプに対応するデータ特性（例えば、特定のＳＱＬデータソースまたはその他のデータソースに固有の行または列の属性および値）を、第２のデータソースに対応するデータ特性（例えば、グラフデータソースまたは他のデータソースに固有のグラフ属性および値）へと変換するための命令を含んでもよい。更なる例として、モデル管理サブシステムは、テンプレートを処理して、第１のデータソースタイプのデータ表現を第２のデータソースタイプのデータ表現に変換するのに使用可能なテンプレートのうちの少なくとも一つに前記第１のデータソースタイプのデータ表現を合致させるためのパターン（例えば、正規表現または他のパターン）または（テンプレートに関連付けられる）ルールを決定してもよい。次に、モデル管理サブシステム１１４は、データ変換モデルを生成して、パターン、ルールまたはその他のモデリング情報をデータ変換モデルの一部として組み込んでもよい。
【００３４】
一例として、図４に示されるように、非グラフデータ表現（例えば、表フィールド、表の行または列等）は、グラフ４００にフ含まれる表現（例えば、グラフ４００のノードまたはエッジ）のような動画に関連するデータ表現を含むグラフデータ表現に変換されてもよい。図４に示されるように、グラフ４００は、様々な複数のノード４０２およびノード４０２を接続するエッジ４０４を含む。この例では、２つの異なる映画ＴＴ１５８３４２０およびＴＴ０１６２２２に対応する２つの異なる映画ノード４０２が、映画のラベルノード４０２（例えば、映画名１および映画名２）、監督ノードＮＭ０００１５８およびＮＭ０００７０９、制作会社ノードＣ０９９４０９３８および公開日ノード２０００−１２−２２に接続されている。これらの接続は、個々のノード４０２間の様々なエッジ４０４で示されている。監督ノードＮＭ０００１５８およびＮＭ０００７０９ならびに制作会社ノードＣ０９９４０９３８もまた、エッジ４０４によって対応するラベルノード４０２（例えば、人物１、人物２および会社名）に接続されている。
【００３５】
更なる例として、図５に示されるように、表５００内の非グラフデータ表現（例えば、ＳＱＬまたは他のリレーショナルデータベースからの）は、テンプレート５０２を使用したグラフ５０４のグラフデータ表現（またはテンプレート５０２）に変換されてもよい。図５に示されるように、テンプレート５０２は、（例えば、表５００の）行または列を、（例えば、結果のグラフ５０４の）グラフノードまたはエッジに（または、いくつかの実施形態ではその逆に）変換するための命令を含み得る。この例では、表５００は映画３および映画４というタイトルの２つの映画の情報を含み、例えば、識別コード５０６、タイトル５０７、公開年５０８、興行収入国名５１０、国コード５１２および総収入５１４等の情報を含む。テンプレート５０２（図５にグラフ形式で示されている）は、映画タイトル、識別コード、公開年、興行収入、興行収入国、興行収入国ラベル、興行収入の国コードおよびその国での総収入に対する「プレースホルダー」ノード５１６を含む。複数のノード５１６は、これらノード５１６間の関係を示す対応するエッジ５１８によってリンクされている。テンプレート５０２（例えば、ノード５１６）の指示に基づいて、映画３についての表５００の非グラフデータ表現が、ノード５２０を示すグラフ５０４のグラフデータ表現（例えば、ノード５２０）に変換される。
【００３６】
図１に示されるように、データ管理サブシステム１１２は、（ｉ）一つまたは複数のグラフまたは他のデータ構造（例えば、ＳＱＬデータ構造、その他の非グラフデータ構造等）を生成し、（ｉｉ）ノード、エッジまたはそのようなデータ構造のその他の部分に対する情報を予測する、または、（ｉｉｉ）他のオプションを実行するように構成され得る。いくつかの実施形態では、データ管理サブシステム１１２は、一つまたは複数のグラフデータモデルを利用して、（例えば、ＳＱＬテーブルまたはその他のデータソースに格納されている）非グラフデータ表現からグラフを作成または変更してもよい。一例として、データ管理サブシステム１１２は、グラフデータモデルを使用して、（例えば、特定のグラフデータベースと互換性がある）非グラフデータ表現をグラフ表現に変換して、新しいグラフを作成するまたはグラフデータベース内の既存のグラフを補足／修正することができる。
【００３７】
いくつかの実施形態では、一つまたは複数のグラフについて、リクエストサブシステム１１６は、（例えば、２つのグラフノード間の全てのパスを決定するため、２つのグラフノード間の最短パスを決定するため、２つのグラフノード間の所定数の最短パスを決定するために、等）グラフのノード間の一つまたは複数のパスを見つけるための一つまたは複数のパスクエリを生成してもよい。いくつかの実施形態では、リクエストサブシステム１１６は、パスクエリが戻されるパスについての制限パラメータを含むように当該パスクエリを生成してもよい。一例として、そのようなパスクエリの１つは、指定された金額を超えるトランザクションに関連付けられたパスに結果を制限してもよい（例えば、最短パスの全てのノードまたはエッジは、１０，０００ドル以上または他の指定された金額を超えるトランザクションに関連付けられていなければならない）。別の例として、パスクエリは、結果を、ライフサイクル（例えば、製品ライフサイクル、動物ライフサイクル、ドキュメントライフサイクル等）に関連付けられたパスに制限してもよい。更に別の例として、パスクエリは、結果を、映画ノードから制作会社とその親会社を表すノードへのパスに制限してもよい（例えば、映画「ヒッチコック」は、２１世紀フォックスが親会社のフォックス・スタジオが所有するフォックス・サーチライト・ピクチャーズによって制作されている）。いくつかの実施形態では、リクエストサブシステム１１６は、そのようなパスクエリが戻すそのようなパスに基づいてデータリクエストに応答するためのクエリプランを決定してもよい。一例として、そのようなパス情報に基づいて、リクエストサブシステム１１６は、（例えば、ユーザデバイスから取得されるまたは本明細書で説明されるように予測される）データリクエストを処理するための一つまたは複数のクエリを決定し、どのグラフまたはグラフデータベースがデータリクエストを処理するターゲットソースになるかを決定し、そのようなターゲットソースに関連するコストを決定してもよい。要求サブシステム１１６は、そのような決定に基づいてデータリクエストのクエリプランを作成または選択してもよい（例えば、ターゲットソースをクエリプランに組み込むことによって、コスト情報等に基づいたクエリまたはターゲットソースの優先順位を決定する）。
【００３８】
いくつかの実施形態では、予測モデル（例えば、ニューラルネットワーク、その他の機械学習モデルまたはその他の予測モデル）を利用して、グラフデータモデルまたはその他のデータモデルの生成、グラフまたはその他のデータ構造の生成、このようなデータモデルまたはデータ構造についての情報の予測、クエリプランの決定、もしくは、その他の操作を容易にしてもよい。予測モデルをトレーニングするのに使用されるトレーニングデータには、（ｉ）予測モデルに提供される入力（例えば、他の予測モデルに提供されて処理される入力または他の入力）、（ｉｉ）そのような入力の予測モデル処理から導出される参照出力（例えば、ユーザが確認した出力またはユーザ提供の出力、そのような入力が１つまたは複数の予測モデルによる処理によって確認された出力、対応する予測モデルのセットによってそのような入力が処理されることにより複数回確認が行われた出力、もしくは、その他の参照出力）、（ｉｉｉ）そのような入力の予測モデルの処理から導出されない出力の参照表示（例えば、そのような出力が不正確であるというユーザ表示またはその他の参照表示）、または、（ｉｖ）他のトレーニングデータを含み得る。
【００３９】
いくつかの実施形態では、モデル管理サブシステム１１４は、（一つまたは複数のグラフデータモデルを含む）グラフデータモデルセットに関連するモデリング情報、（例えば、特定のグラフデータベースと互換性を有する）グラフデータ表現に変換するための各グラフデータモデルのデータ表現のコレクション、またはその他の情報を取得してもよい。モデル管理サブシステム１１４は、モデリング情報、データ表現のコレクションまたはその他の情報を予測モデルに提供して、予測モデルをトレーニングすることができる。
【００４０】
一例として、モデリング情報は、（ｉ）データ表現（例えば、非グラフデータ表現または特定のグラフデータベースと互換性のないその他のデータ表現）をグラフデータベースと互換性を有するグラフデータ表現に変換するためのテンプレート、（２）互換性のないデータ表現を互換性のあるグラフデータ表現に変換するのに使用可能なテンプレートうちの少なくとも１つに互換性のないデータ表現を一致させるための（テンプレートに関連付けられている）パターンまたはルール、もしくは、（３）その他のモデリング情報を含み得る。グラフデータモデルセットの各グラフデータモデルおよび（グラフデータモデルが変換する）互換性のないデータ表現について、モデル管理サブシステム１１４は、グラフデータモデルのテンプレートのうちの一つまたは複数のテンプレートおよび互換性のないデータ表現を予測モデルに提供して、グラフデータモデルのテンプレートの１つ以上の追加テンプレートを予測してもよい。例えば、一使用例では、そのような追加テンプレートがグラフデータモデルの一部としてすでに存在する場合でも、予測モデルは、予測モデルのトレーニングの一部として追加テンプレートを予測する。この場合、一使用例では、予測モデルは、追加テンプレートに依存せずに（例えば、追加テンプレートの少なくともいくつかに依存せずにまたは追加のテンプレートのいずれにも依存せずに等）、追加のテンプレートを予測してもよい。
【００４１】
更なる例として、グラフデータモデルセットの各グラフデータモデルについて、モデル管理サブシステム１１４は、予測モデルが行った追加テンプレートの予測に対する参照フィードバックとして、グラフデータモデルのテンプレートの追加のテンプレートを予測モデルに提供して、当該予測モデルをトレーニングしてもよい。予測モデルは追加テンプレートを「参照テンプレート」として使用して、（例えば、予測モデルへの入力として提供されるその他のテンプレートに基づいて予測モデルによって生成されるテンプレートである）当該予測モデルが行った追加テンプレートの予測を評価してもよい。自身の予測の評価に基づいて、予測モデルは、（予測が正確であったかどうかまたはどの程度正確であるかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより）予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加テンプレートの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの１つまたは複数の層を更新してもよい。一例として、ニューラルネットワークは、順方向または逆方向伝搬技術を使用して、一つまたは複数の層（例えば、ニューラルネットワークの入力層と出力層との間の隠れ層またはニューラルネットワークのその他の層）内のニューラルユニットの重みを、予測の精度に基づいて（例えば、１つ以上の追加テンプレートの予測が正確であったかどうかまたはどれだけ正確であったかに基づいて）リセットまたは変更してもよい。
【００４２】
いくつかの実施形態では、予測モデルがトレーニングされる（またはそのようなトレーニングに基づいて更新される）と、モデル管理サブシステム１１４は、予測モデルを使用してグラフデータモデルを生成してもよい。一例として、モデル管理サブシステム１１４は、予測モデルに、グラフデータモデルまたはグラフデータモデルを生成するために使用可能な情報（例えば、テンプレート、パターン、ルールまたはグラフデータモデルを生成するためのその他の情報）を生成させることができる。更なる例として、非グラフデータ表現をグラフデータ表現に変換することに関して、モデル管理サブシステム１１４は、非グラフデータベースからの非グラフデータ表現のコレクションを予測モデルへの入力として提供してもよい。そのような入力に応答して、予測モデルはグラフデータモデルの一つまたは複数のテンプレート、パターン、ルールまたはその他の情報を出力してもよい。モデル管理サブシステム１１４は、テンプレート、当該テンプレートのパターンまたは規則もしくは他の情報を使用して、グラフデータモデルが（非グラフデータベースからの）非グラフデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されるようにグラフデータモデルを生成してもよい。
【００４３】
いくつかの実施形態では、データ管理サブシステム１１２は、一つまたは複数の予測モデルを利用してノード、エッジまたはその他のデータ表現の情報を予測し、グラフまたはその他のデータ構造を生成してもよく、例えば、ノード、エッジまたはその他のデータ表現についての予測情報に基づいて、データ構造の生成、データ構造の一つまたは複数の部分の変更またはデータ構造の補足を行ってもよい。いくつかの実施形態では、データ管理サブシステム１１２は、グラフのノードまたはエッジに関連するグラフ情報、データポイントに関するその他の情報またはその他のデータソースの関係性に関する情報を取得してもよい。データ管理サブシステム１１２は、そのようなグラフ情報またはその他の情報を予測モデルに提供して予測モデルをトレーニングし、追加または代替のノード、エッジまたはその他のデータ表現についての情報を予測する（例えば、新しいグラフまたはその他のデータ構造を作成する、既存のグラフまたはその他のデータ構造を修正する、または、既存のグラフまたはその他のデータ構造を補完するために）。
【００４４】
いくつかの実施形態では、データ管理サブシステム１１２は、一つまたは複数のデータ表現セットを取得し、予測モデルをトレーニングするために当該予測モデルにデータ表現セットを提供してもよい。一例として、データ表現セットは、ノード、エッジまたはその他のデータ表現を含んでもよい。データ管理サブシステム１１２は、予測モデルがデータ表現セットの一つまたは複数の追加ノードまたは追加エッジを予測するための予測モデルへの入力として、データ表現セットの一つまたは複数のノードまたはエッジを予測モデルに提供してもよい。本明細書において、ノードまたはエッジを提供するとは、ノードまたはエッジによって表されるデータを提供することも含まれる。一使用例では、例えば、そのような追加ノードまたは追加エッジが、データ表現セットの一部として（例えば、既存のグラフの一部として）既に存在する場合であっても、予測モデルのトレーニングの一部として、予測モデルに追加ノードまたは追加エッジを予測させてもよい。したがって、一使用例では、予測モデルは、追加ノードまたは追加エッジに依存することなく（例えば、追加ノードまたは追加エッジの少なくとも一部に依存することなく、追加ノードまたは追加エッジのいずれにも依存することなく等）、追加ノードまたは追加エッジを予測してもよい。
【００４５】
更なる例として、データ管理サブシステム１１２は、複数のデータ表現セットの各データ表現セットについて、予測モデルをトレーニングするために、予測モデルが行った追加ノードまたは追加エッジの予測に対する参照フィードバックとして、データ表現セットの追加ノードまたは追加エッジを予測モデルに提供してもよい。追加ノードまたは追加エッジ（例えば、予測モデルへの入力として提供された他のノードまたはエッジに基づいて予測モデルによって生成されたノードまたはエッジ）の予測を評価するために、予測モデルは、当該追加ノードまたは追加エッジを「参照ノードまたは参照エッジ」として使用してもよい。自身の予測の評価に基づいて、予測モデルは、（予測が正確であったかどうかまたはどの程度正確であるかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより）予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加ノードまたは追加エッジの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの１つまたは複数の層を更新してもよい。
【００４６】
いくつかの実施形態では、予測モデルがトレーニングされる（またはそのようなトレーニングに基づいて更新される）と、データ管理サブシステム１１２は、予測モデルを使用して新規または既存のデータ構造に対するデータ表現を作成または修正してもよい。一例として、データ管理サブシステム１１２は、予測モデルを使用して新規または既存のグラフの新しいノードまたはエッジを作成したり、既存のグラフの一つ以上のノードまたはエッジを修正したり、その他の操作を実行したりしてもよい。いくつかの実施形態では、データ管理サブシステム１１２は、グラフのノードまたはエッジを処理するために、グラフのトラバースを実行してもよい（例えば、予測モデルは、グラフをトラバースしてトラバース中にノードまたはエッジを入力として処理し、一つまたは複数のエージェントは、トラバース中にグラフのノードを抽出するためにグラフをクロール（ｃｒａｗｌ）して、抽出したノードまたはエッジを入力として予測モデルへ提供する）。トラバースの結果として得られるそのような入力を得ると、予測モデルは、（例えば、グラフについての追加ノードまたは追加エッジとして、グラフ内の既存のノードまたはエッジを置換するための置換ノードまたは置換エッジとして）グラフについての新しいノードまたはエッジを生成してもよい。
【００４７】
いくつかの実施形態では、予測モデルによるデータ表現（例えば、ノード、エッジまたはその他のデータ表現）の生成に応答して、データ管理サブシステム１１２は、（ｉ）データ表現の生成に続いて、および（ｉｉ）データ表現を追加するか否かを表示することなく、データ表現をグラフまたは他のデータ構造にユーザ入力なしに自動的に追加してもよい。一例として、データ管理サブシステム１１２は、データ構造の新しいデータ表現として前記データ表現を追加する、または、データ構造の既存のデータ表現の代替データ表現として前記データ表現を追加してもよい、もしくは、前記データ表現に基づいてデータ構造を修正してもよい。
【００４８】
一方、いくつかの実施形態では、次いで実行されるユーザ入力に基づいて、グラフまたはその他のデータ構造への新しいデータ表現の追加（または新しいデータ表現を追加しない決定）が行われてもよい。一例として、予測モデルがノードまたはエッジを生成し、データ管理サブシステム１１２が、予測モデルからノードまたはエッジを取得し当該ノードまたはエッジに関するユーザへの通知を行ってもよい。一使用例では、通知は、前記ノードまたは前記エッジをレビューするためのプロンプト、グラフについての新規のまたは置換のノードまたはエッジとして前記ノードまたは前記エッジの使用を確認または拒否するためのプロンプト、もしくは、その他の通知を含んでもよい。ノードまたはエッジを（例えば、新規ノードまたは新規エッジとして、置換ノードまたは置換エッジとして等）追加することをユーザが了承したことに応答して、データ管理サブシステム１１２は、新規ノードまたは新規エッジをグラフに追加してもよい。あるいは、ノードまたはエッジを追加することをユーザが拒否したことに応答して、データ管理サブシステム１１２は、新規ノードまたは新規エッジをグラフに追加しないことを決定してもよい。
【００４９】
いくつかの実施形態では、データ管理サブシステム１１２は、予測モデルが生成したノードまたはエッジに関する参照フィードバックとして、ユーザの了承またはユーザの拒否を示す情報を提供してもよい。予測モデルは、ノードまたはエッジの予測を評価するために、参照フィードバックを使用してもよい。予測モデルは自身が行った予測の評価に基づいて、（例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより）予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加ノードまたは追加エッジの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの１つまたは複数の層を更新してもよい。
【００５０】
図５からの映画３および映画４に関する情報に続き、図６には、一つ以上の実施形態に係るトレーニングされた予測モデルからのテンプレートに基づいて生成された２つの異なるグラフデータ表現６００および６０２の例が示されている。グラフデータ表現６００および６０２は、予測モデルの追加のトレーニングのために生成された図５からのグラフデータ表現５０４の更新と大まかに考えられる。グラフデータ表現６００および６０２は、予測モデルによって生成されたテンプレートに基づいて、データ管理サブシステム１１２（図１）により生成されてもよい。例えば、グラフデータ表現６００は、図５からのグラフデータ表現５０４に示された映画３に関連するノード５２０およびエッジ５１８を含む。グラフデータ表現６００はまた、映画３における更なる興行収入（例えば、オーストラリアの興行収入）に関連するノード６０４およびエッジ６０６を含む。ノード６０４およびエッジ６０６に関連する情報は、図５のデータ表現５００には含まれていたが、グラフデータ表現５０４には含まれていなかった。しかしながら、予測モデルをトレーニングすることにより、予測モデルに追加テンプレートを生成させてもよく、これらの追加テンプレートは、グラフデータ表現６００のような追加グラフデータ表現を生成するために使用されてもよい。
【００５１】
グラフデータ表現６０２についての更なる例を示す。グラフデータ表現６０２は、映画３に関連するノード５２０および６０４と、エッジ５１８および６０６とを含む。グラフデータ表現６０２はまた、映画４に関連するノード６０８およびエッジ６１０を含む。本例でも、ノード６０８およびエッジ６１０に関連する情報は、図５のデータ表現５００には含まれていたが、グラフデータ表現６０２には含まれていなかった。しかしながら、予測モデルをトレーニングすることにより、予測モデルに追加テンプレートを生成させてもよく、これらの追加テンプレートは、グラフデータ表現６０２のような追加グラフデータ表現を生成するために使用されてもよい。
【００５２】
一使用例では、図７に示すように、データモデル７００は映画７０２に関連付けられている。データモデル７００は、文書ノード７０４、場所ノード７０６、人ノード７０８および組織ノード７１０を含む。文書ノード７０４は、映画のレビュー、映画の脚本、映画の要約等の情報を含むまたは（例えば、データモデル７００には示されていない他のエッジおよびノードを介して）このような情報と関連付けられていてもよい。場所ノード７０６は、撮影場所、映画に描かれた場所等の情報またはその他の情報を含むもしくはこのような情報と関連付けられていてもよい。人物ノード７０８は、映画に登場する俳優、映画の脚本の作者、映画の監督またはその他の情報を含むもしくはこのような情報と関連付けられていてもよい。組織ノード７１０は、映画を担当する制作会社またはその他の情報を含むもしくはこのような情報に関連付けられていてもよい。グラフデータモデル７００は、論理的推論を実行するために使用されてもよい。
【００５３】
別の使用例では、図８に示すように、推論を介してデータ関係を形成するのに予測モデルを使用してもよい。ステップ８０２において、２つの異なる俳優（俳優１、俳優２）および監督（監督１）についてのノード８０６、８０８および８１０と、２つの異なる映画（映画５、映画６）についてのノード８１２および８１４と、対応するエッジ８１６と、が識別されてもよい。ステップ８０４において、予測モデルは、逆に、映画が俳優を包含する場合、その俳優はその映画の俳優であると推論８２０してもよい。別の言い方をすると、エッジ８１６が映画と俳優とを結びつける場合、俳優と映画とを結びつけるインバースエッジ８２０が存在しなければならない。同様の推論８２０は、監督にも適用される。更に、予測モデルは、俳優または監督が映画の制作に関わったことを推論してもよい（そして、それを示す対応するエッジを確立してもよい）。予測モデルは誰がその映画で働いたかを知っていることから、予測モデルは、同じ映画で働いた２人が共演者であるはずだという推論８２４を行ってもよい（そして、それを示す対応するエッジを確立してもよい）。最後に、ステップ８０４において、予測モデルが共演者間の関係を確立したことから、予測モデルは俳優および監督が１人以上の共演者を介して互いに接続されていることを推論８２６（およびそれを示す対応するエッジを確立）してもよい。
【００５４】
別の使用例では、図９に示すように、データモデルに基づく推論および／または予測モデルによる教師あり学習（ｓｕｐｅｒｖｉｓｅｄｌｅａｒｎｉｎｇ）によって、予測モデルが（本明細書で使用される例では）どの映画が互いに類似しているかを予測することを可能にしてもよい。例えば、図９における第１の概略図９００には、映画５および映画７が示されており、これらは共に映画６に類似している。いくつかの実施形態では、図９の第２の概略図９０２に示されるように、教師あり学習を使用して予測モデルをトレーニングしてもよい。上述したように、所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、予測モデルからの当該所与のノードまたはエッジをグラフに追加してもよい。予測モデルが所与のノードまたはエッジの生成したことに関する参照フィードバックとして、モデル管理サブシステム１１４（図１）によってユーザの了承を示す情報が予測モデルに提供されてもよい。いくつかの実施形態では、所与のノードまたはエッジを追加することをユーザが拒否したことが取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。概略図９０２に示すように、俳優１、監督２およびキーワードに対するノード９０４、９０６および９０８は、対応するエッジ９１２、９１４および９１６によって、映画５に対するノード９１０に接続されている。いくつかの実施形態では、予測モデルは、映画５について格付けノード９１８（エッジ９２０を介して接続されている）、および、映画５についての分類ノード９２２（エッジ９２４を介して接続されている）を提案するように構成されていてもよく、これらの情報はユーザによって了承または否定されてもよい。
【００５５】
いくつかの実施形態では、類似度値またはノード間の類似度の他の尺度が判定されてもよい。一例として、図１０に示すように、プログラミングコードは、グラフのノード間の類似度値を決定するように構成されてもよい。この例では、ノードはそれぞれ、図９に示す映画５、６および７に対応している。図１０に示すように、予測は、映画６が映画５に対して０．３２３２９１の類似度値を有し、映画７が映画５に対して０．２９００１５の類似度値を有し、映画８が映画５に対して０．１５９６８７の類似度値を有することを予測するために使用されてもよい。
【００５６】
いくつかの実施形態では、モデル管理サブシステム１１４は、予測モデルに新しいノードまたはエッジの構築、ルールの学習またはオントロジーマッチの学習を行わせてもよい。一つまたは複数の実施形態において、映画のテーマに沿って、新規ノードまたは新規エッジの生成、ルールの学習およびオントロジーマッチの学習を行う例がそれぞれ、例１１００、１１０２および１１０４として図１１に示されている。例１１００に示すように、予測モデルは、映画とそれに対応するタイトル、映画が製作された年、映画の監督、映画の製作者および映画に出演した１人以上の俳優等のノードを生成してもよい。いくつかの実施形態では、予測モデルは、予測モデルに提供されたテキストまたは他の情報に基づいて、これらのノードを生成してもよい。（いくつかの実施形態では、図３に示すように、テキストは、メタデータ抽出、テキスト抽出、グラフ抽出もしくはモデル管理サブシステム１１０４またはサーバ１０２の他のサブシステムによって実行されるその他の抽出プロセスを経たものであってもよい）。例１１０２に示すように、予測モデルは、ルールを学習してもよい。予測モデルは、グラフのノードやエッジ、ノードを通る経路またはその他の情報に基づいてルールを学習してもよい。この例では、予測モデルは、ある映画が暴力と関連している場合、その映画は犯罪ジャンルの映画であることを学習してもよい。最後に、例１１０４に示すように、予測モデルは、オントロジーマッチを学習してもよい。オントロジーマッチは、同一または類似の概念を参照する異なる複数の単語を含んでもよい。この例に示すように、予測モデルは、「俳優」と「映画スター」が同じ概念に対応していることを学習してもよい。オントロジーマッチは、用語間のマッピングを見つけるために、構文的類似性、意味的類似性、構造的類似性の３種類の類似性メトリクスを使用する。構文的類似性では、編集距離、ファジー文字列マッチングまたはトリグラムコサイン類似度等の技術を使用して、ラベルの文字に基づいて２つの用語の類似度を評価する。例えば、単語「誕生日」と「生年月日」との間の類似性を検出する。意味的類似性では、手動でキュレートされた語彙データベース（例：ＷｏｒｄＮｅｔ）または別途トレーニングされた単語埋め込みモデルを利用することにより、ラベルの意味を考慮する。単語埋め込みは、トレーニングデータセットの中で類似した方法で使用された単語が類似した表現を持つように、単語の使用法に基づいて単語をベクトル表現にマッピングする。これにより、「俳優」と「映画スター」のように統語的に異なるラベルの類似性を検出することができる。そして、構造的類似性では、用語がスキーマ内でどのように定義されているかを調べる。例えば、あるスキーマは「俳優（Ａｃｔｏｒ）」および「映画（Ｆｉｌｍ）」という概念間の関係「主演（ｓｔａｒｒｅｄＩｎ）」を定義し、他のスキーマは「映画スター（ＭｏｖｉｅＳｔａｒ）」と「ムービー（Ｍｏｖｉｅ）」の間の関係「出演（ｗｏｒｋｅｄＯｎ）」を定義してもよい。概念間のマッピング（「俳優−映画スター」および「映画−ムービー」のマッピング）が確立されると、「主演」と「出演」の類似性は、同じソースおよびターゲットの種類を持つ関係に基づいて検出される。
【００５７】
いくつかの実施形態では、リクエストサブシステム１１６は、一つまたは複数のクエリプランを決定するのに一つまたは複数の予測モデルを利用してもよい。いくつかの実施形態では、リクエストサブシステム１１６は、一つ以上のグラフまたはグラフデータベースに対するパス情報（例えば、本明細書に記載されているようなパスクエリによって返されるパス）、クエリプラン情報（例えば、過去のクエリプラン、過去のクエリプランを実行するのに掛かった実際のコスト等を示す情報）またはその他の情報を、一つ以上の履歴データベースまたはその他のソースから取得してもよい。リクエストサブシステム１１６は、パス情報、クエリプラン情報またはその他の情報を予測モデルに提供して当該予測モデルをトレーニングし、一つ以上のリクエスト（例えば、ユーザからのリクエスト、予測されたリクエストまたはその他の自動生成されたリクエスト等）に応答するために使用される一つ以上のクエリプランについての情報を予測してもよい。いくつかの実施形態では、予測モデルがトレーニングされると（またはそのようなトレーニングに基づいて更新されると）、リクエストサブシステム１１６は予測モデルを使用して、（例えば、ユーザからのリクエストに応答して、リアルタイムで、リクエストの予測に応答して、等）一つ以上のクエリプランを生成してもよい。
【００５８】
［クエリ予測、格納および応答］
【００５９】
いくつかの実施形態では、リクエストサブシステム１１６は、データリクエストが将来発生することを予測するように構成されてもよい。一例として、リクエストは、クエリ送信（またはクライアントが開始したクエリ）、クライアントが開始したクエリに関連した更新リクエストまたはその他のリクエストを含んでもよい。いくつかの実施形態では、リクエストサブシステム１１６は、クエリ結果のリクエストを予測し、リクエスト予測に応じて結果のサブセットを取得してもよい。データ管理サブシステム１１２は、結果のサブセットを一時的なデータストレージ（例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ）に格納するようにしてもよい。いくつかの実施形態では、データ管理サブシステム１１２は、結果のサブセットを一つ以上のサブグラフに変換し（例えば、結果が適切なグラフ形式でない場合）、そのサブグラフを一時データストレージに格納してもよい。予測されたリクエスト（または予測されたリクエストに一致する未来のリクエスト）が発生した場合、リクエストサブシステム１１６は、一時データストレージから一つ以上のサブグラフを取得し、発生した予測されたリクエストに取得したサブグラフを使用して応答してもよい。このように、例えば、（特定のリクエストが発生する前に）変換された形式で結果を一時的に格納しておくことにより、リクエストに十分に応答するための待ち時間やその他の遅延を大幅に削減することができる場合がある。
【００６０】
いくつかの実施形態では、リクエストサブシステム１１６は、過去のクエリ（例えば、グラフデータモデルと互換性のある過去のクエリまたはその他の過去のクエリ）に基づいて、リクエストが将来発生することを予測してもよい。一例として、リクエスト予測は、例えば一つ以上の過去のクエリを示す情報であるリクエスト履歴情報、リクエストそれぞれの頻度を示す情報（例えば、過去クエリそれぞれの頻度、過去クエリに関連する更新リクエスト等）、過去リクエストを開始したユーザまたはクライアントデバイスに関する情報、または、その他の情報に基づいてもよい。あるシナリオでは、リクエストされたクエリ結果の少なくとも一部は、将来的にクライアントデバイスからリクエストが取得される前のリクエスト予測に基づいて取得されてもよい。得られたクエリ結果は、将来のリクエストの発生を予測して（例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュ等の一時データストレージまたはその他の一時データストレージに）格納されてもよく、格納されたクエリ結果は、将来のリクエストの発生時に将来のリクエストに応答するのに利用されてもよい。
【００６１】
いくつかの実施形態では、データリクエストの予測に応答して、リクエストサブシステム１１６は、予測されたデータリクエストの一つ以上のパラメータに基づいて一つ以上のグラフクエリを生成してもよい。一例として、パラメータは、キーワード、コンテンツアイテムまたはその識別子／場所（例えば、コンテンツＩＤ、コンテンツアイテムへのハイパーリンクまたはその他のポインタ等）、論理演算子（例えば、論理ＡＮＤ演算子、論理ＯＲ演算子、論理ＮＯＴ演算子またはその他の論理演算子）等の一つ以上の検索パラメータもしくはその他のパラメータを含んでもよい。一使用例では、コンテンツアイテムが画像である場合、画像を、類似の画像の検索、同一の画像または類似の画像を有するコンテンツアイテムの検索、画像内の概念と類似の概念を有するコンテンツアイテムの検索または他の結果の検索に使用することができる。別の使用例では、コンテンツアイテムが動画である場合、動画を、類似の動画の検索、同一の動画または類似の動画を有するコンテンツアイテムの検索、ビデオ内の概念と類似の概念を有するコンテンツアイテムの検索または他の結果の検索のために使用することができる。
【００６２】
いくつかの実施形態では、リクエストサブシステム１１６は、グラフデータモデルに基づいて、グラフクエリの少なくとも一つを、（例えば、一つ以上のＳＱＬまたはその他の非グラフデータベースと互換性のある）一つ以上の非グラフクエリに変換してもよい。一例として、非グラフクエリは、一つ以上の非グラフデータベースからデータサブセットを取得するために実行されてもよい。いくつかの実施形態では、グラフクエリの少なくとも一つは、一つ以上のグラフデータベースからデータサブセットを取得するために実行されてもよい。一例として、グラフクエリの一部が、非グラフデータベースに格納されている（予測データ要求に関連する）結果を取得するために非グラフクエリに変換されてもよい。しかしながら、その他のグラフクエリがグラフデータベースに格納された結果に関連している場合、グラフクエリを非グラフクエリに変換する必要はない場合もある。あるシナリオでは、例えば、リクエストサブシステム１１６は、グラフクエリに関連する結果がどこに格納されているか（例えば、非グラフデータベースまたはグラフデータベースのいずれかに結果が格納されているか）を判定し、そのような判定に基づいて、関連する結果を取得できる非グラフデータベースまたはグラフデータベースを選択してもよい。（所与のグラフクエリに関連する少なくともいくつかの結果を得るために）非グラフデータベースの選択に基づいて、リクエストサブシステム１１６は、グラフクエリを非グラフデータベースと互換性のある非グラフクエリに変換してもよい。
【００６３】
いくつかの実施形態では、データ管理サブシステム１１２は、グラフ、（例えば、集合的にグラフまたはその一部を構成している）一つ以上のサブグラフ、もしくは、一つ以上のグラフデータ表現（例えば、集合的にグラフ、サブグラフまたはグラフ／サブグラフの一部を構成するノード、エッジ等）を生成するように構成されてもよい。本明細書に示されるように、いくつかの実施形態では、データ管理サブシステム１１２は、（例えば、ＳＱＬテーブルまたは他のデータソースに格納されている）データ表現を（例えば、特定のグラフデータベースと互換性がある）グラフ表現に変換するのに、一つ以上のグラフデータモデルを利用してもよい。データリクエストが将来発生するという予測に応答して、リクエストサブシステム１１６は、将来のデータリクエストによって要求されると予測される一つ以上のデータサブセットを、一つ以上のデータソースから取得してもよい。そのようなデータサブセットを取得すると、データ管理サブシステム１１２は、本明細書に記載された一つまたは複数の技術に従って、（例えば、非グラフ形式またはその他の互換性を有さない表現の）データサブセットを、（例えば、特定のグラフデータベースと互換性を有する）一つ以上のグラフデータ表現、または、当該グラフデータ表現を含む一つ以上のサブグラフへと変換するために、グラフデータモデルを使用してもよい。
【００６４】
いくつかの実施形態では、データリクエストの予測に応答して、一つまたは複数のデータサブセットが、一つまたは複数の非グラフデータソース（例えば、ＳＱＬデータベースまたはその他の非グラフデータソース）から取得されてもよく、一つまたはその他のデータサブセットが、一つまたは複数のグラフデータソース（例えば、グラフデータベースまたはその他のグラフデータソース）から取得されてもよい。一例として、非グラフデータソースから、非グラフデータ表現（例えば、ＳＱＬ行または列またはその他の非グラフデータ表現）として（非グラフデータソースからの）データサブセットを取得してもよい。また、グラフデータソースから、（例えば、特定のグラフデータベースと互換性を有する、グラフデータベースと互換性を有さない等）ノード、エッジまたはその他のグラフデータ表現として（グラフデータソースからの）その他のデータサブセットを取得してもよい。データ管理サブシステム１１２は、（非グラフデータソースからの）複数のデータサブセットを表す一つ以上のサブグラフ、および、（グラフデータソースからの）その他の複数のデータサブセットを表す一つ以上のサブグラフを生成してもよい。一例として、非グラフソースから取得されたデータサブセットに関して、データ管理サブシステム１１２は、グラフデータモデルを使用して、非グラフデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換し、グラフデータ表現を上記のサブグラフへとコンパイルしてもよい。別の例として、グラフソースから取得されたデータサブセットに関して、データ管理サブシステム１１２は、グラフデータモデルを使用して、（そのようなデータサブセットの）グラフデータ表現をその他の表現のサブグラフへとコンパイルしてもよい。グラフデータ表現がグラフデータベースと互換性を有さない形式である場合、データ管理サブシステム１１２は、グラフデータモデルを使用して、互換性のないデータ表現を互換性のあるグラフデータ表現へと変換し、互換性のあるグラフデータ表現をその他の表現のサブグラフへとコンパイルしてもよい。
【００６５】
いくつかの実施形態では、データ管理サブシステム１１２は、（非グラフデータサブセットに由来する）サブグラフ、および（グラフデータサブセットに由来する）その他のサブグラフを一時データストレージに格納してもよい。予測されたデータリクエストに一致する次のデータリクエストを取得することに応じて、要求サブシステム１１２は、一時データストレージから、サブグラフ、他のサブグラフまたはその他の情報を取得し、取得されたこのような情報を使用して前記次のデータリクエストに応答してもよい。いくつかの実施形態では、リクエストサブシステムは、取得したサブグラフのノード、エッジまたはその他のグラフデータ表現からデータサブセットを抽出し、次のデータリクエストに応答して抽出したデータサブセットを返してもよい。
【００６６】
いくつかの実施形態では、予測されたデータリクエストと一致する次のデータリクエストを得たことに応答して、リクエストサブシステム１１６は、当該次のデータリクエストに応答するためのクエリプランを生成してもよい。一例として、候補となるクエリプランは、クエリプラン（またはテンプレートクエリプラン）のコレクションから選択された後、前記次のデータリクエストに固有のクエリプランが生成されるように修正されてもよい。いくつかの実施形態では、予測されたデータリクエストに関連するサブグラフまたはその他の情報が一時データストレージに記憶されている場合、（ｉ）一時データストレージからサブグラフまたは他の情報を取得すること、（ｉｉ）他のデータソース（例えば、グラフデータベース、非グラフデータベース等）からその他の情報を取得すること、を含むようにクエリプランが生成されてもよい。一例として、クエリプランに基づいて、リクエストサブシステム１１６は、予測されたデータリクエストに関連する一つ以上のサブグラフを一時データストレージから、一つ以上のその他のデータサブセット（例えば、予測データ要求に関連する、後続データ要求に関連する等）を一つまたは複数のデータソースから取得してもよい。リクエストサブシステム１１６は、次のデータ要求に応答するために、サブグラフ（またはサブグラフが表すデータセット）およびその他のデータサブセットを使用してもよい。
【００６７】
いくつかの実施形態では、データリクエストの予測に応答して実行されるクエリ（例えば、グラフクエリ、非グラフクエリ）は、予測されたデータリクエストがクライアントデバイスから取得されていた場合に予測されたデータリクエストに応答するために実行されたであろうクエリのセットの一部であってもよい。いくつかの実施形態では、データリクエストの予測から、一連のクエリのうちの一つ以上のその他のクエリの実行が発生しない場合がある。一例として、その他についてのクエリの実行は、リクエストの予測から生じなくてもよい。
【００６８】
いくつかの実施形態では、クエリに対する結果のサブセットは、リクエストがクライアントデバイスから取得されていた場合に当該リクエストに応答するために取得されていたであろう結果のセットの一部であってもよい。例えば、結果のセットが、クライアントデバイスに返答した第１のウェブページで提供されていたであろう全ての結果（例えば、最も関連性の高い結果のリストまたはその他の提示）である場合、結果のサブセットは、第１のウェブページで提供されていたそれら結果の一部であってもよい。別の使用例では、結果のセットは、リクエストがクライアントデバイスから取得されていた場合に当該リクエストに応答するために取得されていたであろう全ての結果であってもよい。一例として、（結果の前記セットの）その他のサブセットが（例えば、リクエスト予測に応答した一つ以上のクエリを介して）得られた場合であっても、（結果の前記セットの）その他のサブセットを一時データストレージに記憶しないことを（例えば、本明細書に記載されているように、頻度情報、コスト情報等に基づいて）決定してもよい。
【００６９】
いくつかの実施形態では、サブグラフまたはその他のデータの取得もしくは格納（もしくはその他のサブグラフまたはその他のデータを取得または格納しない決定）は、頻度情報、コスト情報またはその他の情報に基づいてもよい。いくつかの実施形態では、リクエストサブシステム１１６は、頻度情報、コスト情報またはその他の情報に基づいて、（他のクエリよりも）実行されるべきクエリのサブセットの選択を実行してもよい。頻度情報は、前記リクエストまたはその他の情報と一致するリクエストの頻度を示す情報を含んでもよい。コスト情報は、一時データストレージにデータを格納するのにかかるコストを示す情報、それぞれのクエリを実行するためにかかるコストを示す情報またはその他の情報を含んでもよい。このようなコストとしては、例えば、金銭的なコスト、コンピュータリソースのコスト（例えば、帯域幅等のネットワークリソースの使用量やその他のコンピュータリソースのコスト）、その他のコストが含まれる。
【００７０】
リクエスト予測に応答して、例えば、どの結果が得られるかまたは保存されるか、取得されるまたは保存される結果の量はどのくらいかを決定するためにコスト／ベネフィット分析が実行されてもよい。一実施形態では、リクエストサブシステム１１６は、クエリを実行するかどうか（またはどのクエリを実行するか）を、それぞれのコスト（例えば、データソースにデータを問い合わせるためのコスト）、これらクエリから得られる結果の利点（例えば、予測されたリクエストに一致するリクエストの頻度、リクエストを行った者の好みに基づいてどの結果が他の結果よりも優先されるべきか等）、それらの結果を一時データストレージに格納するためのそれぞれのコスト、またはその他の基準に基づいて、決定してもよい。更なる使用例では、これらクエリのコスト、これらクエリから得られる結果のそれぞれの利点、これらの結果を一時データストレージに格納するためのそれぞれのコストまたはその他の基準に基づいて、それぞれのクエリに（実行される前に）スコアを割り当ててもよい。一例として、データソースにデータを問い合わせるためのコストが低いほど、対応するクエリに割り当てられた（他のクエリのスコアと比較して）スコアが高くなるようにしてもよい。予測されたリクエストに一致するリクエストの頻度が高いほど、予測されたリクエストに関連するクエリに割り当てられるスコアが高くなってもよい。あるクエリから得られた結果がリクエストを行った者に（ユーザーインターフェース上で）提示される可能性が（例えば、リクエストを行った者の好みに基づいて他のクエリから得られた他の結果よりも）高いほど、そのクエリのスコアを（他のクエリのスコアと比較して）高くしてもよい。それぞれに割り当てられたスコアに基づいて、リクエストサブシステム１１６は、それらクエリのうちの一つ以上のクエリを実行するかどうかを決定してもよい。一例として、リクエストサブシステム１１６は、そのようなクエリの一のサブセットが他のサブセットよりも大きなスコアを有することに基づいて、実行するクエリのサブセットを選択してもよい。
【００７１】
別の使用例では、結果が得られた場合でも、一時リクエストサブシステム１１６は、一時データストレージでこれら結果それぞれを記憶するためのコスト、これらの結果それぞれの利点またはその他の基準に基づいて、結果を格納するかどうか（または格納されるべき結果の量）を決定してもよい。更なる使用例では、これら結果それぞれを一時データストレージに格納するためのコスト、これらの結果それぞれの利点またはその他の基準に基づいて、それぞれの結果（例えば、結果のサブセット）にスコアを割り当ててもよい。一例として、結果の特定のサブセットを格納するためのコストが低いほど、結果のサブセットにより高いスコアを割り当てることに影響が大きくなってもよい。予測されたリクエストに一致するリクエストの頻度が高いほど、予測されたリクエストに関連する結果に割り当てられるスコアが高くなってもよい。結果の特定のサブセットがリクエストを行った者に（ユーザーインターフェース上で）提示される可能性が（例えば、リクエストを行った者の好みに基づいて他の結果よりも）高いほど、そのような結果のサブセットの高いスコアに影響を与えるようにしてもよい。それぞれに割り当てられたスコアに基づいて、リクエストサブシステム１１６は、結果のうちのどれが一時データストレージに格納されるかを決定してもよい。リクエストサブシステム１１６は、例えば、（例えば、実行されたクエリから得られた）結果の他のサブセットよりも大きなスコアを有する結果のサブセットに基づいて、格納される結果のサブセットを選択してもよい。
【００７２】
いくつかの実施形態では、（本明細書に記載されているように）一つまたは複数のリクエストの予測に応答して、結果が得られるまたは格納されるが、他のリクエストの予測に応答して（例えば、それら他のリクエストそれぞれが発生する確率が確実性の閾値を満たしても）、結果が得られないまたは格納されなくてもよい。一例として、リクエストサブシステム１１６は、予測されたリクエストに関して実行されたコスト／ベネフィット分析に基づいて（例えば、頻度情報、コスト情報またはその他の情報に基づいて）、リクエストの予測に応答して、いかなるクエリも実行しないことを決定してもよい。別の例として、リクエストサブシステム１１６は、予測されたリクエストに関して実行されたコスト／ベネフィット分析に基づいて（例えば、頻度情報、コスト情報またはその他の情報に基づいて）、リクエスト予測から得られた結果を格納しないことを決定してもよい。
【００７３】
いくつかの実施形態では、モデル管理サブシステム１１４は、リクエスト履歴情報を取得し、予測モデルをトレーニングするために、リクエスト履歴情報を予測モデルに提供するように構成されてもよい。リクエスト履歴情報としては、（ｉ）過去リクエストのコレクション（例えば、データに対してユーザが送信したリクエスト）、（ｉｉ）過去リクエストから生成された過去クエリのコレクション（例えば、グラフデータモデルと互換性を有するように構成されたグラフクエリ）、（ｉｉｉ）過去リクエストまたは過去クエリが取得された時刻を示すタイミング情報、（ｉｖ）過去リクエストまたは過去クエリの頻度を示す頻度情報、（ｖ）過去リクエストを送信したユーザを示すユーザ情報（個人を特定できないユーザ識別子またはその他の識別子等）もしくはユーザの種類（年齢、性別、場所またはその他の分類等）、および、そのユーザまたはユーザの種類がどの過去リクエストを送信したか、もしくは、（ｖｉ）その他の情報が含まれてもよい。
【００７４】
いくつかの実施形態では、予測モデルは、リクエスト履歴情報の少なくとも１種類を取得し、取得した情報に基づいてリクエスト履歴情報の少なくとも別の種類を予測するように構成されてもよい。一例として、モデル管理サブシステム１１４は、予測モデルへの入力として提供される過去リクエストまたは過去クエリのそれぞれについて、タイミング情報（過去リクエストまたは過去クエリが取得された時刻を示す）、頻度情報（過去リクエストまたは過去クエリの頻度を示す）、ユーザ情報（過去リクエストを送信したユーザまたはユーザの種類を示す）もしくは過去リクエストまたは過去クエリに関連するその他の情報を、予測モデルが行った、タイミング情報、頻度情報、ユーザ情報もしくは過去リクエストまたは過去クエリについてのその他の情報の予測に対する参照フィードバックとして提供してもよく、それにより予測モデルがトレーニングされてもよい。予測モデルは、自身が予測した情報を評価するために参照フィードバックを使用してもよい。別の例として、予測モデルへの入力として提供されるタイミング情報、頻度情報またはユーザ情報について、モデル管理サブシステム１１４は入力情報に関連付けられた過去リクエストまたは過去クエリを、予測モデルが行ったリクエストまたはクエリの予測に対する参照フィードバックとして提供し、予測モデルがトレーニングされてもよい。予測モデルは、参照フィードバックを使用して、自身が行ったリクエストまたはクエリの予測を評価してもよい。予測モデルは自身が行った予測の評価に基づいて、（例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することにより）予測モデルの一つまたは複数の部分を更新してもよい。予測モデルがニューラルネットワークである一使用例では、ニューラルネットワークは、追加テンプレートの予測に関するニューラルネットワークの評価に基づいて、ニューラルネットワークの１つまたは複数の層を更新してもよい。
【００７５】
いくつかの実施形態では、予測モデルがトレーニングされる（またはそのようなトレーニングに基づいて更新される）と、モデル管理サブシステム１１４は、当該予測モデルを使用して、（ｉ）一つ以上のリクエストまたはクエリ、（ｉｉ）これらリクエストまたはクエリのタイミング情報、（ｉｉｉ）これらリクエストまたはクエリの頻度情報、（ｉｖ）これらリクエストまたはクエリについてのユーザ情報、または（ｖ）これらリクエストまたはクエリについてのその他の情報を予測してもよい。一例として、そのような予測は、予測されたリクエストの一つ以上のパラメータ、例えば、検索パラメータ（例えば、キーワード、コンテンツアイテムまたはその識別子／場所、論理演算子等）またはその他のパラメータを含んでもよい。別の例として、そのような予測は、予測されたリクエスト（または予測されたリクエストに一致する次のリクエスト）の一つ以上の時間、予測されたリクエストの頻度、そのリクエストを送信することが予測されたユーザまたはユーザの種類またはその他の予測を含んでもよい。このような予測に基づいて、リクエストサブシステム１１６は、結果の一つ以上のサブセットを取得し、結果を本明細書に記載されているように一時データストレージ（例えば、サーバキャッシュ、ウェブキャッシュ、メモリキャッシュまたはその他の一時データストレージ）に（例えば、グラフデータベースまたは他の形態と互換性を有する変換されたサブグラフの形態で）格納してもよい。予測されたリクエスト（または予測されたリクエストに一致する未来のリクエスト）が発生した場合、リクエストサブシステム１１６は、一時データストレージから一つ以上の結果を取得し、取得した結果を使用して発生した予測されたリクエストに応答してもよい。
【００７６】
［クエリセットの最適化］
【００７７】
いくつかの実施形態では、最適化サブシステム１１８は、データ検索プロセスにおけるクエリ関連リソースの使用量を削減するように構成されてもよい。
いくつかの実施形態では、最適化サブシステム１１８は、データリクエスト（例えば、ユーザからの明示的なリクエストまたはその他のリクエスト）から派生したクエリセット、例えば、グラフクエリ（またはデータリクエストに関連するその他のクエリ）が変換されるクエリセットを最適化することによって、そのようなクエリ関連のリソース使用量を削減してもよい。いくつかの実施形態では、そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。このような最適化は、充足可能性の（例えば、特定のクエリから得られた複数の結果の組み合わせに関連する）問題、非互換性の問題または他の問題の予測に基づいて、このような問題またはこのような問題の悪影響を回避または軽減するために実行され得る。
【００７８】
いくつかの実施形態では、リクエストサブシステム１１６は、複数のデータリクエストを（例えば、一つ以上のユーザデバイスから）取得して処理し、複数のデータリクエストが共通の対象データを求めているかどうか（例えば、複数のデータリクエストが求めるデータの少なくとも一部が当該複数のデータリクエストの間で同じであるかどうか）を判定してもよい。データリクエストが共通の対象データを求めていると判定されたことに基づいて、リクエストサブシステム１１６は、全てのデータリクエストに応答するのに一つ以上のクエリを（例えば、クエリセットの一部として）生成してもよい。ここで、クエリの各々は複数のデータリクエストによって共通に求められているデータの少なくとも一部を得るように構成されており、当該共通のデータ部分を取得するのにそのような一つのクエリが使用できる。いくつかの実施形態では、リクエストサブシステム１１６は、複数のクエリのうちの少なくとも一つが、共通に求められるデータの第１のセットを第１のソースから取得するように構成され、複数のクエリのうちの少なくとも別の一つが、共通に求められるデータの第２のセットを第２のソースから取得するように構成されるように、前記複数のクエリを生成してもよい。一例として、共通に求められているデータの第１のセットを第１のソースから取得するための所定のクエリは、第１のソースと互換性を有し、第１のソースと互換性を有するが第２のソースとは互換性がないように構成されてもよい。別の例として、共通に求められているデータの第２のセットを第２のソースから取得するための所定のクエリは、第２のソースと互換性を有し、第２のソースと互換性を有するが第１のソースとは互換性がないように構成されてもよい。異なるソース（例えば、第１のソース、第２のソース等）から共通に求められているデータのセットを取得することに応答して、リクエストサブシステム１１６は、共通に求められているデータのセットを組み合わせ、組み合わされたセットを返すことにより、データリクエストのそれぞれに応答するように構成されてもよい。
【００７９】
いくつかの実施形態では、リクエストサブシステム１１６は、（例えば、一つ以上のユーザデバイスから取得される）複数のデータリクエストがそれぞれ、全てのデータリクエストに共通する２つ以上の属性に関連付けられた２つ以上の値を求めることを判定してもよい。一例として、データリクエストは、（ｉ）グループＡ内の複数の個人の名前、グループＢ内の複数の個人の名前等を一括して求めるように決定されてもよいし、（ｉｉ）グループＡ内の複数の個人の住所、グループＢ内の複数の個人の住所等を一括して求めるように決定されてもよい。一使用例では、第１のデータリクエストは、複数のグループのうちの一つの第１個人の名前およびアドレスを求めてもよく、第２のデータリクエストは、複数のグループのうちの一つの第２個人の名前およびアドレスを求めてもよい。いくつかの実施形態では、（ｉ）第１の共通属性（例えば、名前）に関連付けられた値が第１のデータソースから取得可能であり、（ｉｉ）第２の共通属性（例えば、アドレス）に関連付けられた値が第２のデータソースから取得可能であるという判定に基づいて、リクエストサブシステム１１６は（例えば、クエリセットの一部として）一つ以上のクエリを生成してもよい。ここで、複数のクエリのうちの少なくとも一つは、第１の共通属性に関連付けられた値を第１のデータソースから取得するように構成され、複数のクエリのうちの少なくとも別の一つは、第２の共通属性に関連付けられた値を第２のデータソースから取得するように構成される。いくつかの実施形態では、データリクエストのそれぞれについて、リクエストサブシステム１１６は、第１のデータソースから取得されたリクエストした値と、第２のデータソースから取得されたリクエストした値とを結合し、結合されたリクエスト値を返してデータリクエストに応答してもよい。あるシナリオでは、例えば、それぞれが異なる個人の名前と住所を求める多数のデータリクエスト（例えば、数十個のリクエスト、数百個のリクエスト、数千個のリクエスト等）があるかもしれないが、それら全てのデータリクエストについて名前を第１のデータソースから取得するために一つのクエリが生成され、それら全てのデータリクエストについて住所を第２のデータソースから取得するために別のクエリが生成されてもよい。２つのクエリを実行して名前および住所の少なくとも一部を取得すると、各個人の名前と住所とが結合され、対応するデータリクエスト（すなわち、その特定の個人の名前と住所を求めたリクエスト）に応答するべく返答されてもよい。
【００８０】
いくつかの実施形態では、一つまたは複数の属性に関連付けられた一つまたは複数の値を求める第１のリクエストを取得した後、リクエストサブシステム１１６は、当該第１のリクエストに応答するためにデータを取得するように構成された一つ以上のクエリを生成または実行する前に所定の時間が経過するのを待ってもよい。この待機期間は、他のリクエスト（第１のリクエストで求められた属性と共通する少なくとも一つの属性に関連付けられた値を求める）を取得することを可能にし、それによって第１のリクエストおよび他のリクエストに応答するために実行する必要があるクエリの全体的な数を減少させる。いくつかの実施形態では、リクエストサブシステム１１６は、所定の時間が経過したかどうか（例えば、所定のリクエストを取得してからの時間）を判定してもよい。所定の時間が経過していない場合、リクエストサブシステム１１６は、所与のリクエストのデータを取得するように構成された一つ以上のクエリの生成または実行を遅らせてもよい。一方、所定の時間が経過している場合、リクエストサブシステム１１６は、所与のリクエストを取得した後、どの他のリクエストが取得されたかを判定してもよい。所与のリクエストおよび所与のリクエストで求められた値として少なくとも一つの属性に関連付けられた値を求める他のリクエストについて、リクエストサブシステム１１６は、これらリクエストが求める共通の属性に関連付けられた値を取得するように構成された一つ以上のクエリを生成し実行してもよい。
【００８１】
いくつかの実施形態では、リクエストサブシステム１１６は、（ｉ）過去リクエストのコレクション、（ｉｉ）過去リクエストから生成された過去クエリのコレクション、（ｉｉｉ）過去リクエストまたは過去クエリが取得された時刻を示すタイミング情報、（ｉｖ）過去リクエストまたは過去クエリの頻度を示す頻度情報、（ｖ）過去リクエストを送信したユーザまたはユーザの種類を示すユーザ情報および当該ユーザまたはユーザの種類によってどの過去リクエストが送信されたかを示すユーザ情報、もしくは（ｖｉ）その他の情報、といったリクエスト履歴情報に基づいて（本明細書に記載されている待ち時間として）所定の時間を設定してもよい。いくつかの実施形態では、リクエストの分類毎に所定の時間が設定されてもよく、リクエストは、リクエストによって求められたコンテンツ、ユーザまたはユーザの種類（例えば、年齢、性別、場所またはユーザの他の分類）またはその他の基準に基づいて分類される。いくつかの実施形態では、リクエストの取得に応答して（例えば、リアルタイムで）、そのような所定の時間が所与のリクエストに対して決定されてもよい。一例として、リクエストを取得することに応答して、リクエストサブシステム１１６はリクエストのカテゴリを決定した後、（例えば、より多くの類似したリクエストを取得できるようにするための）待ち時間として使用される所定の時間量を決定してもよい。
【００８２】
本明細書で示されるように、いくつかの実施形態では、リクエストサブシステム１１６は、それぞれが共通の（例えば、全てのリクエストに共通の）属性に関連付けられた値を求めるリクエストの予測等、一つ以上のリクエストが将来発生することを予測してもよい。本明細書で説明されるように、そのような予測はリクエスト履歴情報に基づいてもよい。いくつかの実施形態では、リクエストサブシステム１１６は、将来のリクエストに関連する予測（例えば、各カテゴリのリクエストがいつまたはどの程度の頻度で発生するかに関する予測）に基づいて、リクエストの各カテゴリの所与の時間を設定してもよい。また本明細書で説明されるように、そのような予測を示す情報を出力するために、予測モデルはリクエスト履歴情報に基づいてトレーニングされてもよい。いくつかの実施形態では、予測モデルは自身の予測を評価するように構成されてもよく、そのような評価に基づいて、予測モデルは、（例えば、予測が正確であったかどうかまたは予測がどの程度正確であったかに応じて、予測モデルのパラメータまたは予測モデルのその他の部分の重みを調整することによって）予測モデルの一つ以上の部分を更新してもよい。
【００８３】
いくつかの実施形態では、リクエストサブシステム１１６は、ユーザデバイスまたは他のソースからデータリクエストを取得し、データリクエストに基づいて一つ以上のクエリを生成してもよい。いくつかの実施形態では、リクエストサブシステム１１６は、データリクエストに基づいてグラフクエリを生成してもよい。グラフクエリを取得することに応答して、最適化サブシステム１１８は、グラフクエリを、複数のクエリおよびこれらクエリをリンクするクエリ演算子（例えば、ｕｎｉｏｎ、ｊｏｉｎまたはその他のクエリ演算子）を有するクエリセットに変換してもよい。いくつかの実施形態では、グラフクエリはグラフデータベースと互換性を有し、グラフクエリを使用して、一つ以上の対象データソースと互換性を有するクエリセットに対する複数のクエリを生成してもよい。一例として、データソースのデータベース管理システムに従って、データソースからデータを取得するためにデータソースと互換性を有するクエリを実行してもよい。いくつかの実施形態では、前記複数のクエリは、対象データソースと互換性があるが、（グラフクエリは互換性を有する）グラフデータベースとは互換性がないものであってもよい。いくつかの実施形態では、データリクエストに基づいて、リクエストサブシステム１１６は、第１の再帰クエリ（例えば、グラフデータベースと互換性のあるグラフ再帰クエリ）を生成してもよい。リクエストサブシステム１１６は、第１の再帰クエリを、（例えば、クエリセットに対して）一つ以上の第２の再帰クエリに変換してもよい。一例として、第２の再帰クエリの各々は対象データソースと互換性を有するように構成されていてもよく、（例えば、対象データソースをホストしている）対象のコンピュータシステムによって第２の再帰クエリの一つが実行されると、実行された再帰クエリは、対象コンピュータシステムに第２の再帰クエリから複数のクエリを生成させ、データリクエストに関連するデータを対象データソースから取得するべく当該複数のクエリを実行させる。
【００８４】
いくつかの実施形態では、上記のクエリセットに関して、最適化サブシステム１１８は、上記クエリセットの一つ以上の部分に関連する一つ以上の問題を予測し、予測された問題に基づいてクエリセットに対する一つ以上の最適化を実行して、クエリセットを更新してもよい。そのように更新されたクエリセットがグラフクエリ（したがって、データリクエスト）を満たすために実行される場合、予測された問題または予測された問題の負の影響は回避されるまたは緩和され得る。
【００８５】
一例として、データリクエストは、ある従業員の給与と、その従業員に割り当てられたプロジェクトを尋ねてもよい。データリクエストは、（例えば、「従業員」ノードと「給与」ノードとが「ｈａｓＳａｌａｒｙ」エッジで接続され、「従業員」ノードと「プロジェクト」ノードとが「ｗｏｒｋｓＯｎ」エッジで接続されているグラフのデータ表現として、クエリの結果が格納される方法を反映した）以下の２つのパターンを有するグラフクエリとして記述されてもよい。
？従業員：ｈａｓＳａｌａｒｙ？給与
？従業員：ｗｏｒｋｓＯｎ？プロジェクト
【００８６】
ある使用例では、上記の例に関して、マッピング（またはそのようなマッピングによって定義されたテンプレート）が、給与情報またはプロジェクト情報を含むＲＤＢＭＳ内のソーステーブルを示してもよく、最適化サブシステム１１８は当該マッピングを（データベース固有のクエリトランスレータと共に）使用してグラフクエリをデータベースの言語でのクエリセットに変換してもよい。場合によっては、関係の各々に対して複数のソースが存在してもよく、その結果、多数のクエリ演算子を有するクエリセットが生成される。例えば、ある従業員が複数のプロジェクトで働いていて、これらのプロジェクトが複数のテーブルに格納されている場合がある。場合によっては、（ＲＤＢＭＳから結果を得るために）グラフクエリをクエリセットへ変換することにより、一つのパターンに対応するソースに対するＵＮＩＯＮが生成され、各パターンに対するＵＮＩＯＮの直交積をＳＱＬｊｏｉｎとして生成してもよい。グラフクエリにＮ個のパターンがあり、各タームに対してＭ個のソースがある場合、クエリ変換は、Ｎ×Ｍ個のＵＮＩＯＮを生成してもよい。最適化サブシステム１１８は、ＵＮＩＯＮの数を減らしてもよいし、所与のＵＮＩＯＮ内の結合（ｊｏｉｎ）を単純化してもよいし、そうでなければ、クエリセットを最適化してもよい。
【００８７】
いくつかの実施形態では、最適化サブシステム１１８は、クエリセット（例えば、グラフクエリまたは他のクエリから変換された初期クエリセット）に関連する一つ以上の充足可能性の問題を予測してもよい。幾つかの実施形態では、（２つのクエリから得られた結果の組み合わせに関連する）充足可能性の問題の予測に基づいて、最適化システム１１８は、クエリセットからこの２つのクエリをリンクするクエリ演算子を削除するか、このクエリセットに対して他の最適化を実行して当該クエリセットを更新してもよい。上記のように、システム１００が、グラフクエリ（したがって、データリクエスト）を満たすために更新されたクエリセットを実行する場合、システム１００は、（ｉ）クエリセットの１つ以上の部分を実行し、そのようなクエリセットの実行から派生した互換性のない結果を組み合せようとするのに使用されるリソースの無駄、（ｉｉ）そのような実行と試行から生じる遅延、または（ｉｉｉ）その他の悪影響といった、充足可能性の問題または充足可能性の問題の負の影響を回避または軽減することができる。
【００８８】
いくつかの実施形態では、クエリセット内の複数のクエリが、一つ以上のクエリ演算子（例えば、ｕｎｉｏｎ、ｊｏｉｎまたはその他のクエリ演算子）によってリンクされている場合、最適化サブシステム１１８は、リンクされたクエリに対する結果を得るための一つ以上のソースを決定してもよい。複数のクエリのうちの２つについて結果を得るべきソースが少なくとも２つある（そして、そのような結果は、最初はグラフデータベースと互換性を有さない）場合、最適化サブシステム１１８は、そのようなソースからのデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されたテンプレートの評価を行ってもよい。最適化サブシステム１１８が、少なくとも２つのそのようなテンプレートに関連する非互換性があると判定した場合、最適化サブシステム１１８は、（２つのクエリに由来する結果を組み合わせることに関連する）満足度の問題を予測し、２つのクエリをリンクするクエリ演算子をクエリセットから削除するまたはクエリセットを更新するためにクエリセットに対して他の最適化を実行してもよい。ある使用例では、マッピングは、グローバルに一意な識別子（ＩＲＩと称される場合もある）を作成することで、ＲＤＢＭＳからの行をグラフ内のノードへと変換するためのテンプレートを定義してもよい。例として、ＩＤ１２３の従業員は、「ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｏｒｇ／ｅｍｐｌｏｙｅｅ／１２３」のような識別子にマッピングされてもよい。２つのソースに対するマッピングが互換性のないテンプレートを使用している場合、最適化サブシステム１１８は、結合結果が空になることを予測して、当該結合結果を排除してもよい。例として、あるテンプレートが「ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｏｒｇ／ｅｍｐｌｏｙｅｅ／｛ＩＤ｝」の形をしていて、別のテンプレートが「ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｏｒｇ／ｄｅｐａｒｔｍｅｎｔ／｛ＩＤ｝」の形をしている場合、ＩＤの値に関係なく、２つのテンプレートは互換性がないと結論づけることができる。つまり、テンプレートには固定部分および変数部分、例えば「ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｏｒｇ／ｅｍｐｌｏｙｅｅ／」および「｛ＩＤ｝」がある。クエリを実行する前の変数の値は未知であるが、テンプレートの固定部分が不整合であれば、その不整合性を利用して、２つのテンプレート間の結合可能性を除外することができる。
【００８９】
いくつかの実施形態では、最適化サブシステム１１８は、クエリセット内の一つ以上のクエリ演算子によってリンクされたクエリに対する結果に対応するデータ型を決定し、当該データ型に関連する一つ以上の非互換性に基づいてクエリセットの最適化を実行してもよい。いくつかの実施形態では、最適化サブシステム１１８は、（クエリセットにおける複数のリンクされたクエリのうちの一つからの）結果の第１のセットをグラフデータベース内に格納するために使用される第１のデータ型が、（前記複数のリンクされたクエリのうちの別の一つからの）結果の第２のセットを前記グラフデータベース内に格納するために使用される第２のデータ型と非互換であると判定してもよい。データ型の非互換性との判定に基づいて、最適化サブシステム１１８は、（２つのクエリに由来する結果を組み合わせることに関連して）充足性の問題を予測し、クエリセットから前記２つのクエリをリンクしているクエリ演算子を削除するまたはクエリセットを更新するためにクエリセットに対してその他の最適化を実行してもよい。あるシナリオでは、例えば、テーブル内の列は、ＩＲＩの代わりにグラフ内のプリミティブ値（例えば、整数、文字列、日付等）にマッピングされてもよい。クエリが２つのテーブルから２つの互換性のない型（例えば、整数と日付）を結合しようとした場合、そのような試みは（このシナリオでは）失敗に終わる。このように、２つのデータセットをそれぞれ格納するためにそのようなデータ型が使用されると判断される場合、最適化サブシステム１１８は、充足可能性の問題（例えば、２つの互換性のない型の結合の失敗）を予測し、適切な最適化を実行してもよい（例えば、対応するクエリ演算子の削除、クエリ演算子の代わりに別の演算子を補足する、等）。
【００９０】
いくつかの実施形態では、クエリセットに関連する一つ以上の充足可能性の問題の予測に基づいて、最適化サブシステム１１８は、予測された充足可能性の問題およびクエリセットに関連する一つ以上の更なるの充足可能性問題を予測してもよい。最適化サブシステム１１８は、更なる充足可能性問題に関連する一つ以上のクエリ演算子を削除するまたはクエリセットに対してその他の最適化を実行してもよい。いくつかの実施形態では、第１のクエリ、第２のクエリおよび一つ以上のその他のクエリは、クエリセット内のクエリ演算子によってリンクされていてもよい。第１のクエリおよび第２のクエリに関連する（例えば、第１のクエリおよび第２のクエリに由来する結果を組み合わせることに関連した）第１の充足可能性の問題の予測に基づいて、最適化サブシステム１１８は、クエリセット内の第１のクエリおよび第２のクエリをリンクする第１のクエリ演算子を削除する、または、第１のクエリおよび第２のクエリを含むクエリセット部分を変更（例えば、第１のクエリ演算子を除外するまたはその他の変更を実行）してもよい。第１の充足可能性の問題の予測に基づいて、最適化サブシステム１１８は、一つ以上のその他の充足可能性の問題（例えば、第１のクエリおよび他のクエリの少なくとも一つに由来する結果の組み合わせ、第２のクエリおよび他のクエリの少なくとも一つに由来する結果の組み合わせ等に関連する）を予測してもよい。その他の充足可能性問題の予測に基づいて、最適化サブシステム１１８は、第１のクエリ、第２のクエリまたはその他のクエリのうちの２つ以上をリンクする第２のクエリ演算子を削除する、もしくはその他の方法で、前記２つ以上のクエリを含むクエリセットの部分を修正してもよい（例えば、第２のクエリ演算子を除外するまたはその他の変更を実行する）。一使用例では、最適化サブシステム１１８は、充足不可能性の伝播について最適化するために、クエリセットの一つ以上の部分を修正してもよい（例えば、一つ以上のクエリ演算子を除外するまたはその他の変更を実行する）。一例として、「？従業員：ｈａｓＳａｌａｒｙ？給与」と「？従業員：ｗｏｒｋｓＯｎ？プロジェクト」という２つのパターンを有するグラフクエリに関して、最適化サブシステム１１８は、前記２つのパターンに関連した充足可能性の問題があると判断した場合（例えば、そのようなパターンから生成されたクエリから導出された結果が結合できない場合）、パターンから伝播する可能性のあるその他の問題を予測してもよい。更なる例では、２つのパターンが充足不可能である（例えば、それらが結合できない）ことが判明したことに応答して、最適化サブシステム１１８は、他の充足可能なパターンが存在する可能性がある場合であっても、充足不可能性がクエリセットを介して伝播すると判断してもよい。例えば、グラフクエリに別のパターンが追加された場合（例えば、従業員名を取得しようとする場合）、最適化サブシステム１１８は、最初の２つのパターンが結合できなかったため、結果が返されないと判断してもよい。
【００９１】
いくつかの実施形態では、最適化サブシステム１１８は、（例えば、クエリが実行されるべき一つ以上のＲＤＢＭＳまたは他のデータベース管理システムにクエリを送信する前に）クエリセットに対して一つ以上の自己結合除去またはその他の最適化を実行してもよい。いくつかの実施形態では、ＵＮＩＯＮ構成要素のうちの一つを排除することはできないが、パフォーマンスを向上させるために簡略化してもよい。２つのパターンが同じソーステーブルにマッピングされ、そのテーブルに固有のキーが存在する場合、最適化サブシステム１１８は、結合（例えば、ＳＥＬＥＣＴｅ１．ｓｕｆｆｅｒ，ｅ１．ｓａｌａｒｙ，ｅ２．ｓｕｆｆｅｒ，ｅ２．ｓａｌａｒａｙＦＲＯＭｅｍｐｌｏｙｅｅｓＡＳｅ１，ｅｍｐｌｏｙｅｅｓａｓｅ２ＷＨＥＲＥｅ１．ｓｕｆｆｅｒ＝ｅ２．ｓｕｆｆｅｒ）の代わりに、単一のクエリ（例えば、ＳＥＬＥＣＴｅｍｐｌｏｙｅｅ，ｓａｌａｒｙ，ｐｒｏｊｅｃｔＦＲＯＭｅｍｐｌｏｙｅｅｓ）を生成してもよい。この場合、クエリ実行データベース管理システムのＳＱＬオプティマイザがこの種の変換を実行することもあるが、クエリに更に多くのパターンが追加されることで、生成されるＳＱＬクエリの複雑さはＳＱＬオプティマイザが扱える範囲を超えてしまう。ＳＱＬＷＨＥＲＥ句において結合条件や式が多すぎるクエリは、ＳＱＬオプティマイザの検索スペースを指数関数的に増加させ、その結果、オプティマイザはヒューリスティクス（ｈｅｕｒｉｓｔｉｃｓ）を使用して準最適クエリプランを生成することになる。
【００９２】
いくつかの実施形態では、（ｉ）対応する複数のクエリセット各々に関連する一つ以上の問題、（ｉｉｉ）対応する複数のクエリセット各々に対する最適化、または（ｉｉｉ）他の情報、を予測モデルに予測させるために、最適化サブシステム１１８は、グラフクエリ、（グラフクエリから導出された）対応するクエリセットまたはその他の情報を予測モデルに提供してもよい。一例として、そのような問題には、（例えば、特定のクエリに由来する結果を組み合わせることに関連する）一つ以上の充足可能性の問題、非互換性の問題またはその他の問題が含まれ得る。そのようなクエリセットの最適化は、複数のクエリをリンクするクエリ演算子のクエリセットからの削除、クエリセットにおける複数のクエリを単一のクエリへと統合、一つまたは複数のクエリをクエリセットから削除またはその他の最適化を含んでもよい。いくつかの実施形態では、対応するクエリセットの各々に関して、最適化サブシステム１１８は、対応するクエリセットについての一つ以上の参照問題または参照最適化を、予測モデルが行った当該問題または最適化の予測に対する参照フィードバックとして予測モデルに提供して、予測モデルをトレーニングしてもよい。一例として、参照問題または最適化は、予測モデルに予測した問題または最適化を参照問題または参照最適化に対して評価させるための参照フィードバックとして提供されてもよい。予測モデルは、参照課題または参照最適化を使用して、自身が行った問題または最適化の予測を評価するようにしてもよい。予測モデルは、その予測の評価に基づいて、予測モデルの一つ以上の部分を（本明細書に記載されているように）更新してもよい。
【００９３】
いくつかの実施形態では、最適化サブシステム１１８は、グラフクエリまたはその他の情報を予測モデルに提供して、予測モデルが複数のグラフクエリの各々についてクエリセットを予測するようにしてもよい。いくつかの実施形態では、複数のグラフクエリの各々に関して、最適化サブシステム１１８は、予測モデルが行ったクエリセットの予測に対する参照フィードバックとしてグラフクエリについての参照クエリセットを予測モデルに提供して、予測モデルをトレーニングしてもよい。一例として、参照クエリセットは、予測モデルが予測したクエリセットを参照クエリセットに対して評価させるような参照フィードバックとして提供されてもよい。予測モデルは、参照クエリセットを使用して、自身が行ったクエリセットの予測を評価してもよい。予測モデルは、その予測の評価に基づいて、予測モデルの一つ以上の部分を（本明細書に記載されているように）更新してもよい。
【００９４】
いくつかの実施形態では、予測モデルがトレーニングされると（またはそのようなトレーニングに基づいて更新されると）、最適化サブシステム１１８は、予測モデルを使用して、（ｉ）グラフクエリ（またはその他のクエリ）から導出された初期クエリセットに関連する一つ以上の問題、または（ｉｉ）初期クエリセットに対する一つ以上の最適化を決定してもよい。一例として、最適化サブシステム１１８は、（ｉ）初期クエリセットに関連する問題、（ｉｉ）初期クエリセットに対する最適化、または（ｉｉｉ）最適化されたクエリセット、についての予測を得るために、予測モデルへの入力としてグラフクエリまたは初期クエリセットを提供してもよい。ある使用例では、そのような入力に応答して予測モデルは、最適化されたクエリセット、そのような問題を示す情報またはそのような最適化を示す情報（例えば、そのような最適化のための指示または他の指示）を出力してもよい。別の使用例では、最適化サブシステム１１８は、問題または最適化を示す情報を使用して、初期クエリセットを最適化クエリセットに変換してもよい。
【００９５】
［クエリの応答結果の表示］
【００９６】
プレゼンテーションサブシステム１２０は、クエリ結果または他の情報の表示させるように構成されてもよい。プレゼンテーションサブシステム１２０は、グラフデータモデルテンプレート、クエリ結果に対するリクエストの予測、リクエストの予測に応答して得られた結果のサブセット、一時データストレージ内のサブグラフに格納された結果のサブセットまたはその他の情報に基づいて、クエリ結果を表示させるように構成されてもよい。表示されたクエリ結果は、グラフィカル・ユーザ・インタフェースまたはその他のインタフェースにおける一つ以上のビュー内の一つ以上のフィールドを含んでもよい。グラフィカル・ユーザ・インタフェースは、一つまたは複数のクライアントデバイス１０４またはその他のコンピュータシステム上で表示されてもよい。いくつかの実施形態では、表示は、グラフィック、テキストまたはその他の表現を含んでもよい。いくつかの実施形態では、表示は、グラフデータモデルのサブマップまたはその他のビューを含んでもよい。いくつかの実施形態では、表示は、グラフィカル・ユーザ・インタフェースまたはその他のディスプレイにおける様々なビューに、一つ以上のテキストおよび／またはグラフィカルフィールドを提供することを含んでもよい。
【００９７】
いくつかの実施形態では、プレゼンテーションサブシステム１２０は、ユーザからの情報の入力または選択を容易にするために、グラフィカル・ユーザ・インタフェースと通信するように構成されてもよい。例えば、本明細書に記載されるように、いくつかの実施形態では、所与のノードまたはエッジの追加に関してグラフィカル・ユーザ・インタフェースを介して入力または選択されるユーザの了承に基づいて、予測モデルからの前記所与のノードまたはエッジがグラフに追加されてもよい。ユーザが了承したことを示す情報は、予測モデルの前記所与のノードまたはエッジの生成に関する参照フィードバックとして、プレゼンテーションサブシステム１２０によって予測モデルに提供されてもよい。いくつかの実施形態では、前記所与のノードまたはエッジの追加に関してのユーザの拒否は、グラフィカル・ユーザ・インタフェースを介してプレゼンテーションサブシステム１２０によって取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルの前記所与のノードまたはエッジの生成に関する参照フィードバックとして、プレゼンテーションサブシステム１２０によって予測モデルに提供されてもよい。
【００９８】
いくつかの実施形態では、プレゼンテーションサブシステム１２０は、グラフィカル・ユーザ・インタフェースと通信して、一つ以上のメニュー、フィールドおよび／またはその他の一つ以上のフィールドの中または隣接するその他のオブジェクトの拡張および収縮、ポップアップおよび／またはその他の表示を容易にするように構成されてもよい。いくつかの実施形態では、プレゼンテーションサブシステム１２０は、ユーザによるポインタまたはその他のインジケータを用いた、表示の特定の部分のポインティング、クリックまたはホバリングに応答して、そのような表示を発生させてもよい。いくつかの実施形態では、拡張されたフィールド、ポップアップフィールド、追加のメニュー項目および／またはその他のオブジェクトは、クエリ結果に対応する追加のコンプリメンタリまたは追加情報をユーザに対して表示する。
【００９９】
［フローチャート例］
【０１００】
図１２〜図１４は、上記で詳細に説明したシステムの様々な特徴および機能を可能とするための方法を含む処理動作を示すフローチャートの一例である。以下で説明する各方法の各処理動作は例示を目的としたものであり、限定するものではない。一部の実施形態において、例えば、これらの方法は、説明していない一つ以上の処理を追加して実現されてもよいし、説明している処理のうちの一つ以上を省略して実現されてもよい。また、各方法の処理動作を図示する（そして以下で説明する）順序は、それに限定することを意図したものではない。
【０１０１】
一部の実施形態において、各方法は、一つまたは複数の処理デバイス（例えば、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、および／または、電子的に情報を処理するこれら以外の機構）において実装され得る。これらの処理デバイスは、電子記憶媒体に電子的に記憶された命令に応答して、各方法の処理の一部または全てを実行する一つまたは複数のデバイスを含んでもよい。これらの処理デバイスは、各方法の処理のうち一つまたは複数を実行するよう特別に設計されるべく、ハードウェア、ファームウェアまたはソフトウェアによって構成される１または複数のデバイスを含むとしてよい。
【０１０２】
図１２は、一つ以上の実施形態に従って、予測モデルを介してグラフを生成する方法１２００のフローチャートを示す。いくつかの実施形態では、予測モデルは、ニューラルネットワーク、機械学習モデルまたはその他の予測モデルを含んでもよい。
【０１０３】
処理１２０２において、第１のモデリング情報が取得されてもよい。第１のモデリング情報は、第１のグラフデータモデルに関連していてもよい。第１のモデリング情報は、第１のグラフデータベースと互換性のない第１のデータ表現を第１のグラフデータベースと互換性のあるグラフデータ表現に変換するための第１のテンプレートを含んでもよい。いくつかの実施形態では、処理１２０２は、所与のグラフデータベース内のグラフのノードおよびエッジに関連するグラフ情報を取得することを含んでもよい。グラフ情報は、データ表現セットを示してもよい。複数のデータ表現セットの各データ表現セットは、ノードと、ノードを接続するエッジとを含んでもよい。一つ以上の実施形態に従って、処理１２０２は、データ管理サブシステム１１２と同一または類似のグラフ生成サブシステムによって実行されてもよい。
【０１０４】
処理１２０４において、第１のテンプレートのうちの１以上のテンプレートおよび第１のデータ表現が、予測モデルに提供されてもよい。予測モデルは、第１のテンプレートの追加テンプレートを一つ以上予測してもよい。予測モデルは、追加テンプレートに依存することなく、当該追加テンプレートの予測を実行するように構成されてもよい。いくつかの実施形態では、処理１２０４は、複数のデータ表現セットのデータ表現セットそれぞれについて、データ表現セットの一つ以上のノードまたはエッジを、予測モデルに提供することを含んでもよい。予測モデルは、データ表現セットの一つ以上の追加ノードまたは追加エッジを予測してもよい。予測モデルは、追加ノードまたは追加エッジの予測を、当該追加ノードまたは追加エッジに依存することなく実行するように構成されてもよい。一つ以上の実施形態に従って、処理１２０４は、データ管理サブシステム１１２と同一または類似のグラフ生成サブシステムによって実行されてもよい。
【０１０５】
処理１２０６において、第１のテンプレートの追加テンプレートが予測モデルに提供されてもよい。これらのテンプレートは、予測モデルが行った追加テンプレートの予測に対する参照フィードバックとして提供されてもよい。このフィードバックにより予測モデルがトレーニングされてもよい。いくつかの実施形態では、処理１２０６は、複数のデータ表現セットの各データ表現セットについて、予測モデルをトレーニングするために、予測モデルが行った追加ノードまたは追加エッジの予測に対する参照フィードバックとして、データ表現セットの追加ノードまたは追加エッジを予測モデルに提供することを含んでもよい。一つ以上の実施形態に従って、処理１２０６は、データ管理サブシステム１１４と同一または類似のモデルサブシステムによって実行されてもよい。
【０１０６】
処理１２０８において、所与のデータベースからのデータ表現のコレクションが予測モデルに提供されてもよい。これらのデータ表現により、所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現に変換するための一つ以上のテンプレートを、予測モデルが生成することを可能にしてもよい。いくつかの実施形態では、所与のグラフデータベースのグラフデータ表現は、グラフノードまたはグラフノードを接続するエッジを含む。一つ以上の実施形態に従って、処理１２０８は、データ管理サブシステム１１２と同一または類似のグラフ生成サブシステムによって実行されてもよい。
【０１０７】
いくつかの実施形態では、処理１２０８は、グラフのノードまたはエッジを処理するために、グラフのトラバースを予測モデルを介して実行することを含んでもよい。これにより、予測モデルは、グラフの新しいノードまたはエッジを生成してもよい。予測モデルからの新しいノードまたはエッジは、グラフに追加されてもよい。予測モデルからの所与のノードまたはエッジは、グラフのトラバースに基づいてグラフに追加されてもよい。いくつかの実施形態では、前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、予測モデルからの当該所与のノードまたはエッジをグラフに追加してもよい。ユーザが了承したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。いくつかの実施形態では、所与のノードまたはエッジを追加することをユーザが拒否したことが取得されてもよい。ユーザが拒否したことに応答して、所与のノードまたはエッジがグラフに追加されなくてもよい。ユーザが拒否したことを示す情報は、予測モデルが所与のノードまたはエッジを生成したことに関する参照フィードバックとして予測モデルに提供されてもよい。
【０１０８】
いくつかの実施形態では、方法１２００は、第２のグラフデータモデルに関連する第２のモデリング情報を得ることを更に含んでもよい。第２のモデリング情報は、第２のグラフデータベースと互換性のない第２のデータ表現を、第２のグラフデータベースと互換性のあるグラフデータ表現に変換するための第２のテンプレートを含んでもよい。いくつかの実施形態では、第１のデータ表現および第２のデータ表現は、同じデータベースと互換性があってもよい。いくつかの実施形態では、第１のデータ表現は、第１の非グラフデータベースと互換性があってもよい。第２のデータ表現は、第２の非グラフデータベースと互換性があり、第１の非グラフデータベースと互換性がないものであってもよい。いくつかの実施形態では、第１のデータ表現または第２のデータ表現は、少なくとも一つのグラフデータベースと互換性があってもよい。
【０１０９】
いくつかの実施形態では、方法１２００は、第２のテンプレートの一つ以上のテンプレートおよび第２のデータ表現を予測モデルに提供することを更に含む。予測モデルは、第１のテンプレートの追加テンプレートを一つ以上予測してもよい。予測モデルは、前記第２のテンプレートの追加テンプレートに依存することなく、前記第２のテンプレートの当該追加テンプレートを予測するように構成されていてもよい。いくつかの実施形態では、方法１２００は、予測モデルをトレーニングするために、予測モデルによる第２のテンプレートの追加テンプレートの予測に対する参照フィードバックとして、当該第２のテンプレートの追加テンプレートを予測モデルに提供することを更に含む。
【０１１０】
図１３は、一のまたは複数の実施形態に係る、予測に基づくデータサブグラフの生成を介してデータ検索遅延を低減する方法１３００を示すフローチャートである。
【０１１１】
処理１３０２において、データリクエストが将来発生するという予測がなされてもよい。予測は、グラフデータモデルと互換性を有する過去のクエリに基づいてもよい。処理１３０２は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１２】
処理１３０４において、一つ以上のサブグラフが生成されてもよい。サブグラフの生成は、グラフデータモデルに基づいてもよい。サブグラフは、一のデータセットのデータサブセットの代表であってもよい。データセットは、データリクエストが要求すると予測されるデータであってもよい。サブグラフは、データリクエストの予測に応答して生成されてもよい。処理１３０４は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１３】
処理１３０６において、サブグラフを一時データストレージに格納してもよい。処理１３０６は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１４】
処理１３０８において、予測されたデータリクエストと一致する次のデータリクエストが取得されてもよい。次のデータリクエストは、サブグラフの格納に続いて取得されてもよい。処理１３０８は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１５】
処理１３１０において、サブグラフを一時データストレージから取得してもよい。サブグラフは、予測されたデータリクエストに一致する次のデータリクエストに基づいて取得されてもよい。予測されたデータリクエストと一致する次のデータリクエストに基づいて、クエリプランが生成されてもよい。クエリプランは、次のデータリクエストに応答するように生成されてもよい。クエリプランは、予測されたデータリクエストに一致する次のデータリクエストに基づいて一時データストレージからデータを取得することを含むように生成されてもよい。処理１３１０は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１６】
処理１３１２において、次のデータリクエストに応答するためにサブグラフを使用してもよい。一例として、データサブセットは一つ以上のサブグラフのノードおよびエッジから抽出され、次のデータリクエストに応答するべく抽出されたデータサブセットが返されてもよい。処理１３１２は、一つ以上の実施形態に従って、リクエストサブシステム１１６と同一または類似のリクエストサブシステムによって実行されてもよい。
【０１１７】
図１４は、一のまたは複数の実施形態に係る、データ検索プロセスにおけるクエリ関連のリソース使用を低減する方法のフローチャートを示す。処理１４０２では、グラフクエリが取得されてもよい。グラフクエリは、データリクエストまたは他のリクエストに関連していてもよい。グラフクエリは、パターンまたはその他の情報を含んでもよい。処理１４０２は、一つ以上の実施形態に従って、最適化サブシステム１１８と同一または類似の最適化サブシステムによって実行されてもよい。
【０１１８】
処理１４０４において、グラフクエリは、グラフクエリセットに変換されてもよい。変換は、グラフデータモデル、グラフクエリのパターンまたはその他の情報に基づいて行われてもよい。クエリセットは、クエリと、クエリをリンクするクエリ演算子とを含んでもよい。クエリ演算子は、複数のクエリのうちの第１のクエリと第２のクエリとをリンクする第１のクエリ演算子を含んでもよい。処理１４０４は、一つ以上の実施形態に従って、最適化サブシステム１１８と同一または類似の最適化サブシステムによって実行されてもよい。
【０１１９】
いくつかの実施形態では、処理１４０４は、予測モデル（例えば、ニューラルネットワーク、機械学習モデル等）にグラフクエリを提供して、予測モデルにグラフクエリの各々について所与のクエリセットを予測させることを含んでもよい。予測された所与のクエリセットの少なくとも一つは、予測されたクエリ、および、予測されたクエリをリンクする予測されたクエリ演算子を含んでもよい。そのような実施形態では、処理１４０４は、複数のグラフクエリのそれぞれについて、当該グラフクエリに対する参照クエリセットを参照フィードバックとして予測モデルに提供することを含んでもよく、それにより、予測モデルが参照クエリセットに対して予測した所与のクエリセットの評価を行うようにしてもよい。予測モデルは、予測された所与のクエリセットに対する予測モデルの評価に基づいて更新されてもよい。そのような実施形態では、処理１４０４は、グラフクエリを予測モデルに提供して当該グラフクエリをクエリセットへと変換すること、および、更新されたクエリセットを参照フィードバックとして予測モデルに提供して予測モデルに更新されたクエリセットに対する前記クエリセットの評価を行わせることを含んでもよい。予測モデルは、予測モデルによるクエリセットの評価に基づいて更新されてもよい。
【０１２０】
処理１４０６では、第１のクエリおよび第２のクエリから導出された結果の組み合わせに関連する充足可能性の問題が予測されてもよい。予測は、第１のクエリおよび第２のクエリの実行に先立って行われてもよい。いくつかの実施形態では、充足可能性の問題を予測することは、第１のクエリおよび第２のクエリの結果を得るための第１および第２のソースを決定すること、ならびに、第１および第２のテンプレートに関連する非互換性を決定することを含んでもよい。第１のテンプレートは、第１のソースからのデータ表現をグラフデータベースと互換性のあるグラフデータ表現に変換するように構成されてもよい。第２のテンプレートは、第２のソースからのデータ表現を前記グラフデータベースと互換性のあるグラフデータ表現に変換するように構成されてもよい。処理１４０６は、一つ以上の実施形態に従って、最適化サブシステム１１８と同一または類似の最適化サブシステムによって実行されてもよい。
【０１２１】
処理１４０８では、第１のクエリ演算子がクエリセットから削除されてもよい。いくつかの実施形態では、第１のクエリ演算子は、第１のクエリと第２のクエリとをリンクするｕｎｉｏｎ、または、第１のクエリと第２のクエリをとリンクするｊｏｉｎを含んでもよい。充足可能性の問題の予測またはその他の情報に基づいて演算子の削除が行われてもよい。更新されたクエリセットが第１のクエリ演算子を含まないようにクエリセットを更新するために、クエリセットから第１のクエリ演算子が削除されてもよい。いくつかの実施形態では、処理１４０６および／または１４０８は、充足可能性の問題の予測に基づいて、クエリセットのクエリのサブセットを実行する前に、クエリのサブセットから導出された結果を組み合わせることに関連する別の充足可能性の問題を予測することを含んでもよい。クエリのサブセットは、第１のクエリまたは第２のクエリを含まない場合がある。そのような実施形態では、処理１４０８は、その他の充足可能性の問題の予測に基づいて、クエリセットから第２のクエリ演算子を削除して、更新されたクエリセットが第２のクエリ演算子を含まないようにクエリセットを更新することを含んでもよい。処理１４０８は、一つ以上の実施形態に従って、最適化サブシステム１１８と同一または類似の最適化サブシステムによって実行されてもよい。
【０１２２】
処理１４１０において、グラフクエリを満たす更新されたクエリセットが実行されてもよい。処理１４１０は、一つ以上の実施形態に従って、最適化サブシステム１１８と同一または類似の最適化サブシステムによって実行されてもよい。
【０１２３】
いくつかの実施形態では、上述した方法１４００の一つまたは複数の処理は、グラフクエリまたは対応するクエリセットを予測モデルに提供して、対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測モデルが予測するようにすることを含んでもよい。予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含んでもよい。方法１４００は、対応するクエリセットの各々に関して、対応するクエリセットに対する一つ以上の参照最適化を、予測モデルに参照フィードバックとして提供して、予測モデルが予測した所与の最適化を一つ以上の参照最適化に対して評価することを含んでもよい。予測モデルは、予測された所与の最適化に対する予測モデルの評価に基づいて更新されてもよい。方法１４００は、グラフクエリまたはグラフクエリから導出された初期クエリセットを予測モデルに提供して、初期クエリセットに対する一つ以上の最適化を得ることを含んでもよい。方法１４００は、初期クエリセットに対して最適化を実行することにより、グラフクエリをクエリセットに変換することを含んでもよい。方法１４００は、第１のクエリ演算子が削除されたことを示す情報を予測モデルへの参照フィードバックとして予測モデルに提供することを含んでもよく、それにより、予測モデルが第１のクエリ演算子の削除に対して最適化を評価してもよい。予測モデルは、予測モデルによる最適化の評価に基づいて更新されてもよい。
【０１２４】
いくつかの実施形態では、上述した方法１４００の１つ以上の処理は、所与のクエリセットを予測モデルに提供して、所与のクエリセットの各々に関連する１つ以上の充足可能性の問題を予測モデルが予測することを含んでもよい。方法１４００は、所与のクエリセットの各々に関して、所与のクエリセットについての一つ以上の参照充足可能性問題を予測モデルに参照フィードバックとして提供して、予測モデルが予測した充足可能性の問題を参照充足可能性問題に対して評価することを含んでもよい。予測モデルは、予測された充足可能性の問題に対する予測モデルの評価に基づいて更新されてもよい。方法１４００は、予測された充足可能性の問題の予測を示す情報を予測モデルから得るために、クエリセットを予測モデルに提供することを含んでもよい。方法１４００は、予測モデルからの上記の情報に基づいて、第１のクエリおよび第２のクエリから導出された結果を組み合わせることに関連する充足可能性の問題を予測することを含んでもよい。
【０１２５】
一部の実施形態において、図１に図示したさまざまなコンピュータおよびサブシステムは、本明細書に記載された機能を行うようプログラムされた１または複数のコンピューティングデバイスを含んでもよい。コンピューティングデバイスは、一つまたは複数の電子的記憶装置（例えば、データソース１３２または他の電子記憶装置）、一つまたは複数のコンピュータプログラム命令を使用してプログラムされた一つまたは複数の物理的プロセッサもしくはその他の構成要素を備えてもよい。コンピューティングデバイスは、ネットワーク（例えば、ネットワーク１５０）または他のコンピューティング・プラットフォームとの有線技術または無線技術（例えば、イーサネット、光ファイバ、同軸ケーブル、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ、近距離無線通信、または他の技術等）を介した情報のやり取りを可能にする通信回線または通信ポートを含んでもよい。コンピューティングデバイスは、協働する複数のハードウェアコンポーネント、ソフトウェアコンポーネントまたはファームウェアコンポーネントを含むとしてよい。例えば、コンピューティングデバイスは、コンピューティングデバイスとして協動する多数のコンピューティング・プラットフォームによって実装されてもよい。
【０１２６】
電子ストレージは、情報を電子的に記憶する非一時的記憶媒体を含み得る。電子ストレージの電子記憶媒体には、（ｉ）サーバまたはクライアントデバイスと一体に（例えば、実質的に着脱不能に）設けられたシステムストレージ、または、（ｉｉ）例えばポート（例えばＵＳＢポート、ファイヤーワイヤポート等）またはドライブ（例えばディスクドライブ等）を介してサーバまたはクライアントデバイスに着脱可能に接続されたリムーバブルストレージの一方または両方が含まれるとしてもよい。電子ストレージには、光学的に読み取り可能な記憶媒体（例えば光学ディスク等）、磁気的に読み取り可能な記憶媒体（例えば磁気テープ、磁気ハードドライブ、フロッピードライブ等）、電荷型記憶媒体（例えばＥＥＰＲＯＭ、ＲＡＭ等）、ソリッドステート記憶媒体（例えばフラッシュドライブ等）、または、これら以外の電子的に読み取り可能な記憶媒体のうち１または複数が含まれるとしてよい。電子ストレージは、一又は複数の仮想ストレージリソース（例えば、クラウドストレージ、仮想プライベートネットワーク、または、これら以外の仮想ストレージリソース）を含んでもよい。電子ストレージは、ソフトウェアアルゴリズム、プロセッサが決定した情報、サーバから取得した情報、クライアントデバイスから取得した情報、または、本明細書に記載する機能を可能とする他の情報を記憶してもよい。
【０１２７】
プロセッサは、コンピューティングデバイスにおける情報処理機能を実現するようプログラムされているとしてもよい。このため、プロセッサは、デジタルプロセッサ、アナログプロセッサ、情報処理用のデジタル回路、情報処理用のアナログ回路、ステートマシン、および／または電子的に情報を処理するための他のメカニズムのうちの１以上を含むとしてよい。一部の実施形態において、プロセッサは複数の処理ユニットを含むとしてもよい。これらの処理ユニットは物理的に同一の装置内に配置されてもよく、または、複数のプロセッサが、協調して動作する複数の装置の処理機能を実行してもよい。プロセッサは、コンピュータプログラム命令を実行してサブシステム１１２〜１２０または他のサブシステムの本明細書で説明する機能を実現するようにプログラムされてもよい。プロセッサは、ソフトウェア、ハードウェア、ファームウェア、何らかの方法で組み合わされたソフトウェア、ハードウェア、またはファームウェア、または、プロセッサにおいて処理機能を設定するための他のメカニズムによってコンピュータプログラム命令を実行するようにプログラムされてもよい。
【０１２８】
本明細書で説明する複数の異なるサブシステム１１２〜１２０によって提供される機能の説明は例示を目的としたものであり、限定を意図したものではないと理解されたい。サブシステム１１２〜１２０はいずれも、説明した機能より多くの、または少ない機能を提供するとしてよい。例えば、サブシステム１１２〜１２０のうちの一つまたは複数を省略するとしてもよく、その機能の一部またはすべてを、サブシステム１１２〜１２０のうちの他のサブシステムで提供してもよい。他の例として、本明細書においてサブシステム１１２〜１２０のうちの一つのサブシステムに帰する機能の一部または全てを発揮するよう追加のサブシステムがプログラムされてもよい。
【０１２９】
現時点で最も実用的であり好ましいと考えられる態様に基づいて本発明を例示のために詳細に説明したが、このような詳細な説明は例示を目的としたものに過ぎないと理解されたい。本発明は開示された実施形態に限定されるものではなく、むしろ、添付された特許請求の範囲の趣旨及び範囲に入る変形や均等な構成も本発明に含められることが意図されている。例えば、本発明においては任意の実施形態の１または複数の特徴を他の任意の実施形態の一のまたは複数の特徴と可能な限り組み合わせられると理解されたい。
【０１３０】
本技術は以下に列挙する実施形態を参照することで理解がより深まる。
［実施形態１］
第１のグラフデータモデルに関連する第１のモデリング情報であって、第１のグラフデータベースと互換性のない第１のデータ表現を前記第１のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第１のテンプレートを含む前記第１のモデリング情報を取得する工程と、
前記第１のテンプレートの一つ以上のテンプレートおよび前記第１のデータ表現を前記機械学習モデルに提供する工程と、を備え、
前記機械学習モデルは、前記第１のテンプレートの一つ以上の追加テンプレートを前記第１のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、前記方法は更に、前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第１のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、
所与のグラフデータモデルが所与のデータベースのデータ表現を所与のグラフデータベースのグラフデータ表現へと変換するための一つ以上のテンプレートを生成するべく、前記所与のデータベースからのデータ表現のコレクションを前記機械学習モデルに提供する工程と、を備える方法。
［実施形態２］
前記所与のグラフデータベースの前記グラフデータ表現は、グラフノードまたは前記グラフノードを接続するエッジを含む、実施形態１に記載の方法。
［実施形態３］
第２のグラフデータモデルに関連する第２のモデリング情報であって、第２のグラフデータベースと互換性のない第２のデータ表現を前記第２のグラフデータベースと互換性のあるグラフデータ表現へと変換するための第２のテンプレートを含む前記第２のモデリング情報を取得する工程と、
前記第２のテンプレートの一つ以上のテンプレートおよび前記第２のデータ表現を前記機械学習モデルに提供する工程と、を備え、
前記機械学習モデルは、前記第２のテンプレートの一つ以上の追加テンプレートを前記第２のテンプレートの前記一つ以上の追加テンプレートに依存することなく予測するように構成されており、
前記機械学習モデルをトレーニングするべく、前記機械学習モデルによる前記第２のテンプレートの前記一つ以上の追加テンプレートの予測に対する参照フィードバックとして、前記第２のテンプレートの前記一つ以上の追加テンプレートを前記機械学習モデルに提供する工程と、を備える、実施形態１または２に記載の方法。
［実施形態４］
前記第１のデータ表現および前記第２のデータ表現は、同じデータベースと互換性がある、実施形態３に記載の方法。
［実施形態５］
前記第１のデータ表現は第１の非グラフデータベースと互換性があり、前記第２のデータ表現は第２の非グラフデータベースと互換性があるが前記第１の非グラフデータベースとは互換性がない、実施形態３に記載の方法。
［実施形態６］
前記第１のデータ表現または前記第２のデータ表現は、少なくとも一つのグラフデータベースと互換性がある、実施形態３に記載の方法。
［実施形態７］
前記所与のグラフデータベース内のグラフのノードおよびエッジに関連し複数のデータ表現セットを示すグラフ情報であって、前記複数のデータ表現セットのデータ表現セットはそれぞれノードおよびノードを接続するエッジを含む、前記グラフ情報を取得する工程と、
前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルが前記データ表現セットの１つ以上の追加ノードまたは追加エッジを予測するために、前記データ表現セットの１つ以上のノードまたはエッジを前記機械学習モデルに提供する工程と、を更に備え、
前記機械学習モデルは、前記１つ以上の追加ノードまたは追加エッジに依存することなく、前記１つ以上の追加ノードまたは追加エッジの予測を実行するように構成されており、前記機械学習モデルをトレーニングするべく、前記複数のデータ表現セットのデータ表現セットそれぞれについて、前記機械学習モデルによる前記１つ以上の追加ノードまたは追加エッジの予測に対する参照フィードバックとして、前記データ表現セットの前記１つ以上の追加ノードまたは追加エッジを前記機械学習モデルに提供する工程と、を備える、実施形態１から６の何れか一つに記載の方法。
［実施形態８］
前記機械学習モデルを介して、前記グラフのノードまたはエッジを処理するべく前記グラフのトラバースを実行して、前記機械学習モデルに前記グラフの新しいノードまたは新しいエッジを生成させる工程と、
前記機械学習モデルからの前記新しいノードまたは前記新しいエッジを前記グラフに追加する工程と、を更に備える、実施形態７に記載の方法。
［実施形態９］
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジの追加に関してユーザが了承することに基づいて、前記機械学習モデルからの前記所与のノードまたはエッジを前記グラフに追加する工程と、
前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの了承を示す情報を前記機械学習モデルに提供する工程と、を更に備える、実施形態８に記載の方法。
［実施形態１０］
前記グラフの前記トラバースに基づいて、前記機械学習モデルから所与のノードまたはエッジを取得する工程と、
前記所与のノードまたはエッジを追加することに関するユーザの拒否を取得する工程と、を更に備え、
前記所与のノードまたはエッジは、前記ユーザの拒否に基づいて前記グラフに追加されず、
前記方法は更に、前記機械学習モデルによる前記所定のノードまたはエッジの生成に関する参照フィードバックとして、前記ユーザの拒否を示す情報を前記機械学習モデルに提供する工程、を備える、実施形態８に記載の方法。
［実施形態１１］
データリクエストが未来に発生すると予測する工程と、
グラフデータモデルに基づいて、前記データリクエストが求めると予測されるデータであるデータセットのデータサブセットを表す一つ以上のサブグラフを、前記データリクエストの前記予測に応答して生成する工程と、
前記一つ以上のサブグラフを一時データストレージに格納する工程と、
予測された前記データリクエストに一致する次のデータリクエストを、前記一つ以上のサブグラフの前記格納の後に取得する工程と、
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記一つ以上のサブグラフを前記一次データストレージから取得する工程と、前記次のデータリクエストに応答するべく前記一つ以上のサブグラフを使用する工程と、を備える方法。
［実施形態１２］
前記一つ以上のサブグラフを使用する工程は、
前記データサブセットを、前記一つ以上のサブグラフのノードおよびエッジから抽出する工程と、
前記次のデータリクエストに応答するべく、抽出された前記データサブセットを返す工程と、を有する、実施形態１１に記載の方法。
［実施形態１３］
前記データリクエストの前記予測に応答して、前記データサブセットの第１のデータサブセットを一つ以上の非グラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記第１のデータサブセットを取得した後に、前記グラフデータモデルに基づいて前記第１のデータサブセットを表す第１のサブグラフを生成する工程を有し、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく前記第１のサブグラフを使用するように前記第１のサブグラフを含む、実施形態１１または１２に記載の方法。
［実施形態１４］
前記データリクエストの前記予測に応答して、前記データサブセットの第２のデータサブセットを一つ以上のグラフデータベースから取得する工程を更に備え、
前記一つ以上のサブグラフは、前記次のデータリクエストに応答するべく第２のサブグラフを使用するように、前記第２のデータサブセットを表す前記第２のサブグラフを含む、実施形態１３に記載の方法。
［実施形態１５］
予測された前記データリクエストの一つ以上の検索パラメータに基づいて、複数のグラフクエリを生成する工程と、
前記グラフデータモデルに基づいて、前記複数のグラフクエリの内の少なくとも一つを、一つ以上の非グラフクエリへと変換する工程と、
前記一つ以上の非グラフクエリを実行して、前記一つ以上の非グラフデータベースから前記第１のデータサブセットを取得する工程と、
前記複数のグラフクエリのうちのを別の一つを実行して、前記一つ以上の非グラフデータベースから前記第２のデータサブセットを取得する工程と、を更に備える、実施形態１４に記載の方法。
［実施形態１６］
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて前記一時データストレージからデータを取得することを含むように生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて前記一つ以上のサブグラフを前記一時データストレージから取得することを含む、実施形態１１から１５の何れか一つに記載の方法。
［実施形態１７］
予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストに応答するクエリプランを生成する工程を更に備え、
前記クエリプランは、前記次のデータリクエストに応答して生成され、
前記一つ以上のサブグラフを取得する工程は、前記クエリプランに基づいて、前記一つ以上のサブグラフを前記一時データストレージから取得し、一つ以上のその他のデータサブセットを一つ以上のその他のデータソースから取得することを含み、
前記一つ以上のサブグラフを使用する工程は、前記次のデータリクエストに応答するべく、（ｉ）前記一つ以上のサブグラフによって表される前記データサブセット、および（ｉｉ）前記一つ以上のその他のデータを使用することを含む、実施形態１１から１６の何れか一つに記載の方法。
［実施形態１８］
前記データリクエストの前記予測に応答して、クエリを実行する工程を更に備え、
実行される前記クエリは、予測された前記データリクエストがクライアントデバイスから取得されていた場合に、予測された前記データリクエストに応答するために実行されたであろうクエリのセットの一部であり、
前記クエリに基づいて、前記データリクエストが求めると予測される前記データセットの前記データサブセットを取得する工程を更に備え、
前記一つ以上のサブグラフを生成する工程は、前記データサブセットおよび前記グラフデータモデルに基づいて前記一つ以上のサブグラフを生成することを含む、実施形態１１から１７の何れか一つに記載の方法。
［実施形態１９］
前記データリクエストの前記予測から、前記クエリのセットのうちの一つ以上のその他のクエリの実行が発生しない、実施形態１８に記載の方法。
［実施形態２０］
機械学習モデルをトレーニングするべく、前記グラフデータモデルに互換性がある過去のクエリを前記機械学習モデルに提供する工程と、
前記機械学習モデルの前記トレーニングの後に、前記機械学習モデルから、前記データリクエストの前記予測を示す情報を取得する工程と、
前記機械学習モデルを更にトレーニングするべく、予測された前記データリクエストに一致する前記次のデータリクエストに基づいて、前記次のデータリクエストを示す情報を参照フィードバックとして前記機械学習モデルに提供する工程と、を更に備える、実施形態１１から１９の何れか一つに記載の方法。
［実施形態２１］
データリクエストに関連するクエリであって、複数のパターンを含む前記グラフクエリを取得する工程と、
グラフデータモデルおよび前記グラフクエリの前記複数のパターンに基づいて、前記グラフクエリをクエリセットへと変換する工程を備え、
前記クエリセットは、複数のクエリおよび前記複数のクエリをリンクするクエリ演算子を含み、前記クエリ演算子は、前記複数のクエリのうちの第１のクエリと第２のクエリとをリンクする第１のクエリ演算子を含み、
前記方法は更に、
前記第１のクエリおよび前記第２のクエリが実行される前に、前記第１のクエリおよび前記第２のクエリから導出される結果を組み合わせることに関する充足可能性の問題を予測する工程と、
前記クエリセットを更新するべく、前記充足可能性の問題の前記予測に基づいて前記クエリセットの一つ以上の最適化を実行する工程と、
前記グラフクエリを満たすべく、前記更新されたクエリセットを実行する工程と、を備える方法。
［実施形態２２］
前記一つ以上の最適化を実行する工程は、前記充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第１のクエリ演算子を削除して、更新されたクエリセットが前記第１のクエリ演算子を含まないように前記クエリセットを更新することを含む、実施形態２１に記載の方法。
［実施形態２３］
前記クエリセットの複数のクエリのサブセットを実行する前に、前記充足可能性の問題の前記予測に基づいて、前記第１のクエリまたは前記第２のクエリを含まない前記クエリのサブサブセットから導出される結果を組み合わせることに関連する別の充足可能性の問題を予測する工程と、
前記別の充足可能性の問題の前記予測に基づいて、前記クエリセットから前記第２のクエリ演算子を削除して、更新された前記クエリセットが前記第２のクエリ演算子を含まないように前記クエリセットを更新する工程と、を更に備える、実施形態２２に記載の方法。
［実施形態２４］
前記第１のクエリ演算子は、前記第１のクエリと前記第２のクエリとをリンクするｕｎｉｏｎ、または、前記第１のクエリと前記第２のクエリをとリンクするｊｏｉｎを含む、実施形態２１から２３の何れか一つに記載の方法。
［実施形態２５］
前記充足可能性の問題を予測する工程は、
前記第１のクエリおよび前記第２のクエリに対する結果を取得するための第１のソースおよび第２のソースを決定する工程と、
第１のテンプレートおよび第２のテンプレートに関する非互換性を判定する工程と、を備え、
前記第１のテンプレートは、前記第１のソースからのデータ表現を、グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、前記第２のテンプレートは、前記第２のソースからのデータ表現を、前記グラフデータベースと互換性を有するグラフデータ表現へと変換するように構成され、
前記方法は更に、前記第１のテンプレートおよび前記第２のテンプレートに関する前記非互換性に基づく前記充足可能性の問題を予測する工程を備える、実施形態２１から２４の何れか一つに記載の方法。
［実施形態２６］
前記充足可能性の問題を予測する工程は、
前記グラフデータモデルに基づいて、前記第１のクエリに対する第１の結果をグラフデータベースに格納するためのデータタイプとして、第１のデータタイプを決定する工程と、
前記グラフデータモデルに基づいて、前記第２のクエリに対する第２の結果を前記グラフデータベースに格納するためのデータタイプとして、第２のデータタイプを決定する工程と、
前記第１のデータタイプおよび前記第２のデータタイプに関連する非互換性を判定する工程と、前記第１のデータタイプおよび前記第２のデータタイプに関連する前記非互換性に基づく前記充足可能性の問題を予測する工程と、を有する、実施形態２１から２５の何れか一つに記載の方法。   ［実施形態２７］
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のあるデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、実施形態２６に記載の方法。
［実施形態２８］
前記第２の結果に対応する第２のデータ表現を第２のソースに格納するために使用されるデータタイプと互換性のないデータタイプとして、前記第１の結果に対応する第１のデータ表現が第１のソースに格納される、実施形態２６に記載の方法。
［実施形態２９］
機械学習モデルに複数のグラフクエリのそれぞれについて所与のクエリセットを予測させるべく、前記機械学習モデルに前記複数のグラフクエリを提供する工程を更に備え、
予測された前記所与のクエリセットのうちの少なくとも一つは、予測されたクエリおよび前記予測されたクエリをリンクする予測されたクエリ演算子を含み、
前記方法は更に、前記複数のグラフクエリのそれぞれについて、前記グラフクエリに対する参照クエリセットを参照フィードバックとして前記機械学習モデルに提供して、前記機械学習モデルに、前記予測した所与のクエリセットの前記参照クエリセットに対する評価を行わせる工程を備え、
予測された前記所与のクエリセットの前記機械学習モデルが行った前記評価に基づいて、前記機械学習モデルが更新され、
前記方法は更に、
前記グラフクエリを前記機械学習モデルに提供することにより前記グラフクエリを前記クエリセットへと変換して、前記クエリセットを得る工程と、
前記機械学習モデルに対する参照フィードバックとして前記更新されたクエリセットを前記機械学習モデルに提供して、前記機械学習モデルに、前記更新されたクエリセットに対して前記クエリセットの評価を行わせる工程と、を備え、
前記機械学習モデルが行った前記クエリセットの前記評価に基づいて、前記機械学習モデルが更新される、実施形態２１から２８の何れか一つに記載の方法。
［実施形態３０］
複数のグラフクエリまたは複数の対応するクエリセットを機械学習モデルに提供して、前記機械学習モデルに、前記複数の対応するクエリセットのそれぞれについて一つ以上の所与の最適化を予測させる工程を更に備え、
前記予測された所与の最適化のうちの少なくとも一つは、複数のクエリをリンクする所与のクエリ演算子を所与のクエリセットから削除すること、複数のクエリを一つのクエリにマージすること、または、所与のクエリセットから一つ以上のクエリを削除すること、を含み、
前記方法は、前記複数の対応するクエリセットのそれぞれに関して、前記対応するクエリセットに対する一つ以上の参照最適化を、前記機械学習モデルに対する参照フィードバックとして提供して、前記機械学習モデルに、前記一つ以上の予測した所与の最適化を前記一つ以上の参照最適化に対して評価させる工程を更に備え、
前記機械学習モデルが行った前記一つ以上の予測した所与の最適化の前記評価に基づいて前記機械学習モデルが更新され、
前記方法は更に、
前記グラフクエリまたは前記グラフクエリから導出された初期クエリセットを前記機械学習モデルに提供して、前記初期クエリセットに対する一つ以上の最適化を得る工程と、
前記一つ以上の最適化を前記初期クエリセットに実行することにより、前記グラフクエリを前記クエリセットへと変換する工程と、
前記機械学習モデルに対する参照フィードバックとして、前記第１のクエリ演算子が削除されたことを示す情報を前記機械学習モデルに提供し、前記機械学習モデルに前記一つ以上の最適化を前記第１のクエリ演算子が削除されたことに対して評価させる工程と、を備え、
前記機械学習モデルが行った前記一つ以上の最適化の前記評価に基づいて前記機械学習モデルが更新される、実施形態２１から２９の何れか一つに記載の方法。
［実施形態３１］
所与の複数のクエリセットを機械学習モデルに提供して、前記機械学習モデルに、前記所与の複数のクエリセットのそれぞれに関連する一つ以上の充足可能性の問題を予測させる工程と、
前記所与の複数のクエリセットのそれぞれに関して、前記所与のクエリセットに対する一つ以上の参照充足可能性問題を、前記機械学習モデルに対する参照フィードバックとして前記機械学習モデルに提供して、前記機械学習モデルに、前記一つ以上の予測した充足可能性の問題を前記一つ以上の参照充足可能性問題に対して評価させる工程とを更に備え、
前記機械学習モデルが行った前記一つ以上の予測した充足可能性の問題の前記評価に基づいて前記機械学習モデルが更新され、
前記方法は更に、
前記クエリセットを前記機械学習モデルに提供して、前記機械学習モデルから前記充足可能性の問題の前記予測を示す情報を取得する工程と、
前記機械学習モデルからの前記情報に基づいて、前記第１のクエリおよび前記第２のクエリから導出された結果を組み合わせることに関連する前記充足可能性の問題を予測する工程と、を備える、実施形態２１から３０の何れか一つに記載の方法。
［実施形態３２］
命令を格納している有形で非一時的な機械可読媒体であって、前記命令がデータ処理装置によって実行されると、前記データ処理装置に実施形態１−３１のいずれかを備える処理を実行する、機械可読媒体。
［実施形態３３］
一つまたは複数のプロセッサと、命令を格納しているメモリとを備えるシステムであって、前記命令が前記一つまたは複数のプロセッサによって実行されると、前記一つまたは複数のプロセッサによって実施形態１−３１のいずれかを含む処理が実現される、システム。
【図１】
2021531540.tif 000003
【図２】
2021531540.tif 000004
【図３】
2021531540.tif 000005
【図４】
2021531540.tif 000006
【図５】
2021531540.tif 000007
【図６】
2021531540.tif 000008
【図７】
2021531540.tif 000009
【図８】
2021531540.tif 000010
【図９】
2021531540.tif 000011
【図１０】
2021531540.tif 000012
【図１１】
2021531540.tif 000013
【図１２】
2021531540.tif 000014
【図１３】
2021531540.tif 000015
【図１４】
2021531540.tif 000016
【国際調査報告】
2021531540.tif 000017
2021531540.tif 000018
2021531540.tif 000019
2021531540.tif 000020