(57)【要約】      （修正有）【課題】データアップロード、処理及び予測クエリＡＰＩ公開を実施するシステム、方法及び装置を提供する。【解決手段】このシステム及び方法は、複数の行及び複数の列を有する表形式のデータセットを受信する手段と、データセットの行と列とにおける確率的関係を表すインデックスを生成するようにデータセットを処理する手段と、インデックスをデータベースに記憶する手段と、データベースの中のインデックスに問い合わせるためのアプリケーションプログラミングインターフェース（ＡＰＩ）を公開する手段と、データベースの中のインデックスに対して予測クエリ又は潜在構造クエリの要求を受信する手段と、ＡＰＩを介した要求に基づく結果について、データベースに問い合わせる手段と、要求に応答して結果を返す手段と、を含む。【選択図】図１２Ｃ
2019057286.tif 000002
【特許請求の範囲】
【請求項１】
表形式のデータセットを受信するステップであって、前記データセットは複数の行及び複数の列を有する、ステップと、
前記データセットの行と列とにおける確率的関係を表すインデックスを生成するように前記データセットを処理するステップであって、前記処理するステップは、前記データセットの要素間の確率的関係を識別し、説明するように、前記データセットにわたって同時確率分布を学習するステップを含み、前記学習するステップは、構成パラメータのデフォルトセットによって制御される、ステップと、
前記インデックスをデータベースシステムに記憶するステップと、
前記データベースシステムの中の前記インデックスに問い合わせるためのアプリケーションプログラミングインターフェース（ＡＰＩ）を公開するステップと、
前記データベースシステムの中の前記インデックスに対して予測クエリ又は潜在構造クエリの要求を受信するステップであって、前記要求は、前記予測クエリ又は前記潜在構造クエリでの入力パラメータとして少なくとも１つの指定された列を含む、ステップと、
前記予測クエリ又は前記潜在構造クエリそれぞれの前記要求に応答して、予測結果セット又は潜在構造結果について前記データベースシステムに問い合わせるステップであって、前記問い合わせは、前記予測クエリ又は前記潜在構造クエリと前記問い合わせに対する前記入力パラメータとしての前記少なくとも１つの指定された列とを使用して前記ＡＰＩを介して前記データベースシステムにサブミットされる、ステップと、
前記要求に応答して前記予測結果セット又は潜在構造結果を返すステップであって、前記予測結果セット又は潜在構造結果と共に信頼度指標が返され、前記信頼度指標は、予測的関係又は潜在関係が前記少なくとも１つの指定された列と前記予測結果セット又は潜在構造結果の要素との間に存在するかどうかを示す、ステップと、
を含む方法。
【請求項２】
前記処理するステップは、前記データセットを受信することに応答して自動的にトリガされる、請求項１に記載の方法。
【請求項３】
前記同時確率分布を学習するステップは、指定された構成パラメータによって制御され、前記指定された構成パラメータは、前記データセットを処理する時間の最大期間と、前記データセットを処理する繰り返しの最大数と、前記データセットを処理する繰り返しの最小数と、前記データセットを処理することにより消費されるべき顧客リソースの最大量と、前記データセットを処理することに費やされるべき最大加入者料金と、前記データセットの処理により達成されるべき最小閾予測品質レベルと、前記処理するステップを続けるために必要な信頼度品質尺度に対する最小の向上と、前記処理するステップにより生成されるべき前記インデックスの最小又は最大数と、のうち１又は複数を含む、請求項１に記載の方法。
【請求項４】
インデックスを生成するように前記データセットを処理するステップは、前記インデックスを生成するように前記データセットにわたって同時確率分布を繰り返し学習するステップを含み、
当該方法は、
前記データセットの処理により生成される前記インデックスの信頼度品質尺度を周期的に決定するステップと、
前記信頼度品質尺度が指定された閾値を達成したとき、前記データセットの処理を終了するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記データセットを処理することにより生成される前記インデックスからの結果を要求する予測クエリ又は潜在構造クエリを受信するステップと、
前記データセットの処理を終了する前に前記の生成されたインデックスに対して前記クエリを実行するステップと、
をさらに含む請求項４に記載の方法。
【請求項６】
前記結果を要求する前記予測クエリ又は前記潜在構造クエリに応答して予測レコードセットを返すステップと、
前記データセットの処理がまだ完了していないと示す結果を備えた通知、若しくは前記信頼度品質尺度が前記指定された閾値を下回ると示す結果を備えた通知、又は双方を返すステップと、
をさらに含む請求項５に記載の方法。
【請求項７】
前記信頼度品質尺度は、
前記データセット内に観察され及び存在する値に対応する既知の結果と前記データセットの処理により生成された前記インデックスに問い合わせることにより得られる予測結果とを比較すること、又は
前記データセットからのグラウンドトルースデータと前記データセットの処理により生成された前記インデックスに問い合わせることにより得られる１又は複数の予測結果とを比較すること、
のうち１つによって決定される、請求項４に記載の方法。
【請求項８】
前記データセットを処理するステップは、
前記データセットのディリクレ過程混合モデル（ＤＰＭＭ）を学習するステップと、
前記データセットのクロスカテゴリ化を学習するステップと、
前記データセットのインディアンビュッフェ過程モデルを学習するステップと、
前記データセットの有限混合モデルの混合モデル又は混合を学習するステップと、
のうち少なくとも１つを含む、請求項１に記載の方法。
【請求項９】
前記データセットを受信するステップは、
前記データセットを列及び行を有するテーブルとして受信するステップと、
前記データセットをデータストリームとして受信するステップと、
スプレッドシート文書を受信し、前記スプレッドシート文書から前記データセットを抽出するステップと、
前記データセットをデータベースにより作成されるバイナリファイルとして受信するステップと、
データベースに対する１又は複数のクエリを受信し、前記データベースに対して前記１又は複数のクエリを実行することによって前記データセットを応答的に受信し、前記１又は複数のクエリにより返されたレコードセットを前記データセットとして捕捉するステップと、
データベースの中のテーブルの名前を受信し、前記データベースから前記テーブルを前記データセットとして取り出すステップと、
指定されたウェブサイトについての検索パラメータを受信し、前記指定されたウェブサイトに対して前記検索パラメータを応答的に問い合わせ、検索結果を前記データセットとして捕捉するステップと、
リモートのリポジトリについてのリンク及び認証クレデンシャルを受信し、前記リモートのリポジトリと応答的に認証し、前記リンクを介して前記データセットを取り出すステップと、
のうち少なくとも１つを含む、請求項１に記載の方法。
【請求項１０】
前記データセットの中の前記複数の行の各々は、エンティティに対応し、
前記複数の列の各々は、前記エンティティについての特性に対応し、
各々のそれぞれの行と前記複数の列の各々とにおける交点は、セルを形成して前記交点における値を記憶する、請求項１に記載の方法。
【請求項１１】
各エンティティは、人、場所、又は物事を表し、
各特性は、特性、特徴、側面、数量、範囲、識別子、マーク、特質、又は観察可能な事実を表し、
各セルは、各々のそれぞれの行と前記複数の列の各々とにおける前記交点に、あるデータタイプの値を記憶し、前記値は、前記特性に対応する列と交差する前記エンティティの行についての前記特性を表し、
あらゆるセルの各値は、ヌルであるか、異なるか、あるいは任意の他のセルの任意の他の値と同じである、請求項１０に記載の方法。
【請求項１２】
前記複数の列の各々は、指定されたデータタイプを有し、
各データタイプは、
ブールと、
カテゴリの開集合と、
カテゴリの閉集合と、
文書内の値のコレクション、識別子のコレクション、及び／又は文字列のコレクションを定義する設定された値のデータタイプと、
数量カウントと、
浮動小数点数と、
正の浮動小数点数と、
文字列と、
緯度及び経度のペアと、
ベクトルと、
正の整数と、
テキストファイルと、
指定されたファイルタイプのデータファイルと、
のうち１つに対応する、請求項１に記載の方法。
【請求項１３】
表形式のデータセットを受信するステップは、
複数のテーブルを有し、相互関係が前記複数のテーブルにわたるリレーショナルデータベースオブジェクトを受信するステップを含み、
前記データセットを処理するステップは、前記複数のテーブル間の前記相互関係に従いながら、前記複数のテーブル間の列及び行からインデックスを生成するステップを含む、請求項１に記載の方法。
【請求項１４】
前記処理するステップは、前記複数のテーブルのうち２以上に対して構造化問い合わせ言語（ＳＱＬ）オペレーションを実行して前記データセットを形成するステップをさらに含み、
前記ＳＱＬオペレーションは、ＳＱＬ変換オペレーションとＳＱＬ集約オペレーションとＳＱＬ結合オペレーションとのうち少なくとも１つを含む、請求項１３に記載の方法。
【請求項１５】
前記インデックスは、ホスト組織の予測データベースシステム内に記憶され、
当該方法は、
前記ホスト組織の前記予測データベースシステム内に記憶されたインデックスについての複数のアクセス要求を受信するステップであって、前記アクセス要求の各々は、複数の顧客組織の１又は複数のクライアント装置に由来し、各顧客組織は、
別個かつ区別可能なリモートの組織、前記ホスト組織内の組織グループ、前記ホスト組織のビジネスパートナー、又は前記ホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織
から成るグループから選択される、ステップをさらに含み、
前記予測データベースシステムは、前記ホスト組織により提供されるマルチテナントデータベースシステムに動作可能に統合され、前記マルチテナントデータベースシステムは、複数の別個かつ区別可能な顧客組織によって共有されるハードウェア及びソフトウェアの要素を有し、前記別個かつ区別可能な顧客組織の各々は、前記予測データベースシステム及び前記マルチテナントデータベースシステムを動作させている前記ホスト組織から遠隔に位置する、請求項１に記載の方法。
【請求項１６】
データセットを受信するステップは、リモートのコンピューティング装置にとってパブリックインターネットを介してアクセス可能なオンデマンドのクラウドベースのサービスを提供するホスト組織において前記データセットを受信するステップを含み、
前記インデックスを前記データベースシステムに記憶するステップは、前記ホスト組織で動作する予測データベースシステムに、前記予測データベースシステムのメモリに記憶され、かつ前記予測データベースシステムの１又は複数のプロセッサを介して実行される動作ロジックを介して、前記インデックスを記憶するステップを含む、請求項１に記載の方法。
【請求項１７】
前記インデックスを前記データベースシステムに記憶するステップは、前記インデックスを予測データベースに記憶するステップを含み、
前記インデックスに問い合わせるためのＡＰＩを公開するステップは、予測問い合わせ言語（ＰｒｅＱＬ）ＡＰＩを公開するステップを含む、請求項１に記載の方法。
【請求項１８】
前記データベースシステムの中の前記インデックスに対して予測クエリ又は潜在構造クエリの前記要求を受信するステップは、ＰＲＥＤＩＣＴとＲＥＬＡＴＥＤとＳＩＭＩＬＡＲとＧＲＯＵＰとを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定するＰｒｅＱＬクエリを受信するステップを含む、請求項１７に記載の方法。
【請求項１９】
プロセッサに請求項１乃至１８のうちいずれか１項に記載の方法を実行させるコンピュータプログラム。
【請求項２０】
請求項１乃至１８のうちいずれか１項に記載の方法を実行する手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権の表示
本特許文献の開示の一部分は、著作権保護の対象である素材を含む。著作権所有者は、特許文献又は特許開示が米国特許商標庁の特許ファイル又は記録に現れるとき、そのファクシミリ複製が誰によるものでも異存はないが、その他の場合はいかなる著作権もすべて留保する。
【０００２】
本願実施形態は、概してコンピューティングの分野に関し、より具体的には、データアップロード、処理及び予測クエリＡＰＩ公開を実施するシステム、方法及び装置に関する。
【背景技術】
【０００３】
この背景技術セクションにおいて論じられる対象事項は、単に背景技術セクションにおいて言及されていることの結果として、従来技術であると仮定されるべきではない。類似して、背景技術セクションにおいて言及され、あるいは背景技術セクションの対象事項に関連付けられる問題が、従来技術においてこれまでに認識されたことがあると仮定されるべきではない。背景技術セクションにおける対象事項は単に種々のアプローチを表すものであり、種々のアプローチそれ自体もまた請求される実施形態に対応し得る。
【０００４】
データベースの中にデータセットを有するクライアント組織は、予測分析の恩恵を受け得る。不幸なことに、今日の市場には、低コストかつスケーラブルなソリューションが存在しない。代わって、クライアント組織は、技術エキスパートを雇って、カスタマイズされた数学的構造と予測モデルとを開発しなければならず、これは非常に高価である。結果として、巨額の金融手段のないクライアント組織は単純に市場から締め出され、自身のデータセットについての予測分析能力へのアクセスを有さない。
【０００５】
技術的及び数学的エキスパートを雇って必要な数学的構造及び予測モデルを開発するための金融手段を有するクライアント組織は、カスタマイズされたソリューションの持つ共通的問題に悩まされる。詳細には、カスタマイズされたソリューションは、ある時点における目下の特定の問題に対して適合されており、そのようなものとして、カスタマイズされたソリューションは、下層のデータ構造に対する変更に適応することができず、クライアントのデータセット内に記憶されたデータのタイプに対する変更に適応することができず、クライアントの事業とデータセットとがある時間にわたり成長するときに、その増加し及び変化する需要を満たすようにスケールアップされることもできない。
【発明の概要】
【０００６】
現在の最先端は、したがって、本明細書に記載されるとおり、オンデマンド及び／又はマルチテナントデータベースシステムにおける予測クエリ実施及び使用のためのシステム及び方法の恩恵を受けることができる。
【図面の簡単な説明】
【０００７】
本願実施形態は、限定としてではなく例として示されており、下記の詳細な説明を参照して図面と関連して検討されるとより十分に理解されるであろう。
【図１】記載される実施形態に従う一例示的アーキテクチャを描く。
【図２】オンデマンドデータベースサービスが使用され得る環境の一例のブロック図を示す。
【図３】図２の要素とこの要素間の様々なあり得る相互接続との一実施形態のブロック図を示す。
【図４】一実施形態に従うコンピュータシステムの例示的形態におけるマシンの概略表現を示す。
【図５Ａ】タブレットコンピューティング装置とハンドヘルドスマートフォンとを描き、各々がその中に本願実施形態により記載されるとおりの統合された回路を有する。
【図５Ｂ】タッチスクリーンインターフェースコネクタが使用されるタブレットコンピューティング装置、スマートフォン又は他のモバイル装置の一実施形態のブロック図である。
【図６】確率的モデリングのための簡素化されたフローを描く。
【図７】ランダムウォークが実行され得る一例示的ランドスケープを示す。
【図８】一例示的な表形式のデータセットを描く。
【図９】観察されたデータ間の動機又は因果関係を導出する手段を描く。
【図１０Ａ】一例示的クロスカテゴリ化をさらにより詳細に描く。
【図１０Ｂ】推論されたもの対グラウンドトルースを示す集束の一評価を描く。
【図１１】Ｂｅｌｌ連番のチャート及びグラフを描く。
【図１２Ａ】小さい表形式データセットの一例示的クロスカテゴリ化を描く。
【図１２Ｂ】記載される実施形態に従いデータアップロード、処理及び予測クエリＡＰＩ公開を実施する一例示的アーキテクチャを描く。
【図１２Ｃ】開示される実施形態に従いデータアップロード、処理及び予測クエリＡＰＩ公開を実施する方法を示すフロー図である。
【図１２Ｄ】記載される実施形態に従い予測クエリインタフェースをクラウドサービスとして実施する一例示的アーキテクチャを描く。
【図１２Ｅ】開示される実施形態に従い予測クエリインタフェースをクラウドサービスとして実施する方法を示すフロー図である。
【図１３Ａ】記載される実施形態に従うＲＥＬＡＴＥＤコマンドタームの使用を示す。
【図１３Ｂ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１３Ｃ】開示される実施形態に従う一方法を示すフロー図である。
【図１４Ａ】記載される実施形態に従うＧＲＯＵＰコマンドタームの使用を示す。
【図１４Ｂ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１４Ｃ】開示される実施形態に従う一方法を示すフロー図である。
【図１５Ａ】記載される実施形態に従うＳＩＭＩＬＡＲコマンドタームの使用を示す。
【図１５Ｂ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１５Ｃ】開示される実施形態に従う一方法を示すフロー図である。
【図１６Ａ】記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示す。
【図１６Ｂ】記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示す。
【図１６Ｃ】記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示す。
【図１６Ｄ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１６Ｅ】開示される実施形態に従う一方法を示すフロー図である。
【図１６Ｆ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１６Ｇ】開示される実施形態に従う一方法を示すフロー図である。
【図１７Ａ】欠落値を有する表形式データセットをＰＲＥＤＩＣＴコマンドタームを活用することによって表示し及び操作するグラフィカルユーザインターフェース（ＧＵＩ）を描く。
【図１７Ｂ】グラフィカルユーザインターフェースの別のビューを描く。
【図１７Ｃ】グラフィカルユーザインターフェースの別のビューを描く。
【図１７Ｄ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１７Ｅ】開示される実施形態に従う一方法を示すフロー図である。
【図１８】表形式データセットの分析から生成されるインデックス内の特徴移動及びエンティティ移動を描く。
【図１９Ａ】履歴日付を用いて問い合わせる特化されたＧＵＩを描く。
【図１９Ｂ】履歴日付を用いて問い合わせる特化されたＧＵＩのさらなるビューを描く。
【図１９Ｃ】予測クエリを構成する特化されたＧＵＩの別のビューを描く。
【図１９Ｄ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図１９Ｅ】開示される実施形態に従う一方法を示すフロー図である。
【図２０Ａ】記載される実施形態に従うパイプライン変化レポートを描く。
【図２０Ｂ】記載される実施形態に従う予測データを用いたウォーターフォールチャートを描く。
【図２０Ｃ】第１の履歴フィールドを追加した後のデフォルトでのインターフェースを描く。
【図２０Ｄ】追加されたカスタムフィルタのデフォルトでのインターフェースをさらに詳細に描く。
【図２０Ｅ】追加されたカスタムフィルタのデフォルトでの別のインターフェースを描く。
【図２０Ｆ】記載される実施形態に従う一例示的アーキテクチャを描く。
【図２０Ｇ】開示される実施形態に従う一方法を示すフロー図である。
【図２１Ａ】予測完全性対精度を描くチャートを提供する。
【図２１Ｂ】機会信頼度内訳を描くチャートを提供する。
【図２１Ｃ】機会勝ち取り予測を描くチャートを提供する。
【図２２Ａ】機会スコア付けのための予測的関係を描くチャートを提供する。
【図２２Ｂ】機会スコア付けのための予測的関係を描く別のチャートを提供する。
【図２２Ｃ】機会スコア付けのための予測的関係を描く別のチャートを提供する。
【発明を実施するための形態】
【０００８】
予測分析論とデータマイニングとを自身のデータセットに対して実行したいクライアント組織は、通常、目下の問題を解決する試みの中で、技術エキスパートを雇い、自身が解決したい問題を説明し、それから雇ったエキスパートに自身のデータを引き継いでカスタマイズされた数学的構造を適用しなければならない。
【０００９】
例として、何年も前、コンピュータエンジニアがコンピュータシステムを設計するときは、物理ディスクにデータをマップする方法を把握し、セクタ、ブロック、回転スピード等について責任を持つことも必要であった。現代のプログラマは、単純に、こうした問題にかかわっていない。類似して、普通のユーザにとって、特化された（specialized）エキスパートを雇う必要なくサーバ及び洗練されたデータベーステクノロジーを利用してデータ分析論を実行することは、非常に望ましい。こうすることによって、リソースを解放して他の問題に焦点を当てることができる。本明細書に記載される方法論は、オンデマンド及び／又はマルチテナントデータベースシステムにおける予測クエリ実施及び使用のためのシステム及び方法を提供することによって、予測クエリの分野をそのゴールに向かって前進させる。上記の方法論は、数学的及び技術的複雑さの多くをホスト型データベースシステムへ、ゆえにユーザの視界の外へと移動させる。こうすることで、初心者ユーザに対する学習曲線が低減され、ゆえに、予測テクノロジーが市場のより広い範囲に利用可能にされる。
【００１０】
今日、ある程度のマシン学習能力が存在する。例えば、現在の能力は、「この人は製品ｘを買うだろうか？」などの質問に予測的に答えることができる。しかし、既存のテクノロジーは、広範囲の問題を解決するとき、実用的でない。例えば、巨額の金融リソースを有する大規模ヘルスケア企業は、技術エキスパートを雇ってカスタマイズされた分析論を開発して、この大規模ヘルスケア企業のローカルの独自データベースに基づいて特定の問題を解決することができるであろう。しかし対照的に、小規模会社は、このようにするにはコストが小規模会社の金融リソースよりはるかに重いため、上記のようなサービス提供者を単純に雇う余裕がない可能性がある。さらに、上記で示唆したとおり、組織がこうしたカスタマイズされたソリューションに投資するとしても、そのソリューションは解決される特定の問題へと永久に固定され、新しい問題、新しい調査、変化するデータタイプ又はデータ構造などに対してスケール変更することができない。そのようなものとして、カスタム開発されたソリューションは、新しい及び常に変化する組織の事業目標にあまり整合しなくなり、時間とともに退化することになる。時間とともに事業状態、データ及び目的が変わるので、結果として、この例示的な小規模会社は、目下の問題を解決することを諦めなければならず、一方、カスタムソリューションを開発するためにエキスパートを雇ったエンティティは、カスタマイズされたソリューションをアップデートし設備を一新するために、さらなる時間とリソースとを再投資することを強制される。いずれの帰結（outcome）も理想的ではない。
【００１１】
今日、分析論及び予測モデリングの分野における技術エキスパートにより提供されるサービスは、顧客の特定データセットに対してカスタマイズされたソリューションを提供する。上記サービスは、非エキスパートによって使用され得る能力は提供せず、特定の下層のデータセットから抽象化されたソリューションも提供しない。代わって、開発されたモデルは、実施するためだけでなく利用するためにも特化されたトレーニングを必要とし、こうしたモデルは、モデルを開発した目的の特定の下層のデータセットにつなぎとめられる。
【００１２】
逆に、本明細書に記載される方法論は、様々に記載されるクエリ手法、インターフェース、データベース及び他の機能性が様々なレベルの専門知識と様々な範囲の下層のデータセットとから成る広範囲の顧客組織及びユーザによる使用に適する基礎的アーキテクチャを提供する。
【００１３】
Ｓａｌｅｓｆｏｒｃｅ.ｃｏｍは、クライアント、組織及びエンドユーザにオンデマンドのクラウドサービスを提供し、こうしたクラウドサービスの後方には、カスタマイズされたデータ、カスタマイズされたフィールドタイプなどをユーザが有することを許可するマルチテナントデータベースシステムがある。下層のデータ及びデータ構造は、クライアント組織の独自の特定ニーズのために、これら組織によってカスタマイズされる。それにもかかわらず、本明細書に記載される方法論は、いかなる特定の下層のデータベーススキーム、構造又はコンテンツにもつなぎとめられないため、上記のデータセット及びデータ構造を分析し、問い合わせる能力がある。
【００１４】
記載される手法を用いる顧客組織は、記載されるソリューションの高いスケーラビリティによって可能にされるアクセスのコストの低さからさらに恩恵を受ける。例えば、クラウドサービス提供者は、提供する全体的なサービスの一部として追加コストなしで上記能力を提供することを選んでもよく、あるいは追加のサービス料に対して追加能力を提供することを選んでもよい。いずれにしても、顧客組織は、従来手法と同様に１回のカスタマイズされるソリューションを前にして大規模な額を投資することを必要とされない。上記能力は、クラウドサービスのコンピューティングアーキテクチャへ系統的に統合されてもよく、各々の特定クライアント組織のデータセット及び構造のためにソリューションを顧客に適合させるためのエキスパートを必要としないため、そのスケーラビリティが大幅なコスト節約をもたらし、ゆえに、限られた金融リソースを有する小規模組織でさえも予測クエリ及び潜在構造クエリ手法から恩恵を受けることを可能にする。金融手段を有する大規模会社もまた、自身が得られるコスト節約に起因して恩恵を受けることができ、従来手法を利用してこれまでに実現可能であったよりもさらに広範囲の調査のための予測クエリ及び潜在構造クエリ手法を設ける能力からさらに恩恵を受けることができる。
【００１５】
上記及び他の恩恵とさらに特定の実施形態とが以下により詳細に記載される。下記の記載において、様々な実施形態の完全な理解を提供するために、特定のシステム、言語、コンポーネント等の例など、多数の特定の詳細が明記される。しかしながら、当業者には、これら特定の詳細が本明細書に開示される実施形態を実施するために採用される必要はないことが明らかであろう。他の例として、開示される実施形態を不要に分かりにくくすることを回避するために、周知の材料又は方法は詳細には記載されていない。
【００１６】
図に描かれ、本明細書に記載される様々なハードウェアコンポーネントに加えて、本願実施形態は、以下に記載される様々なオペレーションをさらに含む。こうした実施形態に従い記載されるオペレーションは、ハードウェアコンポーネントによって実行されてもよく、あるいはマシン実行可能命令において具現化されてもよく、この命令は、命令を用いてプログラムされる汎用目的又は特別目的プロセッサに上記オペレーションを実行させるのに使用することができる。あるいは、上記オペレーションは、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
【００１７】
本願実施形態は、さらに、本明細書に開示されるオペレーションを実行する装置に関する。この装置は、必要とされる目的のために特別に構築されてもよく、あるいは、コンピュータの中に記憶されたコンピュータプログラムによって選択的にアクティブ化され、あるいは再構成される汎用目的コンピュータであってもよい。こうしたコンピュータプログラムはコンピュータ可読媒体に記憶されてもよく、コンピュータ可読媒体は、例えば、これらに限らないが、フロッピーディスク、光ディスク、ＣＤ‐ＲＯＭ及び光磁気ディスクを含む任意のタイプのディスク、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード若しくは光カード、又はコンピュータシステムバスに各々結合され、電子的命令を記憶するのに適した任意のタイプの媒体である。
【００１８】
本明細書において提示されるアルゴリズム及び表示は、本質的に、いかなる特定のコンピュータ又は他の装置にも関連しない。様々な汎用目的システムが、本明細書における教示に従うプログラムと共に使用されてもよく、必要とされる方法ステップを実行するためにより特化された装置を構築するための便利さを証明し得る。様々なこうしたシステムのために必要とされる構造が、以下の記載に明記されるとおり、現れることになる。さらに、本願実施形態は、何らかの特定のプログラミング言語を参照して記載されてはいない。本明細書に記載の実施形態の教示を実施するために、様々なプログラミング言語が使用されてもよいことが十分理解されるであろう。
【００１９】
本願実施形態は、命令を記憶させたマシン可読媒体を含み得るコンピュータプログラム製品又はソフトウェアとして提供されてもよく、上記命令は、開示される実施形態に従いプロセスを実行するためにコンピュータシステム（又は、他の電子装置）をプログラムするのに使用することができる。マシン可読媒体には、マシン（例えば、コンピュータ）によって読取可能な形式で情報を記憶し、あるいは伝送するための任意のメカニズムを含む。例えば、マシン可読（例えば、コンピュータ可読）媒体には、マシン（例えば、コンピュータ）可読記憶媒体（例えば、読取専用メモリ（“ＲＯＭ”）、ランダムアクセスメモリ（“ＲＡＭ”）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置等）、マシン（例えば、コンピュータ）可読伝送媒体（電気的、光学的、音響的）等を含む。
【００２０】
開示される実施形態のいずれもが、単独で、あるいは任意の組み合わせにおいて互いに一緒に使用されてもよい。様々な実施形態が従来の手法及びアプローチでの欠陥によって部分的に動機付けされている可能性があるが、これらのうちいくつかが本明細書内に記載され、あるいは示唆されており、本願実施形態は、必ずしも上記欠陥のいずれかに対処し、あるいは解決する必要はなく、むしろ、欠陥のうちいくつかにだけ対処していたり、欠陥のいずれにも対処していなかったり、あるいは直接論じられない種々の欠陥及び問題に向けられていたりすることがある。
【００２１】
一実施形態において、マルチテナントデータベースシステムにおける予測クエリ及び潜在構造クエリの実施及び使用のための手段が、コンピューティング装置、コンピューティングシステム又はコンピューティングアーキテクチャの中のアプリケーションで実行され、これにおいて、アプリケーションは、パブリックインターネットを通じてリモートクライアントなどのリモートのコンピューティング装置と通信することを可能にされ、ゆえに、予測及び潜在構造のクエリ及び使用の能力を実施するリモートアプリケーションの機能性をクライアントが利用するクラウドベースのコンピューティングサービスを確立する。
【００２２】
図１は、記載される実施形態に従う一例示的アーキテクチャ１００を描いている。
【００２３】
一実施形態において、生産環境１１１は、ホスト組織１１０を通じて複数のクライアント装置１０６Ａ‐Ｃと通信可能にインターフェースをとる。一実施形態において、マルチテナントデータベースシステム１３０がリレーショナルデータストア１５５を含み、リレーショナルデータストア１５５は、例えば、顧客組織１０５Ａ‐Ｃ又はユーザのためにデータセットを記憶する。マルチテナントデータベースシステム１３０は、予測クエリのためのインデックス１５０をさらに記憶し、予測クエリのためのインデックス１５０は、例えば、ユーザ及び顧客組織１０５Ａ‐Ｃにより提供され、指定され、あるいはユーザ及び顧客組織１０５Ａ‐Ｃのために記憶されたデータセットから生成される。
【００２４】
マルチテナントデータベースシステム１３０は、ホスト組織１１０内のデータベース機能性とコード実行環境とを実施する複数の下層のハードウェア、ソフトウェア及びロジック要素１２０を含む。一実施形態によれば、マルチテナントデータベースシステム１３０は、非リレーショナルデータストアを実施し、さらに、予測クエリのためのインデックス１５０を記憶する予測データベースを別個に実施する。マルチテナントデータベースシステム１３０のハードウェア、ソフトウェア及びロジック要素１２０は、複数の顧客組織（１０５Ａ、１０５Ｂ及び１０５Ｃ）から別個かつ区別可能であり、顧客組織は、ネットワーク１２５を介してホスト組織１１０に対して通信可能にインターフェースをとることによって、ホスト組織１１０により提供されるサービスを利用する。こうして、ホスト組織１１０は、加入している顧客組織１０５Ａ‐Ｃに対してオンデマンドサービス、オンデマンドデータベースサービス又はクラウドコンピューティングサービスを実施することができる。
【００２５】
ホスト組織１１０は、ネットワーク１２５（パブリックインターネットなど）を介して複数の顧客組織１０５Ａ‐Ｃから入力及び他の要求１１５を受信する。例えば、到来するＰｒｅＱＬクエリ、予測クエリ、ＡＰＩ要求又は他の入力を、顧客組織１０５Ａ‐Ｃから受信してマルチテナントデータベースシステム１３０に対して処理することができる。
【００２６】
一実施形態において、各顧客組織１０５Ａ‐Ｃは、別個かつ区別可能なリモートの組織、ホスト組織１１０内の組織グループ、ホスト組織１１０のビジネスパートナー、又はホスト組織１１０により提供されるクラウドコンピューティングサービスに加入している顧客組織１０５Ａ‐Ｃから成るグループから選択されたエンティティである。
【００２７】
一実施形態において、要求１１５は、ホスト組織１１０内のウェブサーバ１７５で受信され、あるいはウェブサーバ１７５にサブミットされる。ホスト組織１１０は、ホスト組織１１０及びそのマルチテナントデータベースシステム１３０による処理のための様々な要求を受信することができる。ウェブサーバ１７５で受信される到来する要求１１５は、ホスト組織１１０からのどのサービスが提供されることになるかを指定することができ、上記サービスは、例えば、顧客組織１０５Ａ‐Ｃのうち１つのためにデータを取り出し、アップデートし又は記憶するための、クエリ要求、検索要求、ステータス要求、データベーストランザクション、処理要求などである。ウェブサーバ１７５は、ネットワーク１２５を介して様々な顧客組織１０５Ａ‐Ｃから要求１１５を受信することの責任を負い、上記のデータ要求１１５を生じさせるエンドユーザクライアント装置１０６Ａ‐Ｃ又はマシンに対してウェブベースのインターフェースを提供することができる。
【００２８】
クエリインターフェース１８０は、予測クエリのためのインデックス１５０又はリレーショナルデータストア１５５に対する実行のために、ウェブサーバ１７５からマルチテナントデータベースシステム１３０へクエリを渡す機能性を提供する。一実施形態において、クエリインターフェース１８０は、ＰｒｅＱＬアプリケーションプログラミングインターフェース（ＡＰＩ）又はＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ＡＰＩインターフェースを実施し、上記ＡＰＩを通じて、予測クエリのためのインデックス１５０又はリレーショナルデータストア１５５に対してクエリを実行することができる。クエリオプティマイザ１６０は、例えば、クエリ又はＰｒｅＱＬクエリを設計するための十分な情報を所有するがクエリシンタックスを実際に構築するのに必要なロジックを欠いている他の機能性のために、クエリ翻訳及び最適化を実行する。分析エンジン１８５は、ユーザにより提供され又は指定される表形式のデータセット又は他のデータから、予測クエリのための問い合わせ可能（queryable）インデックスを生成するように動作する。
【００２９】
ホスト組織１１０は、クライアント装置１０６Ａ‐Ｃから要求パケット又は他の要求１１５を受信するように、ウェブサーバ１７５を介して又はスタンドアロンインターフェースとして、要求インターフェース１７６を実施する。要求インターフェース１７６は、ホスト組織１１０からクライアント装置１０６Ａ‐Ｃへ出て行く方向において応答パケット又は他のリプライ及び応答１１６を返すことをさらにサポートする。一実施形態によれば、クエリインターフェース１８０は、要素１５０における予測クエリのためのインデックスなどの、マルチテナントデータベースシステム１３０のデータベースに対してＰｒｅＱＬクエリ又は他の予測クエリを実行するための特化された機能性を用いて、ＰｒｅＱＬ  ＡＰＩインターフェース及び／又はＪＳＯＮ  ＡＰＩインターフェースを実施する。例えば、クエリインターフェース１８０は、クライアント装置１０６からの上記の要求１１５を実現することにおいて、“ＰＲＥＤＩＣＴ”、“ＲＥＬＡＴＥＤ”、“ＳＩＭＩＬＡＲ”及び“ＧＲＯＵＰ”などのＰｒｅＱＬ構造化されたクエリタームを用いてＡＰＩコールを発行することによって、ホスト組織１１０内の予測データベースに問い合わせるように動作することができる。さらに、“ＵＰＬＯＡＤ”及び“ＡＮＡＬＹＺＥ”のＡＰＩコールが利用可能である。これらは、予測データベース１５０に対して新しいデータセットをアップロードし、あるいはデータセットを定義するものであり、分析エンジン１８５に上記データの分析のインスタンスを生成させて、上記のクエリをサポートする問い合わせ可能インデックスを生成させるものである。
【００３０】
図２は、オンデマンドデータベースサービスが使用され得る環境２１０の一例のブロック図を示している。環境２１０は、ユーザシステム２１２、ネットワーク２１４、システム２１６、プロセッサシステム２１７、アプリケーションプラットフォーム２１８、ネットワークインターフェース２２０、テナントデータストレージ２２２、システムデータストレージ２２４、プログラムコード２２６及びプロセス空間２２８を含み得る。他の実施形態において、環境２１０は、リストアップされたコンポーネントのすべてを有さなくてもよく、かつ／あるいは、上記のリストアップされたコンポーネントに代わって、あるいは追加して他の要素を有してもよい。
【００３１】
環境２１０は、オンデマンドデータベースサービスが存在する環境である。ユーザシステム２１２は、ユーザがデータベースユーザシステムにアクセスするのに使用されるいかなるマシン又はシステムでもよい。例えば、ユーザシステム２１２のいずれかが、ハンドヘルドコンピューティング装置、モバイルフォン、ラップトップコンピュータ、ワークステーション、及び／又はコンピューティング装置のネットワークであり得る。図２に（そして、図３により詳細に）示されるとおり、ユーザシステム２１２は、ネットワーク２１４を介してオンデマンドデータベースサービスと相互作用することができ、オンデマンドデータベースサービスは、システム２１６である。
【００３２】
システム２１６などのオンデマンドデータベースサービスは、外部のユーザに利用可能にされたデータベースシステムであり、外部のユーザは、データベースシステムを築き及び／又は維持することに必ずしもかかわる必要がないが、代わってデータベースシステムをユーザが必要とするときに（例えば、ユーザの需要に対して）その使用が可能であり得る。いくつかのオンデマンドデータベースサービスは、共通のデータベースイメージのテーブルに記憶された１又は複数のテナントからの情報を記憶してマルチテナントデータベースシステム（ＭＴＳ）を形成することができる。したがって、「オンデマンドデータベースサービス２１６」と「システム２１６」とは本明細書において置き換え可能に使用される。データベースイメージは、１又は複数のデータベースオブジェクトを含み得る。リレーショナルデータベース管理システム（ＲＤＭＳ）又はその均等物は、データベースオブジェクトに対して情報の記憶及び取り出しを実行することができる。アプリケーションプラットフォーム２１８は、システム２１６のアプリケーションが実行されるのを可能にするフレームワークであってよく、ハードウェア及び／又はソフトウェア、例えば、オペレーティングシステムなどである。一実施形態において、オンデマンドデータベースサービス２１６は、オンデマンドデータベースサービスの提供者により開発される１又は複数のアプリケーションを作成し、管理し、実行すること、ユーザがユーザシステム２１２を介してオンデマンドデータベースサービスにアクセスすること、又はサードパーティアプリケーション開発者がユーザシステム２１２を介してオンデマンドデータベースサービスにアクセスすることを可能にするアプリケーションプラットフォーム２１８を含み得る。
【００３３】
ユーザシステム２１２のユーザは、そのそれぞれのキャパシティに差があり得、特定のユーザシステム２１２のキャパシティは、現在のユーザについての許可（許可レベル）によって全体として決定されてもよい。例えば、販売員が特定のユーザシステム２１２を使用してシステム２１６と相互作用している場合、このユーザシステムは、上記販売員に割り振られたキャパシティを有する。しかしながら、管理者がこのユーザシステムを使用してシステム２１６と相互作用する間は、このユーザシステムは上記管理者に割り振られたキャパシティを有する。階層的なロールモデルを有するシステムでは、ある許可レベルにおけるユーザは、より低い許可レベルのユーザがアクセス可能なアプリケーション、データ及びデータベース情報へのアクセスを有することがあり、しかし、より高い許可レベルにおけるユーザがアクセス可能な特定のアプリケーション、データベース情報及びデータへのアクセスを有さないことがある。こうして、種々のユーザが、ユーザのセキュリティ又は許可レベルに依存して、アプリケーション及びデータベース情報にアクセスし、これらを修正することに関して、種々の能力を有することになる。
【００３４】
ネットワーク２１４は、互いに通信する装置から成る任意のネットワーク又はネットワークの組み合わせである。例えば、ネットワーク２１４は、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、電話ネットワーク、ワイヤレスネットワーク、ポイントツーポイントネットワーク、スター型ネットワーク、トークンリングネットワーク、ハブネットワーク又は他の適切な構成のうちいずれか１つ又はいずれかの組み合わせであり得る。現在使用されているコンピュータネットワークの最も一般的タイプとしては、大文字の“Ｉ”での“インターネット”としばしば呼ばれるネットワークのグローバルなインターネットワークなどの、ＴＣＰ／ＩＰ（トランスファーコントロールプロトコル及びインターネットプロトコル）ネットワークがあり、このネットワークは、本明細書における例の多くにおいて使用されることになる。しかしながら、ＴＣＰ／ＩＰは頻繁に実施されるプロトコルであるが、請求される実施形態が利用し得るネットワークはそのように限られないことが理解される。
【００３５】
ユーザシステム２１２は、ＴＣＰ／ＩＰを用いてシステム２１６と通信し、より高いネットワークレベルにおいて、ＨＴＴＰ、ＦＴＰ、ＡＦＳ、ＷＡＰ等の他の共通のインターネットプロトコルを使用して通信することができる。ＨＴＴＰが使用される例において、ユーザシステム２１２は、「ブラウザ」と一般的に呼ばれるＨＴＴＰクライアントを含んで、システム２１６におけるＨＴＴＰサーバへＨＴＴＰメッセージを送信し、該ＨＴＴＰサーバからＨＴＴＰメッセージを受信することができる。こうしたＨＴＴＰサーバは、システム２１６とネットワーク２１４とにおける唯一のネットワークインターフェースとして実施されてもよいが、他の手法が同様に、あるいは代わりに使用されてもよい。いくつかの実施において、システム２１６とネットワーク２１４とにおけるインターフェースは、ラウンドロビンＨＴＴＰ要求分配器などの負荷分散の機能性を含んで、負荷のバランスをとり、到来するＨＴＴＰ要求を複数のサーバにわたって均等に分配する。少なくとも上記サーバにアクセスしているユーザに関して、複数のサーバの各々はＭＴＳのデータへのアクセスを有する。しかしながら、他の代替的な構成が代わって使用されてもよい。
【００３６】
一実施形態において、図２に示されるシステム２１６は、ウェブベースの顧客関係管理（ＣＲＭ）システムを実施する。例えば、一実施形態において、システム２１６はアプリケーションサーバを含み、該アプリケーションサーバは、ＣＲＭソフトウェアアプリケーションを実施し、実行し、関連データ、コード、フォーム、ウェブページ及び他の情報をユーザシステム２１２とやり取りし、さらに、関連データ、オブジェクト及びウェブページコンテンツをデータベースに記憶し、該データベースから取り出すように構成される。マルチテナントシステムでは、複数のテナントのためのデータが同じ物理データベースオブジェクトに記憶され得る。しかしながら、テナントデータは典型的に、こうしたデータが明示的に共有されない限り、あるテナントのデータは他のテナントのデータから論理的に別個で保持され、したがってあるテナントは別のテナントのデータへのアクセスを有さないように配置される。特定の実施形態において、システム２１６は、ＣＲＭアプリケーション以外のアプリケーション、又はＣＲＭアプリケーションに加えてのアプリケーションを実施する。例えば、システム２１６は、ＣＲＭアプリケーションを含む複数のホストされた（標準の及びカスタムの）アプリケーションに対してテナントアクセスを提供してもよい。ＣＲＭを含むこともあり含まないこともあるユーザ（又は、サードパーティ開発者）アプリケーションがアプリケーションプラットフォーム２１８によってサポートされてもよく、アプリケーションプラットフォーム２１８は、アプリケーションの作成と、１又は複数のデータベースオブジェクトへの記憶と、システム２１６のプロセス空間における仮想マシンにおけるアプリケーションの実行とを管理する。
【００３７】
図２には、システム２１６の要素の一配置が示されており、ネットワークインターフェース２２０と、アプリケーションプラットフォーム２１８と、テナントデータ２２３のためのテナントデータストレージ２２２と、システム２１６と可能性として複数のテナントとにとってアクセス可能なシステムデータ２２５のためのシステムデータストレージ２２４と、システム２１６の様々な機能を実施するためのプログラムコード２２６と、アプリケーションホスティングサービスの一部としてアプリケーションを実行することなどのテナント固有プロセスとＭＴＳシステムプロセスとを実行するためのプロセス空間２２８とを含んでいる。システム２１６上で実行され得るさらなるプロセスには、データベースインデックス作成プロセスが挙げられる。
【００３８】
図２に示されるシステムの中のいくつかの要素には従来の周知の要素が含まれ、こうした要素はここでは簡単にしか説明されない。例えば、各ユーザシステム２１２には、デスクトップパーソナルコンピュータ、ワークステーション、ラップトップ、ＰＤＡ、セルフォン、又は、インターネット又は他のネットワークと直接又は間接的にインターフェースをとる能力がある任意のワイヤレスアクセスプロトコル（ＷＡＰ）使用可能装置若しくは任意の他のコンピューティング装置を含み得る。ユーザシステム２１２は、典型的に、ＨＴＴＰクライアント、例えば、マイクロソフトのＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒブラウザ、Ｍｏｚｉｌｌａ若しくはＦｉｒｅｆｏｘブラウザ、Ｏｐｅｒａ、又はスマートフォン、タブレット、ＰＤＡ又は他のワイヤレス装置の場合のＷＡＰ使用可能ブラウザなどのブラウジングプログラムを実行し、ユーザシステム２１２のユーザ（例えば、マルチテナントデータベースシステムの加入者）が、ネットワーク２１４を介してシステム２１６から自身が利用可能な情報、ページ及びアプリケーションにアクセスし、これらを処理し、見ることを可能にする。各ユーザシステム２１２は、典型的に、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーン、ペンなどの１又は複数のユーザインターフェース装置をさらに含んで、システム２１６又は他のシステム若しくはサーバにより提供されるページ、フォーム、アプリケーション及び他の情報と関連してブラウザによってディスプレイ（例えば、モニタ画面、ＬＣＤディスプレイ等）上に提供されるグラフィカルユーザインターフェース（ＧＵＩ）と相互作用する。例えば、ユーザインターフェース装置を使用して、システム２１６によりホストされるデータ及びアプリケーションにアクセスし、記憶されたデータに対して検索を実行し、ユーザに提示され得る様々なＧＵＩページとユーザがその他の方法で相互作用することを可能にすることができる。上記で論じられたとおり、本願実施形態はインターネットでの使用に適しており、インターネットは特定のグローバルなインターネットワークのネットワークを指す。しかしながら、インターネットに代わって、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、非ＴＣＰ／ＩＰベースのネットワーク、任意のＬＡＮ又はＷＡＮなどの他のネットワークが使用されてもよいことが理解される。
【００３９】
一実施形態によれば、各ユーザシステム２１２とそのコンポーネントのすべてとが、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサなどの中央処理ユニットを用いて実行されるコンピュータコードを含むブラウザなどのアプリケーションを用いて、オペレータ構成可能である。類似して、システム２１６（及び、２以上のＭＴＳが存在する場合はそのさらなるインスタンス）とそのコンポーネントのすべてとが、プロセッサシステム２１７などの中央処理ユニットを用いて実行すべきコンピュータコードを含むアプリケーションを用いてオペレータ構成可能であってもよく、プロセッサシステム２１７は、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサなど、及び／又は複数のプロセッサユニットを含み得る。
【００４０】
一実施形態によれば、各システム２１６は、ユーザ（クライアントシステム２１２）に対してウェブページ、フォーム、アプリケーション、データ及びメディアコンテンツを提供して、システム２１６のテナントとしてのユーザシステム２１２によるアクセスをサポートするように構成される。そのようなものとして、システム２１６は、データが共有されていない限りは各テナントのデータを別個に保持するようにセキュリティメカニズムを提供する。２以上のＭＴＳが使用される場合、これらＭＴＳは、互いに近接して（例えば、単一のビル又はキャンパスに置かれたサーバファームに）置かれてもよく、あるいは、互いに離れた場所に分散されてもよい（例えば、１又は複数のサーバがＡ市に置かれ、１又は複数のサーバがＢ市に置かれる）。本明細書において、各ＭＴＳは、局所的に、あるいは１又は複数の地理的場所にわたって分散された、１又は複数の論理的及び／又は物理的に接続されたサーバを含み得る。さらに、用語「サーバ」は、当分野において周知であるとおり、処理ハードウェア及びプロセス空間を含むコンピュータシステムと、関連するストレージシステム及びデータベースアプリケーション（例えば、ＯＯＤＢＭＳ又はＲＤＢＭＳ）とを含むことが意図される。「サーバシステム」及び「サーバ」は本明細書において置き換え可能にしばしば使用されることが理解される。類似して、本明細書に記載されるデータベースオブジェクトは、単一データベース、分散データベース、分散データベースのコレクション、冗長のオンライン若しくはオフラインバックアップ又は他の冗長性を備えたデータベース等として実施されてもよく、分散データベース又はストレージネットワークと関連する処理インテリジェンスとを含んでもよい。
【００４１】
図３は、図２の要素とこれら要素間の様々なあり得る相互接続との一実施形態のブロック図を示している。図３もまた環境２１０を示している。しかしながら、図３では、一実施形態におけるシステム２１６の要素と様々な相互接続とがさらに示されている。図３は、ユーザシステム２１２がプロセッサシステム２１２Ａ、メモリシステム２１２Ｂ、入力システム２１２Ｃ及び出力システム２１２Ｄを含み得ることを示している。図３は、ネットワーク２１４及びシステム２１６を示している。図３はさらに、システム２１６がテナントデータストレージ２２２、テナントデータ２２３、システムデータストレージ２２４、システムデータ２２５、ユーザインターフェース（ＵＩ）３３０、アプリケーションプログラムインターフェース（ＡＰＩ）３３２（例えば、ＰｒｅＱＬ又はＪＳＯＮ  ＡＰＩ）、ＰＬ／ＳＯＱＬ３３４、保存ルーチン３３６、アプリケーションセットアップメカニズム３３８、アプリケーションサーバ３００１‐３００Ｎ、システムプロセス空間３０２、テナントプロセス空間３０４、テナント管理プロセス空間３１０、テナントストレージ領域３１２、ユーザストレージ３１４及びアプリケーションメタデータ３１６を含み得ることを示している。他の実施形態において、環境２１０は、上記でリストアップされた要素と同一の要素を有さなくてもよく、かつ／あるいは上記でリストアップされた要素に対して代わりに、又は追加で他の要素を有してもよい。
【００４２】
ユーザシステム２１２、ネットワーク２１４、システム２１６、テナントデータストレージ２２２及びシステムデータストレージ２２４は、上記で図２において論じられた。図３により示されるとおり、システム２１６は、一組のＨＴＴＰアプリケーションサーバ３００、アプリケーションプラットフォーム２１８、テナントデータストレージ２２２及びシステムデータストレージ２２４として実施される（図２の）ネットワークインターフェース２２０を含み得る。さらに、システムプロセス空間３０２が示されており、個々のテナントプロセス空間３０４とテナント管理プロセス空間３１０とを含んでいる。各アプリケーションサーバ３００は、ユーザシステム２１２の要求を果たすように、テナントデータストレージ２２２及びその中のテナントデータ２２３とシステムデータストレージ２２４及びその中のシステムデータ２２５とに対して構成されてよい。テナントデータ２２３は、個々のテナントストレージ領域３１２へと分割されてもよく、個々のテナントストレージ領域は、データの物理的配置及び／又は論理的配置のいずれでもよい。各テナントストレージ領域３１２内に、ユーザストレージ３１４とアプリケーションメタデータ３１６とが各ユーザについて類似して割り当てられてもよい。例えば、ユーザの最も直近に使用された（ＭＲＵ）アイテムのコピーがユーザストレージ３１４に記憶されてもよい。類似して、テナントである組織全体についてのＭＲＵアイテムのコピーがテナントストレージ領域３１２に記憶されてもよい。ＵＩ３３０はユーザインターフェースを提供し、ＡＰＩ３３２（例えば、ＰｒｅＱＬ又はＪＳＯＮ  ＡＰＩ）は、システム２１６に常駐するプロセスに対するアプリケーションプログラマインターフェースを、ユーザシステム２１２におけるユーザ及び／又は開発者に提供する。テナントデータ及びシステムデータは、１又は複数のＯｒａｃｌｅＴＭデータベースなどの様々なデータベースに記憶されてよい。
【００４３】
アプリケーションプラットフォーム２１８は、アプリケーション開発者によるアプリケーションの作成及び管理をサポートするアプリケーションセットアップメカニズム３３８を含み、上記アプリケーションは、例えば、保存ルーチン３３６によってメタデータとしてテナントデータストレージ２２２へと保存され、加入者によってテナント管理プロセス空間３１０が管理する１又は複数のテナントプロセス空間３０４として実行されてもよい。こうしたアプリケーションに対する起動は、ＡＰＩ３３２（例えば、ＰｒｅＱＬ又はＪＳＯＮ  ＡＰＩ）に対してプログラミング言語スタイルのインターフェース拡張を提供するＰＬ／ＳＯＱＬ３３４を用いてコード化されてもよい。アプリケーションに対する起動は、１又は複数のシステムプロセスによって検出されてもよく、上記システムプロセスは、起動を行う加入者のためにアプリケーションメタデータ３１６を取り出すことと、このメタデータをアプリケーションとして仮想マシンにおいて実行することとを管理する。
【００４４】
各アプリケーションサーバ３００は、種々のネットワーク接続を介して、例えばシステムデータ２２５及びテナントデータ２２３へのアクセスを有するデータベースシステムに、通信可能に結合されてよい。例えば、あるアプリケーションサーバ３００１が、ネットワーク２１４（例えば、インターネット）を介して結合されてもよく、別のアプリケーションサーバ３００Ｎ−１が、直接のネットワークリンクを介して結合されてもよく、別のアプリケーションサーバ３００Ｎが、さらに異なるネットワーク接続によって結合されてもよい。トランスファーコントロールプロトコル及びインターネットプロトコル（ＴＣＰ／ＩＰ）が、アプリケーションサーバ３００とデータベースシステムとにおける通信のための典型的なプロトコルである。しかしながら、当業者には、使用されるネットワーク相互接続に依存してシステムを最適化するように他のトランスポートプロトコルが使用されてもよいことが明らかであろう。
【００４５】
特定の実施形態において、各アプリケーションサーバ３００は、テナントである任意の組織に関連付けられた任意のユーザの要求を扱うように構成される。任意の理由で任意の時点にアプリケーションサーバをサーバプールで追加し、除去することができるのが望ましいため、好ましくは、特定のアプリケーションサーバ３００に対してユーザ及び／又は組織についてのサーバアフィニティがない。したがって、一実施形態において、ロードバランシング機能（例えば、Ｆ５  Ｂｉｇ‐ＩＰロードバランサ）を実施するインターフェースシステムがアプリケーションサーバ３００とユーザシステム２１２との間に通信可能に結合されて、アプリケーションサーバ３００に対する要求を分配する。一実施形態において、ロードバランサは、最小接続アルゴリズムを使用してアプリケーションサーバ３００に対するユーザ要求のルートを決める。さらに、ロードバランシングアルゴリズムの他の例、例えば、ラウンドロビン及び観察された応答時間などが使用されてもよい。例えば、特定の実施形態において、同一ユーザからの３つの連続した要求が３つの異なるアプリケーションサーバ３００に至ることがあり、異なるユーザからの３つの要求が同一のアプリケーションサーバ３００に至ることがある。このようにして、システム２１６はマルチテナントであり、このシステム２１６は、色々なユーザ及び組織にわたる種々のオブジェクト、データ及びアプリケーションの記憶とこれらへのアクセスとを扱う。
【００４６】
ストレージの一例として、あるテナントが、各販売員がシステム２１６を使用して自身の販売プロセスを管理するところの販売陣（sales  force）を採用する会社であり得る。ゆえに、ユーザは、該ユーザ個人の販売プロセスに適用可能なすべての連絡先データ、リードデータ、顧客フォローアップデータ、パフォーマンスデータ、ゴール及び進捗データ等を（例えば、テナントデータストレージ２２２の中で）維持することができる。ＭＴＳ配置の一例において、アクセス、閲覧、修正、報告、送信、算出等すべきデータ及びアプリケーションのすべてが、ネットワークアクセスを超えるものを有さないユーザシステムによって維持され、アクセスされることができるため、ユーザは、自身の販売努力及びサイクルを多くの種々のユーザシステムのいずれかから管理することができる。例えば、販売員が顧客を訪問し、顧客がそのロビーにおいてインターネットアクセスを有する場合、販売員は、ロビーで顧客が到着するのを待つ間に、この顧客に関する重要なアップデートを得ることができる。
【００４７】
各ユーザの雇用主にかかわらず、各ユーザのデータが他のユーザのデータとは別個であってもよいが、いくつかのデータは、テナントである所与の組織についての複数のユーザ又はユーザ全員によって共有され、あるいはアクセス可能である組織範囲のデータであってもよい。ゆえに、テナントレベルで割り当てられたシステム２１６によって管理されるいくつかのデータ構造が存在し得ると同時に、他のデータ構造がユーザレベルで管理されてもよい。ＭＴＳは、競合他社であり得るテナントを含む複数のテナントをサポートし得るため、データ、アプリケーション及びアプリケーション使用を別個に保持するセキュリティプロトコルを有し得る。さらに、多くのテナントが、自身の独自システムを維持するよりもＭＴＳへのアクセスを選び得るため、冗長性、アップタイム及びバックアップが、ＭＴＳにおいて実施され得るさらなる機能である。ユーザ固有データ及びテナント固有データに加えて、システム２１６は、複数のテナントにより使用可能なシステムレベルのデータ又は他のデータをさらに維持してもよい。こうしたシステムレベルのデータには、複数テナント間で共有可能な産業レポート、ニュース、投稿メッセージ等を含み得る。
【００４８】
特定の実施形態において、ユーザシステム２１２（これは、クライアントシステムであり得る）は、アプリケーションサーバ３００と通信して、システム２１６からのシステムレベル及びテナントレベルのデータを要求し、アップデートする。上記データは、１又は複数のクエリをテナントデータストレージ２２２及び／又はシステムデータストレージ２２４に送信することを必要とし得る。システム２１６（例えば、システム２１６の中のアプリケーションサーバ３００）は、所望の情報にアクセスするように設計された１又は複数のＳＱＬステートメント又はＰｒｅＱＬステートメント（例えば、それぞれ、１又は複数のＳＱＬ又はＰｒｅＱＬクエリ）を自動的に生成する。システムデータストレージ２２４は、データベースからの要求されたデータにアクセスするためのクエリプランを生成してもよい。
【００４９】
各データベースは、一般に、予め定義されたカテゴリへと合わせられたデータを含む一組の論理テーブルなどの、オブジェクトのコレクションとして見ることができる。「テーブル」は、データオブジェクトの一表現であり、本明細書において、本明細書に記載されるオブジェクト及びカスタムオブジェクトの概念的説明を簡素化するのに使用されることがある。「テーブル」及び「オブジェクト」は、本明細書において置き換え可能に使用され得ることが理解される。各テーブルは、一般に、可視のスキーマの中の列又はフィールドとして論理的に配置された１又は複数のデータカテゴリを含む。テーブルの各行又はレコードは、フィールドによって定義された各カテゴリについてのデータのインスタンスを含む。例えば、ＣＲＭデータベースは、名前、住所、電話番号、ファックス番号などの基本的な連絡先情報のフィールドで顧客を説明するテーブルを含み得る。別のテーブルが、顧客、製品、販売価格、日付などの情報のフィールドを含む購入注文を説明し得る。いくつかのマルチテナントデータベースシステムにおいて、すべてのテナントによる使用のために、標準のエンティティテーブルが提供されてもよい。ＣＲＭデータベースアプリケーションに関して、こうした標準のエンティティには、アカウント、連絡先、リード及び機会データのテーブルを含むことがあり、各々が、予め定義されたフィールドを含み得る。「エンティティ」という言葉もまた、本明細書において「オブジェクト」及び「テーブル」と置き換え可能に使用され得ることが理解される。
【００５０】
いくつかのマルチテナントデータベースシステムにおいて、テナントは、例えば、カスタムインデックスフィールドを含むカスタムフィールドを標準のオブジェクトに対して作成することによって、カスタムオブジェクトを作成し、記憶することを可能にされてもよく、あるいは、標準のエンティティ又はオブジェクトをカスタマイズすることを可能にされてもよい。特定の実施形態において、例えば、すべてのカスタムエンティティデータ行が単一のマルチテナントの物理テーブルに記憶され、このテーブルは、組織ごとに複数の論理テーブルを含み得る。顧客の複数の「テーブル」が実際は１つの大きいテーブルに記憶されること、又は、顧客のデータが他の顧客のデータと同じテーブルに記憶され得ることは、顧客に対して透過的である。
【００５１】
図４は、一実施形態によるコンピュータシステムの例示的形態におけるマシン４００の概略表現を示しており、このコンピュータシステム内において、本明細書に論じられる方法論のうち任意の１又は複数をマシン／コンピュータシステム４００に実行させる命令セットを実行することができる。別の実施形態において、マシンは、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、エクストラネット又はパブリックインターネットの中の他のマシンに接続され（例えば、ネットワーク化され）てもよい。マシンは、クライアント‐サーバネットワーク環境の中のサーバ又はクライアントマシンのキャパシティにおいて、ピアツーピア（又は分散型）ネットワークにおけるピアマシンとして、オンデマンドサービス環境内の一サーバ又は一連のサーバとして、動作し得る。マシンの特定の実施形態は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、セルラー電話、ウェブ電化製品、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、コンピューティングシステム、又は、マシンが行うべき動作を指定する（順次の、あるいは別法の）命令セットを実行する能力がある任意のマシンの形態であり得る。さらに、単一のマシンだけが図示されているが、用語「マシン」は、本明細書に論じられる方法論のうち任意の１又は複数を実行する一命令セット（又は複数の命令セット）を個々に、あるいは連帯して実行するマシン（例えば、コンピュータ）の任意のコレクションを含むようにもみなされるべきである。
【００５２】
例示的コンピュータシステム４００は、プロセッサ４０２と、メインメモリ４０４（例えば、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、同期型ＤＲＡＭ（ＳＤＲＡＭ）又はＲａｍｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）等のダイナミックランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリなどのスタティックメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、揮発性だが高データレートのＲＡＭ、など）と、二次メモリ４１８（例えば、ハードディスクドライブを含む永続的な記憶装置、永続的なデータベース及び／又はマルチテナントデータベース実装）とを含み、これらはバス４３０を介して互いに通信する。メインメモリ４０４は、記憶されたインデックス４２４、分析エンジン４２３及びＰｒｅＱＬ  ＡＰＩ４２５を含む。メインメモリ４０４とそのサブ要素とは、本明細書に論じられる方法論を実行するように処理ロジック４２６及びプロセッサ４０２と関連して動作可能である。コンピュータシステム４００はさらに、あるいは別法として、上記に記載されたとおりにサーバ側要素を具現化してもよい。
【００５３】
プロセッサ４０２は、マイクロプロセッサ、中央処理ユニットなどの１又は複数の汎用目的処理装置を表す。より具体的に、プロセッサ４０２は、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、他の命令セットを実施するプロセッサ、又は命令セットの組み合わせを実施するプロセッサであり得る。プロセッサ４０２は、さらに、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサなどの１又は複数の特別目的処理装置であり得る。プロセッサ４０２は、本明細書に論じられるオペレーション及び機能性を実行するための処理ロジック４２６を実行するように構成される。
【００５４】
コンピュータシステム４００は、さらに、ネットワークインターフェースカード４０８を含み得る。コンピュータシステム４００は、さらに、ユーザインターフェース４１０（ビデオディスプレイユニット、液晶ディスプレイ（ＬＣＤ）又は陰極線管（ＣＲＴ）など）と、英数字入力装置４１２（例えば、キーボード）と、カーソル制御装置４１４（例えば、マウス）と、信号生成装置４１６（例えば、統合型スピーカー）とを含み得る。コンピュータシステム４００は、さらに、周辺装置４３６（例えば、無線又は有線の通信装置、メモリ装置、記憶装置、オーディオ処理装置、ビデオ処理装置など）を含み得る。
【００５５】
二次メモリ４１８は、非一時的マシン可読又はコンピュータ可読記憶媒体４３１を含むことができ、該媒体上には本明細書に記載される方法論又は機能のうち任意の１又は複数を具現化する１又は複数の命令セット（例えば、ソフトウェア４２２）が記憶される。ソフトウェア４２２は、コンピュータシステム４００によるその実行中にメインメモリ４０４内及び／又はプロセッサ４０２内に完全に、あるいは少なくとも部分的に常住することがあり、メインメモリ４０４及びプロセッサ４０２もまたマシン可読記憶媒体を構成し得る。ソフトウェア４２２は、さらに、ネットワークインターフェースカード４０８を介してネットワーク４２０を通じて送信され、あるいは受信されてもよい。
【００５６】
図５Ａは、タブレットコンピューティング装置５０１とハンドヘルドスマートフォン５０２とを描いており、各々がその中に本願実施形態により記載されるとおりの統合された回路を有する。描かれるとおり、タブレットコンピューティング装置５０１とハンドヘルドスマートフォン５０２との各々は、開示される実施形態に従い、タッチスクリーンインターフェース５０３と統合されたプロセッサ５０４とを含む。
【００５７】
例えば、一実施形態において、システムが、タブレットコンピューティング装置５０１又はハンドヘルドスマートフォン５０２を具現化する。上記システムのディスプレイユニットが、タブレット又はスマートフォンのためのタッチスクリーンインターフェース５０３を含み、さらに、メモリと統合されたプロセッサとして動作する統合された回路とが、タブレット又はスマートフォンへと統合される。上記の統合されたプロセッサは、加入サービスとしてパブリックインターネットを介して提供されるクラウドコンピューティングサービスなどのオンデマンド及び／又はマルチテナントデータベースシステムを通した予測及び潜在構造クエリ実装を使用するために、本明細書に記載される実施形態のうち１又は複数を実施する。一実施形態において、上記に記載の統合された回路、又は、描かれたタブレット若しくはスマートフォンの統合されたプロセッサは、タブレットコンピューティング装置又はスマートフォンのための中央処理ユニット（ＣＰＵ）及び／又はグラフィクス処理ユニット（ＧＰＵ）として機能する統合されたシリコンプロセッサである。
【００５８】
タブレットコンピューティング装置５０１とハンドヘルドスマートフォン５０２とは限られた処理能力を有し得るが、各々は、それにもかかわらず、例えば図１に描かれたホスト組織１１０などの、クラウドベースのサービスとしてのホスト組織により提供される予測及び潜在構造クエリ能力を利用することを可能にされる。
【００５９】
図５Ｂは、タッチスクリーンインターフェースコネクタが使用されるタブレットコンピューティング装置５０１、ハンドヘルドスマートフォン５０２又は他のモバイル装置の一実施形態のブロック図５００である。プロセッサ５１０は、主要な処理オペレーションを実行する。オーディオサブシステム５２０は、コンピューティング装置にオーディオ機能を提供することに関連するハードウェア（例えば、オーディオハードウェア及びオーディオ回路）とソフトウェア（例えば、ドライバ、コーデック）コンポーネントとを表す。一実施形態において、ユーザは、プロセッサ５１０により受信され及び処理されるオーディオコマンドを提供することによって、タブレットコンピューティング装置又はスマートフォンと相互作用する。
【００６０】
ディスプレイサブシステム５３０は、タブレットコンピューティング装置又はスマートフォンと相互作用するためにユーザに視覚的及び／又は触覚的ディスプレイを提供するハードウェア（例えば、ディスプレイ装置）及びソフトウェア（例えば、ドライバ）コンポーネントを表す。ディスプレイサブシステム５３０はディスプレイインターフェース５３２を含み、ディスプレイインターフェース５３２は、ユーザに表示を提供するために使用される特定のスクリーン又はハードウェア装置を含む。一実施形態において、ディスプレイサブシステム５３０は、出力と入力との双方をユーザに提供するタッチスクリーン装置を含む。
【００６１】
Ｉ／Ｏコントローラ５４０は、ユーザとの相互作用に関連するハードウェア装置及びソフトウェアコンポーネントを表す。Ｉ／Ｏコントローラ５４０は、オーディオサブシステム５２０及び／又はディスプレイサブシステム５３０の一部であるハードウェアを管理するように動作することができる。さらに、Ｉ／Ｏコントローラ５４０は、タブレットコンピューティング装置又はスマートフォンに接続するさらなる装置のための接続ポイントを示しており、それを通してユーザが相互作用してもよい。一実施形態において、Ｉ／Ｏコントローラ５４０は、加速度計、カメラ、光センサ若しくは他の環境センサ、又はタブレットコンピューティング装置又はスマートフォンに含むことができる他のハードウェアなどの装置を管理する。入力は、タブレットコンピューティング装置又はスマートフォンに対する環境的な入力を提供することだけでなく、直接のユーザインタラクションの一部でもあり得る。
【００６２】
一実施形態において、タブレットコンピューティング装置又はスマートフォンは、バッテリ電力使用、バッテリの充電、及び電力節約オペレーションに関連する特徴を管理する電力管理５５０を含む。メモリサブシステム５６０は、タブレットコンピューティング装置又はスマートフォンに情報を記憶するためのメモリ装置を含む。接続性５７０は、外部の装置と通信するための、タブレットコンピューティング装置又はスマートフォンに対するハードウェア装置（例えば、無線及び／又は有線のコネクタ、並びに通信ハードウェア）とソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）とを含む。セルラー接続性５７２には、例えば、ＧＳＭ（登録商標）（ｇｌｏｂａｌ  ｓｙｓｔｅｍ  ｆｏｒ  ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＣＤＭＡ（コード分割多重アクセス）、ＴＤＭ（時分割多重）又は他のセルラーサービス標準などの無線キャリアを含み得る。無線接続性５７４には、例えば、パーソナルエリアネットワーク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標））、ローカルエリアネットワーク（例えば、ＷｉＦｉ）及び／又はワイドエリアネットワーク（例えば、ＷｉＭａｘ）、あるいは他の無線通信などの、セルラーでないアクティビティを含み得る。
【００６３】
周辺接続５８０は、他のコンピューティング装置に対する周辺装置として周辺接続を行い（“ＴＯ”５８２）、さらにタブレットコンピューティング装置又はスマートフォンに周辺装置を接続させる（“ＦＲＯＭ”５８４）ためのハードウェアインターフェース及びコネクタとソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）とを含み、例えば、他のコンピューティング装置と接続する「ドッキング」コネクタを含む。周辺接続５８０は、ユニバーサルシリアルバス（ＵＳＢ）コネクタ、ディスプレイポート、例えばミニディスプレイポート（ＭＤＰ）、高精細度マルチメディアインターフェース（ＨＤＭＩ（登録商標））、Ｆｉｒｅｗｉｒｅ（登録商標）等などを含む、共通の又は標準に基づくコネクタを含む。
【００６４】
図６は、確率的モデリングの簡素化されたフローを描いている。確率的モデリングは、一連の選択及び仮定を必要とする。例えば、忠実度と取り扱いやすさを備えた詳細とにおけるトレードオフがあり得る。仮定は、考えられる仮説であり得る帰結空間を定義し、モデリングビューにおいて、こうしたあり得る仮説の１つが実際に生じる。
【００６５】
例えば、要素６０１において、確率的モデリングフローは、６０５の事前知識を活用する仮定を描いている。フローは要素６０２に進み、要素６０２には、６０６のあり得る帰結の空間を定義する仮説空間がある。確率的モデリングフローは要素６０３に進み、要素６０３は、６０６のあり得る帰結の定義された空間から導出される６０７の学習に基づいて、隠れた構造をもたらす。それから、フローは要素６０４に進み、要素６０４では、６０８の利用可能なソースから情報を集めることによって観察されたデータが利用され、それから、この観察されたデータは、要素６０７における学習にループバックして確率モデルに再帰的により良く情報を与える。
【００６６】
６０３における隠れた構造は、データを生成するのに使用される。隠れた構造６０３と結果的な生成されるデータとは、生成的なビューとみなすことができる。学習６０７は、特定のモデリング仮定（「事前（prior）」）と観察されたデータ（「尤度（likelihood）」）とを含み得る隠れた構造に関する情報及び推論の利用可能なソースを使用し、上記から、事前と尤度との組み合わせが、結論（「事後（posterior）」）を描き出すのに利用され得る。
【００６７】
上記の仮定は仮説空間を生み出し、さらに、こうした仮定に確率を割り当てることができる手段を提供し、こうして、観察された実際のデータを所与として、仮説に対する確率分布がもたらされる。
【００６８】
問い合わせ可能インデックスを生成するように分析エンジンにより実施されるモデリング仮定は、仮説空間と、いくつかのデータを所与として各仮説に確率を割り当てるためのレシピとの双方を定義する。こうして、各仮説が帰結である確率分布が生じ、これについて、非常に多くの利用可能な及びあり得る帰結が、各々が様々な確率を有して存在する可能性がある。さらに、非常に多くの仮説が存在する可能性があり、データを説明する最良の仮説を見つけることは、単刀直入な又は明らかな公理ではない。
【００６９】
こうして、確率的推論は、目下のデータに対する最良の説明を与える仮説を見つけるために利用可能な仮説空間をいかに検索するかという問題を表す。本明細書に記載される分析エンジンは、数学を直接解く機能性と仮説空間のピークを見つけるように最適化を活用する機能性と仮説空間のランダムウォークを実施する機能性とを含む広範な方法を実施する。
【００７０】
確率的モデリングは仮定６０１を作り、この仮定を用いて、仮説空間６０２が定義される。観察されたデータを所与として仮説に確率が割り当てられ、それから、これら説明的な仮説のいずれが妥当であるか及びいずれか最良であるかを見つけ出すように推論が使用される。
【００７１】
図７は、ランダムウォークを実行することができる一例示的ランドスケープを示している。この分野のエキスパートは最良の仮説を選択する方法について合意していないが、いくつかの好まれるアプローチがある。単純な場合、機能性は数学を使用して式を直接解くことができる。山登り法及びその関連物などの、他の最適化方法も好まれている。特定の記載される実施形態において、分析エンジンは、ランダムウォークが仮説の空間を通して行われるモンテカルロ法を利用する。ランダムとは、狙い、方向又は目的なしに非効率的又はおろかにナビゲートすることを意味するものではない。実際、上記の広大な空間を効率的にナビゲートすることが、ランダムウォークによって取られる経路を向上させるために分析エンジンが利用するイノベーションの１つである。
【００７２】
ランダムウォークを実行することができる仮説空間７０３のランドスケープを考える。このランドスケープでは、各軸が仮説空間７０３における１つの次元である。要素７０１における垂直軸に、隠れた値２が表され、要素７０２における水平軸に、隠れた値１が表されている。実際の空間は、簡素化のためにここに示される２つの次元よりはるかに多い、多数の次元を有し得る。ランダムウォーク法により形成される表面の高さは、データ及びモデリング仮定を所与として、隠れた変数の確率である。
【００７３】
どこかへ、いずれかの場所へランダムなステップを取ることによって探索が始まり、このステップがより高くなる場合、探索が保たれ、このステップがより低くなる場合、ある時には探索が保たれ、ある時には探索が保たれず、代わって留まることが選ばれる。その結果は、真の確率値に比例して空間を探索することが保証されるため、非常に有用である。長い実行を通じて、提供される例からわかるとおり、２つのピークが生じ、このピークは、提供された次元（例えば、描かれている２つの軸における７０１及び７０２）の各々に対応する。逆に、簡素な山登り法は、１つの山の頂点で捕えられ、区別可能なピークを生み出すことに失敗することになる。こうして、上記のアプローチは仮説空間の全体を探索し、対して従来手法は、このようには探索しない。他のイノベーションには、ジャンプに関する追加のインテリジェンスと１又は複数の次元を一時に探索する機能性とが挙げられる。
【００７４】
図８は、一例示的な表形式のデータセットを描いている。表形式データにおいて、各行は１つの特定のエンティティに関する情報を含み、多数の行の各々は互いから独立している。各列は単一タイプの情報を含み、上記のデータは、例えば、数字、カテゴリ、ブール等のデータタイプにされ得る。列タイプは、一テーブル内で混ぜられ、マッチされてもよく、任意の所与の列に適用され又は割り当てられるデータタイプは、列全体内のすべてのセル又はフィールド間で一様であるが、１つの列のデータタイプは、いかなる他の列上のいかなる特定のデータタイプも制限しない。したがって、上記の表形式データは、表形式データセットを提供するリレーショナルデータベースの単一データベーステーブルに非常に良くマッチする。表形式データはさらに、“Ｒ”におけるデータフレームにも良くマッチする。
【００７５】
描かれる例示的なテーブルにおいて、要素８０２は、行の各々が哺乳動物であるエンティティを形成し、要素８０１において、列の各々は、哺乳動物を説明する特徴、特性又は変数である。列のほとんどはブールのデータタイプにされているが、いくつかはカテゴリである。
【００７６】
要素８０４は観察されたセルを描いており、すなわち、利用可能なデータがない観察されていないセルである要素８０３とは対照的に、セルに対してデータが提供されることに留意する。こうして、観察されていないセル８０３はヌル値であり、一方で、データがブールでも、カテゴリでも、値でも、列挙型要素でも、あるいは列のデータタイプに適切である何らかのものでも、観察されたセルはフィールドの中に投入されたデータを有する。白又は空白で描かれるセルのすべてが、観察されていないセルである。
【００７７】
次元のための共通割り当て行列、Ｃｉｊ＝Ｐｒ［ｚｉ＝ｚｊ］は、次元ｉ及びｊが共通原因を共有し、したがって同一のディリクレ過程混合によってモデル化される確率をもたらす。ラベルは、合意次元グループを示す（確率＞０：７５）。これらは、共通原因を共有し、ゆえに共変する属性を反映し、一方、行列の残りの部分は、これらの発見された原因間における相関、例えば、哺乳動物は羽を有し、あるいは飛ぶことはまれである、有蹄動物は捕食動物ではない、などを捕捉する。各次元グループは、異なる横断的な行のカテゴリ化（例えば、脊椎動物、鳥、イヌ等）を拾い出す。
【００７８】
図９は、図８において表形式で提供されたデータなどの観察されたデータ間における動機又は因果関係を導出する手段を描いている。哺乳動物とその特性とに関する例示的データにおいて、いくつかの因果関係を適切に導出することができると予期され得る。逆に、表形式データが、中国におけるお茶の価格が提供されるように修正される場合、こうしたデータは、存在して観察されているが、直感的に、観察されたデータに基づいて哺乳動物に関して行われる結果的な予測に何らかの形で役立ち、あるいは該予測を害するものではない。こうした無縁のデータ（例えば、哺乳動物を記述するテーブル内における中国でのお茶の価格）は雑音を表しており、適応させる必要がある。実世界データは、頻繁に雑音を有し、十分に構造化されていないためである。分析エンジンは、提供されたデータセット内で雑音のある無関係なデータが実際に「観察される」にもかかわらず、予測のための適切な動機を見つけ、こうしたデータによってミスリードされない必要がある。提示される各々の及びあらゆるデータセットのために手動で開発すべきカスタムソリューションを必要とすることなく、適切な予測をレンダリングする（renders）スケーラブルなソリューションが利用される場合、実世界データは、単純にきれいではなく、ゆえに非常に実際的な問題を提示する。したがって、いくつかのデータは単純に所与の仮説又は予測的関係にとって重要でないことを理解するモデルを、分析エンジンは採用しなければならない。例えば、いくつかの列が重要でない可能性があり、あるいは、特定の列が冗長な情報を担う可能性がある。したがって、予測的に関連する可能性があり、ゆえに一緒にグループ化される可能性がある列もあれば、一方、予測的に関連せず、そのようなものとして別個にグループ化される列もある。こうした列のグループは「ビュー」と呼ばれる。
【００７９】
２つの区別可能なビューが描かれている。要素９０５におけるビュー１は偶発プロセス１（要素９０３）から生じ、要素９０６におけるビュー２は、偶発プロセス２（要素９０４）から生じる。各々のビュー９０５及び９０６内で、行は、複数のカテゴリにグループ化される。図示されるとおり、ビュー１は、要素９０７、９０８及び９０９における特徴１‐３に対応し、ビュー２は、要素９１０及び９１１における特徴４‐５に対応する。提供された例において図８で描かれた表形式のデータセットの列に対応するそれぞれのビューの「特徴」の各々は、エンティティ（例えば、行）としてリストアップされたそれぞれの哺乳動物に関する特性、変数又は特徴を定義する。
【００８０】
それから、エンティティ１‐２が要素９０１及び９０２に描かれ、それから、ビュー内に、それぞれのセル又はフィールド値が描かれている。特に、分析エンジンは、２つの列グルーピング、詳細には、要素９０５及び９０６におけるビュー１及び２を識別しており、こうして、特定のビューに対して適合させた種々の予測的関係を識別することができる。
【００８１】
図１０Ａは、一例示的クロスカテゴリ化（cross-categorization）をさらにより詳細に描いている。クロスカテゴリ化を利用して、列／特徴がビューへとグループ化され、行／エンティティがカテゴリへとグループ化される。図１０Ａではビュー１‐３が描かれており、要素１００１におけるビュー１が１２個の特徴を有し、要素１００２におけるビュー２が１０個の特徴を有し、要素１００３におけるビュー３が８つの特徴を有している。再びになるが、それぞれのビューの特徴は、提供された表形式のデータセットからの列に対応する。ビュー１（要素１００１）において、３つのエンティティがビューの３つの異なるカテゴリ内に提供されていることが分かるであろう。要素１００５及び１００６におけるエンティティ１及び２は双方、ビュー１の最上カテゴリ内にあり、要素１００７におけるエンティティ３は、中間カテゴリ内にあり、詳細にリストアップされたエンティティ（例えば、行）のいずれも最下カテゴリ内には現れない。黒くされた行はエンティティ１‐３（１００５、１００６、１００７）を表しており、ビュー２（要素１００２）から分かるであろうとおり、配置が変わっている。ビュー２には、特徴１０個だけと、リストアップされたエンティティ（行）１００５、１００６及び１００７の３つすべてを所有するただ１つのカテゴリとがある。そして、要素１００３におけるビュー３に移ると、４つのカテゴリがあり、３つの黒くされたエンティティ（行）１００５、１００６及び１００７の各々が区別可能なカテゴリ内に存在する。
【００８２】
要素１００４は、ビュー３のズームイン描画を提供しており、要素１００３と同一であるが、さらなる詳細が描かれている。ゆえに、要素１００４において、カテゴリの各々が複数のエンティティを所有し、各々が、要素１００４におけるビュー３のカテゴリによって実際にリストアップされた列についてのテーブルからのセル値に対応する実際のデータ点を有することが分かるであろう。例えば、カテゴリ１は１６個の合計エンティティを有し、カテゴリ２は８つのエンティティを有し、カテゴリ３は４つのエンティティを有し、カテゴリ４は２つのエンティティを有する。それから、カテゴリ３は、観察されていないセル１００９（例えば、ヌル値、欠落したデータ、未知のデータ等を表す空白）に対してどのデータ要素が観察されたセル１００８（“Ｘ”でマークされている）であるかが分かるように、さらになおズームインされている。
【００８３】
単一のクロスカテゴリ化は、表形式のデータのテーブル又はデータセットをスライスし及びダイスする特定の一方法である。最初に列で、それから行で、所望の構造化された空間を生み出すように特定種類の処理を提供する。それから、各クロスカテゴリ化に確率が割り当てられ、こうして、確率分布がもたらされる。より多くのビューとより多くのカテゴリとを生み出すさらに複雑なクロスカテゴリ化が実現可能であるが、実際にはこれらの起こる可能性はあまりなく、したがって典型的には、下層のデータがこれらを現実にサポートするときに限り保証される。より複雑なクロスカテゴリ化がサポートされるが、デフォルトでは利用されない。
【００８４】
ディリクレ過程混合モデルにおける推論を含むクラスタ化手法を用いた確率的モデリングは、種々の次元がかなり異なるクラスタ化によって最も良く説明されるとき、困難さを提示する。それにもかかわらず、本明細書に記載される分析エンジンの実施形態は、次元のうち推論される区画の各グループについて別個のディリクレ過程混合モデルを用いて、データを説明するのに必要とされる独立したノンパラメトリックなベイズモデルの数を自動的に発見する推論法を通して上記の困難さを克服する。ディリクレ過程混合（ＤＰ混合）と異なり、記載される実装は、異種のデータアレイの行（サンプル）と列（新しい次元）との双方にわたって交換可能であり、したがってサンプル及び次元双方の数が無限大に近づくときのいかなるデータセットもモデル化することができる。生のデータセットの中に提供される真の因果構造を識別するための事前処理を特定の例において必要としない記載されるアルゴリズムの使用を通して、効率性とロバスト性とを向上させる。
【００８５】
クラスタ化手法は、科学における工業的、探索的分析におけるセグメント化の問題のためのデータ分析において、及び、分散コンピューティングやデータ圧縮におけるさらなる処理のパフォーマンスを向上させる事前処理の一ステップとして、広く使用されている。しかしながら、データセットがより大きくなり、より雑音が多くなるとき、単一のクラスタ化又はクラスタ化にわたる分散が観察の中のすべての変動について説明することができるとの仮定は、全体として実行不可能でない場合、あまり現実的でなくなる。
【００８６】
機械学習の視点からは、上記のことは、特徴選択問題の教師なし（unsupervised）バージョンである。測定結果の種々のサブセットは、全体として、データの種々の自然なクラスタ化を帰納することになる。認知科学及び人工知能の視点からは、上記の問題は、単一のモノリシックな表現に代わってデータの複数の表現を探し求める作業に反映される。
【００８７】
限定的な一例として、ロバストなクラスタ化法は、無限数の一様にランダムな又は完璧に決定論的な測定結果を無視することができる。単一のノンパラメトリックモデルがすべての次元を説明しなければならないとの仮定は、ディリクレ過程混合が高次元設定においてしばしば直面する精度問題に関して部分的に合理性がある。分類条件付き密度推定を介したディリクレ過程混合に基づく分類器は、上記の問題を強調する。例えば、弁別的な分類器が、雑音があるか又は決定論的かで、ゆえに無関係の次元に、小さい重み付けを割り当て得る一方、生成的モデルはこれらを説明しなければならない。十分な無関係性がある場合、生成的モデルは、この過程における分類に関連する次元を無視する。ゆっくりとしたＭＣＭＣ収束と組み合わせられて、上記の困難性は、多くの用途におけるノンパラメトリックなベイズ法の使用を抑制している。
【００８８】
上記の限定を克服するために、教師なしのクロスカテゴリ化学習手法が、新規のネスト化されたノンパラメトリックなベイズモデルにおいてＭＣＭＣ推論に基づいてクラスタ化に利用される。このモデルは、サンプリングされたデータ点又は行にわたるディリクレ過程混合モデルの列又は次元にわたるディリクレ過程混合として見ることができる。次元の区画に条件を課されて、分析エンジンのモデルは、ＤＰ混合の独立した積（product）に低減されるが、次元の区画、したがって、独立したノンパラメトリックなベイズモデルの数及びドメインが、データからさらに推論される。
【００８９】
標準の特徴選択は、次元の区画が２つだけグループを有する状況をもたらす。記載されるモデルは、モデル選択と決定論的近似との双方が潜在変数の組み合わせ的爆発に起因して扱いにくいと考えられるため、次元の区画が変わるときに潜在変数の数を変えて、ＭＣＭＣアプローチを利用する。
【００９０】
記載されるモデルによって捕捉される仮説空間は、階層的ディリクレ過程とはかなり異なる構造を備え、ディリクレ過程混合の仮説空間より超指数関数的に大きい。Ｎ行とＤ列の固定されたタイプとランダムに欠落した値とを有する異種データアレイのためのモデルと見なされる生成過程は、下記のとおり説明することができる：
１．各次元ｄ∈Ｄについて：
（ａ）適切な超事前分布（hyper-prior）から超パラメータ（hyperparameters）
［外１］
2019057286.tif 000003
を生成する
（ｂ）超パラメータαを用いて（あいまいな超事前分布からのαを用いて）中華レストラン過程（Chinese  restaurant  process）から次元ｄについてのモデル割り当てＺｄを生成する
２．次元区画｛Ｚｄ｝の中の各グループｇについて：
（ａ）各々のサンプリングされたデータ点（又は行）ｒ∈Ｒについて、超パラメータαｇを用いて（あいまいな超事前分布からのαｇを用いて）中華レストラン過程からクラスタ割り当てＺｒｇを生成する
（ｂ）次元｛Ｚｄｇ｝の上記グループについての行区画の中の各クラスタｃについて：
ｉ．各次元ｄについて、適切な事前分布と
［外２］
2019057286.tif 000004
とからコンポーネントモデルパラメータ
［外３］
2019057286.tif 000005
を生成する
ｉｉ．このコンポーネント（ｄ∈ＤについてＺｒｚ  ｄ＝ｃ）の中の各データセルｘ（ｒ，ｄ）について、その値を適切な尤度と
［外４］
2019057286.tif 000006
とから生成する。
【００９１】
確率的理論において、中華レストラン過程は離散時間の確率論的な過程であり、いかなる正整数時間ｎにおけるその値も集合｛１，２，３，ｎ｝の区画Ｂｎであり、その確率分布は下記のとおり決定される：時間ｎ＝１において、自明の区画｛｛１｝｝が確率１で得られ、時間ｎ＋１において、要素ｎ＋１は：（ａ）区画Ｂｎのブロックの１つに追加され、ただし各ブロックは｜ｂ｜／（ｎ＋１）で選ばれ、｜ｂ｜はブロックのサイズであるか、あるいは（ｂ）確率１／（ｎ＋１）で新しいシングルトンブロックとして区画Ｂｎに追加される、のいずれかである。このように生成されたランダム区画は、ラベル付け｛１，．．．，ｎ｝が区画の分布を変えないという意味で交換可能であり、時間ｎにおけるランダムな区画から要素ｎを取り除くことにより得られるｎ−１の区画の原理が時間ｎ−１におけるランダムな区画の原理と同じであるという意味で一貫性がある。
【００９２】
このモデルは、中華レストラン過程のインディアンビュッフェ過程（Indian  buffet  process；ＩＢＰ）適合とはかなり異なる帰納的なバイアスをエンコードし、典型的に付加して組み合わせられる特徴とは対照的に、異種のデータベクトルにわたってカテゴリの独立した系を発見する。モデルの漸近性能をディリクレ過程混合の漸近性能と対比することもまた有益である。ディリクレ過程混合は、サンプルの数が無限大に近づくとき、任意的に大きい漸近性能を有する。言い方を変えれば、ディリクレ過程混合は、十分なデータを所与として有限の次元ベクトルにわたって任意の分布をモデル化することができる。しかしながら、次元（又は、特徴）の数が無限大にされる場合、それはもはや漸近的に一貫してはいない。すなわち、一連のデータセットが、混合から第１のＫ１次元をサンプリングすることによって生成され、それから、一定の値（例えば、中国におけるお茶の価格）にされたＫ２＞＞Ｋ１次元を追加される場合、この一連のデータセットは結局、Ｋ２の次元だけモデル化するように強制され、第１のＫ１における統計的構造を無視することになる。対照的に、記載される実施形態に従い分析エンジンを介して実施されるモデルは、サンプルの数と次元の数との双方の観点で漸近性能を有し、双方の数量に関して無限に交換可能である。
【００９３】
結果として、分析エンジンを介して実施されるモデルは、測定される変数のサブセットにわたって自己矛盾がなく、ゆえに、雑音のある、欠落している及び無関係の測定結果、又は交絡的な統計信号に直面した際、考慮すべきロバスト性を享受することができる。このことは、デモグラフィックの設定において、及び高スループットの生態学において、雑音のある測定結果、又は理論的に共変するが直交する測定結果が最頻値であり、各データベクトルが実世界の中の複数の独立した生成過程から生じる場合、特に役に立つ。
【００９４】
分析エンジンを介して実施されるアルゴリズム及びモデルは、確率プログラムのための汎用目的のＭＣＭＣアルゴリズムの上に築かれ、この確率プログラムは、行及び列の数における繰り返しごとに線形にスケール変更し、すべての超パラメータにわたる推論を含む。
【００９５】
図１０Ｂは、収束の評価を描いており、可変データセットサイズ（最大５１２×５１２まで、各々１‐１０分を要する）と真の次元グループとを用いた１０００より多いＭＣＭＣ実行（各々２００の繰り返し）についての同時スコア（joint  score）を提供する、推論されたもの対グラウンドトルースを示している。点の大多数はグラウンドトルース破線付近にあり、合理的な収束を示している。事後の不確実性に部分的に起因して、完璧な線形性は予期されない。
【００９６】
大規模に並行した実施は、記載されるモデルにおける条件付き独立性を活用する。記載されるモデルは、本質的にパラメータが自由であり（例えば、不適切な一様な超事前分布を用いる）、複数の相互作用原因により生成される雑音のある及び／又は無関係の測定結果に対してロバストであり、任意的にまばらに観察される異種のデータをサポートするため、探索的データ分析において広く適用可能であり得る。さらに、利用されるＭＣＭＣアルゴリズムのパフォーマンスは、複数次元にわたりディリクレ過程において潜在可変モデルをネスト化することに対する記載されるアプローチが、広範囲のノンパラメトリックなベイズ手法のロバストな、迅速に収束する、横断的な変形を生成するのに適用されてもよいことを示唆している。
【００９７】
予測及び潜在構造クエリ能力と関連するＡＰＩとは、データの背後にある原因を見つけ、かつこの原因を使用して今まで利用不可能な高度に自動化された方法で将来を予測し説明する予測データベースを使用する。こうして、いかなる開発者も、カスタムプログラミングと数学者及び他のこうしたエキスパートによるコンサルテーションとを必要とすることなくデータセットに対して科学的な調査を実行することが可能になる。上記の原因は、分析エンジンによって学習される潜在構造及び関係によって明らかにされる。
【００９８】
予測及び潜在構造クエリ能力は、進化したベイズ機械学習アルゴリズムを用いて、データセットの中に存在するすべてのあり得る関係の大規模な仮説空間を検索することによって奏功し、こうして、開発者に：少しも手動のパラメータチューニングのない、かなり広い範囲の実世界のデータセットに対する最新の推論パフォーマンス及び予測精度と；数十万又は数百万の列又は行を有する非常に高次元のデータを含む非常に大きいデータセットに対するスケーラビリティと；データ又はクエリが変わるときに従来の手法では必要であるいかなる再訓練又は調整もなしの、完全に柔軟な予測（例えば、列の任意のサブセットの値を、任意の他のサブセットについての値を所与として、予測可能）とを提供する。予測及び潜在構造クエリ能力はさらに、システムが十分にベイズ確率モデルを中心にして築かれるため、その予測に関連付けられた不確実性の定量化を提供する。例えば、ユーザは、レンダリングされる予測の品質に従って、結果的に生じるクエリ、ランク付け、ソートなどの信頼度指標又はスコアを提示されることができる。
【００９９】
予測及び潜在構造クエリ能力の上に築かれる記載のアプリケーションは、心臓病を予測することからヘルスケア出費を理解すること、ビジネス機会を評価すること、及びこうしたビジネス機会を成功裏に「閉める」（例えば、販売、契約等を成功裏に釣り合わせる）尤度をスコア付けすることに及ぶ。
【０１００】
これまでに述べられたとおり、実世界データの問題の１つは、異なる種類のデータが一緒に混合されて扱いにくい傾向にあることである。例えば、構造化されたデータと構造化されていないデータとが、共通して一緒にブレンドされる。データが不用意に更新され、ゆえに誤りで埋められる可能性がある。データ要素（例えば、セル又はフィールド値）がかなり頻繁に欠落していて、ヌル値又は不明なデータ点をもたらす。実世界データはドキュメンテーションにおいてほぼ常に不足があり、ゆえに上記のデータを収集し維持している組織によってさえ、十分に理解されていない。したがって、データは、上記組織に関してデータの最大利益まで活用されていない。データのユーザは、さらに、誤ったものを測定する可能性があり、同じものを１０の異なる方法で測定する可能性がある。
【０１０１】
こうした問題は、様々な理由で生じる。おそらく、組織のＤＢＡ（データベース管理者）がいなかったか、あるいはＤＢＡが去ったかして、以来、１０年のデータの堆積レイヤが築かれている。あるいは、データ入力及び維持を担当する個々人が、自然な人間のふるまいを通じた誤りやミスを単純に誘発している。上記はすべて、非常に現実的であり、研究又はテスト設定において見られることがあるきれいな小さいデータセットとは対照的に、様々な組織のための生産データベースに見られる「実世界」データに共通の問題である。
【０１０２】
したがって、本明細書に記載される、予測クエリのサポートによって問い合わせ可能インデックスを生成する分析エンジンは、「実世界」データを、それが自然のまま実際に存在するとおりに収容しなければならない。分析エンジンは、データの意味を、それが現実のビジネスに存在するとおりに理解し、データがどう見えるかの理想的な構造に従うきれいなデータセット又はデータを必要としない。分析エンジンは、リアルタイムで、多くの種々の変数に関する多くの種々の質問について問い合わせることができるインデックスを生成する。分析エンジンは、上記のデータの中の隠れた構造、すなわち、どの変数が重要であるかやデータ内のセグメント又はグループは何であるかを得る能力がある。同時に、分析エンジンは、信頼できる予測的関係を生み出し、すなわち、分析エンジンにより利用されるモデルを通して、低い予測品質の誤解されやすい関係及び予測並びに誤りのある関係及び予測が回避される。好ましくは、分析エンジンは、真でないことを明らかにせず、第１のデータセット又はサンプルの中に存在し得るが全体としては支持しないゴーストパターンを報告しない。こうした所望の特性は、カスタマイズされた統計分析及びカスタマイズされた予測モデリングで達成するのは非常に困難であり、今日の市場で利用可能ないかなる自動化されたシステムにおいても全く聞かれない。
【０１０３】
予測をするとき、ユーザが結果を信頼してもよいかをユーザに追加的に知らせることは役に立つ。すなわち、システムがどれほど自信があるかが、信頼度指標、信頼度スコア、信頼区間などの定量的尺度によって結果の中に存在する。時に、システムは、低い信頼度品質の予測された結果又はユーザにより設定された最小信頼度閾値を下回る結果を提供するよりもむしろ、「分かりません」と示すことによって文字どおりに応答することが必要であり得る。したがって、システムは、回答が例えば、１、又は１と１０との間、又は負の無限大と正の無限大との間であるとユーザに示す結果を、その結果にシステムがどれほど自信があるかを定量的に各々定義するように、返してもよい。
【０１０４】
確率を用いて、システムは、例えば、与える回答が現実で正確で正しいという９０％の自信があるとユーザに忠告することができ、あるいは、システムは別法として、システムが十分なデータを単純に欠いており、ゆえに予測をレンダリングするために分かっていることが十分でないと示す結果を返してもよい。
【０１０５】
特定の実施形態によれば、分析エンジンは、表形式のデータに適用される基礎的なクロスカテゴリ化モデリングに基づいて、特別にカスタマイズされた確率モデルを利用する。従来利用可能なクロスカテゴリ化モデルは良いスタートを提供するが、それでもなお改良され得る。例えば、従来利用可能なクロスカテゴリ化モデルでは、式を実行することはできない。対して、本明細書に記載される分析エンジン実装は、従来技術におけるこの欠陥を、上記の式実行を可能にすることによって克服する。さらに、従来利用可能なクロスカテゴリ化モデルは、確率インデックスを築くことと同様に、隠れた構造を理解するために選ばれたモデルとデータとをマッチングすることに頼っていた。しかし、分析すべき特定のデータセットにモデルをマッチさせることを要するのは非常に複雑であることが証明されており、こうした従来のクロスカテゴリ化モデルのユーザは、任意の所与のデータセットに対して適切なモデルを単に選択し及び実施するのに高度な数学的知識と確率理論理解とを要し、一般人は、現実的にこうしたモデルを使用することが全くできない状態にあった。利用可能なツールがあまりに複雑で大部分の人々が利用することができない場合、そのツールは、実用的には、その存在及び可用性にかかわらず、大部分の人々にとってアクセス不可能なものである。
【０１０６】
本明細書に記載されるサポートテクノロジー（例えば、クラウドコンピューティングインターフェース及びＰｒｅＱＬ構造化クエリ言語など）を備えた分析エンジンは、分散処理、ジョブスケジューリング、永続性、チェックポインティング、及びユーザフレンドリーなＡＰＩ又はフロントエンドインターフェースを含むサービスを提供することによって上記の問題を解決することを狙う。上記のサービスは、一般ユーザの質問を受け取ってＰｒｅＱＬクエリ構造を介して問い合わせ、これにより、学習曲線を大幅に低下させて上記のサービスを利用するのに必要な特別に必要とされる知識を排除する。他の特化されたフロントエンドＧＵＩ及びインターフェースがさらに説明されて、ユーザのために特定のユースケース（use  cases）を解決し、複雑な確率の問題に対する他の単純なインターフェースを提供し、こうして、さらに上記の特定のユースケースに対してさえも複雑さを低下させる。
【０１０７】
特に実施されるユースケースの特定の例には、「どの解決されたサポートケースがこのケースに最も近いか？」あるいは別法として「どの事前に勝ち取った販売機会にこの現在の機会が似ているか？」などの質問をデータセットに対してユーザが尋ねることを可能にするように、類似のエンティティを見つけるインターフェースが挙げられる。こうして、上記のインターフェースは、ユーザが類似の過去のソリューションに基づいて現在の問題を解決するのに、あるいは現在の機会プロファイルと類似の確率的関係を有する過去の勝ちに基づいて現在の販売機会を勝ち取るのに役立ち得る回答について、ユーザ所有のデータセットにユーザが問い合わせることを可能にする。
【０１０８】
特定のユースケース実装が、さらに、ユーザが未知の値を予測することを支援する。これは、他の方法で投入されたデータセットからの欠落しているデータ、例えばヌル値などのため、あるいは、将来に残るという理由で知ることができない値を予測するためであり得る。例えば、インターフェースは、「この機会を勝ち取るであろうか？」あるいは「この機会を勝ち取る場合、どれほどの価値があるであろうか？」あるいは「私はこの四半期にどれほど売ることになるか？」などの質問に対する回答及び関連する信頼度スコア又は指し示し（indication）を、ユーザが予測するのを支援する。
【０１０９】
他のユースケースが、「この機会を前進させるために私は次に何をすべきか？」あるいは「この顧客に対して私はどのさらなる製品を示唆すべきか？」などの質問を尋ねることによって、ユーザの意思決定及びふるまいをガイドするのに役立ち得る。これらのツールは、販売員に対して直接役立ち得るが、さらに販売マネージャや販売プロセスに影響を受ける他のビジネスの個々人にも役立ち得る。
【０１１０】
特に、予測品質の指し示しが、上記の質問に対する予測と共に提供されてもよく、あるいは単純に予測値が、欠落したデータに対して提供されてもよい。こうした予測品質の指し示しは、信頼度スコア、予測品質指標及び他の名称で参照されてもよいが、一般的に言うと、上記の指し示しは、所与の事象又は値が生じそうな、あるいは真でありそうな確率の反映である。多くの視点があるが、確率は、過去、現在又は将来の事象における信用の度合に関して、観察者によって、ステートメントとして記載されることができる。タイミングは重要ではない。こうして、確率は、「事象が生じる可能性はどれほどか？」あるいは「値がこのデータセットに関して真である可能性はどれほどか？」といった信用のステートメントと見なすことができる。
【０１１１】
確率は、何か起きることになるか、あるいはいくつかの例においては何が起きているかに関して、我々が１００％確信することができないから必要とされ、そのようなものとして、予測は不確かである。では、不確かさとは何か？観察者は、上述されたとおり、こうした事象が発生した、発生している、あるいは将来発生することにおける信用の度合にかかわらず、事象が生じることになるかを確実には知らない。
【０１１２】
確率は、知識又は情報の文脈に関連して割り当てられる。異なる観察者が異なる知識を有し、異なる確率を同じ事象に割り当て、あるいは、双方の観察者が同じ知識を有するときでさえも異なる確率を割り当てる可能性がある。確率は、本明細書において使用されるとき、“０”（ゼロ）と“１”（イチ）との間の数字として定義されることがあり、これにおいて、０は、連続体の一端上において事象が発生しないのが確かであることを意味し、１は、同じ連続体の他端上において事象が発生するのが確かであることを意味する。双方の端は、不確かさが完全にないことを表すため、興味深い。
【０１１３】
確率は、信用を１つの事象に結び付ける。確率分布は、信用を、あらゆるあり得る事象、又は少なくとも所与のモデルで考慮されるべきあらゆる事象に結び付ける。帰結空間を選ぶことは、重要なモデリング判断である。空間の中のすべての帰結にわたって総計されたものが合計確率であり、これは“１”という合計になるべきである。すなわち、モデルに従って、帰結のうち１つが生じなければならない。確率分布は、様々な確率におけるシステムの信用を要約するのに役立つ便利な数学的形態であるが、標準分布を選ぶことは、すべてのモデルが誤っているがいくつかは有用であるモデリング選択である。
【０１１４】
例えば、何らかの事象がある時間スパンの中で０回以上発生する可能性があるときの良いモデルであるポアソン分布を考える。その帰結空間は、事象が発生する回数である。ポアソン分布は単一のパラメータを有し、このパラメータはレートであり、すなわち平均回数である。その数学的形態は、すべての非負の整数の総計が１に定義されるなどの、いくつかの良い属性を有する。
【０１１５】
標準分布は良く知られており、ポアソン分布以外にも多くの例がある。各々のこうした標準分布は、特定の帰結空間、帰結に確率を割り当てる特定の方法などの、特定の一組の仮定を包含する。こうした仮定と共に作業する場合、目下の問題に対して完全に有害でなくとも、なぜ快適なものもあれば苛立たしいものもあるのかを理解し始めるであろう。
【０１１６】
しかし、分布は、さらになお興味深い場合がある。分析エンジンは、特別にカスタマイズされたモデリングを用いて標準分布を超えて移動する分布を利用し、ゆえに、より複雑な帰結空間を可能にし、こうして、帰結に確率を割り当てるためのより複雑な方法をさらに可能にする。例えば、混合分布は、多くのより単純な分布を組み合わせてより複雑な分布を形成する。任意の分布をモデル化するガウス分布の混合が採用されてもよく、帰結に確率を依然として割り当てながら、より入り組んだ数学的関係を生み出すことができる。
【０１１７】
より複雑な帰結空間を用いて、モンドリアン過程が、ｋ次元ツリー上で分布を定義し、四角形又は立法体を分割する手段を提供する。その帰結空間は、すべてのあり得るツリーによって定義され、結果として生じる分割は、この過程が由来する有名な絵画のように見える。結果的な帰結空間は、標準分布によって提供される空間よりもさらに構造化されている。従来のクロスカテゴリ化モデルは、モンドリアン過程を使用しないが、構造化された帰結空間を使用する。本明細書に記載される分析エンジンは、選択された実施形態において、モンドリアン過程を利用する。
【０１１８】
結果として生じる帰結空間がどれほど複雑であろうと、分析エンジンは、定義された帰結空間内の各々の及びあらゆる帰結に対して妥当な確率を常に割り当てる能力がある。割り当てられる各確率は、所与の帰結の尤度に関して適用されるモデルに従って、「信用」の度合、又は分析エンジンの確率的品質の評価を表し、これにおいて、空間のすべてのあり得る帰結にわたるすべての確率の総計は“１”である。
【０１１９】
確率モデルは、不確かさの存在する場合でさえ、利用されるモデルに従ってコンピュータが自動的及び系統的に「論理的に考える」ことを可能にするため、利用される。確率は、実世界のデータに非常によくあるように情報があいまいであり、あるいは不確かであり、あるいは多義的であるときでさえ、分析エンジンが可変の情報ソースを組み合わせて系統的な方法で最良のあり得る回答に達するために通用するものである。
【０１２０】
非有界の（Unbounded）カテゴリデータタイプがさらに使用されて、データセットの中に見られない新しい値が現れ得るカテゴリ列をモデル化する。例えば、データベースサービスについての大抵の販売機会は、Ｏｒａｃｌｅ実装などの一握りの一般的な既存システムの１つを置換することであろうが、新しい機会は、これまでにデータの中に見られなかった新しいシステムを置換することであり得る。データセット内にこの新しい値が事前に存在しないことは、これが妥当でないことを意味するのではない。そのようなものとして、この新しい値は、事前に見られていない値であるとしても、あるタイプにされた列に対して、限られた一組の認められた値（例えば、列挙されたセット）を用いて入れられることが認められる。モデリングの観点で、システムは、「今までに非有界のカテゴリデータタイプの中に少数の値が見られている場合、将来新しい値が見られることにはなりそうにない」及び「今までに非有界のカテゴリデータタイプの中に多数の値が見られている場合、将来真新しい値が見られることになりそうだ」といった推論をする。
【０１２１】
図１１は、ひと続きのベル数のチャート１１０１及びグラフ１１０２を描いている。ベル数は、ｎ個のラベル付けされたオブジェクトについての区画の数を定義し、右側のグラフ１１０２から分かるであろうとおり、この数は、非常に急速に大きくなる。一握りのオブジェクトが、左側のチャート１１０１に例示されている。グラフ１１０２は、ｎを２００に至るまで描画しており、１ｅ＋２５０、又は２５０個のゼロを有する数をもたらしている。ここで、数千列及び数百万行を有する関心のあるデータセットを容易にもたらし得るクラウドコンピューティングのマルチテナントデータベースシステムの中で利用可能な大きいデータセットを考える。こうしたデータセットは、単に上記で描かれたベル数ではなく、むしろベルの「２乗」をもたらす可能性があり、人間の知性や経験では全く想到できないスケールの数を我々に認識させることになる。
【０１２２】
上記の数は、下記の文脈の中で考えるのに役立ち得るほど大きい。グラフ１１０２の下部付近の要素１１０３における破線は、Ｇｏｏｇｌｅによって現在インデックス化されているウェブページの概算総数量を表している。Ｇｏｏｇｌｅは、１７番目のベル数程度を検索する必要しかない。しかしながら、合計空間は想像できないほどに大きくて、これを余す所なく探索することは単純に不可能である。さらに、確率のランドスケープは、平坦又は凹型というより、広大でもありでこぼこでもあるため、力ずくの処理は奏功しないことになり、単純な山登り方法論もまた十分でない。
【０１２３】
図１２Ａは、小さい表形式データセットの例示的なクロスカテゴリ化を描いている。ここで、この例示的なクロスカテゴリ化は、要素１２０１におけるビュー１と要素１２０２０におけるビュー２とから成る。ビュー１２０１及び１２０２の各々は、特徴又は特性１２０４（列として描かれている）とエンティティ１２０３（行として描かれている）との双方を含む。エンティティ１２０３（例えば、行）の間の空白によってビュー１２０１及び１２０２の各々をセグメント化したものが、要素１２０１におけるビュー１内のカテゴリ１２１０、１２１１、１２１２、１２１３及び１２１４、並びに要素１２０２におけるビュー２内のカテゴリ１２１５、１２１６、１２１７及び１２１８である。ビュー及びカテゴリに関するさらなる例及び説明については、図１０Ａに戻って参照されたい。
【０１２４】
ビュー１２０１及び１２０２は、データセットに利用可能な特徴１２０４（例えば、列）のサブセットを拾い出し、各ビュー１２０１及び１２０２内のそれぞれのカテゴリ１２１０‐１２１８は、エンティティ１２０３（例えば、行）のサブセットを拾い出している。各列は単一の種類のデータを含み、ゆえに、一カテゴリ内の各々の垂直の帯状部（ストリップ）は、数字、カテゴリ等のタイプにされたデータを含む。こうした例示的なクロスカテゴリ化の内訳を用いて、基本的な標準分布をより効率的に利用することができる。
【０１２５】
特定の実施形態において、点の各コレクションが、単一の単純な分布を用いてモデル化される。各データタイプについてうまく働く基本分布が予め選択されてもよく、各々の選択された基本分布は、該基本分布が具体的に有用である実際のデータの小さいサブセットを説明することにだけ責任を負う。それから、上記で論じられた混合分布を用いて、多くの単純な分布が利用されてより複雑な分布を作るように、基本分布が組み合わせられる。クロスカテゴリ化の構造は、データテーブルを大量のピースへと細切れにするのに使用され、各ピースは、適用可能なデータタイプに基づいて選択された単純な分布を用いてモデル化され、データの大きい混合分布が生み出される。
【０１２６】
図８に描かれた特定の哺乳動物を説明する表形式のデータセットに戻って参照すると、図１２Ａに２つのビュー１２０１及び１２０２で示された簡素化されたクロスカテゴリ化モデルを受けて、上記表形式のデータがどのように見えるかが、ここで図１２Ａにおいて分かるであろう。
【０１２７】
右側のビュー１２０２は、生息地及び摂食スタイルの特徴１２０４（列）を含み、エンティティ１２０３（行）は、陸生哺乳動物（ペルシャ猫（Persian  cat）からシマウマ（Zebra）まで）と海洋捕食動物（イルカ（dolphin）からセイウチ（walrus）まで）とヒゲクジラ（シロナガスクジラ（blue  whale）及びザトウクジラ（humpback  whale）のみ）と離島の水陸両生ビーバー（例えば、陸上と水上との双方で生活し、哺乳動物のビーバーがえらを有するとは考えない）との４つのカテゴリ１２１５‐１２１８に分割されている。
【０１２８】
左側のビュー１２０１は別の分割を有し、これにおいて、霊長類が一緒にグループ化され、大型哺乳動物が一緒にグループ化され、草食動物がグループ化され、それから下部におけるいくつかの変わったデータが一緒にグループ化されている（コウモリ（bat）及びアザラシ（seal））。小さいデータセットでさえ、データを分割する種々の方法を想像することが容易である。しかし、データは多義的であり、完璧な又は明らかに正しい分割はない。正しく合っているように見えるすべてのグルーピングについて、特定のグルーピングが、ぎこちない又は不十分なフィッティングに見える可能性がある。様々なモデル及び仮定を適用する系統的なプロセスはトレードオフや妥協を作り出し、これが、エキスパートでさえ単一のアプローチに合意することができない理由である。それにもかかわらず、本明細書に記載される手段は、人間のエキスパートが単純に行うことができない程度及びスケールまで分析エンジンによって系統的に上記のトレードオフ及び妥協を活用することができるように、様々な利用可能モデルの使用を許可する。
【０１２９】
例えば、分析エンジンによる結果は、単一のクロスカテゴリ化モデル又は内訳に限られない。代わって、カテゴリ化モデルのコレクションが利用され、このコレクションは、一緒に使用されると、データの隠れた構造を明らかにするのに役立つ。例えば、すべての結果的なカテゴリ化が、様々なカテゴリ化モデルの使用にもかかわらず同一であった場合、単純にデータの中には多義性がなかったことになる。しかし、上記の結果は、理論的可能性があるにもかかわらず、実世界のデータでは生じない。逆に、すべての結果的なカテゴリ化が、すべて完全に異なる場合、分析エンジンは、データの中にいかなる構造も見つけなかったことになる。これは時々起こることがあり、したがって、分析エンジンは、不確かさをつかむために、例えばさらなる雑音を与えるなどの、何らかのさらなる後処理を必要とすることになる。しかしながら、典型的には、その中間のことが生じ、いくつかの興味深い隠れた構造が、選択され利用されるカテゴリ化モデルのコレクションの適用を通して、データから分析エンジンに対して明らかにされる。
【０１３０】
特別にカスタマイズされたクロスカテゴリ化実施は、分析エンジンの処理及びロジックのコアを表し、これは、その使用及び複雑さに起因して、エンドユーザから意図的に隠される。分析エンジンコアに直接アクセスするのではなく、ユーザは、代わりに、例えば図１の要素１８０において描かれたクエリインターフェースによって実施されるＡＰＩ、ＰｒｅＱＬ、ＪＳＯＮ、並びに他の特化されたユーティリティＧＵＩ及びインターフェースを介して、あまり複雑でないインターフェースにさらされる。分析エンジンのコアからのこの抽象化レイヤにもかかわらず、それでもなおユーザは、数学及び確率の高度に専門的な理解を有する必要なく、説明される機能性から恩恵を受ける。
【０１３１】
特定の実施形態によれば、分析エンジンは、特定の例においてモンテカルロ方法論を利用することによって、開発された確率ランドスケープに対する推論及び検索をさらに適用する。例えば、ベル数によって例示されたとおり、進むべき空間は大きい可能性がある。したがって、１つのアプローチは、単純にどこか、いずれかの場所で始めて、利用可能な空間内のその場所における事象、帰結又は値の確率を計算することである。次に、この空間内の別の場所が選択され、再び確率が計算される。それから繰り返しの形式で、特定量の時間又は処理が満了するまで、あるいは十分な品質の結果（例えば、閾値を超える確率又は信頼度スコア等）が達成されるまで、確率を比較して、新しい場所が見つけられ、確率が算出され、比較され、選択又は破棄されるといったようにループすることによって、新しい場所を保つか、あるいは代わりにこれまでに見つけられた場所を保つかの決定が行われる。
【０１３２】
図１２Ｂは、記載される実施形態に従いデータアップロード、処理、及び予測クエリＡＰＩ公開を実施する例示的なアーキテクチャを描いている。具体的に、顧客組織１２０５Ａ、１２０５Ｂ及び１２０５Ｃが描かれており、各々がクライアント装置１２０６Ａ、１２０６Ｂ及び１２０６Ｃを備え、クライアント装置１２０６Ａ、１２０６Ｂ及び１２０６Ｃは、要求を送ること及び応答を受信することを含め、ネットワーク１２２５を介してホスト組織１２１０とインターフェースをとる能力がある。ホスト組織１２１０内に要求インターフェース１２７６があり、要求インターフェース１２７６は場合によりウェブサーバ１２７５によって実施されてもよい。ホスト組織は、プロセッサ１２８１、メモリ１２８２、ＡＰＩインターフェース１２８０、分析エンジン１２８５、及びマルチテナントデータベースシステム１２３０をさらに含む。マルチテナントデータベースシステム１２３０内に実行ハードウェア、ソフトウェア及びロジック１２２０があり、実行ハードウェア、ソフトウェア及びロジック１２２０は、マルチテナントデータベースシステム１２３０の複数のテナントと予測データベース１２５０とにわたって共有され、予測データベース１２５０は、予測データベース１２５０に対して実行される予測クエリ又は潜在構造クエリに応答して予測結果セットを返すことを容易にするように、分析エンジンにより生成されたインデックスを記憶する能力がある。
【０１３３】
一実施形態によれば、ホスト組織１２１０は、少なくとも１つのプロセッサ１２８１とメモリ１２８２とを有するシステム１２１１を稼働させ、システム１２１１は、表形式のデータセットを入力として受信し、このデータセットを本明細書に記載される方法論によって処理し、予測データベース１２５０により記憶されたインデックスに対して、受信された予測及び潜在構造クエリを実行することが可能にされる。
【０１３４】
一実施形態によれば、ホスト組織１２１０内で稼働されるシステム１２１１があり、このシステムは少なくとも、システム１２１１のメモリ１２８２に記憶された命令を実行するプロセッサ１２８１と、複数の行及び複数の列を有する表形式のデータセット１２４９を入力として受信する要求インターフェース１２７６と、データセット１２４９を処理し、データセット１２４９の行及び列における確率的関係を表すインデックス１２５１を生成する分析エンジン１２８５と、生成されたインデックス１２５１を記憶する予測データベース１２５０と、予測データベース１２５０に記憶されたインデックスに対して予測及び／又は潜在構造クエリ１２５３の要求をさらに受信する要求インターフェース１２７６と、要求に基づいて予測結果セット１２５２について予測データベース１２５０に記憶されたインデックスに問い合わせるアプリケーションプログラミングインターフェース（ＡＰＩ）１２８０と、を含み、このシステムにおいて、要求インターフェース１２７６は、受信した要求に応答して予測結果セット１２５２を返す。
【０１３５】
一実施形態において、上記のシステム１２１１は、要求インターフェース１２７６を実施するウェブサーバ１２７５をさらに含む。こうした一実施形態において、ウェブサーバ１２７５は、入力として、ネットワーク１２２５を介してホスト組織１２１０と通信可能にインターフェースをとる複数の顧客組織１２０５Ａ‐Ｃの中の１又は複数のクライアント装置１２０６Ａ‐Ｃから複数のアクセス要求を受信する。こうした一実施形態によれば、システム１２１１は、予測データベースを実施するように予測データベース機能性を備えたマルチテナントデータベースシステム１２３０をさらに含み、さらに、各顧客組織１２０５Ａ‐Ｃは、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択されたエンティティである。
【０１３６】
図１２Ｃは、開示される実施形態に従いデータアップロード、処理及び予測クエリＡＰＩ公開を実施する方法１２２１を示すフロー図である。方法１２２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおりデータアップロード、処理、及び予測クエリＡＰＩ公開を実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１２Ｂのシステム１２１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０１３７】
ブロック１２９１において、処理ロジックは、複数の行及び複数の列を有する表形式のデータセットを受信する。
【０１３８】
ブロック１２９２において、処理ロジックは、データセットの行と列とにおける確率的関係を表すインデックスを生成するようにデータセットを処理する。
【０１３９】
ブロック１２９３において、処理ロジックは、インデックスをデータベースに記憶する。
【０１４０】
ブロック１２９４において、処理ロジックは、データベースの中のインデックスに問い合わせるためのアプリケーションプログラミングインターフェース（ＡＰＩ）を公開する。
【０１４１】
ブロック１２９５において、処理ロジックは、データベースの中のインデックスに対して予測クエリ又は潜在構造クエリの要求を受信する。
【０１４２】
ブロック１２９６において、処理ロジックは、ＡＰＩを介した要求に基づく結果について、データベースに問い合わせる。
【０１４３】
ブロック１２９７において、処理ロジックは、要求に応答して結果を返す。例えば、１若しくは複数の予測又は他の要素を返す予測レコードセットが返されてもよく、例えば、グループデータ、類似度データ及び／又は関連データを記述している予測レコードセットなどである。
【０１４４】
方法１２２１の別の実施形態によれば、データセットを処理することは、データセットの要素間の確率的関係を識別し、説明するように、データセットにわたって同時確率分布を学習することを含む。
【０１４５】
方法１２２１の別の実施形態によれば、上記処理することは、データセットを受信することに応答して自動的にトリガされ、同時確率分布を学習することは、構成パラメータのデフォルト設定によって制御される。
【０１４６】
方法１２２１の別の実施形態によれば、同時確率分布を学習することは、指定された構成パラメータによって制御され、この指定される構成パラメータには、データセットを処理する時間の最大期間と、データセットを処理する繰り返しの最大数と、データセットを処理する繰り返しの最小数と、データセットを処理することにより消費されるべき顧客リソースの最大量と、データセットを処理することに費やされるべき最大加入者料金と、データセットの処理により達成されるべき最小閾予測品質レベルと、処理を続けるために必要な予測品質尺度に対する最小の向上と、処理により生成されるべきインデックスの最大又は最小数とのうち、１又は複数が含まれる。
【０１４７】
方法１２２１の別の実施形態によれば、インデックスを生成するようにデータセットを処理することは、インデックスを生成するようにデータセットにわたって同時確率分布を繰り返し学習することを含む。
【０１４８】
別の実施形態によれば、方法１２２１はさらに、データセットの処理によって生成されるインデックスの予測品質尺度を周期的に決定することと、予測品質尺度が指定された閾値を達成したときにデータセットの処理を終了することとを含む。
【０１４９】
別の実施形態によれば、方法１２２１はさらに、データセットを処理することによって生成されたインデックスからの予測を要求するクエリを受信することと、データセットの処理を終了することの前に、生成されたインデックスに対してクエリを実行することとを含む。
【０１５０】
別の実施形態によれば、方法１２２１はさらに、予測を要求するクエリに応答して結果を返すことと、データセットの処理がまだ完了していないことを示す結果を備えた通知、若しくは予測品質尺度が指定された閾値を下回ることを示す結果を備えた通知、又は双方を返すこととを含む。
【０１５１】
方法１２２１の別の実施形態によれば、予測品質尺度は、データセット内に観察され及び存在する値に対応する既知の結果とデータセットの処理により生成されたインデックスに問い合わせることにより得られる予測結果とを比較することによって決定される。
【０１５２】
方法１２２１の別の実施形態によれば、予測品質尺度は、データセットからのグラウンドトルースデータとデータセットの処理により生成されたインデックスに問い合わせることにより得られる１又は複数の予測結果とを比較することによって決定される。
【０１５３】
方法１２２１の別の実施形態によれば、データセットを処理することは、データセットのディリクレ過程混合モデル（ＤＰＭＭ）を学習することと、データセットのクロスカテゴリ化を学習することと、データセットのインディアンビュッフェ過程モデルを学習することと、データセットの有限混合モデルの混合又は混合モデルを学習することとのうち、少なくとも１つを含む。
【０１５４】
方法１２２１の別の実施形態によれば、データセットを受信することは、列及び行を有するテーブルとしてデータセットを受信することと、データストリームとしてデータセットを受信することと、スプレッドシート文書を受信し、スプレッドシート文書からデータセットを抽出することと、データベースにより作成されるバイナリファイルとしてデータセットを受信することと、データベースに対する１又は複数のクエリを受信し、データベースに対して１又は複数のクエリを実行することによってデータセットを応答的に受信し、１又は複数のクエリにより返されたレコードセットをデータセットとして捕捉することと、データベースの中のテーブルの名前を受信し、そのテーブルをデータベースからデータセットとして取り出すことと、指定されたウェブサイトについての検索パラメータを受信し、指定されたウェブサイトに対して検索パラメータを応答的に問い合わせ、検索結果をデータセットとして捕捉することと、リモートのリポジトリについてのリンク及び認証クレデンシャルを受信し、リモートのリポジトリと応答的に認証し、リンクを介してデータセットを取り出すこととのうち、少なくとも１つを含む。
【０１５５】
方法１２２１の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０１５６】
方法１２２１の別の実施形態によれば、各エンティティは、人、場所又は物事を表し、各特性は、特性、特徴、側面、数量、範囲、識別子、マーク、特質又は観察可能な事実を表す。各セルは、各々のそれぞれの行と複数の列の各々とにおける交点に、あるデータタイプの値を記憶し、この値は、特性に対応する列と交差するエンティティの行についての特性を表す。あらゆるセルの値は、ヌルであるか、異なるか、あるいは任意の他のセルの任意の他の値と同じである。
【０１５７】
方法１２２１の別の実施形態によれば、複数の列の各々は、指定されたデータタイプを有する。
【０１５８】
方法１２２１の別の実施形態によれば、各データタイプは、ブールと、カテゴリの開集合と、カテゴリの閉集合と、文書内の文字列のコレクション、識別子のコレクション及び／又は値のコレクションを定義する設定された値のデータタイプと、数量カウントと、浮動小数点数と、正の浮動小数点数と、文字列と、緯度及び経度のペアと、ベクトルと、正の整数と、テキストファイルと、指定されたファイルタイプのデータファイルとのうちの、１つに対応する。
【０１５９】
方法１２２１の別の実施形態によれば、表形式のデータセットを受信することは、複数のテーブルを有し、相互関係がこの複数のテーブルにわたるリレーショナルデータベースオブジェクトを受信することを含み、データセットを処理することは、複数のテーブル間の相互関係に従いながら、複数のテーブルの中の列及び行からインデックスを生成することを含む。
【０１６０】
例えば、分析エンジンがインデックスを作成するための生成過程は、最初、特徴／列を複数の種類に分割してもよく、それから、識別された各種類について、分析エンジンは次いでエンティティ／行をカテゴリに分割する。分析エンジンは、種類を提供するモデルを利用し、この種類の結果、特徴の各々は、同じ種類内の他の特徴に関する予測情報を提供し、各カテゴリは、モデルにより識別されたとおりのそれぞれの種類の中の特徴に従って類似するエンティティを包含する。
【０１６１】
ＰｒｅＱＬ構造化されたクエリは、“ＲＥＬＡＴＥＤ”、“ＳＩＭＩＬＡＲ”、“ＧＲＯＵＰ”及び“ＰＲＥＤＩＣＴ”を含む特化されたコールを介して、分析エンジンによってそのモデリングを通して生成された問い合わせ可能インデックスへのアクセスを可能にする。
【０１６２】
方法１２２１の別の実施形態によれば、上記処理することはさらに、複数のテーブルのうち２以上に対して構造化問い合わせ言語（ＳＱＬ）オペレーションを実行してデータセットを形成することを含み、ＳＱＬオペレーションは、ＳＱＬ変換オペレーション、ＳＱＬ集約オペレーション及びＳＱＬ結合オペレーションのうち少なくとも１つを含む。
【０１６３】
方法１２２１の別の実施形態によれば、インデックスは、ホスト組織の予測データベースシステム内に記憶され、上記方法はさらに、ホスト組織の予測データベースシステム内に記憶されたインデックスについての複数のアクセス要求を受信することを含み、アクセス要求の各々は、複数の顧客組織の１又は複数のクライアント装置に由来し、各顧客組織は、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択される。
【０１６４】
方法１２２１の別の実施形態によれば、予測データベースシステムは、ホスト組織により提供されるマルチテナントデータベースシステムに動作可能に統合され、このマルチテナントデータベースシステムは、複数の別個かつ区別可能な顧客組織によって共有されるハードウェア及びソフトウェアの要素を有し、上記別個かつ区別可能な顧客組織の各々は、予測データベースシステム及びマルチテナントデータベースシステムを動作させているホスト組織から遠隔に置かれている。
【０１６５】
方法１２２１の別の実施形態によれば、データセットを受信することは、リモートのコンピューティング装置にとってパブリックインターネットを介してアクセス可能なオンデマンドのクラウドベースのサービスを提供するホスト組織において、データセットを受信することを含む。データベースにインデックスを記憶することは、ホスト組織で稼働させている予測データベースシステムに、予測データベースシステムのメモリに記憶され、かつ予測データベースシステムの１又は複数のプロセッサを介して実行される動作ロジックを介して、インデックスを記憶することを含む。
【０１６６】
方法１２２１の別の実施形態によれば、データベースにインデックスを記憶することは、予測データベースにインデックスを記憶することを含み、インデックスに問い合わせるためのＡＰＩを公開することは、予測問い合わせ言語（Predictive  Query  Language；ＰｒｅＱＬ）ＡＰＩを公開することを含む。
【０１６７】
方法１２２１の別の実施形態によれば、データベースの中のインデックスに対して予測クエリ又は潜在構造クエリの要求を受信することは、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定するＰｒｅＱＬクエリを受信することを含む。
【０１６８】
特定の一実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、複数の行及び複数の列を有する表形式のデータセットを受信することと、データセットの行と列とにおける確率的関係を表すインデックスを生成するようにデータセットを処理することと、インデックスをデータベースに記憶することと、データベースの中のインデックスに問い合わせるためのアプリケーションプログラミングインターフェース（ＡＰＩ）を公開することと、データベースの中のインデックスに対して予測クエリ又は潜在構造クエリの要求を受信することと、ＡＰＩを介した要求に基づく予測について、データベースに問い合わせることと、要求に応答して予測を返すことと、を含むオペレーションをホスト組織に実行させる。
【０１６９】
上記非一時的コンピュータ可読記憶媒体は、本明細書に記載される方法論のいずれかを具現化し、実行させることができる。
【０１７０】
別の実施形態において、表形式のデータセットを処理することは、ホスト組織において入力として表形式のデータセットを受信すると自動的に、あるいは手動でトリガされる。手動でトリガされる場合、“ＵＰＬＯＡＤ”コマンドが発行されて、表形式のデータセットを分析エンジンに渡し、あるいは、分析のために分析エンジンに対して、予測インデックスが生成されるもとのターゲットデータセットを指定することができる。さらに別の実施形態において、“ＡＮＡＬＹＺＥ”コマンドが発行されて、指定されたデータセットの分析を開始するように分析エンジンに命じることができる。特定の実施形態において、ＵＰＬＯＡＤ及びＡＮＡＬＹＺＥコマンドタームは、使用されるがユーザから隠され、代わりにユーザに提供されるインターフェースにより発行されて、ユーザにとってのシステムの複雑さを低減させる。
【０１７１】
表形式のデータセットからインデックスを生成する分析エンジンの機能性は、計算的に集中しており、ゆえに、クラウドベースのマルチテナントデータベースシステムアーキテクチャにより提供される分散コンピューティング構造によく適する。
【０１７２】
記載される実施形態によれば、結果として生じるデータベースは、そのユーザに対して、従来のデータベース同様に現れる。しかし、存在する行から列を選択することに代わって、ユーザは、構造化された問い合わせ言語を介して予測クエリ要求を発行することができる。ＳＱＬではない、上記の構造化された言語は、予測問い合わせ言語（“ＰｒｅＱＬ”）と呼ぶことができる。ＰｒｅＱＬは、「プログラムクエリ言語（Program  Query  Language）」の省略形であるＰＱＬと混同されるべきではない。
【０１７３】
こうして、ＰｒｅＱＬは、分析エンジンとその対応する機能性とにより目下のデータセットに適用されるモデルに従って値、事象又は帰結を予測するためにデータベースに対してクエリを発行するのに使用される。こうしたＰｒｅＱＬクエリは、ＳＱＬスタイルのクエリと同じ柔軟さを提供する。構造を探索するとき、ユーザは、全体データの中に隠れた又は潜在する類似度の観念を探し求めるＰｒｅＱＬクエリを、どんな類似度があり得るかの高度な知識なく発行することができる。ユーザは、列間の関連性の観念を探し求める予測クエリを、事前に関連を知る必要なく発行することができる。ユーザは、データセット内のエンティティ間におけるグルーピングの観念を探し求める予測クエリを、事前にグルーピング又はグルーピングについてのルールを知り、あるいは定義する必要なく、発行することができる。大規模なクラウドベースのデータベース及びそのデータセットに対してマルチテナントデータベースシステム内で使用されるとき、上記の特徴は、コンピューティング分野において変革を起こし得る。
【０１７４】
図１２Ｄは、記載される実施形態に従い予測クエリインタフェースをクラウドサービスとして実施する一例示的アーキテクチャを描いている。具体的に、顧客組織１２０５Ａ、１２０５Ｂ及び１２０５Ｃが描かれており、各々がクライアント装置１２０６Ａ、１２０６Ｂ及び１２０６Ｃを備え、クライアント装置１２０６Ａ、１２０６Ｂ及び１２０６Ｃは、クエリ（例えば、入力１２５７）を送ること及び応答（例えば、予測レコードセット１２５８）を受信することを含め、パブリックインターネット１２２８を介してホスト組織１２１０とインターフェースをとる能力がある。ホスト組織１２１０内に要求インターフェース１２７６があり、要求インターフェース１２７６は場合によりウェブサーバ１２７５によって実施されてもよい。ホスト組織は、プロセッサ１２８１、メモリ１２８２、クエリインターフェース１２８０、分析エンジン１２８５、及びマルチテナントデータベースシステム１２３０をさらに含む。マルチテナントデータベースシステム１２３０内に実行ハードウェア、ソフトウェア及びロジック１２２０があり、実行ハードウェア、ソフトウェア及びロジック１２２０は、マルチテナントデータベースシステム１２３０の複数のテナントと認証器１２９８と１又は複数のアプリケーションサーバ１２６５と予測データベース１２５０とにわたって共有され、予測データベース１２５０は、予測データベース１２５０に対して実行される予測クエリ及び／又は潜在構造クエリ（例えば、入力１２５７を介して要求される）に応答して予測結果セット（１２５８）を返すことを容易にするように、分析エンジン１２８５により生成されたインデックスを記憶する能力がある。
【０１７５】
一実施形態によれば、ホスト組織１２１０はシステム１２３１を稼働させ、システム１２３１は少なくとも、システム１２３１のメモリ１２８２に記憶された命令を実行するプロセッサ１２８１と、ホスト組織１２１０から遠隔で動作するクライアント装置１２０６Ａ‐Ｃに対して公開される要求インターフェース１２７６であって、パブリックインターネット１２２８を介してクライアント装置１２０６Ａ‐Ｃがアクセス可能である、要求インターフェース１２７６と、クライアント装置１２０６Ａ‐Ｃを稼働させている加入者、又はオンデマンドのクラウドベースのサービスが提供される先の様々な顧客組織１２０５Ａ‐Ｃに他の方法で加盟している加入者などの１又は複数の加入者のために、上記のサービスとして実行される予測データベース１２５０と、を含む。こうした一実施形態によれば、上記のシステム１２３１は認証器１２９８をさらに含み、認証器１２９８は、クライアント装置１２０６Ａ‐Ｃが加入者に関連付けられていることを検証し、それぞれの加入者についての認証クレデンシャルをさらに検証する。この実施形態において、要求インターフェースは、入力として加入者からの要求を受信することになり、システム１２３１は、１又は複数のアプリケーションサーバ１２６５をさらに含む。アプリケーションサーバ１２６５は、加入者のために、列及び行のデータセットから生成される予測データベース１２５０のインデックスに対してクエリ（例えば、パブリックインターネット１２２８を介して入力１２５７として提供される）を実行し、上記インデックスは、データセットの行と列とにおける確率的関係を表す。システム１２３１の要求インターフェース１２７６は、要求に応答して加入者に予測レコードセット１２５８をさらに返す。
【０１７６】
別の実施形態によれば、上記のシステム１２３１は、要求インターフェースを実施するウェブサーバ１２７５をさらに含み、ウェブサーバ１２７５は、入力１２５７として、パブリックインターネット１２２８の少なくとも一部分を横切ってネットワークを介してホスト組織と通信可能にインターフェースをとる複数の顧客組織１２０５Ａ‐Ｃの中の１又は複数のクライアント装置１２０６Ａ‐Ｃから複数のアクセス要求を受信し、各顧客組織１２０５Ａ‐Ｃは、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織１２１０により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択されたエンティティである。こうした一実施形態によれば、予測データベース機能性を備えたホスト組織１２１０におけるマルチテナントデータベースシステム１２３０は、予測データベースを実施する。
【０１７７】
別の実施形態によれば、システム１２３１は、データセットを処理し、かつデータセットの行と列とにおける確率的関係を表すインデックスを生成する分析エンジン１２８５を含み、さらに、予測データベース１２５０は、生成されたインデックスを記憶する。システム１２３１の別の実施形態によれば、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ１２９９）が、要求インターフェース１２７６において加入者に対して公開される。ＰｒｅＱＬ  ＡＰＩ１２９９は、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを有するＰｒｅＱＬクエリ（例えば、入力１２５７として）を受け取り、この後、ＰｒｅＱＬ  ＡＰＩ１２９９は、予測データベースに対してＰｒｅＱＬクエリを実行し、予測レコードセット１２５８を返す。
【０１７８】
こうして、ＰｒｅＱＬ構造クエリの使用は、プログラマがリレーショナルデータベースへのＳＱＬクエリを作るのと類似の方法で、予測データベース内に生成され、記憶されたインデックスへのプログラム的問い合わせを許可する。“ＳＥＬＥＣＴ”コマンドタームではなく、様々な予測ＰｒｅＱＬベースのコマンドタームが代わりに利用され、例えば、“ＰＲＥＤＩＣＴ”又は“ＳＩＭＩＬＡＲ”又は“ＲＥＬＡＴＥＤ”又は“ＧＲＯＵＰ”ステートメントなどである。例えば、一例示的なＰｒｅＱＬステートメントを下記のとおり読むことができる：“ＰＲＥＤＩＣＴ  ＩＳ＿ＷＯＮ，ＤＯＬＬＡＲ＿ＡＭＯＵＮＴ  ＦＲＯＭ  ＯＰＰＯＲＴＵＮＩＴＹ  ＷＨＥＲＥ  ＳＴＡＧＥ＝‘ＱＵＯＴＥ’”。ゆえにこの例において、“ＱＵＯＴＥ”（見積もり）は固定の列であり、“ＦＲＯＭ”は、機会が予測されるべきデータセットであり、“ＰＲＥＤＩＣＴ”コマンドタームは適切な機能へのコールであり、“ＩＳ＿ＷＯＮ”は予測されるべき値である。すなわち、この機能性は、所与の機会を勝ち取りそうか勝ち取りそうにないかを予測することであり、ここで“ＩＳ＿ＷＯＮ”は、例えば、係属中の又は投機的な機会等に起因して、いくつかの行についてデータを完成しており、しかしいくつかの行について欠落している可能性がある。“ＤＯＬＬＡＲ＿ＡＭＯＵＮＴ”は固定値である。
【０１７９】
特定の実施形態において、上記のクエリは、特化されたＧＵＩインターフェースを介して実施され、この特化されたＧＵＩインターフェースは、ユーザが実際に分析エンジンのコアに対して作られる下層のＰｒｅＱＬ構造クエリを書き、あるいはそれに気付くことさえ必要とすることなく、ＧＵＩインターフェースを介してユーザから入力を受け取り、ユーザのためにＰＲＥＤＩＣＴ機能性を介してデータを構築し、呼び出し、返す。
【０１８０】
別の例示的なＰｒｅＱＬステートメントを下記のとおり読むことができる：ＳＥＬＥＣＴ  ＩＤ；  ＦＲＯＭ  Ｏｐｐｏｒｔｕｎｉｔｙ  ＷＨＥＲＥ  ＳＩＭＩＬＡＲ／Ｓｔａｇｅ／００１  ＞  ０．８  ＯＲＤＥＲ  ＢＹ  ＳＩＭＩＬＡＲ／Ｓｔａｇｅ  ＬＩＭＩＴ  １００。この例において、特定のＩＤがデータベースの中の“Ｏｐｐｏｒｔｕｎｉｔｙ”テーブルから引き出され、それから、ＳＩＭＩＬＡＲコマンドタームが使用されて、指定されたＩＤと類似するエンティティ又は行が“０．８”に等しいか又はより大きい信頼度品質指標を有する限り、こうしたエンティティ又は行を見つけ、識別する。最終的に、その出力はＳｔａｇｅ（段階）によって順序付けられ、最大１００の合計レコードの出力を生み出すことを許可される。この具体例は、クエリ内でのＳＱＬとＰｒｅＱＬとの双方の混合を利用する（例えば、“ＳＥＬＥＣＴ”コマンドタームはＳＱＬコマンドであり、“ＳＩＭＩＬＡＲ”コマンドタームはＰｒｅＱＬ固有である）。
【０１８１】
図１２Ｅは、開示される実施形態に従い予測クエリインタフェースをクラウドサービスとして実施する方法を示すフロー図である。方法１２２２は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリをクラウドサービスとして実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、認証、問い合わせ、処理、返答などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１２Ｄのシステム１２３１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０１８２】
ブロック１２７０において、処理ロジックは、ホスト組織から遠隔で動作しているクライアント装置に対してインターフェースを公開し、上記インターフェースは、パブリックインターネットを介してクライアント装置がアクセス可能である。
【０１８３】
ブロック１２７１において、処理ロジックは、１又は複数の加入者のために、オンデマンドのクラウドベースのサービスとして、ホスト組織における予測データベースを実行する。
【０１８４】
ブロック１２７２において、処理ロジックは、クライアント装置のうち１つを、該クライアント装置が加入者の１つに関連付けられ、さらにそれぞれの加入者についての認証クレデンシャルに基づいていることを検証することによって、認証する。
【０１８５】
ブロック１２７３において、処理ロジックは、認証された加入者からインターフェースを介して要求を受信する。
【０１８６】
ブロック１２７４において、処理ロジックは、認証された加入者のために、列及び行のデータセットから生成される予測データベースのインデックスに対して、予測クエリ又は潜在構造クエリを実行する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０１８７】
ブロック１２７９において、処理ロジックは、要求に応答して、認証された加入者に対して予測レコードセットを返す。
【０１８８】
方法１２２２の別の実施形態によれば、クエリを実行することは、予測データベースに対して予測問い合わせ言語（ＰｒｅＱＬ）クエリを実行することを含む。
【０１８９】
方法１２２２の別の実施形態によれば、ＰｒｅＱＬクエリを実行することは、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定することによって予測データベースに問い合わせることを含む。
【０１９０】
方法１２２２の別の実施形態によれば、要求を受信することは、インターフェースを介して、認証された加入者に直接公開される予測問い合わせ言語（ＰｒｅＱＬ）ＡＰＩを介して、認証された加入者からＰｒｅＱＬクエリを受信することを含む。
【０１９１】
方法１２２２の別の実施形態によれば、要求を受信することは、認証された加入者にウェブフォームを提示することと、認証された加入者からウェブフォームを介して入力を受信することと、入力に基づいて、認証された加入者のためにＰｒｅＱＬクエリを生成することと、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定することによって、予測問い合わせ言語（ＰｒｅＱＬ）ＡＰＩを介して予測データベースに問い合わせることと、を含む。
【０１９２】
方法１２２２の別の実施形態によれば、認証された加入者は、ホスト組織とは異なるサードパーティにより提供されるウェブブラウザを介してオンデマンドのクラウドベースのサービスにアクセスし、認証された加入者は、クライアント装置上にホスト組織からのいかなるソフトウェアもインストールすることなく、ホスト組織に対して要求をサブミットし、ホスト組織から予測レコードセットを受信する。
【０１９３】
別の実施形態によれば、方法１２２２はさらに、認証された加入者から要求を受信することの前に、認証された加入者からデータセットを受信することと、インデックスを生成する目的で認証された加入者のためにデータセットを処理することとを含み、上記インデックスの各々は、データセットの行と列とにおける確率的関係を表す。
【０１９４】
方法１２２２の別の実施形態によれば、データセットを受信することは、列及び行を有するテーブルとしてデータセットを受信することと、データストリームとしてデータセットを受信することと、スプレッドシート文書を受信し、スプレッドシート文書からデータセットを抽出することと、データベースにより作成されるバイナリファイルとしてデータセットを受信することと、データベースに対する１又は複数のクエリを受信し、データベースに対して１又は複数のクエリを実行することによってデータセットを応答的に受信し、１又は複数のクエリにより返されたレコードセットをデータセットとして捕捉することと、データベースの中のテーブルの名前を受信し、そのテーブルをデータベースからデータセットとして取り出すことと、指定されたウェブサイトについての検索パラメータを受信し、指定されたウェブサイトに対して検索パラメータを応答的に問い合わせ、検索結果をデータセットとして捕捉することと、リモートのリポジトリについてのリンク及び認証クレデンシャルを受信し、リモートのリポジトリと応答的に認証し、リンクを介してデータセットを取り出すこととのうち、少なくとも１つを含む。
【０１９５】
方法１２２２の別の実施形態によれば、認証された加入者のためにデータセットを処理することは、データセットの要素間の確率的関係を識別し、説明するように、データセットにわたって同時確率分布を学習することを含む。
【０１９６】
方法１２２２の別の実施形態によれば、上記処理することは、データセットを受信することに応答して自動的にトリガされ、同時確率分布を学習することは、構成パラメータのデフォルト設定によって制御される。方法１２２１の別の実施形態によれば、同時確率分布を学習することは、指定された構成パラメータによって制御され、この指定される構成パラメータには、データセットを処理する時間の最大期間と、データセットを処理する繰り返しの最大数と、データセットを処理する繰り返しの最小数と、データセットを処理することにより消費されるべき顧客リソースの最大量と、データセットを処理することに費やされるべき最大加入者料金と、データセットの処理により達成されるべき最小閾信頼度品質レベルと、処理を続けるために必要な信頼度品質尺度に対する最小の向上と、処理により生成されるべきインデックスの最大又は最小数とのうち、１又は複数が含まれる。
【０１９７】
方法１２２２の別の実施形態によれば、データセットを処理することは、インデックスを生成するようにデータセットにわたって同時確率分布を繰り返し学習することを含み、上記方法はさらに、データセットの処理により生成されるインデックスの予測品質尺度を周期的に決定することと、信頼度品質尺度が指定された閾値を達成したときにデータセットの処理を終了することとを含む。
【０１９８】
別の実施形態によれば、方法１２２２はさらに、記憶されたデータセットの処理がまだ完了していないことを示す予測レコードセットを備えた通知、若しくは信頼度品質尺度が指定された閾値を下回ることを示す予測レコードセットを備えた通知、又は双方を返すことを含む。
【０１９９】
方法１２２２の別の実施形態によれば、信頼度品質尺度は、データセット内における既知の及び非ヌルの値に対応する既知の結果とデータセットの処理により生成されるインデックスに問い合わせることにより得られる予測レコードセットとを比較することによって決定される。
【０２００】
方法１２２２の別の実施形態によれば、ホスト組織は複数のアプリケーションサーバを含み、上記処理することはさらに、インデックスの生成を分散することと、複数のアプリケーションサーバの中にインデックスを記憶することとを含み、予測データベースのインデックスに対してクエリを実行することは、インデックスを分散させ及び記憶させたアプリケーションサーバのうち複数の中の、生成されたインデックスのうち複数に問い合わせることと、生成されたインデックスのうち複数に問い合わせることによって返される結果を集約することとを含む。
【０２０１】
方法１２２２の別の実施形態によれば、生成されたインデックスを並行して問い合わせることは、インデックスを分散させ、記憶させたアプリケーションサーバのうち複数において、種々のバージョンのインデックスから種々の結果を生み出す。
【０２０２】
別の実施形態によれば、方法１２２２はさらに、種々の結果を集約することと、実行される潜在構造クエリに応答しての１つの予測、又は実行される予測クエリに応答しての１つの予測を返すこととを含む。
【０２０３】
方法１２２２の別の実施形態によれば、生成されるインデックスの数量がより多いことは、予測精度の向上に対応し、インデックスを分散させ、記憶させるアプリケーションサーバの数量がより多いことは、クエリを実行する応答時間の向上に対応する。
【０２０４】
別の実施形態によれば、方法１２２２はさらに、認証された加入者から、指定されたデータソースを受信することと、指定されたデータソースに基づいてインデックスを周期的に更新することとを含む。
【０２０５】
方法１２２２の別の実施形態によれば、インデックスを周期的に更新することは、指定されたデータソースにおける変更について確認するポーリングメカニズムを開始し、インデックスの更新に用いるために、検出されたときに上記変更を取り出すことと、指定されたデータソースから、該指定されたデータソースにおける変更が発生したことを示すプッシュ通知を受信し、インデックスの更新に用いるために、上記変更を受け入れることと、のうち少なくとも１つを含み、上記インデックスの更新は、加入者についてのアクティブな認証されたセッションを必要とすることなく生じる。
【０２０６】
別の実施形態によれば、方法１２２２はさらに、認証された加入者にとってアクセス可能なホスト組織内の２以上のテーブルに対して構造化問い合わせ言語（ＳＱＬ）オペレーションを実行することであって、ＳＱＬオペレーションは、ＳＱＬ変換オペレーション、ＳＱＬ集約オペレーション及びＳＱＬ結合オペレーションのうち少なくとも１つを含む、ことと、ＳＱＬオペレーションの出力を行及び列のデータセットとして捕捉することと、データセットの行及び列における確率的関係を表すインデックスを生成するようにデータセットを処理することと、を含む。
【０２０７】
方法１２２２の別の実施形態によれば、認証された加入者は、入力として２以上のテーブルを指定し、ホスト組織は、ＳＱＬオペレーションを実行するクエリを生成し、認証された加入者のためにデータセットに対して処理を自動的に開始する。
【０２０８】
別の実施形態によれば、方法１２２２はさらに、データセットのディリクレ過程混合モデル（ＤＰＭＭ）を学習することと、データセットのクロスカテゴリ化を学習することと、データセットのインディアンビュッフェ過程モデルを学習することと、データセットの有限混合モデルの混合モデル又は混合を学習することとのうち、少なくとも１つを学習することによって、データセットの行及び列における確率的関係を表すインデックスを生成することを含む。
【０２０９】
方法１２２２の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０２１０】
方法１２２２の別の実施形態によれば、各エンティティは、人、場所又は物事を表し、各特性は、特性、特徴、側面、数量、範囲、識別子、マーク、特質又は観察可能な事実を表す。各セルは、各々のそれぞれの行と複数の列の各々とにおける交点に、あるデータタイプの値を記憶し、この値は、特性に対応する列と交差するエンティティの行についての特性を表す。あらゆるセルの予め選択され得る値は、ヌルであるか、異なるか、あるいは任意の他のセルの任意の他の値と同じである。
【０２１１】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、ホスト組織から遠隔で動作しているクライアント装置に対してインターフェースを公開することであって、上記インターフェースは、パブリックインターネットを介してクライアント装置がアクセス可能である、ことと、１又は複数の加入者のために、オンデマンドのクラウドベースのサービスとして、ホスト組織における予測データベースを実行することと、クライアント装置のうち１つを、該クライアント装置が加入者の１つに関連付けられ、さらにそれぞれの加入者についての認証クレデンシャルに基づいていることを検証することによって、認証することと、認証された加入者からインターフェースを介して要求を受信することと、認証された加入者のために、列及び行のデータセットから生成される予測データベースのインデックスに対して、クエリを実行することであって、上記インデックスは、データセットの行と列とにおける確率的関係を表す、ことと、要求に応答して、認証された加入者に対して予測レコードセットを返すことと、を含むオペレーションをホスト組織に実行させる。
【０２１２】
図１３Ａは、記載される実施形態に従うＲＥＬＡＴＥＤコマンドタームの使用を示している。分析エンジンが、上記で説明されたとおり提供される表形式のデータセットからインデックスを生成すると、特化されたクエリが実現可能にされる。例えば、ユーザは、予測データベースに「所与の列について、これに予測的に関連する他の列はどれか？」と尋ねることができる。問い合わせ可能インデックスの言語において、これは、要素１３０２において描かれるとおり、「各々の他の列がどれほどの頻度で同じビュー内に出現するか？」へと翻訳される。クロスカテゴリ化の観点で、分析エンジンは、他の列の各々がどれほどの頻度で入力列と同じビューに出現するかを表にし、こうして、何が重要であり、何が重要でないかを明らかにする。ユーザが入力として提供する必要があるものは、ＲＥＬＡＴＥＤコマンドタームの使用における列ＩＤ１３０１だけである。
【０２１３】
ＲＥＬＡＴＥＤコマンドタームにより提供されるさらなる予測機能性は、確率モデルに従って、指定された列に関連する列について、ユーザが問い合わせることを可能にする。例えば、列又は変数を有するテーブルを所与として、分析エンジンは、上記列又は変数をグループへと分割する。分布のために、上記列又は変数を分割する複数の方法がある。例えば、身長を例にとる。ＲＥＬＡＴＥＤコマンドタームのＡＰＩコールに身長列を与えると、ユーザは、「指定された身長列とすべての他の列とに存在する関係の確率に関して、私はどれほど自信をもつことができるか？」を問い合わせることができる。それから、ＲＥＬＡＴＥＤコマンドタームは、指定された身長列について、データセットの中の指定されなかったあらゆる他の列についての信頼度指標を返すことになる。ゆえに例えば、ＲＥＬＡＴＥＤ機能性は、身長列に対するその信頼度指標について“体重＝１．０”を返す可能性があり、このことは、分析エンジンが、データセットによれば、体重と身長との間に関係があることに非常に自信があることを意味する。
【０２１４】
上記の結果はいくらか直感的であり、予期されるが、他の結果はあまり直感的でなく、ゆえに、探索及びさらなる追求のための興味深い結果を提供する可能性がある。ＲＥＬＡＴＥＤコマンドタームＡＰＩコールに対して指定される列について、「身長」の例で続けると、分析エンジンは「年齢＝０．８」を返す可能性があり、このことは、分析されるデータセットについての確率的見地から年齢は高い相関性があるが、体重の場合ほど完璧に確信していないと分析エンジンが決定したことを意味する。より低い信頼度指標スコアは、例えば、絶対的な正の結果を除外する雑音データに起因し得る。
【０２１５】
おそらく、指定された「身長」列についてさらに返されるのは「髪色＝０．１」であり、このことは、利用されたデータセットによれば、人の身長とその髪色との間に現実的に何の関連もないことを意味する。こうして、ＲＥＬＡＴＥＤ機能性は、身長列などの所与の列について何が重要であるかをユーザが問い合わせることを許可し、この機能性は、すべての列が指定された列とどれほど関連があるかの、その確率に基づいたスコア付けと共に、上記列を返す。身長と体重とが関連することを理解するのは人間にとって直感的であり得るが、分析エンジンは、上記の結果を人間の入力なしに系統的に生成し、より重要なことに、分析エンジンは、関係が直感的であったりデータを見ている人間によって容易に理解されたりしないデータセットに対して適用することができる。このことは、関係が存在することは確実だが関係がデータ構造自体によって定義されてはいない大きめのデータセットに特に当てはまる。分析エンジンは、下層の潜在構造及び潜在関係を学習し、このことが、歴史的には単純に実現不可能であった方法で自身のデータを探索することを望む一般ユーザに対してさえも隠れた構造を明らかにするのに役立つ。
【０２１６】
図１３Ｂは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１３０５Ａ、１３０５Ｂ及び１３０５Ｃが描かれており、各々がクライアント装置１３０６Ａ、１３０６Ｂ及び１３０６Ｃを備え、クライアント装置１３０６Ａ、１３０６Ｂ及び１３０６Ｃは、要求を送ること及び応答を受信することを含め、ネットワーク１３２５を介してホスト組織１３１０とインターフェースをとる能力がある。ホスト組織１３１０内に要求インターフェース１３７６があり、要求インターフェース１３７６は場合によりウェブサーバ１３７５によって実施されてもよい。ホスト組織は、プロセッサ１３８１、メモリ１３８２、クエリインターフェース１３８０、分析エンジン１３８５、及びマルチテナントデータベースシステム１３３０をさらに含む。マルチテナントデータベースシステム１３３０内に実行ハードウェア、ソフトウェア及びロジック１３２０があり、実行ハードウェア、ソフトウェア及びロジック１３２０は、マルチテナントデータベースシステム１３３０の複数のテナントと認証器１３９８と予測データベース１３５０とにわたって共有され、予測データベース１３５０は、予測データベース１３５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジンにより生成されたインデックスを記憶する能力がある。
【０２１７】
一実施形態によれば、ホスト組織１３１０は、少なくとも１つのプロセッサ１３８１とメモリ１３８２とを有するシステム１３１１を稼働させる。システム１３１１は、分析エンジン１３８５を介して列及び行のデータセットからインデックスを生成することを可能にされ、上記インデックスは、データセットの行と列とにおける確率的関係を表す。上記のシステム１３１１はさらに、インデックスを記憶する予測データベース１３５０と、予測データベースを、例えばユーザ又はクライアント装置１３０６Ａ‐Ｃに対して公開する要求インターフェース１３７６であって、予測データベースに対しての、ＲＥＬＡＴＥＤコマンドタームとＲＥＬＡＴＥＤコマンドタームのパラメータとして指定された列とを指定するクエリ１３５３を受信する、要求インターフェース１３７６と、予測レコードセット１３５４を生成するように、ＲＥＬＡＴＥＤコマンドタームを用いて指定された列を渡して予測データベース１３５０に問い合わせる、クエリインターフェース１３８０と、を含み、要求インターフェース１３７６は、クエリに応答して予測レコードセット１３５４をさらに返す。こうした一実施形態において、予測レコードセット１３５４は、その中に複数の要素１３９９を含み、返される要素の各々は、ＲＥＬＡＴＥＤコマンドタームで渡された指定された列についての列識別子と信頼度指標とを含む。こうした一実施形態において、信頼度指標は、ＲＥＬＡＴＥＤコマンドで渡された指定された列とそれぞれの要素１３９９について返される列識別子との間に潜在関係が存在するかどうかを示す。
【０２１８】
一実施形態によれば、予測データベース１３５０は、１又は複数の加入者のためにホスト組織１３１０においてオンデマンドのクラウドベースのサービスとして実行される。こうした一実施形態において、上記システムはさらに認証器１３９８を含み、認証器１３９８は、クライアント装置１３０６Ａ‐Ｃが加入者に関連付けられることを検証し、それぞれの加入者についての認証クレデンシャルをさらに検証する。
【０２１９】
一実施形態によれば、要求インターフェース１３７６は、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開し、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。例えば、ネットワーク１３２５は、パブリックインターネットを通じてホスト組織１３１０を加入者にリンクするように動作し得る。
【０２２０】
一実施形態によれば、上記のシステム１３１１は、要求インターフェース１３７６を実施するウェブサーバ１３７５を含み、ウェブサーバ１３７５は、入力として、ネットワークを介してホスト組織と通信可能にインターフェースをとる複数の顧客組織１３０５Ａ‐Ｃの中の１又は複数のクライアント装置１３０６Ａ‐Ｃから複数のアクセス要求を受信する。こうした一実施形態において、予測データベース機能性を備えたマルチテナントデータベースシステム１３３０が、予測データベース１３５０を実施する。
【０２２１】
図１３Ｃは、開示される実施形態に従う方法１３２１を示すフロー図である。方法１３２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを備えてＲＥＬＡＴＥＤコマンドを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１３Ｂのシステム１３１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０２２２】
ブロック１３９１において、処理ロジックは、列及び行のデータセットからインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０２２３】
ブロック１３９２において、処理ロジックは、ホスト組織のデータベース内にインデックスを記憶する。
【０２２４】
ブロック１３９３において、処理ロジックは、要求インターフェースを介してホスト組織のデータベースを公開する。
【０２２５】
ブロック１３９４において、処理ロジックは、要求インターフェースにおいて、データベースに対しての、ＲＥＬＡＴＥＤコマンドタームとＲＥＬＡＴＥＤコマンドタームのパラメータとして指定された列とを指定するクエリを受信する。
【０２２６】
ブロック１３９５において、処理ロジックは、予測レコードセットを生成するように、ＲＥＬＡＴＥＤコマンドタームを用いて指定された列を渡してデータベースに問い合わせる。
【０２２７】
ブロック１３９６において、処理ロジックは、クエリに応答して予測レコードセットを返し、上記予測レコードセットは、その中に複数の要素を有する。こうした一実施形態において、返される要素の各々は、ＲＥＬＡＴＥＤコマンドタームで渡された指定された列についての列識別子と信頼度指標とを含み、信頼度指標は、ＲＥＬＡＴＥＤコマンドで渡された指定された列とそれぞれの要素について返される列識別子との間に潜在関係が存在するかどうかを示す。
【０２２８】
別の実施形態によれば、方法１３２１はさらに、ＲＥＬＡＴＥＤコマンドタームで最小信頼度閾値を渡すことを含む。こうした一実施形態において、予測レコードセットを返すことは、最小信頼度閾値を超える信頼度指標を有する予測レコードセットの要素だけ返すことを含む。
【０２２９】
別の実施形態によれば、方法１３２１はさらに、予測レコードセットで返される要素の数量を制限するように、ＲＥＬＡＴＥＤコマンドタームで限定されたレコードセットを渡すことを含む。
【０２３０】
方法１３２１の別の実施形態によれば、予測レコードセットの要素は、予測レコードセットの要素の各々についての信頼度指標に従って降順で順序付けられて返され、あるいは、予測レコードセットの要素の各々についての信頼度指標に従って昇順で順序付けられて返される。
【０２３１】
方法１３２１の別の実施形態によれば、予測レコードセット内で返される各要素に含まれる、予測的に関連する列は、この予測的に関連する列が、ＲＥＬＡＴＥＤコマンドタームで渡された指定された列と同じ列グルーピングの中に発生する回数の割合（fraction）にさらに基づく。
【０２３２】
方法１３２１の別の実施形態によれば、中に複数の要素を有する予測レコードセットは、返される要素の各々が、列のすべてと列のいずれか１つについての対応する予測された値とを含むものであり、上記方法はさらに、対応する予測された値の各々について、それぞれの予測される値における最小のとり得る信頼度レベルを示す０からそれぞれの予測される値における最大のとり得る信頼度レベルを示す１に及ぶ信頼度指標を返すことを含む。
【０２３３】
別の実施形態によれば、方法１３２１はさらに、ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることに応答して生成される予測レコードセットからの予測的に関連する列のうち１又は複数を、該予測的に関連する列についての最小閾値に基づいて識別することと、予測的に関連する列のうち識別された１又は複数を、ＰＲＥＤＩＣＴコマンドターム又はＧＲＯＵＰコマンドタームを指定する第２のクエリへ入力して、第２のクエリから返される第２の予測レコードセットを制限することと、を含む。
【０２３４】
方法１３２１の別の実施形態によれば、ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることは、ＲＥＬＡＴＥＤコマンドタームで渡された指定された列と予測レコードセットのそれぞれの要素について返される列識別子との間の相互情報をデータベースが推定することを含む。
【０２３５】
方法１３２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。
【０２３６】
方法１３２１の別の実施形態によれば、ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることは、データベースにＰｒｅＱＬクエリを渡すことを含み、ＰｒｅＱＬクエリは、必要なタームとしてのＲＥＬＡＴＥＤコマンドタームと、任意的なＦＲＯＭタームであって、この任意的なＦＲＯＭタームが指定されるときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、任意的なＦＲＯＭタームが指定されないときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、ＦＲＯＭタームと、ＲＥＬＡＴＥＤコマンドタームで渡されるべき列を指定するＴＡＲＧＥＴタームと、のクエリシンタックスを有する。例えば、ＦＲＯＭタームが指定されない場合、システムは、ユーザのコンテキストに基づいてソースを決定してもよい。例えば、ユーザが、ただ１つのデータソースを有し又は主要なデータソースを有する特定の組織に関連付けられてもよく、あるいは、最後に評価された又は最も頻繁にアクセスされるデータソースが仮定されてもよく、あるいは、デフォルトがユーザ選好として予め構成されてもよい。
【０２３７】
方法１３２１の別の実施形態によれば、ＰｒｅＱＬクエリのクエリシンタックスはさらに、任意的なＣＯＮＦＩＤＥＮＣＥタームであって、提供されるとき、予測レコードセットで返されるべき最小受け入れ可能信頼度指標を指定する、ＣＯＮＦＩＤＥＮＣＥタームと、任意的なＣＯＵＮＴタームであって、提供されるとき、予測レコードセット内に返されるべき要素の最大数量を指定する、ＣＯＵＮＴタームと、任意的なＯＲＤＥＲ  ＢＹタームであって、提供されるとき、予測レコードセットで返される要素の各々についての信頼度指標に従って、予測レコードの要素が昇順で返されるべきか降順で返されるべきかを指定する、ＯＲＤＥＲ  ＢＹタームと、のうち１又は複数を提供する。
【０２３８】
方法１３２１の別の実施形態によれば、ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることは、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）構造化されたクエリをデータベースに渡すことを含み、ＪＳＯＮ構造化されたクエリは、必要なタームとしてのＲＥＬＡＴＥＤコマンドタームと、問い合わせられるべき任意的な１又は複数のテーブル、データセット、データソース及び／又はインデックス、又は、指定されないときに問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスのデフォルト値と、ＲＥＬＡＴＥＤコマンドタームで渡される列と、信頼度指標に従って予測レコードセットで返されるべき最小受け入れ可能信頼度の任意的な指定と、予測レコードセット内で返される要素の最大数量の任意的な指定と、予測レコードセットで返される要素の各々についての信頼度指標に従って、予測レコードの要素が降順で返されるべきか昇順で返されるべきかの任意的な指定と、のクエリシンタックスを有する。
【０２３９】
方法１３２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、ウェブフォームを公開することを含み、このウェブフォームは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。ホスト組織は、ウェブフォームからの入力に基づいて、データベースに対してサブミットするための潜在構造クエリを生成する。ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることは、ホスト組織内で予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を介して潜在構造クエリを用いてデータベースに問い合わせることを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにウェブフォームを通して間接的に公開される。
【０２４０】
方法１３２１の別の実施形態によれば、ＲＥＬＡＴＥＤコマンドタームを用いてデータベースに問い合わせることは、ＲＥＬＡＴＥＤコマンドタームについて、データベースに対して、予測問い合わせ言語（ＰｒｅＱＬ）構造化されたクエリを実行することを含み、上記方法はさらに、データベースに対して１又は複数のさらなるＰｒｅＱＬ構造化されたクエリを実行することを含み、１又は複数のさらなるＰｒｅＱＬ構造化されたクエリの各々は、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定する。
【０２４１】
別の実施形態によれば、方法１３２１はさらに、認証された加入者からデータセットを受信し、その後、認証された加入者からデータベースに対してのクエリを受信することと、インデックスを生成するように、認証された加入者のためにデータセットを処理することと、を含む。
【０２４２】
方法１３２１の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０２４３】
特定の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、列及び行のデータセットからインデックスを生成することであって、上記インデックスはデータセットの行と列とにおける確率的関係を表す、ことと、ホスト組織のデータベース内にインデックスを記憶することと、要求インターフェースを介してホスト組織のデータベースを公開することと、要求インターフェースにおいて、ＲＥＬＡＴＥＤコマンドタームとＲＥＬＡＴＥＤコマンドタームのためのパラメータとして指定される列とを指定するデータベースへのクエリを受信することと、予測レコードセットを生成するように、ＲＥＬＡＴＥＤコマンドタームを用いて指定された列を渡してデータベースに問い合わせることと、クエリに応答して予測レコードセットを返すことであって、予測レコードセットはその中に複数の要素を有し、返される要素の各々は、ＲＥＬＡＴＥＤコマンドタームで渡される指定された列についての列識別子と信頼度指標とを含み、信頼度指標は、ＲＥＬＡＴＥＤコマンドで渡される指定された列とそれぞれの要素について返される列識別子との間に潜在関係が存在するかを示す、ことと、を含むオペレーションをホスト組織に実行させる。
【０２４４】
図１４Ａは、記載される実施形態に従うＧＲＯＵＰコマンドタームの使用を示している。ＧＲＯＵＰコマンドタームを用いて、ユーザは、「どの行が一緒になるか？」を尋ねることができる。こうした特徴は、データセットをクラスタ化する２以上の方法が存在することを除き、クラスタリングとして概念化することができる。上記で用いられた哺乳動物の例を、列ＩＤ１４０１が入力として提供される形で考える。上記のクエリに応答して、予測データセットが、提供される列に照らしたグループを有する出力１４０２として返されることになる。より具体的に、出力１４０２は、入力列を含むビューの中で、どの行が最も高頻度で同じカテゴリの中にグループとして一緒に出現するかを示すことになる。
【０２４５】
時に、行は、分析エンジンがそのモデリングを適用してインデックスを生成するとき、データセットの中で雑音要素上でグループ化する傾向があるが、これら雑音要素は、時に、実際には重要でないグルーピングをもたらす。ＧＲＯＵＰコマンドターム機能性を用いて、ユーザは、各列がビューとしてグループのうちちょうど１つに出現することになると知り、ゆえに、分析エンジンは、ユーザ指定された列が、利用されることになる特定の「ビュー」を識別することを許可する。したがって、ＧＲＯＵＰ機能性は、ＳＩＭＩＬＡＲ機能性と同様の行中心のオペレーションを実施する。ただし、ユーザが行を指定し、他の行とその類似する確率に基づいた対応するスコアとのリストを戻りとして応答的に受信するＳＩＭＩＬＡＲのＡＰＩコールと対照的に、ＧＲＯＵＰ機能性は、行がユーザにより指定され又は固定されることを必要としない。代わって、ＧＲＯＵＰコマンドタームを指定するコールを行うとき、列だけは、ユーザにより提供される必要がある。
【０２４６】
指定され又は固定された列を用いてＧＲＯＵＰ機能性を呼び出すことは、この機能性に、分析エンジンのモデリングに基づいて何らかの方法で関連し又は相関すると思われるＲＯＷＳのグルーピングを返させる。
【０２４７】
図１４Ｂは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１４０５Ａ、１４０５Ｂ及び１４０５Ｃが描かれており、各々がクライアント装置１４０６Ａ、１４０６Ｂ及び１４０６Ｃを備え、クライアント装置１４０６Ａ、１４０６Ｂ及び１４０６Ｃは、要求を送ること及び応答を受信することを含め、ネットワーク１４２５を介してホスト組織１４１０とインターフェースをとる能力がある。ホスト組織１４１０内に要求インターフェース１４７６があり、要求インターフェース１４７６は場合によりウェブサーバ１４７５によって実施されてもよい。ホスト組織は、プロセッサ１４８１、メモリ１４８２、クエリインターフェース１４８０、分析エンジン１４８５、及びマルチテナントデータベースシステム１４３０をさらに含む。マルチテナントデータベースシステム１４３０内に実行ハードウェア、ソフトウェア及びロジック１４２０があり、実行ハードウェア、ソフトウェア及びロジック１４２０は、マルチテナントデータベースシステム１４３０の複数のテナントと認証器１４９８と予測データベース１４５０とにわたって共有され、予測データベース１４５０は、クエリインターフェースによって予測データベース１４５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジンにより生成されたインデックスを記憶する能力がある。
【０２４８】
一実施形態によれば、ホスト組織１４１０は、少なくとも１つのプロセッサ１４８１とメモリ１４８２とを有するシステム１４１１を稼働させる。システム１４１１は、列及び行のデータセットからインデックスを生成する分析エンジン１４８５を含み、上記インデックスは、データセットの行と列とにおける確率的関係を表す。上記のシステム１４１１はさらに、インデックスを記憶する予測データベース１４５０と、予測データベースを、例えばユーザ又はクライアント装置１４０６Ａ‐Ｃに対して公開する要求インターフェース１４７６であって、予測データベースに対しての、ＧＲＯＵＰコマンドタームとＧＲＯＵＰコマンドタームのパラメータとして指定された列とを指定するクエリ１４５３を受信する、要求インターフェース１４７６と、予測レコードセット１４５４を生成するように、ＧＲＯＵＰコマンドタームを用いて指定された列を渡して予測データベース１４５０に問い合わせる、クエリインターフェース１４８０と、を含み、要求インターフェース１４７６は、クエリ１４５３に応答して予測レコードセット１４５４をさらに返す。予測レコードセットは、その中に指定された複数のグループ１４９９を含み、予測レコードセットの返されるグループ１４９９の各々は、データセットの１行又は複数行のグループを含む。例えば、描かれている予測レコードセット１４５４には、返される４つのグループＡ  １４５６、グループＢ  １４５７、グループＣ  １４５８及びグループＤ  １４５９があり、その各々は｛行｝の集合を含む。
【０２４９】
図１４Ｃは、開示される実施形態に従う一方法を示すフロー図である。
【０２５０】
方法１４２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを備えてＧＲＯＵＰコマンドを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１４Ｂのシステム１４１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０２５１】
ブロック１４９１において、処理ロジックは、列及び行のデータセットからインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０２５２】
ブロック１４９２において、処理ロジックは、ホスト組織のデータベース内にインデックスを記憶する。
【０２５３】
ブロック１４９３において、処理ロジックは、要求インターフェースを介してホスト組織のデータベースを公開する。
【０２５４】
ブロック１４９４において、処理ロジックは、要求インターフェースにおいて、データベースに対しての、ＧＲＯＵＰコマンドタームとＧＲＯＵＰコマンドタームのパラメータとして指定された列とを指定するクエリを受信する。
【０２５５】
ブロック１４９５において、処理ロジックは、予測レコードセットを生成するように、ＧＲＯＵＰコマンドタームを用いて指定された列を渡してデータベースに問い合わせる。
【０２５６】
ブロック１４９６において、処理ロジックは、クエリに応答して予測レコードセットを返す。上記予測レコードセットは、その中に指定された複数のグループを有し、予測レコードセットの返されるグループの各々は、データセットの１行又は複数行のグループを含む。
【０２５７】
方法１４２１の別の実施形態によれば、データセットの行のすべては、いずれかの単一の行が複数のグループのうち２以上に割り当てられるオーバーラップなしに、予測レコードセットで返される複数のグループのうちちょうど１つに対してデータセットのあらゆる行を割り当てることによって区切られる。
【０２５８】
方法１４２１の別の実施形態によれば、データセットの行は、いずれかの単一の行が複数のグループのうち２以上に割り当てられるオーバーラップなしに、複数のグループのうち最大で１つに対してデータセットの行を割り当てることによってセグメント化される。このセグメント化は、データセットのうち１又は複数の行が複数のグループのうちいずれにも割り当てられないままになることをもたらし、このことは、割り当てられないままの対応する１又は複数の行についての信頼度指標が最小閾値を下回る範囲にあることに起因する。
【０２５９】
方法１４２１の別の実施形態によれば、予測レコードセットで返される複数のグループの各々内で指定される１又は複数の行の各々で返される信頼度指標は、それぞれの行が指定されるグループに属することの予測における最小のとり得る信頼度を示す最小値の０から、それぞれの行が指定されるグループに属することの予測における最大のとり得る信頼度を示す最大値の１に及ぶ。
【０２６０】
方法１４２１の別の実施形態によれば、ＧＲＯＵＰコマンドタームで渡される列は、各々の指定されるグループの１又は複数の行が同じグループ内の他のいずれかの行に対する類似度について評価される潜在構造のコンテキストを提供する。
【０２６１】
方法１４２１の別の実施形態によれば、複数のグループを指定させた予測レコードセットは、データセット又はインデックスからの行識別子のリストと、指定された行識別子の各々についての対応する信頼度指標とを含む。
【０２６２】
方法１４２１の別の実施形態によれば、各行は、登録された投票者に対応し、予測レコードにより指定されるグルーピングは、各投票ブロックが共通のキャンペーンメッセージ、共通のキャンペーン論点及び／又は共通のキャンペーン広告に対して類似して反応しそうであると予測される状態で、自然に目標設定可能な投票ブロックを定義する。
【０２６３】
方法１４２１の別の実施形態によれば、各行は、経済市場参加者に対応し、予測レコードにより指定されるグルーピングは、各広告グループの経済市場参加者が自身に向けられた共通の広告キャンペーンに対して類似して反応すると予測される状態で、自然に目標設定可能な広告グループを定義する。
【０２６４】
別の実施形態によれば、方法１４２１はさらに、予測レコードセットで返されるそれぞれのグループの各々内の最も代表的な行を示すことを含み、この返されるグループの各々についての最も代表的な行は、データセットの実際の行に対応する。
【０２６５】
別の実施形態によれば、方法１４２１はさらに、予測レコードセットで返されるそれぞれのグループの各々内の最もステレオタイプの行を示すことを含み、この最もステレオタイプの行は、データセットの行としては存在せず、最もステレオタイプの行が対応する指定されたグループについてのデータセット内の実際の行に基づいてデータを合成している。
【０２６６】
別の実施形態によれば、方法１４２１はさらに、ＧＲＯＵＰコマンドタームで最小信頼度閾値を渡すことを含み、予測レコードセットを返すことは、最小信頼度閾値を超える信頼度指標を有する予測レコードセットの中のグループの行だけ返すことを含む。
【０２６７】
方法１４２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。
【０２６８】
方法１４２１の別の実施形態によれば、ＧＲＯＵＰコマンドタームを用いてデータベースに問い合わせることは、データベースにＰｒｅＱＬクエリを渡すことを含み、ＰｒｅＱＬクエリは、必要なタームとしてのＧＲＯＵＰコマンドタームと、必要なタームとしてのＣＯＬＵＭＮタームであって、ＧＲＯＵＰコマンドタームで渡されるべき列を指定する、ＣＯＬＵＭＮタームと、任意的なＦＲＯＭタームであって、この任意的なＦＲＯＭタームが指定されるときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、任意的なＦＲＯＭタームが指定されないときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、ＦＲＯＭタームと、のクエリシンタックスを有する。
【０２６９】
方法１４２１の別の実施形態によれば、ＰｒｅＱＬクエリのクエリシンタックスはさらに、任意的なＣＯＮＦＩＤＥＮＣＥタームであって、提供されるとき、予測レコードセットのグループで返されるべき行についての最小受け入れ可能信頼度指標を指定する、ＣＯＮＦＩＤＥＮＣＥタームを提供する。
【０２７０】
方法１４２１の別の実施形態によれば、ＧＲＯＵＰコマンドタームを用いてデータベースに問い合わせることは、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）構造化されたクエリをデータベースに渡すことを含み、ＪＳＯＮ構造化されたクエリは、必要なタームとしてのＧＲＯＵＰコマンドタームと、問い合わせられるべき任意的な１又は複数のテーブル、データセット、データソース及び／又はインデックス、又は、指定されないときに問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスのデフォルト値と、ＧＲＯＵＰコマンドタームで渡される列と、行の各々に対応する信頼度指標に従って予測レコードセットで返されるグループの行についての最小受け入れ可能信頼度の任意的な指定と、のクエリシンタックスを有する。
【０２７１】
方法１４２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、ウェブフォームを公開することを含み、このウェブフォームは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。ホスト組織は、ウェブフォームからの入力に基づいて、データベースに対してサブミットするための潜在構造クエリを生成する。ＧＲＯＵＰコマンドタームを用いてデータベースに問い合わせることは、ホスト組織内で予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を介して潜在構造クエリを用いてデータベースに問い合わせることを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにウェブフォームを通して間接的に公開される。
【０２７２】
方法１４２１の別の実施形態によれば、ＧＲＯＵＰコマンドタームを用いてデータベースに問い合わせることは、ＧＲＯＵＰコマンドタームについて、データベースに対して、予測問い合わせ言語（ＰｒｅＱＬ）構造化されたクエリを実行することを含み、上記方法はさらに、データベースに対して１又は複数のさらなるＰｒｅＱＬ構造化されたクエリを実行することを含み、１又は複数のさらなるＰｒｅＱＬ構造化されたクエリの各々は、ＰＲＥＤＩＣＴ、ＧＲＯＵＰ、ＧＲＯＵＰ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定する。
【０２７３】
別の実施形態によれば、方法１４２１はさらに、認証された加入者からデータセットを受信し、その後、認証された加入者からデータベースに対してのクエリを受信することと、インデックスを生成するように、認証された加入者のためにデータセットを処理することと、を含む。
【０２７４】
方法１４２１の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０２７５】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、列及び行のデータセットからインデックスを生成することであって、上記インデックスは、データセットの行と列とにおける確率的関係を表す、ことと、ホスト組織のデータベース内にインデックスを記憶することと、要求インターフェースを介してホスト組織のデータベースを公開することと、要求インターフェースにおいて、データベースに対しての、ＧＲＯＵＰコマンドタームとＧＲＯＵＰコマンドタームのパラメータとして指定された列とを指定するクエリを受信することと、予測レコードセットを生成するように、ＧＲＯＵＰコマンドタームを用いて指定された列を渡してデータベースに問い合わせることと、クエリに応答して予測レコードセットを返すことであって、上記予測レコードセットは、その中に指定された複数のグループを有し、予測レコードセットの返されるグループの各々は、データセットの１行又は複数行のグループを含む、ことと、を含むオペレーションをホスト組織に実行させる。
【０２７６】
図１５Ａは、記載される実施形態に従うＳＩＭＩＬＡＲコマンドタームの使用を示している。ＳＩＭＩＬＡＲコマンドタームを用いて、ユーザは、「どの行が所与の行に対して最も類似であるか？」を尋ねることができる。行は、ある文脈において類似であるが、別の文脈において非類似である場合がある。例えば、シャチとシロナガスクジラとは、かなり似ている点があるが、非常に異なる点もある。入力１５０１は、ＳＩＭＩＬＡＲコマンドタームで渡されるべき行ＩＤと列ＩＤとの双方を指定する。入力列（又は、列ＩＤ）が潜在構造のコンテキストを提供し、その場合、指定された行は、予測レコードセットの要素により返される類似の行に対して、類似度について評価される。上記のクエリに応答して、予測データセットは、入力列を含むビューの中で、入力行と同じカテゴリの中に各行がどれほどの頻度で出現するかを識別する出力１５０２として返されることになる。
【０２７７】
ＳＩＭＩＬＡＲコマンドターム機能性は、エンティティ（例えば、行又は行ＩＤ）を受け入れ、その後、他のどの行が指定された行に最も類似であるかを返す。ＲＥＬＡＴＥＤコマンドタームの例と同様に、ＳＩＭＩＬＡＲコマンドターム機能性は、指定された行といずれかのそれぞれの返される行とが実際に類似度を提示する確率を返す。例えば、列を指定するのではなく、ユーザは、データセット内の行又はエンティティとして「Ｆｒｅｄ」を指定することができる。それから、ユーザは、ＳＩＭＩＬＡＲコマンドターム機能性を介して「最もＦｒｅｄらしい確率に基づいてどの行がスコア付けされるか？」を問い合わせる。それから、ＡＰＩコールが、データセットからのすべての行を対応する信頼度スコアと共に返し、あるいは、指定された閾値を上回り又は下回る行だけ返すことになる。例えば、おそらく０．８を上回る行が最も興味深く、あるいは０．２を下回る行が最も興味深く、あるいは双方が興味深く、あるいはその範囲が興味深い。それにもかかわらず、ＳＩＭＩＬＡＲコマンドターム機能性は、データセットの中のあらゆる行を指定された行に対するその確率的類似度に従ってスコア付けし、それから、ユーザの制約又は実施するＧＵＩの制約が与えられている場合はその制約に従って、行とそのそれぞれのスコアとを返す能力がある。
【０２７８】
分析エンジンがその独自のモデリングを用いて上記の関係を決定するため、こうした調査について査定する２以上の方法がある。ゆえに、エンティティ（例えば、行又は行ＩＤ）が類似度について評価されるのを受け入れることに加えて、ユーザはさらに、行の類似度がどのように評価されるべきかを決定する曖昧性除去手段として、どの列（又は、列ＩＤ）が分析エンジンにより使用されるべきかをＳＩＭＩＬＡＲコマンドタームのＡＰＩコールに提供する。ゆえに、ＳＩＭＩＬＡＲコマンドタームを指定するＡＰＩコールは、行と列との双方が固定されることを必要とする。こうして、列変数を提供、指定又は固定することで、インデックスを入れる分析エンジンに、曖昧性除去情報を提供する。そうでない場合、分析エンジンは、類似度が探し求められる情報に関して、クエリを提示するユーザがどれほど気にしているかを決定するための焦点又はエントリポイントを欠くであろうため、返される行をスコア付けするための可能な方法が多くなり過ぎるおそれがある。
【０２７９】
図１５Ｂは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１５０５Ａ、１５０５Ｂ及び１５０５Ｃが描かれており、各々がクライアント装置１５０６Ａ、１５０６Ｂ及び１５０６Ｃを備え、クライアント装置１５０６Ａ、１５０６Ｂ及び１５０６Ｃは、要求を送ること及び応答を受信することを含め、ネットワーク１５２５を介してホスト組織１５１０とインターフェースをとる能力がある。ホスト組織１５１０内に要求インターフェース１５７６があり、要求インターフェース１５７６は場合によりウェブサーバ１５７５によって実施されてもよい。ホスト組織は、プロセッサ１５８１、メモリ１５８２、クエリインターフェース１５８０、分析エンジン１５８５、及びマルチテナントデータベースシステム１５３０をさらに含む。マルチテナントデータベースシステム１５３０内に実行ハードウェア、ソフトウェア及びロジック１５２０があり、実行ハードウェア、ソフトウェア及びロジック１５２０は、マルチテナントデータベースシステム１５３０の複数のテナントと認証器１５９８と予測データベース１５５０とにわたって共有され、予測データベース１５５０は、予測データベース１５５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジンにより生成されたインデックスを記憶する能力がある。
【０２８０】
一実施形態によれば、ホスト組織１５１０は、少なくとも１つのプロセッサ１５８１とメモリ１５８２とを有するシステム１５１１を稼働させる。システム１５１１は、列及び行のデータセットからインデックスを生成する分析エンジン１５８５を含み、上記インデックスは、データセットの行と列とにおける確率的関係を表す。上記のシステム１５１１はさらに、インデックスを記憶する予測データベース１５５０と、予測データベースを、例えばユーザ又はクライアント装置１５０６Ａ‐Ｃに対して公開する要求インターフェース１５７６であって、予測データベースに対しての、ＳＩＭＩＬＡＲコマンドタームとＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された行とＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された列とを指定するクエリ１５５３を受信する、要求インターフェース１５７６と、を含む。上記のシステムにおいて、クエリインターフェース１５８０は、予測レコードセット１５５４を生成するように、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行及び指定された列を渡して、予測データベース１５５０に問い合わせる。例えば、ＳＩＭＩＬＡＲコマンドタームとそのオペランド（列ＩＤ及び行ＩＤ）を、予測データベース１５５０に対して実行することができる。
【０２８１】
上記のシステム１５１１において、要求インターフェース１５７６はさらに、クエリ１５５３に応答して予測レコードセット１５５４を返し、予測レコードセット１５５４は複数の要素１５９９を含み、予測レコードセット１５５４の返される要素の各々は、（ｉ）ＳＩＭＩＬＡＲコマンドタームで渡された指定された行に対して、指定された列に基づいて、潜在構造に従って、類似であると評価されたデータセットの行に対応する行識別子と、（ｉｉ）ＳＩＭＩＬＡＲコマンドで渡された指定された行とそれぞれの要素１５９９について返される行識別子との間の潜在関係の尤度を示す信頼度指標とを含む。
【０２８２】
図１５Ｃは、開示される実施形態に従う一方法を示すフロー図である。方法１５２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを備えてＳＩＭＩＬＡＲコマンドを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１５Ｂのシステム１５１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０２８３】
ブロック１５９１において、処理ロジックは、列及び行のデータセットからインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０２８４】
ブロック１５９２において、処理ロジックは、ホスト組織のデータベース内にインデックスを記憶する。
【０２８５】
ブロック１５９３において、処理ロジックは、要求インターフェースを介してホスト組織のデータベースを公開する。
【０２８６】
ブロック１５９４において、処理ロジックは、要求インターフェースにおいて、データベースに対しての、ＳＩＭＩＬＡＲコマンドタームとＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された行とＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された列とを指定するクエリを受信する。
【０２８７】
ブロック１５９５において、処理ロジックは、予測レコードセットを生成するように、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行及び指定された列を渡して、データベースに問い合わせる。
【０２８８】
ブロック１５９６において、処理ロジックは、クエリに応答して予測レコードセットを返す。予測レコードセットはその中に複数の要素を有し、予測レコードセットの返される要素の各々は、（ｉ）ＳＩＭＩＬＡＲコマンドタームで渡された指定された行に対して、指定された列に基づいて、潜在構造に従って、類似であると評価されたデータセットの行に対応する行識別子と、（ｉｉ）ＳＩＭＩＬＡＲコマンドで渡された指定された行とそれぞれの要素について返される行識別子との間の潜在関係の尤度を示す信頼度指標とを含む。
【０２８９】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームで渡される列は潜在構造のコンテキストを提供し、その場合、指定された行は、潜在構造に従って、予測レコードセットの要素により返される類似の行に対して、類似度について評価される。
【０２９０】
方法１５２１の別の実施形態によれば、予測レコードセット内で返される各要素に含まれる、類似であると評価されたデータセットの行は、該類似の行が、ＳＩＭＩＬＡＲコマンドタームで渡された列に従って、指定された行と同じ行グルーピングの中に発生する回数の割合にさらに基づく。
【０２９１】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行を渡して、データベースに問い合わせることは、データセット又はインデックスから、指定された行についての行識別子において渡すことを含む。
【０２９２】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行を渡して、データベースに問い合わせることは、データセット又はインデックスの中の他の行について、すべての列に対応する名前＝値ペアをリストアップしている完全な行をＳＩＭＩＬＡＲコマンドタームで渡すことを含む。
【０２９３】
方法１５２１の別の実施形態によれば、上記完全な行を渡すことは、名前＝値ペアの中の値として１又は複数のヌル値又は空白値を渡すことを含む。
【０２９４】
別の実施形態によれば、方法１５２１はさらに、（ｉ）返される予測レコードセットと予測レコードセットで返される類似の行の各々についての信頼度指標とに基づく、クエリに応答した、ＳＩＭＩＬＡＲコマンドタームで渡された指定された行と比較して最も類似の行と、（ｉｉ）返される予測レコードセットと予測レコードセットで返される類似の行の各々についての信頼度指標とに基づく、クエリに応答した、ＳＩＭＩＬＡＲコマンドタームで渡された指定された行と比較して最も類似でない行と、（ｉｉｉ）インターネットユーザによる検索に応答した、リコメンダシステム（recommender  system）における関連製品であって、予測レコードセットで返される類似の行の１つに対応する、関連製品と、のうち１つを返すことを含む。
【０２９５】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることは、インデックスの中の指定された行の値とインデックス内に存在し且つ指定された列に対応する別の行の値との間の相互依存の尺度を決定するように、指定された行に少なくとも部分的に基づいて相互情報をデータベースが推定することを含む。
【０２９６】
方法１５２１の別の実施形態によれば、データセットの行は、インデックスが生成されるもとのデータセット中のレコードとして記憶された複数の文書に対応し、指定された行を渡すことは、指定された行として複数の文書のうち１つを渡すことを含み、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行として文書を渡して、データベースに問い合わせることは、文書の内容を用いたコンテンツベースの検索をデータベースに実行させる。
【０２９７】
別の実施形態によれば、方法１５２１はさらに、ＳＩＭＩＬＡＲコマンドタームで最小信頼度閾値を渡すことを含み、予測レコードセットを返すことは、最小信頼度閾値を超える信頼度指標を有する予測レコードセットの要素だけ返すことを含む。
【０２９８】
別の実施形態によれば、方法１５２１はさらに、任意的なＣＯＵＮＴタームであって、提供されるとき、予測レコードセット内で返されるべき要素の最大数量を指定する、ＣＯＵＮＴタームを渡すことを含む。
【０２９９】
方法１５２１の別の実施形態によれば、予測レコードセットの要素は、予測レコードセットの要素の各々についての信頼度指標に従って降順で順序付けられて返され、あるいは、予測レコードセットの要素の各々についての信頼度指標に従って昇順で順序付けられて返される。
【０３００】
別の実施形態によれば、方法１５２１はさらに、ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることに応答して生成される予測レコードセットからの類似の行のうち１又は複数を、該類似の行についての最小信頼度指標に基づいて識別することと、類似の行のうち識別された１又は複数を、ＧＲＯＵＰコマンドタームを指定する第２のクエリに入力して、第２のクエリから返される第２の予測レコードセットを制限することと、を含む。
【０３０１】
方法１５２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。
【０３０２】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることは、データベースにＰｒｅＱＬクエリを渡すことを含み、ＰｒｅＱＬクエリは、必要なタームとしてのＳＩＭＩＬＡＲコマンドタームと、必要なタームとしてのＲＯＷタームであって、ＳＩＭＩＬＡＲコマンドタームで渡されるべき行を指定する、ＲＯＷタームと、必要なタームとしてのＣＯＬＵＭＮタームであって、ＳＩＭＩＬＡＲコマンドタームで渡されるべき列を指定する、ＣＯＬＵＭＮタームと、任意的なＦＲＯＭタームであって、この任意的なＦＲＯＭタームが指定されるときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、任意的なＦＲＯＭタームが指定されないときには問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、ＦＲＯＭタームと、のクエリシンタックスを有する。
【０３０３】
方法１５２１の別の実施形態によれば、ＰｒｅＱＬクエリのクエリシンタックスはさらに、任意的なＣＯＮＦＩＤＥＮＣＥタームであって、提供されるとき、予測レコードセットで返されるべき最小受け入れ可能信頼度指標を指定する、ＣＯＮＦＩＤＥＮＣＥタームと、任意的なＣＯＵＮＴタームであって、提供されるとき、予測レコードセット内に返されるべき要素の最大数量を指定する、ＣＯＵＮＴタームと、任意的なＯＲＤＥＲ  ＢＹタームであって、提供されるとき、予測レコードセットで返される要素の各々についての信頼度指標に従って、予測レコードの要素が昇順で返されるべきか降順で返されるべきかを指定する、ＯＲＤＥＲ  ＢＹタームと、のうち１又は複数を提供する。
【０３０４】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることは、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）構造化されたクエリをデータベースに渡すことを含み、ＪＳＯＮ構造化されたクエリは、必要なタームとしてのＳＩＭＩＬＡＲコマンドタームと、問い合わせられるべき任意的な１又は複数のテーブル、データセット、データソース及び／又はインデックス、又は、指定されないときに問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスのデフォルト値と、ＳＩＭＩＬＡＲコマンドタームで渡される行と、ＳＩＭＩＬＡＲコマンドタームで渡される列と、信頼度指標に従って予測レコードセットで返されるべき最小受け入れ可能信頼度の任意的な指定と、予測レコードセット内で返される要素の最大数量の任意的な指定と、予測レコードセットで返される要素の各々についての信頼度指標に従って、予測レコードの要素が降順で返されるべきか昇順で返されるべきかの任意的な指定と、のクエリシンタックスを有する。
【０３０５】
方法１５２１の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、ウェブフォームを公開することを含み、このウェブフォームは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。ホスト組織は、ウェブフォームからの入力に基づいて、データベースに対してサブミットするための潜在構造クエリを生成する。ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることは、ホスト組織内で予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を介して潜在構造クエリを用いてデータベースに問い合わせることを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにウェブフォームを通して間接的に公開される。
【０３０６】
方法１５２１の別の実施形態によれば、ＳＩＭＩＬＡＲコマンドタームを用いてデータベースに問い合わせることは、ＳＩＭＩＬＡＲコマンドタームについて、データベースに対して、予測問い合わせ言語（ＰｒｅＱＬ）構造化されたクエリを実行することを含み、上記方法はさらに、データベースに対して１又は複数のさらなるＰｒｅＱＬ構造化されたクエリを実行することを含み、１又は複数のさらなるＰｒｅＱＬ構造化されたクエリの各々は、ＰＲＥＤＩＣＴ、ＳＩＭＩＬＡＲ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定する。
【０３０７】
別の実施形態によれば、方法１５２１はさらに、認証された加入者からデータセットを受信し、その後、認証された加入者からデータベースに対してのクエリを受信することと、インデックスを生成するように、認証された加入者のためにデータセットを処理することと、を含む。
【０３０８】
方法１５２１の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０３０９】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、列及び行のデータセットからインデックスを生成することであって、上記インデックスは、データセットの行と列とにおける確率的関係を表す、ことと、ホスト組織のデータベース内にインデックスを記憶することと、要求インターフェースを介してホスト組織のデータベースを公開することと、要求インターフェースにおいて、データベースに対しての、ＳＩＭＩＬＡＲコマンドタームとＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された行とＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された列とを指定するクエリを受信することと、予測レコードセットを生成するように、ＳＩＭＩＬＡＲコマンドタームを用いて、指定された行及び指定された列を渡して、データベースに問い合わせることと、クエリに応答して予測レコードセットを返すことであって、予測レコードセットはその中に複数の要素を有し、予測レコードセットの返される要素の各々は、（ｉ）ＳＩＭＩＬＡＲコマンドタームで渡された指定された行に対して、指定された列に基づいて、潜在構造に従って、類似であると評価されたデータセットの行に対応する行識別子と、（ｉｉ）ＳＩＭＩＬＡＲコマンドで渡された指定された行とそれぞれの要素について返される行識別子との間の潜在関係の尤度を示す信頼度指標とを含む、ことと、を含むオペレーションをホスト組織に実行させる。
【０３１０】
図１６Ａは、記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示している。より具体的に、図示されている実施形態は、ＰＲＥＤＩＣＴコマンドタームを用いてインデックスに問い合わせる分類及び／又は回帰の使用を示しており、ＰＲＥＤＩＣＴコマンドタームに対する入力１６０１は列の部分集合を固定し、さらに、出力１６０２は単一のターゲット列を予測している。この例から分かるとおり、最左列が予測されることになり（例えば、ＰＲＥＤＩＣＴコマンドタームの出力１６０２）、いくつかの列がＰＲＥＤＩＣＴコマンドタームに対して入力１６０１として提供される（例えば、５番目、７番目、８番目、１１番目、１２番目、１３番目及び１６番目の列）。
【０３１１】
インデックスを作成するのに使用されたクロスカテゴリ化手法において、ＰＲＥＤＩＣＴコマンドタームを介して提示される予測要求は、データセットについての新しい行として取り扱われ、分析エンジンは、各クロスカテゴリ化において、この新しい行をカテゴリに割り当てる。次いで、各カテゴリについての選択された標準分布を用いて、要求された値が予測される。従来の予測分析と違い、分析エンジンとＰＲＥＤＩＣＴコマンドタームの使用とは、分析されるデータセットに固有のモデルのカスタマイズ実施なしに柔軟な予測クエリを提供し、ゆえに、ＰＲＥＤＩＣＴコマンドタームのユーザが自身が所望するとおり多数又は少数の列を指定することを可能にし、さらに、分析エンジンがユーザの要求に従って多数又は少数の要素を予測することを可能にする。
【０３１２】
例えば、列のうち１つを除くすべてが単一のターゲット列を予測するのに使用される分類又は回帰を考える。分析エンジンは、単一のターゲット列を用いて予測をレンダリングすることができ、あるいは、ユーザの自由裁量におけるいくつかのターゲット列を用いて予測をレンダリングすることができる。例えば、特定の実施形態は、ユーザがＰＲＥＤＩＣＴコマンドタームを介してインデックスに問い合わせて「機会が閉まることになるか？、及び、どれほどの量においてか？」などの質問を尋ねることを許可する。こうした能力は、従来利用可能な手段には存在しない。
【０３１３】
ＰＲＥＤＩＣＴコマンドタームの使用において、ＰＲＥＤＩＣＴ機能性についての適切なＡＰＩを呼び出すことは、ユーザが、データのうち任意の選ばれた部分集合を予測して任意の列又は値を予測することを可能にする。カスタム実装されたモデルにおいて典型的な、単一の値だけ予測するためにデータセット全体が利用されることは、必要とされない。
【０３１４】
ＰＲＥＤＩＣＴコマンドタームを用いるとき、ユーザは任意の列の値を提供し、あるいは固定し、それから、ＰＲＥＤＩＣＴ  ＡＰＩコールが、上記の固定値とユーザが予測したいものとを受け入れる。ＰＲＥＤＩＣＴコマンドターム機能性は、それから、「ユーザにより提供されたとおり固定されたこれら値を有する行を所与として、分布はどうなるか？」を尋ねるインデックスを（例えば、分析エンジンを介して、あるいはＰｒｅＱＬインターフェース又はクエリインターフェースを通してなどで）問い合わせる。例えば、この機能性は、カスタマイズされたモデルで行われるように、データセットの中の１つを除くすべての列を固定し、それから、最後の１つ、欠落した列を予測してもよい。しかし、ＰＲＥＤＩＣＴコマンドターム機能性は、特定のデータセットに対してカスタマイズされる従来のモデルよりさらに柔軟である。例えば、ユーザは、予測すべき列を気まぐれに変更することができ、一方で、カスタム実装されたモデルは、上記の予見できない列又は調査について予測するためのカスタマイズされた数学的構造を欠いているため、単純にこの機能性を欠いている。すなわち、プリプログラムされた特定の機能性がなく、従来のモデルは、特定の列について解決するようにハードコードされているため、この種の可変クエリを単純に実行することができない。対称的に、本明細書に記載される方法論は、いずれか特定の列又はデータセットのためにハードコードされ又はカスタマイズされるものではなく、そのようなものとして、ユーザは、複数の区別可能なクエリを作ることによって自身のデータを探索することができ、あるいは、自身のビジネスニーズが時間と共に変わるとき、クライアント組織の下層のデータ及びデータ構造が一定のままでない場合でさえ、予測されるべき列を単に変更することによって自身の選んだクエリを適応させることができる。
【０３１５】
また、おそらくユーザは、固定すべきすべての列を知ってはいない。例えば、データセットは、一ユーザに関して限られた観察された値だけ含み、しかしなお、別のユーザに関して多数のデータを有することがある。例えば、電子商取引サイトは、登録されていない通りすがりのユーザに関してほとんど知らず、しかし、豊富な購入履歴を有する登録されたユーザに関する多数の情報を知っていることがある。こうした例において、ＰＲＥＤＩＣＴコマンドターム機能性は、データのいくつかが欠落していると分かっているとき、すべてのユーザにすべてのデータを求めることを必要とすることなく、分かっているものだけで固定し又は埋めることを許可し、ゆえに、ＰＲＥＤＩＣＴコマンドタームは、ユーザの実世界のデータセットに存在する欠落したデータ及びヌル値に容易に適応する。こうして、ＰＲＥＤＩＣＴコマンドターム機能性は、実際に分かっているデータを用いて、欠落しているデータ要素をなお予測することができる。
【０３１６】
ＰＲＥＤＩＣＴコマンドターム機能性を用いた別の能力は、分かっているデータセットの中のすべてのデータ、すなわちすべての非ヌル値を指定し又は固定し、そして、他のすべてのものを埋めることである。こうして、ユーザは、データセットの中に観察されるものは既知であると言うことができ、欠落しているデータについて、予測をレンダリングすることができる。ゆえに、ＰＲＥＤＩＣＴ機能性は、ユーザの指定信頼度を上回る予測品質を有する予測を受け入れることにより、欠落した又はヌルの値について予測データを利用することによって、データセットにおける埋められ又は完成されたデータのパーセンテージを増加させることになり、あるいは、ユーザが必要とする最小信頼度閾値を十分に低下させることによって、すべての予測された値を受け入れることになる。この機能性は、さらに、本明細書に記載される特化されたＧＵＩインターフェースによって実施される。
【０３１７】
ＰＲＥＤＩＣＴを用いた別の機能性は、空集合を埋めることである。ゆえにおそらく、データは一の特定エンティティ行（又は、複数の行）について全体的に欠落しており、ＰＲＥＤＩＣＴコマンドターム機能性を用いて、新しい行を表す合成データを生成することができる。この新しい行は、合成データではあるが、行の中の新しいデータは妥当であることを表す。
【０３１８】
他の実施形態において、ＰＲＥＤＩＣＴは、分かっていないが存在すべきであり又は存在し得る、依然としてデータセット内で埋められていないデータ要素を投入するのに使用することができ、ゆえに、ＰＲＥＤＩＣＴ機能性が上記のデータ要素を投入することを可能にする。
【０３１９】
別の例は、ＰＲＥＤＩＣＴを使用して、任意の要素についての確かさ又は不確かさを取得し、上記要素についての妥当な値の範囲を表示し又は返すことである。
【０３２０】
図１６Ｂは、記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示している。より具体的に、図示されている実施形態は、「空白を埋める」手法の使用を示しており、これにおいて、表形式のデータセット内の欠落したデータ又はヌル値は、事前に生成されたインデックスをＰＲＥＤＩＣＴコマンドタームを用いて問い合わせることによって予測された値で埋められる。ＰＲＥＤＩＣＴコマンドタームに対する入力１６１１は列の部分集合を固定し、さらに、出力１６１２は、残りの欠落した列内における欠落した列又は欠落した要素（例えば、ヌル値）のすべてを予測する。
【０３２１】
例えば、ユーザは、不完全な行（複数のクエスチョンマークで描かれている最上行など）を選ぶことができ、ＰＲＥＤＩＣＴコマンドタームを介して、ユーザは、空白を埋めるように、欠落した値のすべてを予測することができる。極端には、ユーザは、分析されるべきデータセットとして、多くの行と多くの列とにわたって多くの欠落した値を有するテーブルを指定し、それから、ＰＲＥＤＩＣＴコマンドタームを介して、ユーザは、信頼度品質のさまざまなレベルに対応する値で空白のすべてが埋められているテーブルをレンダリングすることができる。
【０３２２】
この特定のユースケースのための特化されたツールが以下に論じられ、そのＵＩ機能性は、ユーザが信頼度品質を（例えば、信頼度スコア又は信頼度指標を介して）トレードオフして、信頼度を下げることによってより多くのデータ（又は、すべてのデータ）を投入することができ、あるいは代替的に、ユーザにより構成可能な所与の信頼度品質閾値を上回るすべてではないいくつかのデータを投入することができるなどするようなテーブル内に、多かれ少なかれデータを投入することを可能にする。ユースケースにより特化されたＧＵＩが、この特定のユースケースについて、より詳細に以下でさらに提供され、説明される。特定の実施形態によれば、上記のＧＵＩは、ユーザのためにＡＰＩを介してＰＲＥＤＩＣＴコマンドタームを呼び出すが、それでもなお、本明細書に記載される方法論と矛盾のない分析エンジンの機能コアを利用して、ＰＲＥＤＩＣＴコマンドタームに基づくＰｒｅＱＬクエリを発行する。
【０３２３】
図１６Ｃは、記載される実施形態に従うＰＲＥＤＩＣＴコマンドタームの使用を示している。より具体的に、図示されている実施形態は、合成データ生成手法の使用を示しており、この手法において、元のデータセットのいずれの列又は行内にも実際には存在しないが、それでもなお元のデータセットと矛盾のないデータが、合成データとして返される。合成データ生成は、列のいずれも固定されないだけの入力１６２１で、ＰＲＥＤＩＣＴコマンドタームを再び利用する。出力１６２２は、ユーザにより必要とされるとおり、既存のデータセットについて列のすべてが予測されることをもたらし、単一の合成行がレンダリングされ、又は複数の合成行がレンダリングされる。
【０３２４】
ゆえに、上記の機能性は、入力１６２１で固定された列なしにＰＲＥＤＩＣＴコマンドタームを呼び出すことによる出力１６２２で空集合を埋めるのに利用することができる。例えば、現実であれ架空であれ、エンティティ行データが全体的に欠落しているエンティティを例にとる。ＰＲＥＤＩＣＴコマンドタームを用いてインデックスに問い合わせることによって、分析エンジンは、新しいエンティティ行を提供することにより空集合を表すデータを生成することになり、行の範囲内で生成された合成データは、合成データではあるが、妥当なデータを提供する。すなわち、上記の行についての予測された値は、実際に観察されたデータとしてデータセットから引き出されはしないが、それでもなおデータセット内でもっともらしく観察され得たデータを表す。すでに述べたように、信頼度品質指標が、出力１６２２をユーザの特定のニーズにより良く調和させるために利用されてもよい。
【０３２５】
ＰＲＥＤＩＣＴコマンドタームコールに応答して分析エンジンにより生成される合成行は、実際に観察された実データの中に存在し且つ分析エンジンにより分析されたデータセット内に存在するとおりに構造及び予測的関係のすべてを提示する１又は複数のエンティティ行を出力する（１６２２）ことになる。こうした能力は、ユーザが現実的なデータセットを生成し、そしてテストすることを可能にすることができ、しかし、こうしたデータを探し求めるユーザにこうしたデータがどのように見え得るかを手動で入れさせ又は推量させることなく、データセットの中のエンティティ行により表される実際の個々の実世界データを少しも傷つけない。このことは、個人の金融データ、ＨＩＰＡＡ（医療保険の相互運用性と説明責任に関する法律）により保護される個人のヘルスケアデータなどの非常にセンシティブな情報に対してテスト目的のためにデータセットが必要とされる状況において、役立ち得る。
【０３２６】
図１６Ｄは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１６０５Ａ、１６０５Ｂ及び１６０５Ｃが描かれており、各々がクライアント装置１６０６Ａ、１６０６Ｂ及び１６０６Ｃを備え、クライアント装置１６０６Ａ、１６０６Ｂ及び１６０６Ｃは、クエリを送ること及び応答を受信することを含め、ネットワーク１６２５を介してホスト組織１６１０とインターフェースをとる能力がある。ホスト組織１６１０内に要求インターフェース１６７６があり、要求インターフェース１６７６は場合によりウェブサーバ１６７５によって実施されてもよい。ホスト組織は、プロセッサ１６８１、メモリ１６８２、クエリインターフェース１６８０、分析エンジン１６８５、及びマルチテナントデータベースシステム１６３０をさらに含む。マルチテナントデータベースシステム１６３０内に実行ハードウェア、ソフトウェア及びロジック１６２０があり、実行ハードウェア、ソフトウェア及びロジック１６２０は、マルチテナントデータベースシステム１６３０の複数のテナントと認証器１６９８と予測データベース１６５０とにわたって共有され、予測データベース１６５０は、予測データベース１６５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジンにより生成されたインデックスを記憶する能力がある。
【０３２７】
一実施形態によれば、ホスト組織１６１０は、少なくとも１つのプロセッサ１６８１とメモリ１６８２とを有するシステム１６３１を稼働させる。システム１６３１は、列及び行のデータセットからインデックスを生成する分析エンジン１６８５を含み、上記インデックスは、データセットの行と列とにおける確率的関係を表す。上記のシステム１６３１はさらに、インデックスを記憶する予測データベース１６５０と、予測データベースを、例えばユーザ又はクライアント装置１６０６Ａ‐Ｃに対して公開する要求インターフェース１６７６であって、データベース１６５０に対しての、少なくとも（ｉ）ＰＲＥＤＩＣＴコマンドタームと（ｉｉ）予測されるべき１又は複数の指定された列と（ｉｉｉ）固定されるべき列名と該列名を固定するための値とを指定する１又は複数の列名＝値ペアとを指定するクエリ１６５３を受信する、要求インターフェース１６７６と、を含む。上記のシステムによれば、クエリインターフェース１６８０は、データベース１６５０に記憶されたインデックスを用いて、列名＝値ペアに従って固定された予測されるべき１又は複数の指定された列の同時条件付き分布の表現を生成するように、ＰＲＥＤＩＣＴコマンドタームを用いて、予測されるべき１又は複数の指定された列と１又は複数の列名＝値ペアとを渡して、予測データベース１６５０に問い合わせる（１６５３）。例えば、ＰＲＥＤＩＣＴコマンドタームとそのオペランド（１又は複数の列ＩＤ、及び、１又は複数の列名＝値ペア）とを、予測データベース１６５０に対して実行することができる。
【０３２８】
上記のシステム１６３１において、要求インターフェース１６７６は、クエリ１６５３に応答して出力１６５４として、１又は複数の指定された列の同時条件付き分布の表現をさらに返す。
【０３２９】
図１６Ｅは、開示される実施形態に従う一方法を示すフロー図１６３２である。方法１６３２は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを備えてＰＲＥＤＩＣＴコマンドを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１６Ｄのシステム１６３１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０３３０】
ブロック１６９１において、処理ロジックは、列及び行のデータセットからインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０３３１】
ブロック１６９２において、処理ロジックは、ホスト組織のデータベース内にインデックスを記憶する。
【０３３２】
ブロック１６９３において、処理ロジックは、要求インターフェースを介してホスト組織のデータベースを公開する。
【０３３３】
ブロック１６９４において、処理ロジックは、要求インターフェースにおいて、データベースに対しての、少なくとも（ｉ）ＰＲＥＤＩＣＴコマンドタームと（ｉｉ）予測されるべき１又は複数の指定された列と（ｉｉｉ）固定されるべき列名と該列名を固定するための値とを指定する１又は複数の列名＝値ペアとを指定するクエリを受信する。
【０３３４】
例えば、上記（ｉｉｉ）に従ってＰＲＥＤＩＣＴコマンドタームで渡される１又は複数の列名＝値ペアは、単に例として、ｃｏｌｕｍｎ＿ａｂｃ＝‘ｓｔｒｉｎｇ＿ｘｙｚ’、あるいは｛ｃｏｌｕｍｎ＿ａｂｃ＝‘ｓｔｒｉｎｇ＿ｘｙｚ’｝、あるいはｃｏｌｕｍｎ＿ａｂｃ＝｜‘ｓｔｒｉｎｇ＿ｘｙｚ’などの形式を取り得る。クエリを受け入れるＡＰＩ及び／又はクエリインターフェースに従って、他のシンタックスが許容可能である。さらに、複数の上記の列名＝値ペアが渡されてもよい。
【０３３５】
ブロック１６９５において、処理ロジックは、データベースに記憶されたインデックスを用いて、列名＝値ペアに従って固定された予測されるべき１又は複数の指定された列の同時条件付き分布の表現を生成するように、ＰＲＥＤＩＣＴコマンドタームを用いて、予測されるべき１又は複数の指定された列と１又は複数の列名＝値ペアとを渡して、データベースに問い合わせる。
【０３３６】
処理ロジックはさらに、例えば、クエリに応答しての予測レコードセット内において、出力として、１又は複数の指定された列の同時条件付き分布の表現を返してもよい。
【０３３７】
別の実施形態によれば、方法１６３２はさらに、問い合わせることに応答して予測レコードセットを生成することを含み、予測レコードセットはその中に複数の要素を含み、要素の各々は、予測されるべき１又は複数の指定された列の各々についての値を指定する。上記方法はさらに、クエリに応答して予測レコードセットを返すことを含む。
【０３３８】
方法１６３２の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。
【０３３９】
方法１６３２の別の実施形態によれば、ＰＲＥＤＩＣＴコマンドタームを用いてデータベースに問い合わせることは、データベースにＰｒｅＱＬクエリを渡すことを含み、ＰｒｅＱＬクエリは、必要なタームとしてのＰＲＥＤＩＣＴコマンドタームと、予測されるべき１又は複数の指定された列を指定する、必要なＴＡＲＧＥＴタームと、固定されるべき列名と該列名を固定するための値とを１又は複数の列名＝値ペアとして指定する、必要なＷＨＥＲＥタームであって、指定されたとおりの固定されるべき１又は複数の列と該列を固定するための対応する値とに確率的に関連する要素を返した予測レコードセットに、クエリの出力を制限する、ＷＨＥＲＥタームと、任意的なＦＲＯＭタームであって、この任意的なＦＲＯＭタームが指定されたときは問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定する、ＦＲＯＭタームと、のクエリシンタックスを有する。
【０３４０】
方法１６３２の別の実施形態によれば、ＰＲＥＤＩＣＴコマンドタームを用いてデータベースに問い合わせることは、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）構造化されたクエリをデータベースに渡すことを含み、ＪＳＯＮ構造化されたクエリは、必要なタームとしてのＰＲＥＤＩＣＴコマンドタームと、予測されるべき１又は複数の指定された列の必要な指定と、１又は複数の列名＝値ペアとしての固定されるべき列名と該列名を固定するための値との必要な指定であって、１又は複数の列名＝値ペアを介して指定されるとおりの固定されるべき１又は複数の列と該列を固定するための対応する値とに確率的に関連する要素を返した予測レコードセットに、クエリの出力を制限する、指定と、問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスの任意的な指定と、のクエリシンタックスを有する。
【０３４１】
方法１６３２の別の実施形態によれば、ホスト組織のデータベースを公開することは、認証されたユーザに対して直接、ウェブフォームを公開することを含み、このウェブフォームは、認証されたユーザにとってパブリックインターネットを介してアクセス可能である。
【０３４２】
方法１６３２の別の実施形態によれば、ホスト組織は、ウェブフォームからの入力に基づいて、データベースに対してサブミットするための予測クエリを生成する。ＰＲＥＤＩＣＴコマンドタームを用いてデータベースに問い合わせることは、ホスト組織内で予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を介して予測クエリを用いてデータベースに問い合わせることを含み、ＰｒｅＱＬ  ＡＰＩは、認証されたユーザにウェブフォームを通して間接的に公開される。
【０３４３】
別の実施形態によれば、方法１６３２はさらに、元々データセットの中にある列の各々について、予測された値を指定する予測レコードセットを返すことを含む。
【０３４４】
別の実施形態によれば、方法１６３２はさらに、問い合わせることに応答して合成データセットを返すことを含み、この合成データは、行と列とにおけるインデックスの確率的関係に従って、データセットに元々備わる行及び列と矛盾しないデータを有する合成行を含むが、データセットのいずれの元のレコードも含まない。
【０３４５】
方法１６３２の別の実施形態によれば、合成データセットを返すことは、データセットからの金融レコードを匿名にすることと、データセットからの医療レコードを匿名にすることと、データセットからのインターネットユーザレコードを匿名にすることとのうち、少なくとも１つを含む。
【０３４６】
別の実施形態によれば、方法１６３２はさらに、インデックスを用いてデータセットの行と列とにおける確率的関係に基づいて分布を返すことを含み、上記の返される分布は、データセットの列及び行から数学的に導出されるインデックスからの合成データを含むが、データセットのいずれの元のレコードにもなかったデータに関する情報を含み、さらに、分布が導出されるもとのインデックスは、データセットの元のレコードのデータの範囲に制約されない。
【０３４７】
別の実施形態によれば、方法１６３２はさらに、分布についての信頼度スコアであって、０から１に及び、０は予測された値に自信がないことを示し、１は予測された値における最大のあり得る自信を示す、信頼度スコアと、最小及び最大値を示す信頼区間であって、この区間の間にある値が存在する明らかな自信がある、信頼区間と、のうち少なくとも１つを返すことを含む。
【０３４８】
方法１６３２の別の実施形態によれば、確率的関係に基づいて分布を返すことは、データベースに問い合わせるときにＰＲＥＤＩＣＴコマンドタームで任意的なレコードカウントタームを渡すことであって、この任意的なレコードカウントタームは問い合わせることに応答して返されるレコードの数量を指定する、ことと、レコードカウントにより指定される数量のレコードを返すために必要な、処理リソースの必要な数量を決定することと、をさらに含む。
【０３４９】
方法１６３２の別の実施形態によれば、確率的関係に基づいて分布を返すことは、データベースに問い合わせるときにＰＲＥＤＩＣＴコマンドタームで最小精度閾値を渡すことと、下限として最小精度閾値を満足するために返されるべきサンプルの必要な個体数（population）を決定することと、をさらに含む。
【０３５０】
方法１６３２の別の実施形態によれば、ＰＲＥＤＩＣＴコマンドタームを用いてデータベースに問い合わせることは、ＰＲＥＤＩＣＴコマンドタームについて、データベースに対して、予測問い合わせ言語（ＰｒｅＱＬ）構造化されたクエリを実行することを含み、上記方法はさらに、データベースに対して１又は複数のさらなるＰｒｅＱＬ構造化されたクエリを実行することを含み、１又は複数のさらなるＰｒｅＱＬ構造化されたクエリの各々は、ＰＲＥＤＩＣＴ、ＲＥＬＡＴＥＤ、ＳＩＭＩＬＡＲ及びＧＲＯＵＰを含むＰｒｅＱＬコマンドのグループから選択される少なくとも１つのコマンドを指定する。
【０３５１】
別の実施形態によれば、方法１６３２はさらに、認証された加入者からデータセットを受信し、その後、認証された加入者からデータベースに対してのクエリを受信することと、インデックスを生成するように、認証された加入者のためにデータセットを処理することと、を含む。
【０３５２】
方法１６３２の別の実施形態によれば、データセットの中の複数の行の各々はエンティティに対応し、複数の列の各々はエンティティについての特性に対応し、各々のそれぞれの行と複数の列の各々とにおける交点は、セルを形成して交点における値を記憶する。
【０３５３】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、列及び行のデータセットからインデックスを生成することであって、上記インデックスは、データセットの行と列とにおける確率的関係を表す、ことと、ホスト組織のデータベース内にインデックスを記憶することと、要求インターフェースを介してホスト組織のデータベースを公開することと、要求インターフェースにおいて、データベースに対しての、少なくとも（ｉ）ＰＲＥＤＩＣＴコマンドタームと（ｉｉ）予測されるべき１又は複数の指定された列と（ｉｉｉ）固定されるべき列名と該列名を固定するための値とを指定する１又は複数の列名＝値ペアとを指定するクエリを受信することと、データベースに記憶されたインデックスを用いて、列名＝値ペアに従って固定された予測されるべき１又は複数の指定された列の同時条件付き分布の表現を生成するように、ＰＲＥＤＩＣＴコマンドタームを用いて、予測されるべき１又は複数の指定された列と１又は複数の列名＝値ペアとを渡して、データベースに問い合わせることと、を含むオペレーションをホスト組織に実行させる。
【０３５４】
図１６Ｆは、記載される実施形態に従う一例示的アーキテクチャを描いている。ここに描かれている実施形態は、ＰＲＥＤＩＣＴコマンドタームを指定するクエリ１６５７がゼロ個の列を固定して利用されること、すなわち、ＰＲＥＤＩＣＴコマンドタームで渡される列ＩＤが全くないことを除き、図１６Ｄの実施形態と同一である。結果として、クエリ１６５７に応答して返される出力１６５８は、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データを提供する。
【０３５５】
一実施形態によれば、ホスト組織１６１０は、少なくとも１つのプロセッサ１６８１とメモリ１６８２とを有するシステム１６３５を稼働させる。システム１６３５は、列及び行のデータセットからインデックスを生成する分析エンジン１６８５を含み、上記インデックスは、データセットの行と列とにおける確率的関係を表す。上記のシステム１６３５はさらに、インデックスを記憶する予測データベース１６５０と、予測データベースを、例えばユーザ又はクライアント装置１６０６Ａ‐Ｃに対して公開する要求インターフェース１６７６であって、データベース１６５０に対してのクエリ１６５７を受信する、要求インターフェース１６７６と、を含み、クエリ１６５７は、ＰＲＥＤＩＣＴコマンドタームを指定し、且つ、列ＩＤがＰＲＥＤＩＣＴコマンドタームで渡されないように固定される列がゼロ個である。上記のシステムにおいて、クエリインターフェース１６８０は、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データを出力として生成するように、いかなる指定された列もなしにＰＲＥＤＩＣＴコマンドタームを用いて予測データベース１６５０に問い合わせる（１６５７）。上記のシステム１６３５において、要求インターフェース１６７６は、クエリ１６５７に応答して出力１６５８として、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データをさらに返す。
【０３５６】
図１６Ｇは、開示される実施形態に従う一方法を示すフロー図１６３３である。方法１６３３は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを備えてＰＲＥＤＩＣＴコマンドを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１６Ｆのシステム１６３５は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０３５７】
ブロック１６７０において、処理ロジックは、列及び行のデータセットからインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０３５８】
ブロック１６７１において、処理ロジックは、ホスト組織のデータベース内にインデックスを記憶する。
【０３５９】
ブロック１６７２において、処理ロジックは、要求インターフェースを介してホスト組織のデータベースを公開する。
【０３６０】
ブロック１６７３において、処理ロジックは、要求インターフェースにおいて、データベースに対しての、ＰＲＥＤＩＣＴコマンドタームとＰＲＥＤＩＣＴコマンドタームで渡されるべき１又は複数の指定された列とを指定するクエリを受信する。
【０３６１】
ブロック１６７４において、処理ロジックは、出力を生成するように、ＰＲＥＤＩＣＴコマンドタームと１又は複数の指定された列とを用いてデータベースに問い合わせる。この出力は、データベースに記憶されたインデックスを用いて、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データを含む。
【０３６２】
処理ロジックはさらに、例えば、クエリに応答しての予測レコードセット内に、出力として、生成された合成データを返してもよい。
【０３６３】
別の実施形態によれば、方法１６３３はさらに、問い合わせることに応答して、合成データセットとして、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データを返すことを含み、この生成された合成データは、行と列とにおけるインデックスの確率的関係に従って、データセットに元々備わる行及び列と矛盾のないデータを中に有する合成行を含むが、データセットのいずれの元のレコードも含まない。
【０３６４】
方法１６３３の別の実施形態によれば、合成データセットを返すことは、データセットからの金融レコードを匿名にすることと、データセットからの医療レコードを匿名にすることと、データセットからのインターネットユーザレコードを匿名にすることとのうち、少なくとも１つを含む。
【０３６５】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、列及び行のデータセットからインデックスを生成することであって、上記インデックスは、データセットの行と列とにおける確率的関係を表す、ことと、ホスト組織のデータベース内にインデックスを記憶することと、要求インターフェースを介してホスト組織のデータベースを公開することと、要求インターフェースにおいて、データベースに対しての、ＰＲＥＤＩＣＴコマンドタームを指定し且つＰＲＥＤＩＣＴコマンドタームで列ＩＤが渡されないように固定される列がゼロのクエリを受信することと、出力を生成するように、ＰＲＥＤＩＣＴコマンドタームと１又は複数の指定された列とを用いてデータベースに問い合わせることであって、この出力は、データベースに記憶されたインデックスを用いて、データセットのあらゆる列について予測された値を備えた、１又は複数のエンティティ行を有する生成された合成データを含む、ことと、を含むオペレーションをホスト組織に実行させる。
【０３６６】
図１７Ａは、欠落値を有する表形式データセットをＰＲＥＤＩＣＴコマンドタームを活用することによって表示し及び操作するグラフィカルユーザインターフェース（ＧＵＩ）１７０１を描いている。より具体的に、表示インターフェースにおいてユーザに対してＧＵＩが提供され、ユーザが列及び行を有するデータセットをアップロードし又は指定し、それからこのデータセットをテーブルとして表示し、このテーブルに、欠落した値（例えば、ヌル値）に予測された値を投入することによる操作を受けさせることを許可する。要素１７０７において、ユーザは、ＧＵＩ１７０１を介して分析され及び表示されるべきデータを指定する。例えば、ユーザは、ファイル、例えばエクセルスプレッドシートなどについてローカルのコンピューティング装置を閲覧し、それから、このファイルを分析のためにシステムにアップロードすることができ、あるいは、ユーザは代わって、ＧＵＩ１７０１を提供しているホスト組織にとってアクセス可能なデータセットを指定することができる。例えば、ホスト組織はクラウドベースサービス提供者であり、ユーザのデータセットがクラウド内に既に存在している場合、ユーザは、要素１７０７におけるアクションを介して、上記データセットをデータソースとして単純に指定することができる。
【０３６７】
図１７Ａに描かれる例において、ユーザにより提供された表示されたテーブルは、６１％埋められている。このテーブルは、提供されたユーザのデータセットが多くの欠落したデータ要素を有するため、部分的にしか埋められていない。グレイスケールで現在表示されている値は既知の値を描いており、例えば、要素１７０３により描かれたＰｒｏａｎｔｈｏｃｙａｎｉｎｅ列の中の最上行における既知の値“１．３８”などである。２列右のＰｒｏｌｉｎｅ列において、要素１７０２により描かれるとおりの単に空のセルで表された、最上行に表されたヌル値がある。
【０３６８】
この初期描画において、すべての既知の値１７０３が描かれ、下層のデータセット内の実際の観察されたデータに対応する。この実施形態によれば、閾値修正器として動作するスライダ１７０５が左手側の端にあり、いかなる予測された値も表示されることなくすべての既知の値が表示される場合の最小の埋まり（フィル）１７０４を表している。したがって、表示されるすべての値の信頼度は、提供されるデータセット内にすべての値が実際に観察され、値が予測されていない場合、１００％であると考えることができる。スライダ制御は、テーブルのフィルパーセンテージを制御する閾値修正器として利用することができ、この閾値修正器が同様に、ユーザの指定されたフィルパーセンテージを達成するよう必要な信頼度閾値を改造する。あるいは代わって、スライダ制御は、ユーザの受け入れ可能な不確かさレベルを制御する閾値修正器として利用することができ、ゆえに、ユーザの指定された受け入れ可能な不確かさレベルが変わるとき、テーブルのフィルのパーセンテージが、ユーザの指定された受け入れ可能な不確かさレベルに準拠する利用可能な予測値に従って増加し、あるいは減少することになる。他の実施形態において、受け入れ可能な不確かさレベルは、例えば、テキストエントリボックス又は他のコントロール手段を介して指定されてもよい。
【０３６９】
ユーザは、ダウンロード１７０６アクションをクリックして、表示されたテーブルを様々なフォーマットにおいてダウンロードすることができるが、こうしたテーブルは、データ１７０７アクションを介してちょうど指定され又はアップロードされたソーステーブルに対応することになる。
【０３７０】
値が予測されないが、ユーザは単に、欠落した値についてのデータフィルを増加させるようにスライダを動かし、ＧＵＩの機能性にユーザのために予測機能を利用させてもよい。スライダのちょうど上で、ユーザは、最小フィル１７０４の現在の状態を知らされ、これは、表示されている例によれば上述されたとおり６１％であるが、スライダが動かされるときに変化することになる。
【０３７１】
図１７Ｂは、グラフィカルユーザインターフェースの別のビューを描いている。ここで、表示されたテーブルは、ヌル値（例えば、欠落したデータ）のうちすべてではないがいくつかに、予測された値を投入している。例えば、ユーザの下層のデータセット内でヌル値に対応していた、Ｐｒｏｌｉｎｅ列における最上行の中の事前に空であったセルが、要素１７０８により描かれるとおり、予測された値“５６４”をここでは投入されている。特に、値５６４は、ユーザーの下層のデータセット内のこの場所に存在せず、ユーザの下層のデータセット内で観察されていなかった。むしろ、ＧＵＩ１７０１は、ユーザのためにＰＲＥＤＩＣＴＥＤコマンドタームコールを構成して、予測された値１７０８の結果を取り出して、ここに表示させている。この例において、グレイスケールにおける値のすべてが既知の値であり、ベタの黒で表示されたテーブルの値のすべてが、同じデータセットの事前に未知であったヌル値を置換している予測された値である。
【０３７２】
スライダは、要素１７０９により描かれるとおり７３％のフィルをここでは示しており、すべてではないがいくつかの欠落した値が、予測された値をここでは投入されている。フィルレベルは、スライダを前後に単に動かすことによってユーザ制御可能であって、ユーザの指定された受け入れ可能な不確かさレベルが増加され又は減少されるとき、それぞれ、ＧＵＩ１７０１に、欠落したデータ値に予測された値を投入させ、あるいは予測された値を除去させる。
【０３７３】
この例に描かれていないものに、ユーザ構成可能な最小信頼度閾値があり、この閾値は、テキストボックス、ドロップダウン、スライダ等を介して設定されてよい。こうしたＧＵＩ要素は、ユーザがＧＵＩ１７０１に表示されるべき予測された値に必要な最小信頼度を指定することを許可する。一実施形態において、最小信頼度閾値を有することは、最大フィル値が表示されることをさらにもたらし、それから、要素１７０９におけるスライダは、最小信頼度閾値により限定されるとおり、最大フィルに限定される。
【０３７４】
これは、なぜならば、フィルパーセンテージが増加するとき、ヌル値に投入される予測された値の信頼度品質を下げることが必要だからである。反対に、フィルパーセンテージが減少するとき、信頼度品質は増加し得る。
【０３７５】
ゆえに、ユーザが完璧な（例えば、１００％の）信頼度品質を指令する場合、いかなる欠落した値も１００％の信頼度で予測することはありそうにないため、いかなるヌル値も埋めるということはできそうにない。しかしながら、すべての実際に観察された値は、これらが１００％の信頼度で下層のデータセットから知られているため、表示され続けることになる。反対に、同じユーザが非常に低い信頼度（例えば、２５％）を指令する場合、２５％の要件は信頼度品質の観点で低い閾値であるため、すべてではないがほとんどの欠落した値を予測することができる可能性が高い。下層のデータセットの品質、下層のデータセットの中の個体数のサイズ等に依存して、すべての又はほぼすべてのヌル値が比較的高い（例えば、８０％の）信頼度で予測され得ることが、いくつかのデータセットで実現可能である。これにかかわらず、ＧＵＩ１７０１は、ユーザがＰＲＥＤＩＣＴコマンドタームがどのように動作するか、それがどんな入力を必要とするか、ＰｒｅＱＬ又はＪＳＯＮ  ＡＰＩコールの作り方等を理解する必要さえなく、自身のデータセットをかなり直感的な方法で試すことを許可する。こうしたＧＵＩ１７０１は、したがって、分析エンジンのコアにより提供される予測能力を利用したい一般ユーザの学習曲線を大幅に低下させることができる。
【０３７６】
図１７Ｃは、グラフィカルユーザインターフェースの別のビューを描いている。ここで、ＧＵＩ１７０１は、その事前に描かれた既知の値１７０３と予測された値１７０８とを保有するが、ユーザ制御可能なスライダは、要素１７０９により描かれるとおり１００％の最大フィルまで右の端に動かされており、したがって、すべての既知の値がテーブル表示の中に留まるが、さらにデータセットの中のヌル値の１００％が投入され、ＧＵＩ１７０１に表示されている。
【０３７７】
さらに、これまでに述べられた最小信頼度閾値を（例えば、ドロップダウン、テキストボックス、スライダ、ラジオボタン等を介して）指定する任意的な入力フィールドとして、要素１７１０に最小信頼度閾値アクションが示されている。ゼロより大きい最小信頼度閾値を用いて１００％において表示することができるテーブルもあれば、一方、最小信頼度閾値が１７１０において指定される場合、データセットの下層の品質が不十分である場合には上記閾値がゼロ又はその付近である必要があり得ることを要するテーブルもある。こうした決定は、データ要素の確率的相互関係と雑音があること又はないこととに従って、データセットから外れることになる。
【０３７８】
上記のことにかかわらず、１７１０において指定される最小信頼度閾値は、一般ユーザがかなり直感的な方法で自身のデータセットを試すことを許可する。ユーザが、１７１０において、１００％のフィルを許可しない最小信頼度閾値を指定する場合、埋められる最大の％、又はフィルパーセンテージは、スライダが右の端に動かされるとき、１７１０において、ユーザにより設定された最小信頼度閾値に従って実現可能なフィルの程度を示すことになる。
【０３７９】
テーブルが１００％のフィルで表示されるため、すべてのヌルの又は欠落した値が予測されるが、１００％のフィルを達成するために信頼度をいくらか下げる必要があり得る。この場合、１７１０における任意的な最小信頼度閾値は、設定されないまま、グレイアウトされたまま、活性化されないまま、又は単純にユーザに対して表示されないままとなり得る。
【０３８０】
特定の実施形態によれば、スライダバーを介してユーザにより選択される（又は、１７１０における任意的な最小信頼度閾値を介して制御される）、選ばれたフィルレベル又は受け入れ可能な不確かさレベルは、表示されたデータセットを捕捉するように、ダウンロードアクションをクリックすることによって「保存する」ことができる。表示されたコピーは、新しいバージョンとして保存し、あるいはユーザの自由裁量においてテーブルの元のバージョンの上に保存することができる。こうして、提供された予測値が保存され、又はユーザのローカルコピー内のセルの場所に入力される結果になる。さらに、実際の既知の及び観察された値から予測された値を区別するために、メタデータが使用されてもよく、したがって、データセットの後の使用がユーザの試行活動によって破損され又は誤って影響されることがない。
【０３８１】
要素１７０９における制御スライダが実現可能である理由は、ユーザが、予測されるべき値、例えば“収入”の欠落した値などについて尋ねるとき、ＰＲＥＤＩＣＴコマンドタームＡＰＩコールをするＧＵＩ機能性に対して実際に返されるものが、インデックスを生成するために分析エンジンモデリングにより予測されたとおりのそれぞれの個人の収入分布であり、それから上記インデックスがＰＲＥＤＩＣＴコマンドタームにより問い合わせられるからである。予測された値についての返される分布は、ＧＵＩが表示すべき値を選択すること及び信頼度品質に従って表示を制限することを許可する。他の実施形態において、分布ではなく信頼度指標が返される。
【０３８２】
上記のＧＵＩインターフェース又は上記の概念を概して使用することによって、ユーザは、精度及び信頼度に関して制御を与えられる。こうして、ユーザは、どれほどの量のデータが埋められることになるかと、そうである場合に信頼度品質閾値がどの程度まで適用されるかとを操作することができる。舞台裏で、ユーザから見えないところで、ＧＵＩ１７０１は、ユーザにより指定された分析されるデータセットに対して、ＰＲＥＤＩＣＴコマンドタームＡＰＩコールをする。分析エンジンは、ユーザのデータセット、例えば、大量のタイプの列を有するテーブルなどを選び、それから、ＧＵＩ１７０１の要求において、ヌル値を有するあらゆる１つ１つのセルについて、予測をレンダリングする。欠落している各セルについて、ＧＵＩ１７０１は、ＰＲＥＤＩＣＴコマンドタームＡＰＩコールから分布又は信頼度指標を返され、スライダがユーザにより操作されるとき、ＧＵＩのスライダの機能性は、ヌル値についての分布を調べ、ヌル値の分布についての分散を調べ、それから、例に示される予測された値として推定を表示する。ゆえに、欠落したヌル値の代わりに予測された結果を有する任意の所与のセルについて、ＰＲＥＤＩＣＴコマンドターム機能性を活用することによるＧＵＩ１７０１は、下層のデータセットの中の複数の他の既知の値又は観察された値を調べたことに基づいて、ヌル値に対する値をユーザに対して表す。ＧＵＩ１７０１自体はデータセットの分析を実行しないが、上記で述べられたとおりＰＲＥＤＩＣＴコマンドタームＡＰＩコールから返されるデータから専ら恩恵を受ける。
【０３８３】
一実施形態によれば、表形式における生データにすぎないもの、例えば、スプレッドシートにおけるデータ、リレーショナルデータベースの１又は複数のテーブル内に記憶されたデータなどを始めとして、データを予測データベースにアップロードし又は挿入するために、ＵＰＬＯＡＤコマンドタームＡＰＩコールがＧＵＩによって最初行われる。上記予測データベースにおいて、分析エンジンが、自動的にか、あるいはＡＮＡＬＹＺＥコマンドタームＡＰＩコールに応答してのいずれかで、上記データを分析するように動作する。例えば、ユーザがこの機能性に対するアクセスのためにサービス料を支払う場合、ＧＵＩは、データをアップロードされるとユーザに価格設定を示し、分析エンジンによる分析をトリガする前に受け入れを要求してもよい。他の例において、分析エンジンは、単に自動的に分析を実行する。上記のことにかかわらず、ユーザにより指定されたデータをアップロードされると、データはただ、すべての他の表形式データのように見えるが、いったんアップロードされ、分析エンジンにより分析されると、確率モデルがデータに対して実行され、分析エンジンはそのモデリングを通して、行及び列がどのように互いに相互作用するかを学習し、このことを通して様々な確率関係及び因果関係が築かれ、本明細書に記載されたとおり生成されたインデックス内に表される。例えば、生成される統計的なインデックスは、例えば、列の特定のサブセットが因果の起源を共有しそうであることを学習するために、列が互いにどのように関連しているか及びどの列が互いに関連しているかを見つけ出す。
【０３８４】
分析エンジンがその分析を、きれいな及び完璧なデータセットではなくユーザにより提供される実世界データを用いて実行し、分析されるべきデータの下層の構造を前もって知ることなく、上記のことを大抵行わなければならないことは、難しい問題である。実世界に存在するデータにおいて、いくつかの列は価値がなく、いくつかの列は重複であり、いくつかの列は異種であり（例えば、一貫性のあるデータタイプにされていない）、いくつかの列は、単にまばらに投入されたデータを有する雑音であり、あるいは雑音のあり誤りのあるデータを投入されているなどする。分析エンジンは、その分析インデックスと他のモデリングとを通して、完璧にきれいなデータ又は標準化されたデータ構造がないにもかかわらず、適切な関係及び因果関係を識別する。
【０３８５】
統計的インデックスと他のモデリングとを通して、インデックスの分布が、記載されたＧＵＩ１７０１により利用されるクエリを含む予測クエリのサポートにおいて、問い合わせ可能インデックスとして記憶されたモデルをもたらす。ＰＲＥＤＩＣＴコマンドタームと他の予測ＰｒｅＱＬクエリとをさらに利用する他の特化されたＧＵＩ及びＡＰＩツールが、ビジネス機会スコア付け、次の最良オファーの識別等を含む。上記及び他の例が、本明細書において後にさらに詳細に記載される。
【０３８６】
図１７Ｄは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１７０５Ａ、１７０５Ｂ及び１７０５Ｃが描かれており、各々がユーザのクライアント装置及びディスプレイ１７０６Ａ、１７０６Ｂ及び１７０６Ｃを備え、ユーザのクライアント装置及びディスプレイ１７０６Ａ、１７０６Ｂ及び１７０６Ｃは、入力、クエリ及び要求を送ること並びに表示のための出力を含む応答を応答的に受信することを含め、ネットワーク１７２５を介してホスト組織１７１０とインターフェースをとる能力がある。ホスト組織１７１０内に要求インターフェース１７７６があり、要求インターフェース１７７６は場合によりウェブサーバ１７７５によって実施されてもよい。ホスト組織は、プロセッサ１７８１、メモリ１７８２、クエリインターフェース１７８０、分析エンジン１７８５、及びマルチテナントデータベースシステム１７３０をさらに含む。マルチテナントデータベースシステム１７３０内に実行ハードウェア、ソフトウェア及びロジック１７２０があり、実行ハードウェア、ソフトウェア及びロジック１７２０は、マルチテナントデータベースシステム１７３０の複数のテナントと認証器１７９８と予測データベース１７５０とにわたって共有され、予測データベース１７５０は、予測データベース１７５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジン１７８５により生成されたインデックスを記憶する能力がある。
【０３８７】
一実施形態によれば、ホスト組織１７１０は、少なくとも１つのプロセッサ１７８１とメモリ１７８２とを有するシステム１７１１を稼働させる。システム１７１１は、入力としてユーザから表形式データセット１７５３を受信する要求インターフェース１７７６を含み、上記表形式データセットは、列及び行として編成されたデータ値を含む。ユーザは、表形式データセット１７５３をファイル添付として提供することができ、あるいは表形式データセット１７５３の場所を指定することができる。上記のシステム１７１１はさらに、ユーザから受信され又はユーザにより指定された表形式データセット１７５３内の複数のヌル値を識別する分析エンジン１７８５を含み、上記ヌル値は、表形式データセット１７５３内の複数の行と複数の列とにわたって散在している。こうした一実施形態において、分析エンジン１７８５はさらに、列及び行の表形式データセットからインデックス１７５４を生成し、このインデックスは、表形式データセット１７５３の行と列とにおける確率的関係を表す。要求インターフェース１７７６は、表示出力１７５５として表形式データセットをユーザに返し、表示出力１７５５は、既知の値として描かれるデータ値と未知の値として描かれるヌル値とを含む。要求インターフェース１７７６はさらに、ユーザから、投入するための入力１７５６を受信する。上記の入力は、例えば、スライダ制御を介した入力、ユーザ指定された最小信頼度閾値等であり得る。ユーザから受信された投入するための入力１７５６は、表示された表形式データセット内の未知の値のうち少なくとも一部分が、予測データベース１７５０内に記憶されたインデックスから取り出される予測された値１７５８を投入されることになることを指定する。上記の予測された値１７５８は、分析エンジン１７８５及び／又はクエリインターフェース１７８０によって予測データベース１７５０に対して構築され及び発行されたクエリ１７５７に応答して、予測データベース１７５０内に記憶されたインデックスから返すことができる。
【０３８８】
例えば、上記のシステムにおいて、クエリインターフェース１７８０は、予測される値１７５８のために（例えば、クエリ１７５７を介して）インデックスに問い合わせることができ、その後、要求インターフェース１７７６が、ユーザのクライアント装置及びディスプレイ１７０６Ａ‐Ｃを介して、予測された値１７５８を更新された表示出力１７５９としてユーザに返す。例えば、次いで、更新された表示出力は、ユーザにより提供され又は指定された元の表形式データセット１７５３内において欠落したデータ又はヌル値のエントリに対応していた、事前に描かれていた未知の値に代わって、予測された値をここでは描くユーザのクライアント装置及びディスプレイ１７０６Ａ‐Ｃを提示する。
【０３８９】
別の実施形態によれば、システム１７１１はさらに、分析エンジンにより生成されたインデックスを記憶する予測データベース１７５０を含む。こうした一実施形態において、予測データベース１７５０は、オンデマンドのクラウドベースのサービスとして、ホスト組織１７１０において、１又は複数の加入者のために実行されるものである。
【０３９０】
別の実施形態において、システム１７１１はさらに、ユーザ（例えば、ユーザのクライアント装置及びディスプレイ１７０６Ａ‐Ｃの１つにおけるユーザ）を既知の加入者として検証する認証器１７９８を含む。それから、認証器１７９８はさらに、既知の加入者により提示される認証クレデンシャルを検証するように動作する。
【０３９１】
別の実施形態において、システム１７１１はさらに、要求インターフェースを実施するウェブサーバ１７７５であって、入力として、ネットワークを介してホスト組織と通信可能にインターフェースをとる複数の顧客組織の中の１又は複数のクライアント装置から複数のアクセス要求を受信する、ウェブサーバ１７７５と、予測データベースを実施する予測データベース機能性を備えたマルチテナントデータベースシステムと、を含む。各顧客組織は、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択されたエンティティである。
【０３９２】
図１７Ｅは、開示される実施形態に従う一方法を示すフロー図である。方法１７２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり表形式データセット及び予測された値をユーザディスプレイに表示するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１７Ｄのシステム１７１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０３９３】
ブロック１７９１において、処理ロジックは、入力としてユーザから表形式データセットを受信する。上記表形式データセットは、列及び行として編成されたデータ値を有する。
【０３９４】
ブロック１７９２において、処理ロジックは、表形式データセット内の複数のヌル値を識別する。上記ヌル値は、表形式データセットの複数の行と複数の列とにわたって散在している。
【０３９５】
ブロック１７９３において、処理ロジックは、列及び行の表形式データセットからインデックスを生成する。上記インデックスは、表形式データセットの行と列とにおける確率的関係を表す。
【０３９６】
ブロック１７９４において、処理ロジックは、表形式データセットを出力としてユーザに表示する。この表示される出力は、既知の値として描かれるデータ値と未知の値として描かれるヌル値とを含む。
【０３９７】
ブロック１７９５において、処理ロジックは、上記の表示された表形式データセット内の未知の値のうち少なくとも一部分に予測された値を投入するための入力をユーザから受信する。
【０３９８】
ブロック１７９６において、処理ロジックは、予測された値についてインデックスに問い合わせる。
【０３９９】
ブロック１７９７において、処理ロジックは、予測された値を更新された出力としてユーザに表示する。
【０４００】
特に、データセット内において「未知の値」又は「ヌル値」により表される空白値は、表形式データセット内でいずれかの場所で生じる可能性があるが、分析エンジンのコアに分析させることによってユーザが直感的にデータセットを探索することを許可し、様々な基準、例えば、図１７Ａ乃至図１７ＣのＧＵＩを介して提示された最小信頼度閾値、ユーザ構成可能なスライダメカニズム等に従って、データがどこで欠落していてもユーザが値を埋めることをシームレスに可能にする。Ｍｉｃｒｏｓｏｆｔのエクセルプログラムは、アルゴリズムに基づいて次の列にわたって又は次の行へ下方に算出することにおいてとても良いが、こうした従来のスプレッドシートプログラムは、特に単一行内に複数未知の値があり、あるいは単一列内に複数の欠落した値があるとき、種々の行及び種々の列にわたってデータセット内において欠落した値又は穴を容認することはできない。
【０４０１】
分析され及びユーザに戻されて表示される表形式データセットは、エクセルのスプレッドシートが動作し得るように関係位置に基づいて既知のアルゴリズムを別のセルの場所にコピーすることによっては動作しない。むしろ、ユーザにとって欠落した又は未知の値の投入及び表示は、それぞれのセルの場所についての予測される値について問い合わせ及び受信することに基づき、上記それぞれのセルの場所が、ユーザに戻されて表示される表形式データセット内でユーザに対して表示される。これは、元々受信されたデータセットからの確率に基づくインデックスの分析及び生成をとおして可能にされる。エクセルスプレッドシートなどの従来のソリューションは、上記の分析を単に実行せず、上記のインデックスを生成しない。そのようなものとして、従来のソリューションは、データセットの複数の行及び列にわたって広がる複数の欠落したセルについての予測された値をレンダリングすることはできない。
【０４０２】
一実施形態によれば、欠落したセルのすべてについての予測が、受信された表形式データセット全体について決定される。それから、ユーザが特定の確かさレベル（例えば、最小信頼度レベルなど）を選択するとき、基準を満たす値を用いて表示が更新される。例えば、欠落した値を備え、デフォルト閾値又はユーザ指定された閾値を超える対応する信頼度指標での予測された値を有するセルが、ユーザに対して表示されることができる。
【０４０３】
方法１７２１の別の実施形態によれば、列及び行の表形式データセットからインデックスを生成することはさらに、ホスト組織のデータベース内にインデックスを記憶することを含み、予測される値についてインデックスに問い合わせることは、予測される値についてデータベースに問い合わせることを含む。
【０４０４】
方法１７２１の別の実施形態によれば、表示された表形式データセット内の未知の値のうち少なくとも一部分に予測された値を投入するための入力をユーザから受信することは、表示された表形式データセット内のすべての未知の値に予測された値を投入する入力をユーザから受信することを含み、予測される値についてインデックスに問い合わせることは、表形式データセット内で識別されたあらゆるヌル値についての予測される値についてインデックスに問い合わせることを含み、予測された値を更新された出力としてユーザに表示することは、すべての未知の値を対応する予測された値を表示することによって置換することを含む。
【０４０５】
方法１７２１の別の実施形態によれば、表形式データセット内の複数のヌル値は、表形式データセットのいかなる行又は列に対しても制限されず、予測された値を更新された出力としてユーザに表示することは、いかなる行又は又は列に対しても制限なく、且つ予測された値が基づくインデックスを変えることなく、表形式データセットで表示される未知の値を置換する。
【０４０６】
方法１７２１の別の実施形態によれば、予測された値についてインデックスに問い合わせることは、表形式データセット内の識別された複数のヌル値の各々及び１つごとについてインデックスに問い合わせることを含み、上記方法はさらに、問い合わせることに応答して表形式データセット内の識別された複数のヌル値の各々及び１つごとについて予測された値を受信することを含み、予測された値を更新された出力としてユーザに表示することは、受信された予測された値を表示することを含む。
【０４０７】
方法１７２１の別の実施形態によれば、予測される値についてインデックスに問い合わせることは、表形式データセット内の識別された複数のヌル値の各々及び１つごとについて、ＰＲＥＤＩＣＴコマンドタームを指定する予測問い合わせ言語（ＰｒｅＱＬ）クエリを生成することと、生成されたＰｒｅＱＬクエリの各々を予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）に対して発行することと、発行されたＰｒｅＱＬクエリに応答して、表形式データセット内の識別された複数のヌル値の各々及び１つごとについて、予測された結果を受信することと、を含む。
【０４０８】
方法１７２１の別の実施形態によれば、表形式データセットを表示することはさらに、スプレッドシートのセル内に既知の値を黒のテキストを用いて表示することと、スプレッドシート内で未知の値を空白セルとして表示することと、スプレッドシートのセル内に予測された値を色付けされた又はグレースケールのテキストを用いて表示することと、を含む。
【０４０９】
方法１７２１の別の実施形態によれば、予測された値を更新された出力としてユーザに表示することは、グラフィカルユーザインターフェース（ＧＵＩ）におけるスプレッドシート又はテーブル内に更新された出力を表示することを含み、既知の値は、第１のタイプのテキストにおいてＧＵＩにおけるスプレッドシート又はテーブル内に投入されたセルとして表示され、予測された値は、既知の値に対応する第１のタイプのテキストとは識別可能な第２のタイプのテキストにおいて、ＧＵＩにおけるスプレッドシート又はテーブル内に投入されたセルとして表示され、任意の残りの未知の値は、ＧＵＩにおけるスプレッドシート又はテーブル内に空のセルとして表示される。
【０４１０】
方法１７２１の別の実施形態によれば、表形式データセットを出力としてユーザに表示すること、及び、予測された値を更新された出力としてユーザに表示することは、グラフィカルユーザインターフェース（ＧＵＩ）におけるスプレッドシート又はテーブル内に表形式データセットと予測された値とを表示することを含み、上記ＧＵＩはさらに、スプレッドシート又はテーブルについての受け入れ可能な不確かさ度合を指定するようにユーザにより制御可能なスライダインターフェースを含み、表示された表形式データセット内の未知の値のうち少なくとも一部分に予測された値を投入するための入力をユーザから受信することは、スライダインターフェースを介してユーザから入力として受け入れ可能な不確かさ度合を受信することを含む。
【０４１１】
別の実施形態によれば、方法１７２１はさらに、ＧＵＩについての最小フィルパーセンテージを表示することを含み、上記最小フィルパーセンテージは、表形式データセットについてのすべてのヌル値とすべての既知の値との総計のうちの、表形式データセット内の既知の値のパーセンテージに対応する。
【０４１２】
方法１７２１の別の実施形態によれば、スプレッドシート又はテーブルについての受け入れ可能な不確かさ度合を指定するようにユーザにより制御可能なスライダインターフェースは、表示された表形式データセットに完全に投入するために必要な最大の不確かさ度合と上記最小フィルパーセンテージとを包含する範囲に制限される。
【０４１３】
例えば、表示された表形式データセットに完全に投入することは、１００％のフィルパーセンテージをもたらすことになるが、ユーザが１００％に等しい受け入れ可能な不確かさ度合を指定することは必ずしも必要ない。むしろ、表示された表形式データセットは、例えば５０％のユーザ指定された受け入れ可能な不確かさ度合において、１００％のフィルパーセンテージを達成する（例えば、あらゆる１つ１つのヌル又は未知の値が、予測された結果を投入される）ことが実現可能であり得る。ユーザがどの受け入れ可能な不確かさ度合を指定するかにかかわらず、受け入れ可能な不確かさ度合が増加されるとき、テーブルのより大きい部分が埋められることになり、受け入れ可能な不確かさ度合が減少されるとき、テーブルのより少ない部分が埋められることになる。こうして、ユーザは、予測信頼度が表示される結果にどのように影響するかを非常に直感的な方法で動的に探索することを許可される。
【０４１４】
別の実施形態によれば、方法１７２１はさらに、スライダインターフェースを介して最大の受け入れ可能な不確かさ度合を指定するユーザによる入力に応答して、１００％のフィルパーセンテージに対してＧＵＩのスプレッドシート又はテーブルに投入することと、表形式データセット内の複数のヌル値の１つごとについて、予測された値が利用可能になるまで予測された値の各々についての必要な信頼度を下げることによって、すべてのヌル値に投入することと、を含む。
【０４１５】
未知の値は、表形式データセットから単に欠落しているデータに対応し、一方、既知の値は、データが実際に観察されたため、真に確かである値として定義することができる。こうして、出力としてユーザに戻される表形式データセットの初期提示は、真に確かであるすべての値を含むことができ、すなわち、初期出力は、テーブル又はスプレッドシートタイプフォーマットにおける元の表形式データセット内で実際に観察されるすべての値を戻して単に表示することができる。ゆえに、未知の値は、依然として欠落していることになる。しかしながら、こうした表示は、既知のデータしか表示されないため、１００％の信頼度において表示されることができる。ゆえに、表示される出力についてのフィルのレベル又は投入の程度は、最小フィルパーセンテージ、ユーザに表示されることができる値に対応する。
【０４１６】
正反対の立場において、ユーザは、もともと提示された表形式データセットが未知の値を有するにもかかわらず、十分に投入されたテーブルを見ることを要求し得る。このことは、ゼロより大きい確かさを有するすべての予測された値をユーザに提示することによって達成することができ、ゆえに、表示されたテーブルを十分に埋めること又は表示されるテーブルに十分に投入することとして定義することができる。テーブルを十分に埋めるとき、識別されるいずれの空白もが、予測された値についての信頼度にかかわらず、予測された値を表示のために提供されることになる。ゆえに、“０”の確かさと“１”の確かさとの間のすべての値が表示される。こうしたビューはユーザにとって利用可能であるが、この表示はさらに、ある予測された値についての確かさが不十分であることを示し、あるいは、最も低い信頼度品質での予測された値についての信頼度スコアを示すなどの可能性がある。代替的な実施形態において、ユーザは、最小信頼度品質閾値を指定することができ、それから、表示される値は、ユーザ指定された最小信頼度品質閾値に基づいて制限されることになる。ユーザ指定された最小信頼度品質閾値がゼロより大きいように指定される場合、最大フィルパーセンテージは、ユーザ指定された最小信頼度品質閾値を超える信頼度で予測されることができないセルがありそうであるため、１００％を下回る可能性がある。
【０４１７】
こうして、別の実施形態によれば、方法１７２１はさらに、スプレッドシート又はテーブル内でユーザに対して出力として表形式データセットを表示するグラフィカルユーザインターフェース（ＧＵＩ）においてユーザ制御可能な最小信頼度閾値を表示することと、ユーザ制御可能な最小信頼度閾値を介して入力としてユーザ指定された最小信頼度閾値を受信することと、を含み、予測された値を更新された出力としてユーザに表示することは、ユーザ指定された最小信頼度閾値に等しいか又はより大きい対応する信頼度指標を有する予測された値だけをＧＵＩにおいて表示することを含む。
【０４１８】
特定の実施形態において、表形式データセット内のあらゆる欠落したセル又は未知の値について、クエリが構築され、そして発行され、それから予測が応答的に返される。こうした欠落した値の１つを例にとると、値として信頼度指標が返されることができ、あるいはさらなる分析を可能にする分布が返されることができる。例えば、特定の欠落したセルについて、このセルが予測された真｜偽値について問い合わせるのに使用されることを例にとる。このクエリは、例示的な１００の予測の結果を返し得る。おそらく、予測のうち７５は真を返し、予測のうち２５は偽を返す。ゆえに、予測されている値は真である７５％の確かさを有すると言うことができる。それから、この７５％の確かさは、値を表示するか否かを決定するように、閾値に対して比較されることができる。しかしながら、上記の基本的な例の他に、確かさ又は信頼度指標を計算する多くの他の方法がある。より複雑な例において、例えば、真｜偽値についての予測の結果が、予測結果が５０の真及び５０の偽として戻って来るような、５０‐５０であった。こうした場合、この結果は、真である５０％の確かさと偽である５０％の確かさとであるが、中道的な５０‐５０の結果は、最大限に不確かでもある。換言すると、この５０‐５０の結果は、あり得る最も確かでない結果であり、ゆえに最大の不確かさに対応する。
【０４１９】
予測は、単純に真｜偽に限られない。例えば、赤、緑及び青の３つの色の可能性を有する閉集合があるＲＧＢフィールドについてのヌル値を例にとる。ここで、予測は、前述と同様に、１００の例示的な推量又は予測を返し得るが、ここでは赤、緑又は青のうちの１つとして色値を予測することを試行する。こうして、この結果は、結果のうち赤としての小さいパーセンテージと、緑としてのより大きいパーセンテージと、青としてのいくらかの中間のパーセンテージとを有し得る。したがって、こうした結果において、未知のセルについての予測された値は、確かさがすべての推量から緑を返した試行された予測の比例であるように、緑として返され得る。ゆえに、ＲＧＢ値を決定するために１００の試行が行われ、そのうち４３が緑を戻して来た場合、緑である確かさが４３％であると決定することができる。再びになるが、返される分布についての多くの他の例及び解釈が実現可能である。特定の状況において、分析エンジンは、結果における信頼度又は確かさを表す値又はスコアを単に返し、別の状況において、予測された値をレンダリングするために行われる多くの試行を表す分布が返される。
【０４２０】
別の実施形態によれば、方法１７２１はさらに、スプレッドシート又はテーブル内で表形式データセットを出力としてユーザに表示するグラフィカルユーザインターフェース（ＧＵＩ）においてユーザ制御可能な最小信頼度閾値を表示することと、ＧＵＩについての最大フィルパーセンテージを表示することと、を含み、最大フィルパーセンテージは、すべてのヌル値及びすべての既知の値の総計のパーセンテージとして、ユーザ制御可能な最小信頼度閾値を超える信頼度指標を有する予測された値を返すすべての既知の値及びすべてのヌル値の総計に対応する。
【０４２１】
別の実施形態によれば、方法１７２１はさらに、予測される値についてインデックスに問い合わせることに応答して、表形式データセット内の複数のヌル値の１つごとについての信頼度指標を受信することを含み、予測された値を更新された出力としてユーザに表示することは、存在するときにデフォルトの最小信頼度閾値又はユーザ指定された最小信頼度閾値を超える信頼度品質に対応する予測された値のうち選択されたものを表示することを含む。
【０４２２】
一実施形態によれば、クエリはあらゆる未知の値について発行され、これに応答して、予測された値が返され、それから、その対応する信頼度指標に従ってランク付けられ又は順序付けられる。スライダが、ユーザ入力につき１００パーセントのフィルにあるとき、その表示は、予測された値についての信頼度にかかわらず、既知の値又は予測された値のいずれかですべてのセルを示すように更新される。反対に、ユーザの最小閾値入力フィールドが１００％に設定される場合、既知の値だけが表示されることになる。それから、確かさの閾値を７５％に落とすことで、すべての既知の値（生来１００％確かである）と少なくとも７５％の確かさ指標を有するいずれかの予測された値とを有する表示出力をレンダリングすることになるなどする。こうして、ユーザは、コントロールを直感的に操作してデータを探索し、データと相互作用することができる。
【０４２３】
別の実施形態によれば、方法１７２１はさらに、予測される値についてインデックスに問い合わせることに応答して、表形式データセット内の複数のヌル値の１つごとについての分布を受信することと、受信された各分布について、信頼可能区間を算出することと、を含み、予測された値を更新された出力としてユーザに表示することは、最小閾値を超える算出された信頼可能区間に対応する予測された値のうち選択されたものを表示することを含む。
【０４２４】
信頼可能区間（又は、ベイズ信頼区間）は、区間推定に使用される事後確率分布のドメインの中の区間である。多変量問題に対する一般化は、信頼可能な領域である。例えば、パラメータｔの不確かさ分布を決定する試みにおいて、ｔが３５と４５との間に存在する確率が０．９５である場合、３５＜＝ｔ＜＝４５は９５％の信頼可能区間である。
【０４２５】
方法１７２１の別の実施形態によれば、表形式データセットを表示することはさらに、スプレッドシートのセル内に第１のテキストタイプとして既知の値を表示することと、未知の値の１つごとに対応する予測された値についてインデックスに問い合わせることと、を含み、予測された値を更新された出力としてユーザに表示することは、スプレッドシートのセル内に第２のテキストタイプとして予測された値を表示することを含み、第２のテキストタイプは、表示される予測された値についての信頼度指標に比例して、表示の不透明度を有する。
【０４２６】
方法１７２１の別の実施形態によれば、表形式データセットを出力としてユーザに表示することは、スプレッドシートのセル内で黒いテキストとして既知の値を表示することを含み、予測された値を更新された出力としてユーザに表示することは、より高い信頼度指標を有する予測された値が、より低い信頼度指標を有する予測された値より暗いグレースケールにおいて表示されるように、グレースケールテキストとして予測された値を表示することを含む。
【０４２７】
例えば、スライダを使用することに代わって、すべての値が表示出力としてユーザに提供されてもよい。例えば、既知の値がピュアブラックのテキストにおいて描かれてもよく、それから、予測された値を、その強度又は不透明度がその確かさに比例するようにグレースケールテキストとして表示することによって、予測された値が区別されてもよい。こうして、高い信頼度を有する予測された値は、完全に黒ではないダークグレイのテキストにおいて表示することができ、反対に、低い信頼度を有する予測された値は、明るいグレーのテキストにおいてではあるが、依然として表示することができる。
【０４２８】
別の実施形態によれば、方法１７２１はさらに、列ごとにユーザに出力として表示された表形式データセットのあらゆる列についての予測困難度スコアを表示することを含み、予測困難度スコアは、表形式データセットの各列について、（ｉ）列内のすべての未知の値を識別することと、（ｉｉ）列内で識別された未知の値の各々に対応する予測された値についてインデックスに問い合わせることと、（ｉｉｉ）列内で識別された未知の値の各々についての信頼度指標を受信することと、（ｉｖ）列内で識別された未知の値について受信された信頼度指標に基づいて、この列についての予測困難度スコアを算出することと、によって算出される。
【０４２９】
方法１７２１の別の実施形態によれば、上記方法はさらに、列ごとにユーザに出力として表示された表形式データセットのあらゆる列についての最大フィルパーセンテージを表示することを含み、最大フィルパーセンテージは、最小信頼度品質閾値を超える信頼度指標を有するそれぞれの列内で識別される未知の値の数量に基づく。
【０４３０】
例えば、元の表形式データセットの中の各列を例にとると、特定の列のうちどれほどが、最小信頼度閾値に従うと同時に、予測された値、又は既知の値と予測された値との組み合わせを用いて投入され得るかに関して、ユーザに対して指し示しがあることになる。ゆえに、特定の列について１００％のフィルを達成するために、最小信頼度を大幅に低下させる必要があり得る。確かさが減らされるとき、各列のうちより多くが、未知の値を予測された値で置換することによって埋められることができる。ある列はより容易に予測されそうであり、ゆえに所与の確かさについて１００％のフィルに達する可能性がある一方で、同じ確かさにおける別の列は部分的に埋められないままになる。このことにかかわらず、ユーザに対するこうした表示は、予測されたデータ値をレンダリングさせる確率手法の深い技術的理解なしに、最小の学習曲線で、ユーザによるデータの単純な及び直感的な探索を可能にする。
【０４３１】
一実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、入力としてユーザから表形式データセットを受信することであって、上記表形式データセットは、列及び行として編成されたデータ値を有する、ことと、表形式データセット内の複数のヌル値を識別することであって、上記ヌル値は、表形式データセットの複数の行と複数の列とにわたって散在している、ことと、列及び行の表形式データセットからインデックスを生成することであって、上記インデックスは、表形式データセットの行と列とにおける確率的関係を表す、ことと、表形式データセットを出力としてユーザに表示することであって、この表示される出力は、既知の値として描かれるデータ値と未知の値として描かれるヌル値とを含む、ことと、上記の表示された表形式データセット内の未知の値のうち少なくとも一部分に予測された値を投入するための入力をユーザから受信することと、予測された値についてインデックスに問い合わせることと、予測された値を更新された出力としてユーザに表示することと、を含むオペレーションをホスト組織に実行させる。
【０４３２】
図１８は、表形式データセットの分析から生成されるインデックス内の特徴移動１８０１及びエンティティ移動１８０２を描いている。左側に、特徴移動１８０１が３つのビューにおいて描かれており、要素１８１０におけるビュー１と要素１８１１におけるビュー２と要素１８１２におけるビュー３とが図示されている。描かれるとおり、特徴１８０５（例えば、列、特性など）は、特徴１８０５を要素１８１１におけるビュー２から要素１８１０におけるビュー１に移動させるための左を指す矢印を介して行われるとおり、別の既存１８２０ビューに移動させることができ、あるいは代わって、特徴１８０５は、特徴１８０５を要素１８１３における新しいビュー４に移動させるための右向き矢印により描かれるとおり特徴１８０５に起こっているとおり、新しいビュー１８２１に移動させることができる。
【０４３３】
右側には、エンティティ移動１８０２が２つのカテゴリにおいて描かれており、要素１８２５におけるカテゴリ１と要素１８２６におけるカテゴリ２とが図示されている。描かれるとおり、エンティティ１８０６（例えば、行など）は、エンティティ１８０６を要素１８２５におけるカテゴリ１から要素１８２６におけるカテゴリ２に移動させる下を指す矢印により描かれるとおり、別の既存１８２３カテゴリに移動させることができ、あるいは代わって、エンティティ１８０６は、エンティティ１８０６を要素１８２７における新しいカテゴリ３に移動させるためのより長い下向き矢印により描かれるとおりエンティティ１８０６に起こっているとおり、新しいカテゴリ１８２４に移動させることができる。
【０４３４】
図１９Ａは、履歴日付を用いて問い合わせる特化されたＧＵＩ１９０１を描いている。ここに描かれる特化されたＧＵＩ１９０１実装は、ユーザが、マルチテナントデータベースシステムにおいて履歴値対現在値を比較することによって履歴値においてフィルタをかけることを可能にする。履歴データについてフィルタをかけることは、ＧＵＩの「閉め日付（履歴）」（Close  date（Historical））ドロップダウンボックス又は類似の手段（例えば、カレンダセレクタなど）を介して可能にされ、ＧＵＩ１９０１は、履歴フィールドに関連する現在のフィールドを表示する。
【０４３５】
ＧＵＩ１９０１は、ユーザがマルチテナントデータベースシステムにおいて履歴値対定値を比較することによって履歴データにフィルタをかけることを可能にする。ＧＵＩ１９０１は、ＡＰＩコールがどのように構築されるか、あるいはどのコマンドターム又はパラメータが適切な出力を生み出すために指定される必要があるかさえ理解することをＧＵＩのユーザに求めることなく、ユーザのために適切なＡＰＩコールを構築し及び発行することによって分析エンジンの予測能力を利用する。こうして、ＧＵＩ１９０１は、険しい学習曲線なしに、高度に直感的なインターフェースをユーザに提供する。
【０４３６】
ＧＵＩ１９０１は、必要なクエリ又はＡＰＩコールを実行し、それからデータを消費する。上記データは、図１に示されたクライアント装置１０６Ａ‐Ｃなどの、ＧＵＩ１９０１の表示インターフェースを介してエンドユーザに戻されて提示される。例えば、販売員が特定のデータセットの中の販売情報を見ている例を考える。ＧＵＩ１９０１インターフェースは、分析エンジンにより提供される分布を取り、様々なカスタマイズされたソリューションとユースケースとに従って情報をランク付ける視覚的な指し示しを創作することができる。
【０４３７】
例えば、ＳａｌｅｓＣｌｏｕｄは、１３５，０００人の企業顧客により現在使用されている業界主導的ＣＲＭアプリケーションである。こうした顧客は、Ｃｌｏｕｄに自身のデータを記憶することの価値を理解し、ウェブベースのＧＵＩ１９０１インターフェースを十分理解して、自身のデータを閲覧し、自身のデータに基づいて行動する。こうした顧客は、クラウドベースのサービスにより提供されるレポート及びダッシュボードメカニズムを頻繁に利用する。上記の様々なＧＵＩをタブ型の機能性として提示することは、販売員及び他のエンドユーザが自身の下層のデータセットを様々な方法で探索して、自身のビジネスがどのように機能しているかをリアルタイムで学習することを可能にする。こうしたユーザはさらに、パートナーに依存して、本明細書に記載されるＡＰＩ及びインターフェースを使用するさらなるＧＵＩを通して、提供されるクラウドベースのサービス能力を拡張することもできる。
【０４３８】
過去から学習し、データ駆動型の洞察を描き出す機会を顧客に提供するクラウドベースのサービスは、こうした機能性が、上記顧客がそのビジネスの将来に関するインテリジェントな判断を自身の既存のデータセットに基づいてするのを助け得るため、非常に望ましい。ＧＵＩ１９０１は、そのようなインターフェースを提供する。
【０４３９】
カスタマイズされたＧＵＩは、分析エンジンの予測機能性を利用して、ＧＵＩの構成及び動作とＧＵＩが分析エンジンの機能性に対してＡＰＩコールを実行する方法とを改造するために顧客組織に対して公開されるプログラム的パラメータ及び設定を介して特定の顧客組織のニーズに適合され、あるいは顧客組織ごとに変わり得る予測結果に依存するレポートを実施する。
【０４４０】
例えば、ＧＵＩ１９０１は、所与の機会について、この機会の勝ち又は負けとして閉まる尤度を反映する確率に基づいて機会スコアを計算し及び割り当てるように提供されることができる。このスコアを計算するためのデータセットは、１、２若しくは３年又は組織の存続期間などの所与の期間の中で閉められた（勝ち／負けいずれか）すべての機会を含む。上記の継続時間は、その範囲が過去に入るとしても、日付範囲を指定するＧＵＩ１９０１の日付範囲制御を用いて構成することができる。
【０４４１】
顧客組織のデータセットからのさらなるデータ要素、例えば入力としてアカウントテーブルなどが、さらに利用されてもよい。それから、分析エンジンのコアを介して実施される機械学習手法、例えば、ＳＶＮ、回帰（Regression）、決定木、ＰＧＭ等が、適切なモデルを築いて機会スコアをレンダリングするのに使用され、ＧＵＩ１９０１は、インターフェースを介してエンドユーザに対して情報を描く。
【０４４２】
図１９Ｂは、履歴日付を用いて問い合わせる特化されたＧＵＩ１９０２のさらなるビューを描いている。ここに描かれる特化されたＧＵＩ１９０２実装は、ユーザが、履歴トレンドデータを用いて機会の閉まる尤度を決定することを可能にする。例えば、ＧＵＩ１９０２は、ユーザが、相対日付又は絶対日付を選び出す「履歴」（history）セレクタを用いて予測クエリを容易に構成することを許可する。
【０４４３】
このＧＵＩ１９０２において、ユーザは、機会がある時間にわたりどのように変わったかを、段階から独立して等で見ることを可能にされる。ユーザはさらに、機会が作り出されたときから閉められたときまで、この機会がどのように熟したかを見ることができる。例えば、ＧＵＩ１９０２は、データ構成制御を用いて２０１３年１月１日から２０１３年３月１日までの履歴データを設定しており、下部におけるテーブルは、機会の金額が＄１０，０００だけ減っているがその段階は「見込み（prospecting）」フェーズだったことと今もなお見込みフェーズであることとを描いている。
【０４４４】
ＧＵＩ１９０２はさらに、ユーザが、履歴トレンドデータを用いて所与の段階における機会の閉まる尤度を決定することを可能にする。上記のＧＵＩ１９０１は、販売機会の段階から独立して動作するところ、ＧＵＩ１９０２は、閉鎖のさらなる限定的な条件として、所与の段階において閉まる確率に焦点を合わせている。こうして、顧客は、履歴トレンドデータを使用して段階がいつ変わったかを正確に知り、それからさらにどのファクタが段階１から２へ、段階２から３へ等移るのに関与したかを予測することを可能にされる。
【０４４５】
ＧＵＩはさらに、ユーザが、インターフェースにおいて提供され又はユーザにより指定されるさらなるソーシャル及びマーケティングデータに基づいて、閉めるべき機会を予測することを許可する。例えば、顧客組織、又はシステムを利用する誰でものデータセットは、上記のソーシャル及びマーケティングデータを組み込みことによって、下層のデータセットを超えてエンドユーザのために拡張することができ、上記のデータは、分析エンジンにより利用されてさらに予測モデルに影響を与え、予測モデルを教育する。例えば、特定の実施形態は、“ｄａｔａ．ｃｏｍ”などの例示的なウェブサイトから情報を引き出し、それから、そのデータは、さらなる関係、因果関係及び隠れた構造を発見することが実現可能な分析エンジンによって元のデータセットの中の各機会に関連付けられ、それから、上記の関係、因果関係及び隠れた構造は、エンドユーザに提示されることができる。他のデータソースが同等に実現可能であり、例えば、ソーシャルネットワーキングサイト、検索エンジン、データ集約サービス提供者等からデータを引き出すことなどである。
【０４４６】
一実施形態において、所与の製品が社会的コンテキストにおいて他者にどのように見なされているかを描くように、ソーシャルデータが取り出され、感想がＧＵＩを介してエンドユーザに提供される。こうして、販売員は、顧客のＬｉｎｋｅｄＩｎ（登録商標）をプロファイルにおいて見ることができ、ｄａｔａ．ｃｏｍ又は他のソースからの情報を用いて、販売員はさらに、自身が実際に売ろうと試みている相手の人について、社会的コンテキストの観点で感想分析を与えられることができる。例えば、上記のデータは、ターゲット購入者が他の製品についてコメントしているか、あるいはおそらく他の製品について苦情を言っているかなどを明らかにし得る。上記のデータ点他の各々は、分析エンジンにより採用されるモデルに影響を与えて、レンダリングされる予測をさらに向上させるのに役立ち得る。
【０４４７】
別の実施形態において、機会が閉まる尤度を決定することは、初期指定されたデータセットに対して外部のソースから取り出される業界固有データにさらに基づく。例えば、感想分析の社会的コンテキストのために社会的に関連するデータを用いるのではなく、業界固有データが取り出され、予測データベースに入力されることができる。この予測データベースにおいて、分析エンジンはそのモデリングを上記に記載されたとおり実行し、それから、この予測データベースから、今や業界固有データを中に統合させたデータセットについて、さらなる探索をユーザが行うことができる。
【０４４８】
他の実施形態によれば、データセットは、マルチテナントデータベースシステム内にデータを有する任意の特定の顧客組織の境界を超えて探索される。例えば、特定の実施形態において、マルチテナントデータベースシステム内に記憶された組織横断的（cross-organizational）データを用いた業界固有の学習に基づいて、ベンチマーク予測スコアが生成される。例えば、実行するための承認又はライセンスを前提として、データマイニングが電気通信固有顧客データセットに対して実行されてもよい。それから、より大きいマルチテナントデータセットをレンダリングするためのこうした組織横断データは、分析エンジンのモデルを介して分析され、単一の顧客組織のデータセット内に存在し得ない洞察、関係、因果関係及びさらなる隠れた構造を提供することができる。例えば、顧客が、ＮＹ‐ＮＪ‐バージニアの３都市エリアにおける＄１００ｋ案件を閉めようと試みている場合、この案件が３か月後に閉まる確率は、上記の分析に従い、５０％であり得る。なぜならば、過去の取引が、複数の顧客組織のデータセットのコンテキストにおいて閲覧されるとき、ＮＹ‐ＮＪ‐バージニアの３都市エリアにおける＄１００ｋの電気通信案件を閉めるのに最大６か月かかることを示しているからである。こうしたプロセスを通して実現される洞察の多くは非直感的であるが、本明細書に記載される手法の適用を通して実現することができ得る。
【０４４９】
所与のデータセット内に存在する業界固有データにおいて、データをよりいっそう深く探究し、複数の種々の業界にわたって様々な可変のドメインについてこうしたデータを用いてベンチマークを識別することが可能である。例えば、上記のデータに基づいて、予測分析は、所与の領域において中西部で砂糖を売るのに６か月かかり、東海岸でラップトップを売るのに３か月かかることなどを概説することができる。
【０４５０】
それから、新しい機会が生じ、ベンダが例えばカリフォルニアで腕時計を売ろうと試みている場合、ベンダは、上記の情報を利用して、与えられる信頼度レベル及び予測に基づいて、特定の領域のマーケットについてのより良い理解を得ることができる。
【０４５１】
図１９Ｃは、予測クエリを構成する特化されたＧＵＩ１９０３の別のビューを描いている。分析エンジンの予測機能性はさらに、垂直のセクタとその領域とについての情報を明らかにすることができる。顧客組織のデータセットをマイニングする（mining）と、顧客がアイテム“ａ”を買った場合にさらにアイテム“ｂ”を買ったという関係が発見され得る。この種のマッチング関係は有用であるが、さらに強化することができる。例えば、分析エンジンの予測分析を用いて、特定の機会スコアにつながったファクタの集合を識別することがさらに可能である。
【０４５２】
ここで描かれるとおり、ＧＵＩ１９０３は、ユーザインターフェースにおいて４２％の機会を提示しているが、ユーザが機会スコアの上にカーソルを置くとき（例えば、マウスオーバーイベント等）、ＧＵＩ１９０３は、この機会スコアを作り上げるさらなる要素を有する下位詳細（sub-detail）を表示する。ＧＵＩ１９０３は、関連すると考えられる下位詳細関係及び因果関係を含む機会スコア及び関連する表示情報をユーザに対して引き出すように、適切な予測コマンドタームがインデックスに対して選択され及び実行されるような、ユーザのために必要なＡＰＩコールを再び構築し、発行する。
【０４５３】
ＧＵＩ１９０３はさらに、機会についてのヒストグラムを作成するためにＧＵＩ１９０３により必要とされる生データを返すように、ＧＵＩ１９０３においてユーザにより指定されるとおり所与の機会について適切な機能をトリガすることによって、ＰＲＥＤＩＣＴ及びＡＮＡＬＹＺＥコマンドタームを活用する。こうして、ユーザには、スコアを与えることができるだけでなく、さらに、提供された情報を前提として適切な行動のきっかけをユーザが決定するのを支援するために、情報をどのように解釈すべきかについての関連するファクタ及び案内を与えることができる。
【０４５４】
さらに、販売員などのエンドユーザがデータを調べ、これに基づいて行動するとき、さらなるデータが予測データベースに入力されるフィードバックループが作成され、この予測データベースにおいて、さらなる予測及び分析が適応的な方法で実行される。例えば、分析エンジンが、例示的なユーザ又は販売員に関連付けられたデータセットについてさらに学習するとき、下層のモデルは、フィードバックループを介して得られる新しいデータを用いてデータを再校正するようにデータセットの分析を再実行することによって、循環ベースでリフレッシュされることができる。上記の新しいデータは、販売機会が販売で閉まったか負けで閉まったかを説明し、モデルにより良く情報を与えるのに役立つ最終的な金額、タイミング、関与したリソースなどを識別し、そして将来、他のクエリについて、より良い予測をレンダリングすることができる。
【０４５５】
図１９Ｄは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織１９０５Ａ、１９０５Ｂ及び１９０５Ｃが描かれており、各々がユーザのクライアント装置及びディスプレイ１９０６Ａ、１９０６Ｂ及び１９０６Ｃを備え、ユーザのクライアント装置及びディスプレイ１９０６Ａ、１９０６Ｂ及び１９０６Ｃは、入力、クエリ及び要求を送ること並びに表示のための出力を含む応答を応答的に受信することを含め、ネットワーク１９２５を介してホスト組織１９１０とインターフェースをとる能力がある。ホスト組織１９１０内に要求インターフェース１９７６があり、要求インターフェース１９７６は場合によりウェブサーバ１９７５によって実施されてもよい。ホスト組織は、プロセッサ１９８１、メモリ１９８２、クエリインターフェース１９８０、分析エンジン１９８５、及びマルチテナントデータベースシステム１９３０をさらに含む。マルチテナントデータベースシステム１９３０内に実行ハードウェア、ソフトウェア及びロジック１９２０があり、実行ハードウェア、ソフトウェア及びロジック１９２０は、マルチテナントデータベースシステム１９３０の複数のテナントと認証器１９９８と予測データベース１９５０とにわたって共有され、予測データベース１９５０は、予測データベース１９５０に対して実行されるクエリに応答して予測レコードセットを返すことを容易にするように、分析エンジン１９８５により生成されたインデックスを記憶する能力がある。
【０４５６】
一実施形態によれば、ホスト組織１９１０は、少なくとも１つのプロセッサ１９８１とメモリ１９８２とを有するシステム１９１１を稼働させる。システム１９１１は、ユーザ装置１９０６Ａ‐Ｃから、顧客組織１９０５Ａ‐Ｃについての販売データのデータセット１９５３を指定する入力を受信する要求インターフェース１９７６であって、上記販売データは複数の販売機会を指定する、要求インターフェース１９７６と、データセット１９５３の行及び列からインデックス１９５４を生成する分析エンジン１９８５であって、上記インデックスは、データセット１９５３の行と列とにおける確率的関係を表す、分析エンジン１９８５と、インデックス１９５４を記憶する予測データベース１９５０と、販売データ内で指定される複数の販売機会のうち１又は複数を選択する分析エンジン１９８５と、選択された１又は複数の販売機会の各々について、勝ち又は負け（勝ち負け）予測結果１９５８についてインデックス１９５４に問い合わせる（１９５７）クエリインターフェース１９８０と、を含み、クエリインターフェース１９７６は、ユーザ装置１９０６Ａ‐Ｃに対して表示出力１９５５として、選択された１又は複数の販売機会の各々についての勝ち負け予測結果１９５８をさらに返す。
【０４５７】
要求インターフェース１９７６はさらに、ユーザ装置１９０６Ａ‐Ｃから、表示された１若しくは複数の販売機会又はその対応する勝ち負け予測結果１９５８のうち１つを示すユーザイベント入力１９５６を受信することができ、これに応答して、ユーザインターフェースはさらなるドリルダウン下位詳細を提供することができる。例えば、タッチスクリーンのユーザが、表示された機会のうち１つに触れ、あるいは表示された機会のうち１つをクリックする場合、ユーザインターフェースはこうした入力を要求インターフェース１９７６に伝え、指定された販売機会についてのさらなる詳細、例えば関連する特性等で更新された表示出力１９５９をホスト組織に提供させることができる。
【０４５８】
別の実施形態によれば、システム１９１１はさらに、分析エンジンにより生成されたインデックスを記憶する予測データベース１９５０を含む。こうした実施形態において、予測データベース１９５０は、１又は複数の加入者のためにホスト組織１９１０においてオンデマンドのクラウドベースのサービスとして実行される。
【０４５９】
別の実施形態において、システム１９１１はさらに、ユーザ（例えば、ユーザのクライアント装置及びディスプレイ１９０６Ａ‐Ｃの１つにおけるユーザ）を既知の加入者として検証する認証器１９９８を含む。認証器１９９８はさらに、既知の加入者により提示される認証クレデンシャルを検証するように動作する。
【０４６０】
別の実施形態において、システム１９１１はさらに、要求インターフェースを実施するウェブサーバ１９７５であって、入力として、ネットワークを介してホスト組織と通信可能にインターフェースをとる複数の顧客組織の中の１又は複数のクライアント装置から複数のアクセス要求を受信する、ウェブサーバ１９７５と、予測データベースを実施するように予測データベース機能性を備えたマルチテナントデータベースシステムと、を含み、各顧客組織は、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択されたエンティティである。
【０４６１】
図１９Ｅは、開示される実施形態に従う一方法を示すフロー図である。方法１９２１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり予測クエリインターフェースを用いてスコア付けされた機会をレンダリングするシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図１９Ｄのシステム１９１１は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０４６２】
ブロック１９９１において、処理ロジックは、ユーザ装置から、顧客組織についての販売データのデータセットを指定する入力を受信する。上記販売データは、複数の販売機会を指定する。
【０４６３】
ブロック１９９２において、処理ロジックは、データセットの行及び列からインデックスを生成する。上記インデックスは、データセットの行と列とにおける確率的関係を表す。
【０４６４】
ブロック１９９３において、処理ロジックは、ホスト組織内の問い合わせ可能データベースにインデックスを記憶する。
【０４６５】
ブロック１９９４において、処理ロジックは、販売データ内で指定された複数の販売機会のうち１又は複数を選択する。
【０４６６】
ブロック１９９５において、処理ロジックは、選択された１又は複数の販売機会の各々についての勝ち負け予測結果についてインデックスに問い合わせる。
【０４６７】
ブロック１９９６において、処理ロジックは、選択された１又は複数の販売機会の各々についての勝ち負け予測結果をユーザ装置に出力として表示する。
【０４６８】
ユーザインターフェース（ＵＩ）又はグラフィカルユーザインターフェース（ＧＵＩ）は、予測インターフェースから返される予測結果及びデータを消費して、スコア付けされた販売機会、予測の品質、どのファクタ又は特性が販売機会に確率的に関連しているか、表示される他のメトリクスなどの他のデータと共に、予測結果を非常に直感的な方法でユーザに表示する。
【０４６９】
方法１９２１の別の実施形態によれば、選択された１又は複数の販売機会の各々についての勝ち負け予測結果についてインデックスに問い合わせることは、選択された１又は複数の販売機会の各々について、ＰＲＥＤＩＣＴコマンドタームを指定する予測問い合わせ言語（ＰｒｅＱＬ）クエリを生成することと、生成されたＰｒｅＱＬクエリの各々を予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）に対して発行することと、発行されたＰｒｅＱＬクエリに応答して、選択された１又は複数の販売機会の各々についての勝ち負け予測結果を受信することと、を含む。
【０４７０】
方法１９２１の別の実施形態によれば、販売データのデータセットは閉められた販売機会を含み、この閉められた販売機会について、勝ち負け結果は既知であり、各々の閉められた販売機会についての販売データのデータセット内に記録されている。販売データのデータセットは開いている販売機会をさらに含み、この開いている販売機会について、勝ち負け結果は未知であり、各々の開いている販売機会についての販売データのデータセット内のヌル値に対応する。複数の選択された販売機会のうちの各々は、開いている販売機会から選択される。
【０４７１】
方法１９２１の別の実施形態によれば、選択された１又は複数の販売機会の各々についての勝ち負け予測結果についてインデックスに問い合わせることは、選択された販売機会を指定するクエリを構築することであって、該クエリはＰＲＥＤＩＣＴコマンドタームを指定し、少なくとも選択された販売機会に対応する行と勝ち負け結果に対応する列とを含むＰＲＥＤＩＣＴコマンドタームのためのオペランドを含む、ことと、構築されたクエリを発行することに応答して、選択された販売機会に対応する行についての勝ち負け予測結果を受信することと、を含む。
【０４７２】
別の実施形態によれば、方法１９２１はさらに、選択された１又は複数の販売機会の各々についての予測された販売高についてインデックスに問い合わせることと、出力としてユーザ装置に対して、選択された１又は複数の販売機会の各々についての勝ち負け予測結果と共に、予測された販売高を表示することと、を含む。
【０４７３】
方法１９２１の別の実施形態によれば、予測された販売高についてインデックスに問い合わせることは、選択された販売機会の各々についてのクエリを構築することであって、各クエリはＰＲＥＤＩＣＴコマンドタームを指定し、少なくとも選択された販売機会に対応する行と販売高に対応する列とを含むＰＲＥＤＩＣＴコマンドタームのためのオペランドを含む、ことと、構築されたクエリを発行することに応答して、選択された販売機会に対応する行についての予測された販売高結果を受信することと、を含む。
【０４７４】
予測クエリインターフェースに問い合わせることは、探し求められている予測結果（例えば、勝ち負け予測、予測された閉め高、予測された閉め日付等）を返すが、さらに関連するのが、この予測の品質、すなわち、レンダリングされる予測が実現する確率又は尤度である。予測クエリインターフェースは、発行されるクエリの構造及び構成に依存して、分布、区間又は他の値を返すことができる。例えば、ゼロと百との間の値を示し、予測の品質を評価するための定量的メトリックを提供する信頼度品質指標が返されてもよい。
【０４７５】
既存の販売機会についての予測された勝ち負け結果を、レンダリングされる予測についての品質の尺度と共に提供することは、どの販売機会をターゲットにすべきかを査定しなければならない販売員にとって役に立つ。当然ながら、販売員は、成功をよりもたらしそうである機会に時間とリソースを費やすように奨励される。ゆえに、上記出力は、どの販売機会が閉まりそうであるか、したがって、販売ノルマをこなし自身のコミッションを最大化する努力においてどれがうまくいく可能性があるかを販売員が査定するのを支援し得る。
【０４７６】
別の実施形態によれば、方法１９２１はさらに、勝ち負け予測結果の各々についての信頼度指標を受信することと、選択された１又は複数の販売機会について勝ち負け予測結果が表示される状態で、ユーザ装置に対する出力において信頼度指標を表示することと、を含む。
【０４７７】
別の実施形態によれば、方法１９２１はさらに、問い合わせることに応答して、勝ち負け予測結果と共に、選択された１又は複数の販売機会の各々についての信頼度指標を受信することと、選択された１又は複数の販売機会の各々についての勝ち負け予測結果を表示すると同時に、受信された信頼度指標を出力としてユーザ装置に表示することと、を含む。
【０４７８】
特定の実施形態が、ユーザディスプレイに返される販売機会について必要とされる最小信頼度品質を確立するように、ベンチマーク若しくは閾値、例えば７０％など、又は、いくつかの他のデフォルト若しくはユーザ構成された値を利用してもよい。こうした実施形態に第２の閾値が必要とされてもよく、その実施形態はユーザディスプレイに推奨をさらに表示する。
【０４７９】
方法１９２１の別の実施形態によれば、複数の販売機会のうち１又は複数を選択することは、閉鎖前の販売段階にあって未知の勝ち負け結果を有するすべての販売機会を選択することと、最小信頼度指標閾値を超える勝ち負け予測結果を有する複数の販売機会のうちの１又は複数を識別することと、を含み、勝ち負け予測結果をユーザ装置に出力として表示することは、識別された複数の販売機会のうちの１又は複数を、最小信頼度指標閾値を超える勝ち負け予測結果を有するものとして表示することを含む。
【０４８０】
任意の所与の販売機会について、複数の販売段階があり得、販売機会は、開いている状態か閉められた段階かにあり得る（例えば、開いている状態は、閉鎖前の状態、又は機会が閉まる前の任意の段階であり得る）。販売機会は、特に大口顧客と売買し大口販売取引を扱う販売チームについて、複数の中間段階のうちのいずれかにあり得る。こうした段階は、販売ライフサイクルを作り上げる。例えば、所与の顧客について正しい製品は何かを決定するよう販売員が働く発見段階、価格設定が決定され割引が交渉される価格設定又は見積もり段階、などがあり得る。
【０４８１】
大口取引について、販売ライフサイクルは、販売機会の大きさ及び複雑さに大きく依存して、３か月、６か月、時に９か月続く可能性がある。非常に複雑な取引は何年にも及ぶ可能性があり、例えば、顧客が飛行機エンジンについてなどの数十億ドルのコミットメントを考えている場合などである。より小さいより複雑でない取引、例えばデータベースソフトウェアについての契約などは、より迅速に動き得る。
【０４８２】
別の実施形態によれば、方法１９２１はさらに、推奨を出力としてユーザ装置に表示することを含み、上記推奨は、閉鎖前の販売段階における複数の販売機会のうち少なくとも１つを指定する。上記推奨は出力のために、（ｉ）閉鎖前の販売段階における複数の販売機会のうち少なくとも１つを、販売データのデータセットにより指定されるとおりの販売機会名によって指定する。上記推奨はさらに出力のために、（ｉｉ）販売勝ちを示す勝ち負け予測結果と、（ｉｉｉ）販売勝ちを示す勝ち負け予測結果についての信頼度指標と、（ｉｖ）予測された販売高と、（ｖ）予測された販売機会閉め日付と、のうち１又は複数を指定する。
【０４８３】
閉め日付が予測され、出力として提供されてもよく、この出力は、販売予想という目的に非常に関連し得る。例えば、販売員がマネジメントに対して売買は会計Ｑ１に閉めることにすると宣言しているが、予測が会計Ｑ３の高い信頼度の販売閉め日付を返す場合、販売予想を調整するか、あるいは所与の販売機会についての戦略を変更する（例えば、緊急度を高める、価格設定条項を向上させる、割引する、等）ことのいずれかが適切であり得る。
【０４８４】
ユーザインターフェースがさらに手段を提供することにより、ユーザはデフォルト値を変更し、予測及びクエリが基づくことになる関連する履歴日付範囲を指定し、予測をするのに利用されるべきデータセットの範囲を指定することなどができる。
【０４８５】
例えば、上記で図１９Ａ、図１９Ｂ及び図１９Ｃにおいて説明されたものと同等のユーザ管理ページがレポーティング能力を提供し、この能力を通して、ユーザは、入力ソース（例えば、顧客組織のための販売データのデータセット）、制限、フィルタ、履歴データ、及び他の関連するデータソース、例えばソーシャルメディアデータ、更新された販売データ、などを指定することができる。
【０４８６】
方法１９２１の別の実施形態によれば、上記推奨は、（ｉ）乃至（ｉｖ）において指定される出力に割り当てられる重み付けに基づいて決定され、この重み付けは、デフォルトで割り当てられ、ユーザ装置において表示されるグラフィカルユーザインターフェース（ＧＵＩ）を介してカスタム構成可能である。
【０４８７】
方法１９２１の別の実施形態によれば、複数の販売機会のうち１又は複数を選択することは、閉められた販売段階にあって既知の勝ち負け結果を有する販売機会を選択することと、閉められた販売段階にあって既知の勝ち負け結果を有する選択された１又は複数の販売機会の各々についての勝ち負け予測結果についてインデックスに問い合わせることであって、勝ち負け予測結果は既知の勝ち負け結果を無視する、ことと、選択された複数の販売機会の各々についての予測精度を、勝ち負け予測結果に対して既知の勝ち負け結果を比較することによって決定することと、勝ち負け予測結果が表示される状態で、選択された複数の販売機会の各々についての決定された予測精度を出力としてユーザ装置に表示することと、を含む。
【０４８８】
別の実施形態によれば、方法１９２１はさらに、ユーザ装置に表示されるＧＵＩから日付範囲入力を受信することを含み、上記日付範囲入力は、勝ち負け予測結果が基づく履歴日付範囲を指定する。
【０４８９】
方法１９２１の別の実施形態によれば、ユーザ装置から、顧客組織についての販売データのデータセットを指定する入力を受信することは、列及び行を有する表としてデータセットを受信することと、データストリームとしてデータセットを受信することと、スプレッドシート文書を受信し、このスプレッドシート文書からデータセットを抽出することと、データベースにより作成されるバイナリファイルとしてデータセットを受信することと、データベースに対する１又は複数のクエリを受信し、この１又は複数のクエリをデータベースに対して実行することによりデータセットを応答的に受信し、上記１又は複数のクエリにより返されるレコードセットをデータセットとして捕捉することと、データベースの中のテーブルの名前を受信し、このテーブルをデータベースからデータセットとして取り出すことと、指定されたウェブサイトについての検索パラメータを受信し、指定されたウェブサイトに対してこの検索パラメータを応答的に問い合わせ、検索結果をデータセットとして捕捉することと、リモートのリポジトリについてのリンク及び認証クレデンシャルを受信し、リモートのリポジトリと応答的に認証し、リンクを介してデータセットを取り出すこととのうち、少なくとも１つを含む。
【０４９０】
別の実施形態によれば、方法１９２１はさらに、ユーザ装置において表示されるＧＵＩからエンティティ選択入力を受信することであって、このエンティティ選択入力は出力としてユーザ装置に表示される勝ち負け予測結果のうち１つを指定する、ことと、エンティティ選択入力に応答して、販売機会のうち１つについての下位詳細を更新された出力としてユーザ装置に表示することと、を含み、上記下位詳細は、表示される勝ち負け予測結果に確率的に関連する１又は複数の特徴を含む。
【０４９１】
方法１９２１の別の実施形態によれば、エンティティ選択入力は、表示された勝ち負け予測結果の１つに対応するマウスオーバーイベント、カーソルオーバーイベント、クリックイベント、タッチスクリーン選択イベント又はタッチスクリーン位置イベントのうち１つを含み、下位詳細を表示することは、当初表示された勝ち負け予測結果の上に位置づけられ、かつ該予測結果を少なくとも部分的にカバーするグラフィカルオーバーレイ内に、下位詳細を表示することを含む。
【０４９２】
別の実施形態によれば、方法１９２１はさらに、表示された勝ち負け予測結果に確率的に関連する１又は複数の特徴を取り出すようにクエリを構築することを含み、このクエリは、ＲＥＬＡＴＥＤコマンドタームと勝ち負け結果列に対応する列を指定するＲＥＬＡＴＥＤコマンドタームのための少なくとも１つのオペランドとを含む。
【０４９３】
例えば、ある販売機会スポンサーが販売の勝ち負けに確率的に関連することになると決定されることがある。ゆえに、ＵＩは追加的に、所与の販売機会についての成功の尤度を向上させるための努力において、満足した顧客、又は潜在顧客と話をすることができる上級管理職などの、利用可能なスポンサーを追跡する機能性を提供する。
【０４９４】
ユーザインターフェースはさらに、予測データベースに対するＳＩＭＩＬＡＲコマンドタームを構築し、発行して、最も販売員により査定されている特定の販売機会であるような販売機会を返し、表示する。こうしたデータは、成功裏の勝利をもたらした又はもたらさなかった他の類似の販売機会から販売員がさらなる洞察を描き出すのを助け得る。
【０４９５】
どのファクタが特定の販売機会に影響するかを理解することによって、販売員は、特定の販売機会についての成功裏の閉めの尤度を増加させるための努力において、こうしたファクタに影響を与えることに具体的に焦点を合わせることができる。例えば、顧客と会社のＣＥＯとの間の会話が特定タイプの取引において役立つと判明する場合、このことは、価値のあるリソース出費であり得る。反対に、所与のタイプの価格設定構造が特定の顧客タイプ、製品又は産業に好ましいことになる場合、このことは、所与の販売機会についての尤度を増加させるのに価値ある検討であり得る。上記のような特性の探索は、「仮定の」シナリオとして値を操作し、それから「仮定の」シナリオパラメータに基づいてユーザディスプレイに対する予測結果を更新することを含め、ユーザインターフェースを通して行うことができる。
【０４９６】
方法１９２１の別の実施形態によれば、下位詳細を表示することは、表示された勝ち負け予測結果に確率的に関連する１又は複数の特徴についての列名を表示することと、この列名と表示された下位詳細についての一販売機会に対応するエンティティ行とについての行及び列交差に対応するデータセットからデータ値を表示することと、を含む。
【０４９７】
ソーシャルメディアデータは、補助データの一タイプである。予測結果をさらに強化するように様々なデータソースが指定されてよく、例えば、連絡先、アカウント、アカウントフェーズ、アカウントタスク、アカウント連絡先人物、アカウントスポンサー又は紹介などが含まれる。
【０４９８】
ソーシャルメディアデータは、ｓａｌｅｓｆｏｒｃｅ.ｃｏｍにより提供されるＲａｄｉａｎ６  ａｎｄ  Ｂｕｄｄｙ  Ｍｅｄｉａを含むソースから利用可能である。こうしたソースは、Ｆａｃｅｂｏｏｋ（登録商標）、Ｔｗｉｔｔｅｒ（登録商標）、ＬｉｎｋｅｄＩｎなどのソーシャルメディアソースから拾い集められる集約され及び構造化されたデータを提供する。こうしたソースを用いて、「Ｊｏｈｎ  Ｄｏｅ」などの個人を特定の販売機会に関連付けて、ソーシャルネットワーキング空間内のＪｏｈｎ  Ｄｏｅに関連付けられているデータでインデックスを強化することが可能であり得る。例えばおそらく、Ｊｏｈｎ  Ｄｏｅは、競合他社製品又は販売員により申し出られた製品に関してツイートしている。あるいは、製品若しくは会社又はターゲットにされる販売機会に言及するニュースフィードがある可能性があり、あるいは、文脈的に関連する顧客レビューがある可能性がある、などである。こうしたデータ点は、ＵＩにおいて適切なソースを指定することにより統合することができ、このＵＩが今度は、インデックスを更新するように分析エンジンにさらなる分析を実行させることになり、上記のデータ点が確率的に関連する場合、その関係は予測結果に影響することになり、ユーザインターフェースを通して発見可能になる。
【０４９９】
特定の実施形態において、ベンチマーキング能力が提供され、例えば、製造業対ハイテク産業、地理的地域の中の顧客ごとに配置されるデータ、等に基づいてユーザが補足データソースを分析することを可能にする。こうしたデータは、通常、顧客組織により維持されないが、ユーザインターフェースを通してさらなる補足データとして調達され、指定されることができ、このさらなる補足データにおいて、分析エンジンのコアはインデックスを更新することができ、さらに、予測結果を向上させ、あるいはその他の方法では実現し得ない顧客組織のデータへのさらなる洞察を生み出すことができる。
【０５００】
一実施形態において、上記の補足データソースは、既存のクラウドベースの加入の一部として、あるいは追加料金の支払いにおいて、ユーザインターフェースを通して提供される。例えば、顧客は、自身が業界ベンチマーキングデータを統合することができるデータパッケージを購入して、顧客組織の特定販売機会についての分析を、潜在的な販売顧客のコレクションについて又は潜在的な垂直位（potential  verticals）のコレクションについてなどの集約されたベンチマーキングデータを考慮して実行することができる。いったんこのさらなるデータが指定され、分析され、そのインデックスが更新されると、ユーザは、提供されるＵＩを通して、このデータと予測結果に対する影響とを探索することができる。
【０５０１】
一実施形態において、履歴データが追跡され、ユーザにより分析、閲覧又はその他の方法で探索することができる履歴データの範囲が、加入条項に基づく。例えば、クラウドベースサービス加入者は、関連するユーザインターフェースをすべての顧客に対して無料で公開され、ただし分析することができるデータの範囲を例示的な３か月だけに限られることがあり、一方、支払っている加入者は、おそらく履歴分析の価値のある２年など、より深いより完全なデータセットを得る。特定の実施形態は、顧客により明示的に指定されるデータセットに対して動作し、一方、別の実施形態は、ホスト組織にすでに記憶されている顧客のデータについてのシステムの知識に基づいて、この顧客のために特定のデータセットをデフォルトにしてもよい。特に、従来のデータベースは、データベースの中に記憶されたデータの履歴ビューを追跡せず、公開しない。大抵のデータベースにおいて、変更ログ及びロールバックが可能にされるが、従来のデータベースは、クエリに対してこうしたデータを公開しない。なぜならば、こうした目的を意図されていないからである。反対に、本明細書に記載されるユーザインターフェースは、ユーザが履歴日付範囲を指定することを許可し、それからこの履歴日付範囲は、ユーザが、データがある時間にわたりどのように変わったかを探索し、あるいは過去日付の視点においてデータベースに問い合わせることを可能にし、クエリ結果が、現在存在するとおりのデータではなく過去日付におけるとおりのデータを返すことをもたらす。本明細書に記載される方法論は、データベース更新を十分にコミットすることができるように、さらに、履歴データを失うことなく変更及び監査ログをフラッシュする（flushed）ことができるように、別個のオブジェクトを使用する。
【０５０２】
別の実施形態によれば、方法１９２１はさらに、ユーザ装置から、ソーシャルメディアデータソースを指定するさらなる入力を受信することと、指定されたソーシャルメディアデータソースに基づいてインデックスを更新することと、選択された１又は複数の販売機会の各々についての更新された勝ち負け予測結果を、更新された勝ち負け予測結果に関連すると決定されたソーシャルメディアデータソースから導出された特性と共に、ユーザ装置に出力として表示することと、を含む。
【０５０３】
方法１９２１の別の実施形態によれば、ソーシャルメディアデータソースは、ソーシャルメディアネットワークをリッスンし（listen）、集約されたソーシャルメディアデータを構造化された出力として提供するソーシャルメディアデータ集約器に対応する。
【０５０４】
別の実施形態によれば、方法１９２１はさらに、ユーザ装置において表示されるＧＵＩからユーザイベント入力を受信することであって、このユーザイベント入力は出力としてユーザ装置に表示される勝ち負け予測結果の１つを指定する、ことと、ユーザイベント入力に応答して、販売機会の１つについての下位詳細を更新された出力としてユーザ装置に表示することと、を含み、上記下位詳細は、表示される勝ち負け予測結果に確率的に関連する１又は複数の特徴を含む。
【０５０５】
方法１９２１の別の実施形態によれば、表示される勝ち負け予測結果に確率的に関連する１又は複数の特徴は、選択された１又は複数の販売機会の各々についての更新された勝ち負け予測結果に影響した、指定されたソーシャルメディアデータソースから導出される１又は複数の名前＝値ペアを含む。
【０５０６】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、ユーザ装置から、顧客組織についての販売データのデータセットを指定する入力を受信することであって、上記販売データは複数の販売機会を指定する、ことと、データセットの行及び列からインデックスを生成することであって、上記インデックスはデータセットの行と列とにおける確率的関係を表す、ことと、ホスト組織内の問い合わせ可能データベースにインデックスを記憶することと、販売データ内で指定された複数の販売機会のうち１又は複数を選択することと、選択された１又は複数の販売機会の各々についての勝ち負け予測結果についてインデックスに問い合わせることと、選択された１又は複数の販売機会の各々についての勝ち負け予測結果をユーザ装置に出力として表示することと、を含むオペレーションをホスト組織に実行させる。
【０５０７】
図２０Ａは、記載される実施形態に従うパイプライン（pipeline）変化レポート２００１を描いている。左側には、スナップショット日付２００４に対する金額の履歴総計２００２を示すパイプライン変化レポートが描かれており、右側には、スナップショット日付２００４に対する履歴レコードカウント２００３を示すパイプライン変化レポートが描かれており、こうして、販売段階ごとに配置された現在の月（例えば、ここでは、２０１３年１月の月）についての開いているパイプラインを、図表にされた履歴日付における販売段階を含めてユーザに提示している。例えば、上記の段階には、知覚分析、提案／価格見積もり、及び交渉／レビュー等を含むことができる。
【０５０８】
パイプライン変化レポート２００１は、ユーザが自身のデータを集約された形で見ることを可能にする。各段階は複数の機会を含むことができ、各々は、機会の各々が金額に従って又は段階に従って等で変わり得るため、重複することができる。こうして、ユーザが直近４週間を見ている場合、一機会が＄５００から＄１５００まで変わる可能性があり、ゆえに重複し得る。
【０５０９】
クラウドコンピューティングアーキテクチャは、すべてのテナントについてのすべてのデータにわたって走る機能性を実行する。こうして、任意のケース、リード及び機会について、データベースは、すべての監査データが保有される履歴トレンドデータオブジェクト（ｈｉｓｔｏｒｉｃａｌ  ｔｒｅｎｄｉｎｇ  ｄａｔａ  ｏｂｊｅｃｔ；ＨＴＤＯ）を維持し、したがって、データベース更新がコミットされることを可能にすると同時にデータベーステナントのために記憶されているデータの現在の状態を破損することなく、過去におけるいかなる事象の状態も示すように、要求においてユーザに十分な及び豊富な履歴を後から提供することができる。こうして、下層のデータは、現在の瞬間についてその正しい状態において維持されなければならないが、それにかかわらず、ユーザはシステムを利用して、特定機会の状態を、要求されたデータが先週の機会の状態についてであるかにかかわらずこの状態が歴史的にあったとおりに、あるいはこの状態が過去の四半期を通して推移したとおりに、などで表示することができる。
【０５１０】
それから、様々なカテゴリのデータについての履歴オブジェクトからの監査データのすべてが、履歴トレンドデータオブジェクトへと集約される。それから、履歴トレンドデータオブジェクトは、レポーティング、予測分析及び探索のために過去の任意の時点における任意の事象を再作成することができるような必要な監査証跡を取り出すために、複数のテナントにわたって種々の履歴レポートタイプによって問い合わせられる。履歴監査データはさらに、履歴監査データにおけるさらなる予測能力を提供するためにこのデータを履歴データセット内に含むことによって、分析エンジン（例えば、図１の要素１８５）の分析能力にさらされてもよい。例えば、履歴データが様々な販売機会について既知であると同時に、将来の状態が上記の同じ機会について予測されて、販売員が適切に自身の努力の焦点を合わせるのを支援することができる。
【０５１１】
図２０Ｂは、記載される実施形態に従う予測データを用いたウォーターフォールチャートを描いている。機会カウント２００６は垂直軸を定義しており、段階２００５は段階１乃至８を横切って「開始」から「終了」まで水平軸を定義している。例えば、ウォーターフォールチャートは、段階ごとに切り離された、現在作業されているすべての機会のスナップショットを描くことができる。機会カウントは、段階によって上方に及び下方に変化して、様々な定義された段階への様々な機会のグルーピングを反映する。ウォーターフォールチャートは、１日目と２日目との間の機会を定義することによって２点を見るのに、あるいはここで例を介して示されるのと同様に、使用することができる。ウォーターフォールチャートは、すべての機会を種々の段階へとグループ化するのに使用されてもよく、これにおいて、あらゆる機会がその現在の段階に従ってマップされ、ゆえに、ユーザが過去を探査し、上記の機会が実際閉鎖に来るのにタイミングは何であったかを理解することを可能にする。
【０５１２】
履歴トレンドデータオブジェクトに保存される履歴データ及び監査履歴は、スナップショット及びフィールド履歴を通して可能にされる。履歴トレンドデータオブジェクトを用いて、所望のデータを問い合わせることができる。履歴トレンドデータオブジェクトは、１つのテーブルとして、このテーブルにインデックスを備えて実施されてもよく、このテーブルから、所望のデータのうち任意のものを取り出すことができる。様々な特化されたＧＵＩ及びユースケースが、履歴トレンドデータオブジェクトのテーブルから取り出される機会データを用いて投入される。
【０５１３】
図２０Ｃは、第１の履歴フィールドを追加した後のデフォルトでのインターフェースを描いている。要素２０１１は、様々なオプションを含む履歴フィールドフィルタの追加を描いており、上記オプションには、履歴金額によりフィルタをかけること（例えば、百万ドルを超える値）と、フィールドによりフィルタをかけること（例えば、Ａｃｍｅに等しいアカウント名）と、ロジックによりフィルタをかけること（例えば、フィルタ１  ＡＮＤ  （フィルタ２  ＯＲ  フィルタ３））と、クロスフィルタをかけること（例えば、機会がある又はないアカウント）と、行限定すること（例えば、年間収益により上位５アカウントだけ示す）と、最後に「選択のためのヘルプ」オプションとが挙げられる。
【０５１４】
このインターフェースは、マルチテナントシステムにおいて内部に記憶された履歴値対現在値を比較することによってユーザが履歴データにフィルタをかけることを可能にする。
【０５１５】
図２０Ｄは、追加されたカスタムフィルタのデフォルトでのインターフェースをさらに詳細に描いている。こうした特化されたフィルタリング実装は、ユーザが、日単位で、週単位で、あるいは月単位を超えて等でデータがどのように変わったかを識別することを可能にする。ゆえに、ユーザは、現時点についてだけでなくユーザの機会に関連するデータを見ることができるが、この特徴を用いて、ユーザは、絶対時間又は相対時間などの指定された時間に基づいて機会を識別することができ、したがって、ユーザは、ある時間にわたりデータがどのように変わったかを見ることができる。この実施形態において、次元として時間が使用されて、顧客が絶対的な日付又は日付の範囲を選び出すように決定木が提供される。顧客は、２０１３年１月１日等の絶対日付又は今月の初日若しくは先月の初日等の相対日付などを選び出すことができる。
【０５１６】
要素２０２５により描かれるとおり、メニューが、履歴フィールドフィルタを用いて排他的に投入されてもよく、履歴カラーコーディングを使用してもよい。要素２０２６において、その選択は、「いずれかの選択された履歴日付（Any  Selected  Historical  Date）」が選択され得る、過ぎ去った日（rolling  days）をデフォルトにしている。別法として、固定日が選択されてもよいが、このオプションは、描かれているインターフェースにおいてデフォルトで折り畳まれている。要素２０２７は、選ばれた履歴フィールドタイプに依存してユーザが選択することができる様々な演算子を説明しており、要素２０２８は、ユーザにより改造できるプレースホルダー属性としてデフォルト金額値（例えば、＄１，０００，０００）を提供する。
【０５１７】
描かれているカスタムフィルタインターフェースは、販売マネージャ又は販売員が、今日対今月又は先月の初日などで機会がどのように変わったかを見ることを可能にする。カスタムフィルタインターフェースを通して、ユーザは、時間において一歩戻って、１週間前又は１か月前にあったところに戻って考えることができ、日付の範囲を作成し、どの機会がこれら日付の間に作成されたかを表示することによって、機会を識別することができる。
【０５１８】
例えば、上記のような情報を欲する販売員は１０個の機会を有していた可能性があり、２０１３年２月1日に、この販売員のターゲット購買者が見積もりに関心を示し、段階を見込みから見積もりに変化させる。反対に、別のターゲット購買者はすぐに買いたいと言い、段階を見積もりから販売／請求／閉めに変化させる。ゆえに、カスタムフィルタインターフェースは、作成される様々な日付に基づいて決定木を提供し、入力及び選択プロセスを通して、最初に選択された日付に対する適切な選択肢及びフィルタだけを明らかにすることによってユーザをガイドする。結果、その機能性は、１月若しくは２月の月に、又は所与の範囲内、四半期若しくは年内などに閉まっているすべての機会のビューを高度に直感的な方法で販売員に与えることができる。
【０５１９】
日付で問い合わせることは、ユーザが決定木を横切ってユーザの所望の日付を識別することを余儀なくさせて、ユーザが複数のスナップショットをさらに選び出すことを可能にし、上記のことから、仕上げられる結果セットは、例えば２０１３年２月１日から２０１３年２月６日に決定される。
【０５２０】
さらに可能にされるのは、マルチテナントシステムにおいて履歴値対定数を比較することによって履歴データをフィルタにかける能力であり、履歴セレクタと呼ばれる。機会又はレポートのタイプに基づいて、顧客は、カスタム履歴フィルタを用いて履歴データにフィルタをかける能力を有する。インターフェースは、左側において、顧客が値又はフィールドを制限するのに使用することができるフィルタのすべてを顧客が見る能力を提供し、ゆえに、顧客が任意の所与の値について履歴列データにフィルタをかけることを可能にする。こうして、顧客は、所与の月について開いている機会のすべてを見ることができ、あるいは、履歴ではなく現在の列データに従ってデータセットをフィルタにかけることができる。こうして、所与の機会について、ユーザはインターフェースにおいて、金額、段階、閉め日付、確率、予想カテゴリ、又は他のデータ要素を記入することができ、それから、販売員がターゲット購買者と話すとき、状態が、ターゲット購買者となされた進捗に基づいて見込みから見積もりに、交渉に、そして最終的に、勝った／閉められた又は負けた等の状態に変更される。閉めの確率及び予想カテゴリなどの要素にフィルタをかけることは、予測をレンダリングするように予測クエリをトリガすることになり、この予測に対して、インターフェースによるフィルタリング及び他の比較が行われる。
【０５２１】
例えば、ターゲット購買者が売買の金額を減らすように頼んでおり、販売員がその金額を増やそうと試みていることを例にとる。機会についての変更金額と機会についての状態変更とを含むデータのすべてが、監査証跡を提供する履歴トレンドデータオブジェクトに記憶される。
【０５２２】
現在のデータが現在のテーブル内で更新されるとき、過去の値は顧客にとってアクセス不可能になる。しかしながら、履歴トレンドデータオブジェクトは問い合わせ可能監査証跡を提供し、この監査証跡を通して、インターフェース及びそのユーザの要請において上記のような履歴値を取り出すことができる。一実施形態によれば、履歴データは１日という粒度で処理され、ゆえに販売員は、毎日の粒度のレポーティングを備えたデータセット内で、時間において戻り、ある時間にわたりデータがどのように変わったかを閲覧することができる。別の実施形態において、頻度を問わずいかなる変更も明らかにすることができるように、すべての変更が追跡され、タイムスタンプされる。
【０５２３】
販売員のために機会がある時間にわたりどのように変わったかを明らかにすることに加えて、上記のメトリックは、さらに他の統制に、例えば、何百のケースを販売代理店から受け、電話を閉めるための最良手段を査定する必要があるコールセンターを運営するサービスマネージャに、有用であり得る。同様に、マーケティングキャンペーンを運営するキャンペーンマネージャは、履歴に戻ってじっと見て事象が過去の機会の結果にどのように影響を与えたかを調べるだけなく、マーケティング努力を通して明かされていない様々なリード及び機会における閉めるための最良手段を査定することができる。
【０５２４】
図２０Ｅは、追加されたカスタムフィルタのデフォルトでの別のインターフェースを描いている。ここでの「金額（amount）」セレクタでは、図２０Ｄにおいて描かれた前の例における値ではなく、「フィールド（field）」モードが選択されている。要素２０２９は、「フィールド」モードにあるときに現在の値だけが選出器において出現することを示しており、ゆえにユーザは、値を入れることに代わって、データ範囲制限されたデータセット内に実際に存在する値から選択することを許可される。インターフェースは「金額」に限られず、むしろ、データセット内の任意の列について動作して、値により又は「フィールド」モードによりフィルタをかけることを許可し、フィールドモードにおいて、選出器は、指定された列について１又は複数のフィールドに存在する値だけをリストアップする。例えば、「段階」を選択することにより、選出器は、少なくとも１つの機会が指定された顧客履歴日付範囲についての例示的な４つの段階の各々に存在すると仮定して、４つの段階プロセスの各段階を描くことができる。こうして、ユーザは、自身にとってアクセス可能な履歴データを探索するための非常に直感的なインターフェースを提示される。
【０５２５】
別の実施形態において、産業、地理、売買サイズ、取り扱い中の製品などの所望の基準に従って検索を狭め又は限定するように、フィルタ要素がユーザに提供される。こうして、上記の機能性は、販売プロフェッショナルが販売生産性を向上させ、ビジネスプロセスを合理化するのを支援する。
【０５２６】
一実施形態によれば、履歴トレンドデータオブジェクトは、履歴データが以下の表１に描かれるテーブルなどのテーブルに記憶される履歴データスキーマを介して実施される：
【０５２７】
【表１】
2019057286.tif 000007
上記表１において利用されるインデックスには、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ、ｋｅｙ＿ｐｒｅｆｉｘ、ｈｉｓｔｏｒｉｃ＿ｅｎｔｉｔｙ＿ｄａｔａ＿ｉｄを含む。ＰＫには、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ、ｋｅｙ＿ｐｒｅｆｉｘ、ｓｙｓｔｅｍ＿ｍｏｄｓｔａｍｐを含む（例えば、タイムスタンプ、又はタイムスタンプされたレコードなどを提供する）。ユニーク、検索（find）、所与の日付についてのスナップショット、及び親レコードは、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ、ｋｅｙ＿ｐｒｅｆｉｘ、ｐａｒｅｎｔ＿ｉｄ、ｖａｌｉｄ＿ｔｏ、ｖａｌｉｄ＿ｆｒｏｍである。インデックスｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ、ｋｅｙ＿ｐｒｅｆｉｘ、ｖａｌｉｄ＿ｔｏは、データをクリーンアップするのを容易にする。上記のテーブルは、特定の実施形態によれば、ユーザのストレージ要件に対してさらにカウントされる。例えば、使用が、ユーザごとに予め構成された数のレコードにおいて上限設定されて（capped）もよく、ユーザの組織についての価格設定計画に基づいて改造できてもよい。あるいは、利用可能なスロットが乏しくなるとき、古いスロットがクリーンにされてもよい。履歴データ管理、行限定、及び統計が、場合により利用されてもよい。新しい履歴について、システムは、新しい履歴テーブルのために列ごとに平均２０バイトと６０個の有効列（５０個の有効データ列＋ＰＫ＋監査フィールド）とを仮定してもよく、こうして、行サイズは１３００バイトである。行推定について、システムは、履歴トレンドがエンティティ履歴と類似の使用パターンを有することになると仮定してもよい。顧客の適用可能リソース限定に対して履歴トレンドストレージ使用を請求することによって、ユーザ及び組織は、自身のリソース制約及び価格設定に対して所望の履歴可用性の深度のバランスをとることになる。
【０５２８】
エンティティ履歴についての行カウントにおいて直近の成長を明らかにした生産データのサンプリングは、約２．５Ｂ（１０億（billion））行／年である。履歴トレンドは、任意数の変更されたフィールドについて、単一の行を記憶することになるため、０．７８のさらなるファクタが適用され得る。組織ごとにカスタム履歴トレンドデータオブジェクトの合計量を制限することによって、履歴トレンドについての予期される行カウントは、価格設定構造がデータベースのすべてのテナントの中での合計の総体の成長に影響を与えるのに使用されて、最悪ケースシナリオにおいて年ごとに約１．２Ｂ行に限定されることができる。
【０５２９】
履歴データは、デフォルト年数にわたって記憶することができる。２年が初期デフォルトとして提供される場合、履歴トレンドテーブルのサイズは２．４Ｂ行あたりにとどまると予期される。カスタム値列は、カスタムオブジェクトに類似のカスタムインデックスによって扱われることになる。例えば自動化されたスクリプトを用いてなどの、システムの意図しない乱用を防止するために、各組織は、各オブジェクトについての履歴行限定を有することになる。こうした限定は、オブジェクトごとに１〜５百万行の間であってもよく、上記の行は、生産データの分析される使用パターンに基づいて、現在のデータと履歴データとの記憶をカバーするのに十分であり、ごくわずかな組織だけが、時にあまりに多くのオブジェクトを有して構成可能限定にヒットし得る。こうした限定は、圧倒的なユーザ個体数のための合理的な限定を可能にすると同時に、ケースごとに扱われることができる。カスタマイズされたテーブルは、履歴トレンドデータオブジェクトへの様々なユーザのクエリパフォーマンスに役立つように、さらにカスタムインデックス化されてもよい。
【０５３０】
図２０Ｆは、記載される実施形態に従う一例示的アーキテクチャを描いている。具体的に、顧客組織２０３３Ａ、２０３３Ｂ及び２０３３Ｃが描かれており、各々がユーザのクライアント装置及びディスプレイ２０３４Ａ、２０３４Ｂ及び２０３４Ｃを備え、ユーザのクライアント装置及びディスプレイ２０３４Ａ、２０３４Ｂ及び２０３４Ｃは、入力、クエリ及び要求を送ること並びに表示のための出力を含む応答を応答的に受信することを含め、ネットワーク２０３２を介してホスト組織２０１０とインターフェースをとる能力がある。ホスト組織２０１０内に要求インターフェース２０７６があり、要求インターフェース２０７６は場合によりウェブサーバ２０７５によって実施されてもよい。ホスト組織は、プロセッサ２０８１、メモリ２０８２、クエリインターフェース２０８０、分析エンジン２０８５、及びマルチテナントデータベースシステム２０３０をさらに含む。マルチテナントデータベースシステム２０３０内に実行ハードウェア、ソフトウェア及びロジック２０２０があり、実行ハードウェア、ソフトウェア及びロジック２０２０は、マルチテナントデータベースシステム２０３０の複数のテナントと認証器２０９８とデータベース２０５０とにわたって共有され、データベース２０５０は、例えば、リレーショナルデータベースなどの、レコードを記憶するデータベースと、履歴トレンドデータオブジェクトをホストする能力があるオブジェクトデータベースなどの、履歴値を記憶するデータベースと、分析エンジン２０８５により生成されたインデックス２０５４を記憶する能力がある予測データベースであって、上記インデックスは予測データベースに対して実行されるクエリに応答して予測レコードセットを返すことを容易にする、予測データベースと、を含み得る。
【０５３１】
一実施形態によれば、ホスト組織２０１０は、少なくとも１つのプロセッサ２０８１とメモリ２０８２とを有するシステム２０３５を稼働させる。システム２０３５は、レコード２０６０を記憶するデータベース２０５０を含み、レコード２０６０に対する更新は、レコード２０６０がデータベース２０５０の中で更新されるとき、レコードについての履歴値を維持するように履歴トレンドデータオブジェクト（ＨＴＤＯ）２０６１へと記録される。こうした一実施形態によれば、システム２０３５はさらに、要求インターフェース２０７６を含む。要求インターフェース２０７６は、ユーザ装置２０３４Ａ‐Ｃから、ユーザ装置２０３４Ａ‐Ｃにおいて表示されるべきデータを指定する入力２０５３を受信し、さらに、要求インターフェース２０７６は、ユーザ装置２０３４Ａ‐Ｃから履歴フィルタ入力２０５６を受信する。こうした一実施形態において、システム２０３５はさらに、クエリインターフェース２０８０を含む。クエリインターフェース２０８０は、表示されるべきデータ２０５８について、データベース２０５０に記憶されたレコード２０６０に問い合わせ（２０５７）、さらに、クエリインターフェース２０８０は、表示されるべきデータ２０５８の履歴値２０６２について、履歴トレンドデータオブジェクト２０６１に問い合わせる（２０５７）。システム２０３５はさらに、分析エンジン２０８５を含み、分析エンジン２０８５は、表示されるべきデータと表示されるべきデータの履歴値とを比較して、表示されるべきデータに対応する１又は複数の変更された値２０６３を決定する。それから、システム２０３５の要求インターフェース２０７６は、ユーザ装置２０３４Ａ‐Ｃに対する表示出力２０５５として、上記の比較を介して決定された１又は複数の変更された値２０６３に基づいて、少なくとも表示されるべきデータ２０５８と変更された値の指し示しとをさらに返す。
【０５３２】
要求インターフェース２０７６はさらに、ユーザ装置２０３４Ａ‐Ｃにおける変更値指し示しＧＵＩを介して選択入力２０６５を受信することができ、上記選択入力２０６５は、１又は複数の変更された値についてのさらなる下位詳細を要求し、これに応答して、要求インターフェース２０７６及び／又はウェブサーバ２０７５は、さらなるドリルダウン詳細を提供することができる。例えば、タッチスクリーンのユーザが、示された変更された値のうち１つをタッチし又はジェスチャーする場合、ユーザインターフェースは、こうした入力を要求インターフェース２０７６に伝えて、指定された変更された値についてのさらなる詳細（例えば、現在及び過去の状態、差、変更の方向、販売機会についての予測勝ち／負け結果変更、等）を有する更新された表示出力２０５９をホスト組織２０１０に提供させることができる。
【０５３３】
システム２０３５の別の実施形態によれば、データベース２０５０は、オンデマンドのクラウドベースのサービスとしてホスト組織２０１０において１又は複数の加入者のために実行される。上記システムはさらに認証器２０９８を含み、認証器２０９８は、ユーザを既知の加入者として検証し、既知の加入者により提示される認証クレデンシャルをさらに検証する。
【０５３４】
システム２０３５の別の実施形態によれば、ウェブサーバ２０７５は、要求インターフェース２０７６を実施し、要求インターフェース２０７６及び／又はウェブサーバ２０７５によってユーザ装置２０３４Ａ‐Ｃに表示させる変更値指し示しＧＵＩと相互作用する。こうした一実施形態において、ウェブサーバ２０７５は、入力として、ネットワーク２０３２を介してホスト組織と通信可能にインターフェースをとる複数の顧客組織の中の１又は複数のクライアント装置から複数のアクセス要求を受信する。
【０５３５】
システム２０３５はさらに、予測データベースを実施する予測データベース機能性を備えたマルチテナントデータベースシステムを含む。さらに、各顧客組織は、別個かつ区別可能なリモートの組織、ホスト組織内の組織グループ、ホスト組織のビジネスパートナー、又はホスト組織により提供されるクラウドコンピューティングサービスに加入している顧客組織から成るグループから選択されたエンティティである。
【０５３６】
図２０Ｇは、開示される実施形態に従う一方法を示すフロー図である。方法２０３１は処理ロジックによって実行されてもよく、この処理ロジックには、本明細書に記載されるとおり変更値指し示しと履歴値比較とを実施するシステム、装置及び方法に従ったハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（例えば、送信、送出、受信、実行、生成、算出、記憶、公開、問い合わせ、処理などの様々なオペレーションを実行するように処理装置上で実行される命令）等を含み得る。例えば、図１のホスト組織１１０、図４のマシン４００又は図２０Ｆのシステム２０３５は、記載される方法論を実施することができる。以下にリストアップされるブロック及び／又はオペレーションのいくつかは、特定の実施形態において任意的である。提示されるブロックの番号付けは明りょうさのためであり、様々なブロックが生じるべきオペレーションの順序を規定する意図はない。
【０５３７】
ブロック２０９１において、処理ロジックは、データベースにレコードを記憶する。レコードに対する更新は、レコードがデータベースの中で更新されるとき、レコードについての履歴値を維持するように履歴トレンドデータオブジェクトへと記録される。
【０５３８】
ブロック２０９２において、処理ロジックは、ユーザ装置から、ユーザ装置において表示されるべきデータを指定する入力を受信する。
【０５３９】
ブロック２０９３において、処理ロジックは、ユーザ装置から履歴フィルタ入力を受信する。
【０５４０】
ブロック２０９４において、処理ロジックは、表示されるべきデータについて、データベースに記憶されたレコードに問い合わせる。
【０５４１】
ブロック２０９５において、処理ロジックは、表示されるべきデータの履歴値について、履歴トレンドデータオブジェクトに問い合わせる。
【０５４２】
ブロック２０９６において、処理ロジックは、表示されるべきデータと表示されるべきデータの履歴値とを比較して、表示されるべきデータに対応する１又は複数の変更された値を決定する。
【０５４３】
ブロック２０９７において、処理ロジックは、上記の比較を介して決定された１又は複数の変更された値に基づいて、少なくとも表示されるべきデータと変更された値の指し示しとを表示する変更値指し示しＧＵＩをユーザ装置に表示する。
【０５４４】
ユーザインターフェース（ＵＩ）又はグラフィカルユーザインターフェース（ＧＵＩ）と変更値指し示しＧＵＩとは、具体的に、データベースに記憶されたデータを消費し、履歴トレンドデータオブジェクト内に記憶された履歴データを消費し、予測インターフェースから返される予測結果を消費して、非常に直感的な方法でユーザに結果を表示する。
【０５４５】
従来のデータベースインターフェースでの問題は、インターフェースが、データベース内に記憶されたデータをその現在の状態において見せることである。このことは、当然ながら、レコードを記憶するデータベースの目的である。それにもかかわらず、データのビューを、該データが過去における何らかの履歴日付にあったとおりに有すること、あるいは、データが２つの履歴日付間で、又は特定の履歴日付における過去の状態とデータが今日存在するとおりの現在の状態との間でどのように変わったかのビューを有することが、時に有益である。
【０５４６】
データベースの中のデータを前の状態に回復することは、現在の状態におけるデータを誤りのある過去の状態のデータで上書きすることになるため、うまくいくソリューションではない。したがって、変更値指し示しＧＵＩは、ユーザが、自身のデータを、該データが過去の状態において存在したとおりにも探索することができるための直感的な手段を提供する。こうした能力は、データベース内に記憶された最新データをその現在の状態において破損することなく、ユーザが、時間において戻り、販売機会の現在の状態又は他のこうしたレコードなどのデータを、該データが指定された日に存在したとおり閲覧することを可能にする。
【０５４７】
さらに、記載される方法論は、ユーザが複雑なデータスキーマを定義し、又は履歴データを追跡するためにカスタムコードを書く必要をなくす。例えば、必要なデータを公開することにＩＴサポートを関与させたり、上記の情報を追跡するようにカスタマイズされたソフトウェアを書くためにプログラマを採用する必要がない。代わって、クラウドベースサービスとして稼働するホスト組織が、必要な機能性をユーザに提供し、これを、記載された変更値指し示しＧＵＩなどの直感的なＵＩを通して公開する。
【０５４８】
さらになお、ユーザは、入り組んだＳＱＬクエリを構築することを求められず、むしろ、ＧＵＩインターフェースを通して履歴データレコード及び値を探索し、閲覧することができる。変更値指し示しＧＵＩが予測クエリと結合されるとき、ＧＵＩは、必要なＰｒｅＱＬクエリをユーザのために構築し、ＧＵＩに予測結果を公開し、こうして、ユーザのためのデータ探索能力をさらに拡張する。
【０５４９】
方法２０３１の別の実施形態によれば、データベースに記憶されるレコードは、データについての現在の状態を維持し、履歴トレンドデータオブジェクトへと記録されたレコードについての履歴値は、データの現在の状態を破損することなく、データについての１又は複数の過去の状態を維持する。
【０５５０】
方法２０３１の別の実施形態によれば、データベースにレコードを記憶することは、データベースに１又は複数のテーブルを記憶することを含み、１又は複数のテーブルの各々は、テーブルの中にリストアップされたエンティティの特性を確立する複数の列と、レコードとしてテーブルに記録される複数のエンティティ行とを有する。レコードに対する更新は、（ｉ）複数の列と複数のエンティティ行との交差におけるいかなるフィールドも修正することと、（ｉｉ）データベースの中のレコードを追加し又は削除することと、のうちいずれか１つを含む。
【０５５１】
方法２０３１の別の実施形態によれば、レコードに対する更新は、データベースに記憶されたレコードに対する更新を受信することと、データベースに記憶されたレコードについての現在状態データを、過去状態データとして、履歴トレンドデータオブジェクトへと記録することと、受信された更新に従って、データベースの中のレコードの現在状態データを修正することと、更新をデータベースに対してコミットすることと、過去状態データを履歴トレンドデータオブジェクトに対してコミットすることと、を含む。
【０５５２】
方法２０３１の別の実施形態によれば、履歴トレンドデータオブジェクトの中に維持されるレコードについての履歴値は、タイムスタンプされる。データベースに記憶された単一のレコードに対する複数の更新が、履歴トレンドデータオブジェクト内に区別可能に維持され、少なくともタイムスタンプに基づいて差別化される。特定の実施形態において、データベース内のレコードに対するあらゆる更新が、履歴トレンドデータオブジェクト内に新しい行として記憶される。
【０５５３】
こうして、ホスト組織のコンピューティングハードウェアは、データベースレコード内に生じるあらゆる変更を、ユーザのために生データとして履歴トレンドデータオブジェクト内に記憶する。ユーザがＧＵＩインターフェースに関与するとき、適切なクエリがユーザのために構築されて、必要な情報を問い合わせ、取り出して、変更された値を表示し、値における差を表示し、所与のフィールドについてのある時間にわたる変更を表示する、などする。例えば、ユーザは、今日及び先月などの２つの時点を指定することができる。このことから、必要な機能がＧＵＩの又はウェブサーバの機能性によって築かれて、結果を問い合わせ、変更値指し示しＧＵＩを介してユーザに表示する。この表示は、計算された差又は修正された値を、決定された値における変更を強調するようにハイライトすることを含む。
【０５５４】
例えば、変更値指し示しＧＵＩは、望まれない変更を赤いテキストとして、赤い方向矢印を用いて、又は赤いハイライトを用いて表示してもよい。こうした望まれない変更は、販売機会金額における低減、予測の勝ち｜負け結果の確率における低減（例えば、ＩＳ＿ＷＯＮフィールドについての予測結果がヌル値を有する）、予測された販売機会閉め日付における増加、などであり得る。望ましい変更は、緑のテキスト、矢印、又はハイライトを用いて表示されてもよく、中立である変更は、単にグレイ又は黒のテキスト、矢印、又はハイライトを使用してもよい。説明された色とは異なる色が代替にされてもよい。
【０５５５】
方法２０３１の別の実施形態によれば、変更された値の指し示しは、１又は複数の変更された値について変更値指し示しＧＵＩに表示される色付けされ又はハイライトされたテキストと、１又は複数の変更された値について変更値指し示しＧＵＩに表示される方向矢印であって、変更の存在又は変更の方向を示す方向矢印と、表示されるべきデータと１又は複数の変更された値とにおける計算された差と、１又は複数の変更された値に基づいて、表示されるべきデータについて同時に表示される現在の状態及び過去の状態と、のうち少なくとも１つを含む。
【０５５６】
方法２０３１の別の実施形態によれば、変更値指し示しＧＵＩをユーザ装置に表示することは、変更された値の指し示しに追加して、表示されるべきデータと上記の比較を介して決定された１又は複数の変更された値との双方を表示することを含む。
【０５５７】
方法２０３１の別の実施形態によれば、表示されるべきデータは、データベースの中にレコードとして記憶された複数の販売機会を含み、変更値指し示しＧＵＩをユーザ装置に表示することは、複数の販売機会のうち１又は複数に対する変更を現在の状態対過去の状態において描く変更された値の指し示しと共に、複数の販売機会をユーザ装置に表示することを含む。
【０５５８】
別の実施形態によれば、方法２０３１はさらに、現在の状態における販売機会の各々についての第１の勝ち負け予測結果を決定することと、過去の状態における販売機会の各々についての第２の勝ち負け予測結果を決定することと、変更された値を指し示すＧＵＩを介して、第１の勝ち負け予測結果と第２の勝ち負け予測結果との間の任意の変更を描くことと、を含む。
【０５５９】
方法２０３１の別の実施形態によれば、第１及び第２の勝ち負け予測結果を決定することは、ＰＲＥＤＩＣＴコマンドタームを指定する予測クエリを構築することと、予測問い合わせ言語（ＰｒｅＱＬ）インターフェースを介して予測データベースに対して予測クエリを発行することと、を含む。
【０５６０】
方法２０３１の別の実施形態によれば、変更値指し示しＧＵＩは、表示されるべきデータの履歴値に基づいて、ある時間にわたる１又は複数の変更された値のグラフ又はチャートを描く。
【０５６１】
変更値指し示しＧＵＩは、データベース内に記憶された現在状態データの結果をフィルタにかける通常のフィルタと履歴フィルタとの双方を含む様々なフィルタを介して、ユーザがレポートをカスタマイズすることを許可する。ＧＵＩを利用して、ユーザは、レポートについての新しいフィルタを追加し、例えば、履歴フィールドフィルタを論理比較器（例えば、に等しい、より小さい、より大きい、真である、偽である、ヌルである、等）と共に指定することができる。ユーザは、さらに、フィルタリングにおける使用のために履歴日付を指定することができる。例えば、所与の履歴日付において存在したとおりの結果が要求されてもよい。あるいは、２つの日付が指定されてもよく、このことは２つの日付間の変更された値を生み出すことになり、この２つの日付は、双方とも履歴日付、又は現在の日付（例えば、今日）と比較される履歴日付であり得る。例えば、販売高がある時間にわたりどのように変わったかを月ごと、週ごと又は日ごとなどで示すのに、日付範囲が時に適切である。
【０５６２】
方法２０３１の別の実施形態によれば、履歴フィルタ入力は、履歴日付と、履歴日付範囲と、閉められた販売機会についての履歴閉め日付と、履歴トレンドデータオブジェクトに記録された値又は文字列と、履歴トレンドデータオブジェクトに存在するフィールド又はレコードと、履歴トレンドデータオブジェクトに記録された値又は文字列についての論理オペランド又は比較器と、履歴トレンドデータオブジェクトに存在するヌル値についての予測結果閾値又は範囲と、のうち少なくとも１つを含む。
【０５６３】
方法２０３１の別の実施形態によれば、変更値指し示しＧＵＩをユーザ装置に表示することはさらに、履歴トレンドデータオブジェクトから決定可能な表示されるべきデータについてのすべての変更された値を表示することと、履歴フィルタ入力を介して指定されるデータ範囲内のすべての変更された値を表示することと、変更値指し示しＧＵＩを介して指定されるとおりに日ごと、週ごと、月ごと又は四半期ごとの変更区間で１又は複数の変更された値のグラフを表示することと、のうち少なくとも１つを含む。
【０５６４】
方法２０３１の別の実施形態によれば、履歴値を維持する履歴トレンドデータオブジェクトは、クラウドコンピューティングサービスの一部として、デフォルトでアクティブであり、変更値指し示しＧＵＩを介してユーザに公開される。
【０５６５】
方法２０３１の別の実施形態によれば、履歴トレンドデータオブジェクトは、クラウドコンピューティングサービスにアクセスするためにユーザにより支払われる加入者料金に基づいて確立される履歴キャパシティに限定される。この履歴キャパシティは、ユーザにより支払われる加入者料金に比例して増加し、加入者料金ゼロのユーザは、最小のデフォルトの履歴キャパシティへのアクセスを有する。
【０５６６】
こうしたモデルは、ユーザが、ホスト組織におけるクラウド内に自身の既存のデータを維持することを促す。なぜならば、ユーザは、従来のソリューションによっては提供されない強化された能力から恩恵を受けることができるからである。ユーザが追加料金を支払わない場合でさえ、ユーザは、限られた方法で上記能力に依然としてさらされ、自身の履歴データ探索及び保有能力の範囲を拡張したいか否かを後から判断することができる。
【０５６７】
別の実施形態によれば、方法２０３１はさらに、変更値指し示しＧＵＩにおいて受信される選択入力に応答して、１又は複数の変更された値についてのさらなる下位詳細を表示することを含む。上記選択入力は、表示される変更値指し示しに対応するマウスオーバーイベント、カーソルオーバーイベント、クリックイベント、タッチスクリーン選択イベント又はタッチスクリーン位置イベントのうち１つを含み、下位詳細を表示することは、当初表示された変更値指し示しの上に位置づけられ、かつ該指し示しを少なくとも部分的にカバーするグラフィカルオーバーレイ内に、下位詳細を表示することを含む。
【０５６８】
例えば、表示出力をユーザディスプレイに返すと、ユーザはさらに、アイテム上でクリックし、ジェスチャーし、押し、又はポインタを合わせることによって、結果を探索することができる。このことは、代替的な又は追加のフィルタリングを構築することをユーザに求めることなく、変更値指し示しＧＵＩがユーザのアクションに文脈的に関連するさらなる結果をレンダリングすることをトリガする。
【０５６９】
方法２０３１の別の実施形態によれば、１又は複数の変更された値は、（ｉ）販売機会が確率的に勝ちをもたらすと予測されるか負けをもたらすと予測されるかを示す勝ち負け予測結果における変更と、（ｉｉ）勝ち負け予測結果についての信頼度指標における変更と、（ｉｉｉ）予測される販売高における変更と、（ｉｖ）予測された販売機会閉め日付における変更と、のうち少なくとも１つに対応する。さらに、上記（ｉ）乃至（ｉｖ）のいずれか１つに対応する下位詳細が、変更値指し示しＧＵＩにおいて受信される選択入力に応答して、変更値指し示しＧＵＩを介してユーザ装置に表示される。
【０５７０】
履歴結果を比較する能力は、パイプライン比較を可能にする（例えば、図２０Ａにおけるパイプライン変化レポート２００１を参照）。こうしたレポートは、製品、販売機会又は他のありのままのビジネスフローがある時間にわたりどのように変わったか、例えば、ビジネスパイプラインが今日対昨日で、又は今日対直前の四半期でどのように見えるか、あるいは、ビジネスパイプラインが直前の四半期の終わり対前年の同四半期の終わりでどのように見えたか、などをユーザが探索することを可能にする。こうしたレポートは、販売段階、製品ごとの販売、予想、カテゴリ、依然として観察されている値のための予測結果、ボリューム、収益、及び、データがデータベースに記録され又は予測データベースを介して予測することができる任意の他のビジネスメトリックに対しての、図表にされる販売機会を描くことができる。
【０５７１】
方法２０３１の別の実施形態によれば、変更値指し示しＧＵＩをユーザに表示することは、履歴トレンドデータオブジェクト内で維持される履歴値に基づいて、変更値指し示しＧＵＩを介して指定される履歴日付における、第２の軸上の販売機会についての複数の利用可能な販売段階に対しての第１の軸上の販売機会の数量によって定義される第１のパイプラインチャートを、ユーザ装置に表示することと、第１のパイプラインチャートと同時に第２のパイプラインチャートを表示することであって、第２のパイプラインチャートは、変更値指し示しＧＵＩを介して指定されるとおりに、第２の履歴日付又は現在日付における複数の利用可能な販売段階に対しての販売機会の数量を描く、ことと、を含む。
【０５７２】
方法２０３１の別の実施形態によれば、変更値指し示しＧＵＩはさらに、分析エンジンによる、履歴トレンドデータオブジェクト内に維持される履歴値の予測分析に基づいて、推奨される予想調整を表示する。
【０５７３】
方法２０３１の別の実施形態によれば、変更値指し示しは、赤いテキスト又はハイライト、緑のテキスト又はハイライト、及びグレイのテキスト又はハイライトを用いて、１又は複数の変更された値を描く。上記の赤いテキスト又はハイライトは、比較を介して決定された現在の状態対過去の状態についての否定的な変更を表し、緑のテキスト又はハイライトは、比較を介して決定された現在の状態対過去の状態についての肯定的な変更を表し、グレイのテキスト又はハイライトは、比較を介して決定された現在の状態対過去の状態についての中立の変更を表す。
【０５７４】
別の実施形態によれば、命令を記憶させた非一時的コンピュータ可読記憶媒体があり、上記命令は、ホスト組織におけるプロセッサにより実行されると、データベースにレコードを記憶することであって、レコードに対する更新は、レコードがデータベースの中で更新されるとき、レコードについての履歴値を維持するように履歴トレンドデータオブジェクトへと記録される、ことと、ユーザ装置から、ユーザ装置において表示されるべきデータを指定する入力を受信することと、ユーザ装置から履歴フィルタ入力を受信することと、表示されるべきデータについて、データベースに記憶されたレコードに問い合わせることと、表示されるべきデータの履歴値について、履歴トレンドデータオブジェクトに問い合わせることと、表示されるべきデータと表示されるべきデータの履歴値とを比較して、表示されるべきデータに対応する１又は複数の変更された値を決定することと、上記の比較を介して決定された１又は複数の変更された値に基づいて、少なくとも表示されるべきデータと変更された値の指し示しとを表示する変更値指し示しＧＵＩをユーザ装置に表示することと、を含むオペレーションをホスト組織に実行させる。
【０５７５】
図２１Ａは、予測完全性対精度を描くチャートを提供している。要素２１０５における垂直軸上には精度／信頼度が示されており、この精度／信頼度は、予測において本質的に完璧な精度又は最も高いあり得る信頼度を表す“１．０”から、下方へ、この具体的なスケールにおいてはいくらか乏しい精度又は低い信頼度を表す“０．４”に及んでいる。水平軸上には要素２１０６がフィラーパーセンテージを描いており、このパーセンテージは、予測的フィルがないことを意味する“０．０”から、すべての利用可能な要素が必要な場合に予測結果を用いて埋められていることを意味する“１．０”に及んでいる。ゆえに、０．０において、予測された結果はなく、そのようなものとして、既知の（例えば、実際に観察された）データだけが存在するため精度は完璧である。反対に、１．０フィルパーセンテージにおいては、データセットに存在する任意のヌル値が予測値を用いて埋められるが精度／信頼度は０．４と０．５との間の低さに達するというように、予測結果はあまり信頼性がなくなる。
【０５７６】
任意数の種々の交差を描き出すことができるが、要素２１０７は、垂直軸上の０．８の精度／信頼度と水平軸上の５０％を上回るフィルパーセンテージとの交差を描いており、このことは、予測分析エンジンのコアによって分析された機会のうち５０％より多くについて、販売予測は８０％正確である／自信がある、と翻訳される。
【０５７７】
種々のデータセットが、こうした正確な値を変更し得るが、チャートは、こうした販売データに属する豊富なデータセット内で何が共通して発見されるかを描いている。詳細には、機会の過半数は比較的高い度合の精度／信頼度で予測されることができ、このことが今度は、販売員が実行された予測分析に従って、肯定的な結果を最も生み出しそうである機会に自身の努力の焦点を合わせることを許可する。
【０５７８】
図２１Ｂは、機会信頼度内訳を描くチャートを提供している。垂直軸上の要素２０１１は、この具体的なチャートにおいて０から９０００に及ぶ機会の数を描いており、水平軸上の要素２０１２は、０．０の信頼度から１．０の信頼度に及ぶ販売の確率を表している。特に、左に向かう列と、同様に、右に向かう列とは、非常に意義深い。“０．０”の確率は、信頼度の不足を完成させるようには相関せず、むしろ、０．０から０．２に及ぶ販売機会をハイライトする要素２０１３によって描かれるとおり、販売機会が販売を全くもたらしそうにないという非常に高い度合の信頼度に相関する。スペクトルの反対側において、要素２０１４は、販売においてかなり閉まりそうであるとして、０．８から１．０に及ぶ販売機会をハイライトしている。
【０５７９】
図２１Ｃは、機会勝ち取り予測を描くチャートを提供している。信号検出理論において、受信者操作特性（ＲＯＣ）、又は単にＲＯＣ曲線は、二項分類器システムについて、その弁別的な閾値が変えられるときのパフォーマンスを例示するグラフィカルプロットである。このＲＯＣは、陽性のうちの真の陽性の割合（ＴＰＲ＝真陽性レート）ｖｓ陰性のうちの偽の陰性の割合（ＦＰＲ＝偽陰性レート）を様々な閾値設定においてプロットすることによって作成される。ＴＰＲは敏感度としても知られており（さらに、いくつかの分野においてはリコール（recall）と呼ばれる）、ＦＰＲは１マイナス特異度又は真陰性レートである。一般に、検出と偽のアラームとについての双方の確率分布が既知である場合、ＲＯＣ曲線は、ｘ軸における偽のアラームの確率についての累積分布関数に対してｙ軸における検出確率の累積分布関数（−無限大から＋無限大の確率分布下のエリア）をプロットすることによって生成することができる。
【０５８０】
ここに描かれるＲＯＣ１０ｋ曲線は、要素２０２１によりマーク付けされた０．０から１．０の信頼度に及ぶ垂直軸に真陽性レートをマップし、さらに、要素２０２２によりマーク付けされた０．０から１．０の信頼度に及ぶ水平軸に偽陽性レートをマップし、０．９３の面積を有するＲＯＣ曲線をもたらしている。
【０５８１】
図２２Ａは、機会スコア付けのための予測的関係を描くチャートを提供している。予測的流通（Predictive  currency）が、“ＩＳ  ＷＯＮ＝真｜偽”フィールドが条件とされている。垂直軸上の要素２２０６は、ソースごとに“ＩＳ  ＷＯＮ”を真又は偽として描いており、水平軸上の要素２２０７は、左から右へ、ウェブサイト、Ｓａｌｅｓｆｏｒｃｅ  ＡＥ、他、ＥＢＲ生成、販売生成、パートナー紹介、ＡＥ／販売、インターネット検索−支払済み、インバウンドコール、そして最後に右側にＡＥ生成−アカウント作成を含む様々な販売リードソースを描いている。
【０５８２】
ここに描かれているインターフェースは、予測分析にさらされた履歴データセットを用いてユーザのために生成され、販売員又は販売チームが限られたリソースをどこに適用すべきかを決定するのを支援することができる。チャートは解釈を被るが、特定の事実が分析によって明らかにされる。例えば、要素２２１３は、ＥＢＲ生成されたリードが販売をかなり勝ち取りそうであることを示しており、要素２２１２は、ＡＥ／販売が販売をあまり勝ち取りそうにないことを描いており、要素２２１１においては、インバウンドコールが販売を勝ち取るのに約５０／５０のチャンスをもたらすことが分かるであろう。ゆえに、機会スコア付けのための予測的関係を示すインターフェースに提示されるこうしたデータは、販売チームがどこにリソースの焦点を合わせるべきかを決定するのに役立ち得る。
【０５８３】
図２２Ｂは、機会スコア付けのための予測的関係を描く別のチャートを提供している。ここで、機会は、“ＩＳ  ＷＯＮ＝真｜偽”フィールドが条件とされている。垂直軸上の要素２２２１は、タイプごとに“ＩＳ  ＷＯＮ”を真又は偽として描いており、水平軸上の要素２２２２は、左から右へ、アドオンビジネス、新ビジネス、公共、リニューアル、そして右側に契約を含む様々な販売リードタイプを描いている。
【０５８４】
要素２２２３は、アドオンビジネスが販売をより勝ち取りそうであることを描いており、要素２２２４は、新ビジネスが販売をあまり勝ち取りそうにないことを示している。前述のとおり、ここに描かれるインターフェースは、予測分析にさらされた履歴データセットを用いてユーザのために生成され、販売員又は販売チームが限られたリソースをどこに適用すべきかを決定するのを支援することができる。
【０５８５】
さらなる機能性が、保有スコアを提供することにより既存の機会についての保有のスコア又は確率を提供することによって、特化されたＵＩインターフェースが既存の機会を新しくする尤度をレンダリングすることを可能にする。こうしたメトリックは、収益を最大化するために販売員の時間及びリソースがどこに最も良く費やされるかに影響を与えることができるため、上記の機能性は、販売プロフェッショナルの役に立つ。
【０５８６】
機会スコア付けは、ＲＥＬＡＴＥＤコマンドタームを利用して、データセットについての分析エンジンの予測分析により生成されるインデックスに対する潜在構造クエリ要求を発行してもよい。例えば、ＲＥＬＡＴＥＤコマンドタームは、どのフィールドが別のフィールドと予測的に関連するか、例えば、どのフィールドが、真又は偽の値を有する“ＩＳ  ＷＯＮ”フィールドに関連するかを識別するために、特化されたＵＩによって利用されてもよい。さらに、他のあまり直感的でないフィールドが、確率的に関連する可能性がある。例えば、リードソースフィールドが、データセットの特定列に関連するように決定される可能性があり、一方、会計四半期などの他の列が、勝ち／負けの帰結にあまり関連しないと証明される可能性がある。
【０５８７】
図２２Ｃは、機会スコア付けのための予測的関係を描く別のチャートを提供している。ここで、予測される通貨は、“ＩＳ  ＷＯＮ＝真｜偽”フィールドが条件とされている。垂直軸上の要素２２３１は、通貨ごとに“ＩＳ  ＷＯＮ”を真又は偽として描いており、水平軸上の要素２２３２は、左から右へ、米国ドル（ＵＳＤ）、オーストラリアドル（ＡＵＤ）、日本円（ＪＰＹ）、英国ポンド（ＧＢＰ）、カナダドル（ＣＡＤ）、そして最後に右側にユーロ（ＥＵＲ）を含む通貨ごとに、様々な販売リードを描いている。
【０５８８】
データを解釈すると、要素２２３６において、機会は日本において販売勝ちをよりもたらしそうであり、要素２２３７において、機会はユーロを用いるヨーロッパ諸国においてあまり勝ち取りそうにないと言えるであろう。非常に多くのデータがＵＳＤベースの販売機会について存在し、一方、通貨による勝ち／負けに対する明らかな関係はそれほどなく、しかしながら、もたらされた分析されたわずかにより多くの販売が、勝ち対負けをもたらすように予測される。前述のとおり、ここで描かれるインターフェースは、予測分析にさらされた履歴データセットを用いてユーザのために生成され、販売員又は販売チームが限られたリソースをどこに適用すべきかを決定するのを支援することができる。
【０５８９】
分析され、予測分析にさらされるデータセットの中のこうした履歴ベースのデータについてのハイレベルのユースケースは、明示的に描かれた例には限定されない。例えば、他のユースケースには、販売代理人及びマーケティングユーザのために、買うという性向を決定することと、リードをスコア付け／ランク付けすることとを含み得る。例えば、販売ユーザは、しばしば複数のソース（マーケティング、外部、販売見込み等）からリードを得て、多くの場合、任意の所与の四半期において、販売ユーザは、自身が利用可能な時間より多くの、フォローアップすべきリードを有している。販売代理人は、キークエスチョンでの手引きをしばしば必要とし、このキークエスチョンは、例えば、どのリードが買うという最も高い性向を有するか、販売の尤度はどれほどか、このリードが機会に転換される場合に潜在的な収益インパクトはどれほどか、このリードが機会に転換される場合に履歴観察に基づいて推定される販売サイクルはどれほどか、販売員のテリトリの中で潜在性の高い販売リードを発見し及び優先順位を付けることができるための、パイプラインの中の各リードについてのスコア／ランクはどれほどか、などである。
【０５９０】
販売代理人は、予測分析に基づいた各アカウントが買う可能性がある上位１０製品とこれらが成功裏に閉まる場合の売買サイズ、類似のアカウントの履歴トレンドに基づいた売買サイクルの長さ、などを決定することを求めることがある。販売代理人は、こうした推奨に基づいて行動するとき、自身のパイプラインを広げ、ノルマを満たし又は超えるように自身のチャンスを増加させることができ、こうして、販売生産性、ビジネスプロセス、見込み、及びリード資格を向上させることができる。提供され、予測分析にさらされる履歴データは、より良い予測結果を生み出す可能性があり、この予測結果は、様々なフィルタを用いたデータ探索を通して、又は提供される特化されたＵＩチャート及びインターフェースを通してユーザに伝達することができ、上記の各々が、ユーザのために予測データベースインデックスに対する必要な履歴及び予測クエリを扱うことができる。
【０５９１】
上記の履歴ベースのデータについてのさらなるユースケースには、さらに、閉まる／勝つという尤度と機会スコア付けとを含み得る。例えば、販売代理人及び販売マネージャは、自身の現在のパイプラインにおいて非常に多くの売買をしばしば有し、任意の月／四半期において自身の時間及び注意をどこに適用するべきかをやりくりしなければならないとき、上記のデータから恩恵を受け得る。こうした販売プロフェッショナルが販売期間の終わりに近づくとき、自身のノルマを満たすためのプレッシャーがかなり重要である。機会スコア付けは、こうした売買の閉まる確率に基づいてパイプラインの中で販売機会をランク付けするのを支援することができ、こうして、販売プロフェッショナルの全体効率を向上させることができる。
【０５９２】
さらなるデータが、履歴販売データと共に予測分析にさらされてもよい。さらなるデータソースには、例えば、コメント、ログを取られた販売活動、活動についての標準フィールド数（例えば、イベント、通話ログ、タスク等）、Ｃ‐レベル顧客連絡先、意思決定者連絡先、閉め日付、閉め日付が押した回数についての標準フィールド数、機会競合相手、標準フィールド機会、競合評価、執行（executive）スポンサーシップ、標準フィールド販売チーム対カスタムフィールド販売チーム及びそれぞれのチームのメンバー、関与する個人についてのチャッターフィード（chatter  feed）及びソーシャルネットワークデータ、売買に関与する執行スポンサー、ＤＳＲ（売買サポート要求（Deal  Support  Request））、並びに他のカスタムフィールドを含み得る。
【０５９３】
履歴ベースのデータは、販売代理人及び販売マネージャのために次購入尤度（Next  Likelihood  Purchase；ＮＬＰ）及び機会空白などのメトリックを生成する分析エンジンの予測能力に対して有用であり得る。例えば、四半期の販売ターゲットを達成することの責任を負う販売代理人又は販売マネージャは、どのタイプの顧客がどの製品を買っているか、どの見込みが既存の顧客に最も似ているか、正しい製品が正しい顧客に正しい価格で申し出られているか、我々は売買サイズを増加させるために顧客に何をさらに売ることができるか、などに疑いなく関心があるであろう。購入したと分かっている類似の顧客で機会について履歴データを分析することは、売り込みトレンドをあらわにする可能性があり、こうしたメトリックを用いることは、どんな顧客が次に買う可能性があるかに関する予測をするための価値ある洞察を生み出し、こうして、販売生産性及びビジネスプロセスを向上させる。
【０５９４】
エンドユーザに提供される別の能力は、販売プロフェッショナル及び他の関心のある関係者のために顧客参照を提供することである。販売プロフェッショナルは、潜在的な新しいビジネスリードのために顧客参照を必要とするとき、ＣＲＭソース、例えば、カスタムアプリケーション、イントラネットサイト、又はデータベースの中で捕捉される参照データなどから上記のような情報を検索し、一緒につなぎ合わせるのに、かなりの時間をしばしば費やす。しかしながら、分析エンジンのコアと関連するユースケースＧＵＩとは、こうした販売プロフェッショナルにキー情報を提供することができる。例えば、アプリケーションが、産業、地形、サイズ、類似製品足跡などに従ってグループ化されたデータを提供することができ、１つの場所において、どの参照資産、例えば、顧客成功ストーリー、ビデオ、ベストプラクティスなどが上記の顧客参照に利用可能であるか、どの参照顧客が潜在的な購買者に声をかけるのに利用可能であるか、連絡先の人の役割、例えば、ＣＩＯ、販売ＶＰ等に従ってグループ化された顧客参照情報、どの参照顧客が何度も利用されてきており、ゆえに今回は良い候補参照でない可能性があるか、現在又は過去の任意の時点において、誰が上記の参照顧客についての販売代理人又はアカウント代理人であるか、参照顧客に到達し又は参照顧客と連絡をとるのに、組織に対して誰が内部的に利用可能であるか、などを提供することができる。このタイプの情報は、データベースシステムの中に通常存在するが、便利な方法で編成されてはおらず、必要な紹介を取り出すのに過度に労働集約的なプロセスをもたらす。しかしながら、分析エンジンのコアは、データの中の上記の関係及び隠れた構造を識別し、次いでこれらは、特化されたＧＵＩインターフェースが例えばＧＵＩの機能性を介してＧＲＯＵＰコマンドタームをコールすることによって、エンドユーザのために取り出し、表示することができる。さらに、上記機能性は、最も理想的な又は最良の可能な参照顧客を多くの中から予測分析に基づいて識別し、提案された参照顧客を用いることの詳細を、スコア付けされた機会勝ち／閉め確率チャートに組み込むことができる。こうしたデータは、従来のシステムからは全体的に利用できない。
【０５９５】
別の実施形態によれば、販売プロフェッショナルのために予想調整を予測する機能性が提供される。例えば、ビジネスは一般に、その重大な管理戦略の一部として、販売予想のシステムを有する。しかし、こうした予想は、その本質から、不正確である。こうした予想がどの方向に間違っているかを知って、その理解をビジネスがどうなっているかの向上させたピクチャに変えることは、困難である。分析エンジンの予測分析は、既存の予想データを含む顧客組織の既存のデータを用いて、上記の予想を向上させることができる。例えば、履歴販売データと関連して過去の予想データを分析することは、ビジネスが傾向を示し、これから実現される必要がある将来へと既存の予想を向上させるのを支援し得る。販売マネージャは、自身のそれぞれの販売代理人に予想データに対する自身の判定又は調整を提供するようにしばしば尋ねられる。こうした活動は、上記の販売マネージャが自身のそれぞれの販売代理人の個々の予想を集約することを必要とし、このことは、非常に労働集約的なプロセスであり、誤りを導入する傾向がある。販売マネージャは、自身の代理人の売買に熟知しており、パイプライン評価の一部として定期的に代理人を精査するのに時間を費やす。向上させた予想結果は、こうしたマネージャが現在の予想データについての自身の判定及び評価の品質及び精度を向上させるのを支援し、手動で又はスプレッドシートなどの不十分なツールを用いてしばしば実行される集約機能を自動化するのを助けることができる。
【０５９６】
こうした一実施形態において、分析エンジンは、ある過去の時間スパン、例えば、過去８四半期又は他のビジネスに適切な時間期間について、予想対ノルマ対実績などの関係及び因果関係について、販売代理人ごとに過去の予想トレンドをマイニングする。分析エンジンの予測機能性又は特化されたＵＩインターフェースを用いて、現在の予想に適用することができる推奨される判定及び／又は調整が提供される。予想階層の様々なレベルにおける分析的評価を活用することによって、組織は、ある時間期間にわたる個々の販売代理人の規定されたノルマ、予想及び実績間の分散を低減させることができ、これにより、向上させた予想精度を介して、予想と実現された販売との間のデルタを狭めることができる。
【０５９７】
本明細書に開示された対象事項は、例として、特定の実施形態の観点から記載されたが、請求される実施形態は、開示された明示的に列挙された実施形態に限定されないことが理解されるべきである。反対に、本願開示は、当業者に明らかであろう様々な修正と類似の配置とをカバーすることが意図される。ゆえに、別記の請求項の範囲は、すべてのこうした修正と同様の配置とを包含するように、最も広い解釈を認められるべきである。上記の説明は、限定的でなく例示的なものであることが理解されるべきである。多くの他の実施形態が、上記の説明を読んで理解した当業者に明らかになるであろう。ゆえに、開示される対象事項の範囲は、別記の請求項を、該請求項が権利を与えられる均等物の完全な範囲と共に参照して、決定されるべきである。
【０５９８】
上記の実施形態につき以下の付記を残しておく。
〔付記１〕
ホスト組織における方法であって、
列及び行のデータセットからインデックスを生成するステップであって、上記インデックスは上記データセットの行と列とにおける確率的関係を表す、ステップと、
上記インデックスを上記ホスト組織のデータベース内に記憶するステップと、
上記ホスト組織の上記データベースを要求インターフェースを介して公開するステップと、
上記要求インターフェースにおいて、少なくとも（ｉ）ＰＲＥＤＩＣＴコマンドタームと、（ｉｉ）予測されるべき１又は複数の指定された列と、（ｉｉｉ）固定されるべき列名と該列名を固定するための値とを指定する１又は複数の列名＝値ペアと、を指定する上記データベースに対してのクエリを受信するステップと、
上記データベースに記憶された上記インデックスを用いて、上記列名＝値ペアに従って固定された予測されるべき上記１又は複数の指定された列の同時条件付き分布の表現を生成するように、上記ＰＲＥＤＩＣＴコマンドタームを用いて、予測されるべき上記１又は複数の指定された列と上記１又は複数の列名＝値ペアとを渡して上記データベースに問い合わせるステップと、
を含む方法。
〔付記２〕
上記問い合わせるステップに応答して、予測レコードセットを生成するステップであって、
上記予測レコードセットはその中に複数の要素を含み、上記要素の各々は、予測されるべき上記１又は複数の指定された列の各々についての値を指定する、ステップと、
上記クエリに応答して、上記予測レコードセットを返すステップと、
をさらに含む付記１に記載の方法。
〔付記３〕
上記ホスト組織の上記データベースを公開するステップは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、上記ＰｒｅＱＬ  ＡＰＩは、上記認証されたユーザにとってパブリックインターネットを介してアクセス可能である、付記１に記載の方法。
〔付記４〕
上記ＰＲＥＤＩＣＴコマンドタームを用いて上記データベースに問い合わせるステップは、上記データベースにＰｒｅＱＬクエリを渡すことを含み、上記ＰｒｅＱＬクエリは、
必要なタームとしての上記ＰＲＥＤＩＣＴコマンドタームと、
予測されるべき上記１又は複数の指定された列を指定する必要なＴＡＲＧＥＴタームと、
固定されるべき上記列名と該列名を固定するための上記値とを上記１又は複数の列名＝値ペアとして指定する必要なＷＨＥＲＥタームであって、上記必要なＷＨＥＲＥタームは、指定されたとおりの固定されるべき上記１又は複数の列と該列を固定するための対応する値とに確率的に関連する要素を返した予測レコードセットに上記クエリの出力を制限する、必要なＷＨＥＲＥタームと、
任意的なＦＲＯＭタームであって、該任意的なＦＲＯＭタームが指定されるとき、問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定する、任意的なＦＲＯＭタームと、
のクエリシンタックスを有する、付記３に記載の方法。
〔付記５〕
ホスト組織における方法であって、
列及び行のデータセットからインデックスを生成するステップであって、上記インデックスは上記データセットの行と列とにおける確率的関係を表す、ステップと、
上記ホスト組織のデータベース内に上記インデックスを記憶するステップと、
上記ホスト組織の上記データベースを要求インターフェースを介して公開するステップと、
上記要求インターフェースにおいて、ＲＥＬＡＴＥＤコマンドタームと該ＲＥＬＡＴＥＤコマンドタームのパラメータとして指定された列とを指定する上記データベースに対してのクエリを受信するステップと、
予測レコードセットを生成するように、上記ＲＥＬＡＴＥＤコマンドタームを用いて上記指定された列を渡して上記データベースに問い合わせるステップと、
上記クエリに応答して上記予測レコードセットを返すステップであって、上記予測レコードセットはその中に複数の要素を有し、上記の返される要素の各々は、上記ＲＥＬＡＴＥＤコマンドタームで渡された上記指定された列についての列識別子と信頼度指標とを含み、上記信頼度指標は、上記ＲＥＬＡＴＥＤコマンドで渡された上記指定された列と上記のそれぞれの要素について返される列識別子との間に潜在関係が存在するかどうかを示す、ステップと、
を含む方法。
〔付記６〕
上記予測レコードセット内で返される各要素に含まれる関連する列は、該関連する列が上記ＲＥＬＡＴＥＤコマンドタームで渡された上記指定された列と同じ列グルーピングの中に発生する回数の割合にさらに基づく、付記５に記載の方法。
〔付記７〕
上記ホスト組織の上記データベースを公開するステップは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、上記ＰｒｅＱＬ  ＡＰＩは、上記認証されたユーザにとってパブリックインターネットを介してアクセス可能であり、
上記ＲＥＬＡＴＥＤコマンドタームを用いて上記データベースに問い合わせるステップは、上記データベースにＰｒｅＱＬクエリを渡すことを含み、上記ＰｒｅＱＬクエリは、
必要なタームとしての上記ＲＥＬＡＴＥＤコマンドタームと、
任意的なＦＲＯＭタームであって、該任意的なＦＲＯＭタームが指定されるとき、問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、上記任意的なＦＲＯＭタームが指定されないとき、問い合わせられるべき上記１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、任意的なＦＲＯＭタームと、
上記ＲＥＬＡＴＥＤコマンドタームで渡されるべき列を指定するＴＡＲＧＥＴタームと、
提供されるとき、上記予測レコードセットで返されるべき最小受け入れ可能信頼度指標を指定する、任意的なＣＯＮＦＩＤＥＮＣＥタームと、
提供されるとき、上記予測レコードセット内に返されるべき要素の最大数量を指定する、任意的なＣＯＵＮＴタームと、
提供されるとき、上記予測レコードセットで返される要素の各々についての信頼度指標に従って、上記予測レコードセットの要素が昇順で返されるべきか降順で返されるべきかを指定する、任意的なＯＲＤＥＲ  ＢＹタームと、
のクエリシンタックスを有する、
付記５に記載の方法。
〔付記８〕
ホスト組織における方法であって、
列及び行のデータセットからインデックスを生成するステップであって、上記インデックスは上記データセットの行と列とにおける確率的関係を表す、ステップと、
上記ホスト組織のデータベース内に上記インデックスを記憶するステップと、
上記ホスト組織の上記データベースを要求インターフェースを介して公開するステップと、
上記要求インターフェースにおいて、ＳＩＭＩＬＡＲコマンドタームと該ＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された行と上記ＳＩＭＩＬＡＲコマンドタームのパラメータとして指定された列とを指定する上記データベースに対してのクエリを受信するステップと、
予測レコードセットを生成するように、上記ＳＩＭＩＬＡＲコマンドタームを用いて上記指定された行及び上記指定された列を渡して上記データベースに問い合わせるステップと、
上記クエリに応答して上記予測レコードセットを返すステップであって、上記予測レコードセットはその中に複数の要素を有し、上記予測レコードセットの上記の返される要素の各々は、（ｉ）上記ＳＩＭＩＬＡＲコマンドタームで渡された上記指定された行に対して、上記指定された列に基づいて、潜在構造に従って、類似であると評価されたデータセットの行に対応する行識別子と、（ｉｉ）上記ＳＩＭＩＬＡＲコマンドで渡された上記指定された行と上記のそれぞれの要素について返される行識別子との間の潜在関係の尤度を示す信頼度指標と、を含む、ステップと、
を含む方法。
〔付記９〕
（ｉ）返される上記予測レコードセットと該予測レコードセットで返される類似の行の各々についての信頼度指標とに基づく、上記クエリに応答した、上記ＳＩＭＩＬＡＲコマンドタームで渡された上記指定された行と比較して最も類似の行と、
（ｉｉ）返される上記予測レコードセットと該予測レコードセットで返される類似の行の各々についての信頼度指標とに基づく、上記クエリに応答した、上記ＳＩＭＩＬＡＲコマンドタームで渡された上記指定された行と比較して最も類似でない行と、
（ｉｉｉ）インターネットユーザによる検索に応答した、リコメンダシステムにおける関連製品であって、該関連製品は上記予測レコードセットで返される類似の行の１つに対応する、関連製品と、
のうち１つを返すことをさらに含む付記８に記載の方法。
〔付記１０〕
上記ホスト組織の上記データベースを公開するステップは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、上記ＰｒｅＱＬ  ＡＰＩは、上記認証されたユーザにとってパブリックインターネットを介してアクセス可能であり、
上記ＳＩＭＩＬＡＲコマンドタームを用いて上記データベースに問い合わせるステップは、上記データベースにＰｒｅＱＬクエリを渡すことを含み、上記ＰｒｅＱＬクエリは、
必要なタームとしての上記ＳＩＭＩＬＡＲコマンドタームと、
必要なタームとしてのＲＯＷタームであって、該ＲＯＷタームは上記ＳＩＭＩＬＡＲコマンドタームで渡されるべき行を指定する、ＲＯＷタームと、
必要なタームとしてのＣＯＬＵＭＮタームであって、該ＣＯＬＵＭＮタームは上記ＳＩＭＩＬＡＲコマンドタームで渡されるべき列を指定する、ＣＯＬＵＭＮタームと、
任意的なＦＲＯＭタームであって、該任意的なＦＲＯＭタームが指定されるとき、問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、上記任意的なＦＲＯＭタームが指定されないとき、問い合わせられるべき上記１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、任意的なＦＲＯＭタームと、
提供されるとき、上記予測レコードセットで返されるべき最小受け入れ可能信頼度指標を指定する、任意的なＣＯＮＦＩＤＥＮＣＥタームと、
提供されるとき、上記予測レコードセット内に返されるべき要素の最大数量を指定する、任意的なＣＯＵＮＴタームと、
提供されるとき、上記予測レコードセットで返される要素の各々についての信頼度指標に従って、上記予測レコードセットの要素が昇順で返されるべきか降順で返されるべきかを指定する、任意的なＯＲＤＥＲ  ＢＹタームと、
のクエリシンタックスを有する、
付記８に記載の方法。
〔付記１１〕
ホスト組織における方法であって、
列及び行のデータセットからインデックスを生成するステップであって、上記インデックスは上記データセットの行と列とにおける確率的関係を表す、ステップと、
上記ホスト組織のデータベース内に上記インデックスを記憶するステップと、
上記ホスト組織の上記データベースを要求インターフェースを介して公開するステップと、
上記要求インターフェースにおいて、ＧＲＯＵＰコマンドタームと該ＧＲＯＵＰコマンドタームのパラメータとして指定された列とを指定する上記データベースに対してのクエリを受信するステップと、
予測レコードセットを生成するように、上記ＧＲＯＵＰコマンドタームを用いて上記指定された列を渡して上記データベースに問い合わせるステップと、
上記クエリに応答して上記予測レコードセットを返すステップであって、上記予測レコードセットはその中に指定された複数のグループを有し、上記予測レコードセットの上記の返されるグループの各々は、上記データセットの１行又は複数行のグループを含む、ステップと、
を含む方法。
〔付記１２〕
上記データセットの行のすべては、いずれかの単一の行が上記複数のグループのうち２以上に割り当てられるオーバーラップなしに、上記予測レコードセットで返される上記複数のグループのうちちょうど１つに上記データセットのあらゆる行を割り当てることによって区切られる、付記１１に記載の方法。
〔付記１３〕
上記データセットの行は、いずれかの単一の行が上記複数のグループのうち２以上に割り当てられるオーバーラップなしに、上記複数のグループのうち最大で１つに上記データセットの行を割り当てることによってセグメント化され、
上記のセグメント化は、上記データセットのうち１又は複数の行が上記複数のグループのうちいずれにも割り当てられないままになることを、割り当てられないままの上記の対応する１又は複数の行についての信頼度指標が最小閾値を下回ることに起因して、もたらす、
付記１１に記載の方法。
〔付記１４〕
上記ホスト組織の上記データベースを公開するステップは、認証されたユーザに対して直接、予測問い合わせ言語アプリケーションプログラミングインターフェース（ＰｒｅＱＬ  ＡＰＩ）を公開することを含み、上記ＰｒｅＱＬ  ＡＰＩは、上記認証されたユーザにとってパブリックインターネットを介してアクセス可能であり、
上記ＧＲＯＵＰコマンドタームを用いて上記データベースに問い合わせるステップは、上記データベースにＰｒｅＱＬクエリを渡すことを含み、上記ＰｒｅＱＬクエリは、
必要なタームとしてのＧＲＯＵＰコマンドタームと、
必要なタームとしてのＣＯＬＵＭＮタームであって、該ＣＯＬＵＭＮタームは上記ＧＲＯＵＰコマンドタームで渡されるべき列を指定する、ＣＯＬＵＭＮタームと、
任意的なＦＲＯＭタームであって、該任意的なＦＲＯＭタームが指定されるとき、問い合わせられるべき１又は複数のテーブル、データセット、データソース及び／又はインデックスを指定し、上記任意的なＦＲＯＭタームが指定されないとき、問い合わせられるべき上記１又は複数のテーブル、データセット、データソース及び／又はインデックスについてデフォルト値が使用される、任意的なＦＲＯＭタームと、
提供されるとき、上記予測レコードセットの上記グループで返されるべき行についての最小受け入れ可能信頼度指標を指定する、任意的なＣＯＮＦＩＤＥＮＣＥタームと、
のクエリシンタックスを有する、
付記１１に記載の方法。
〔付記１５〕
表形式のデータセットを受信するステップであって、上記データセットは複数の行及び複数の列を有する、ステップと、
上記データセットの要素間の確率的関係を識別し、説明するように、上記データセットにわたって同時確率分布を学習することによって、上記データセットの行と列とにおける確率的関係を表すインデックスを生成するように上記データセットを処理するステップと、
上記インデックスをデータベースに記憶するステップと、
上記データベースの中の上記インデックスに問い合わせるためのアプリケーションプログラミングインターフェース（ＡＰＩ）を公開するステップと、
上記データベースの中の上記インデックスに対して予測クエリ又は潜在構造クエリの要求を受信するステップと、
上記ＡＰＩを介した上記要求に基づく結果について、上記データベースに問い合わせるステップと、
上記要求に応答して上記結果を返すステップと、
を含む方法。
〔付記１６〕
上記同時確率分布を学習することは、指定された構成パラメータによって制御され、上記指定された構成パラメータは、上記データセットを処理する時間の最大期間と、上記データセットを処理する繰り返しの最大数と、上記データセットを処理する繰り返しの最小数と、上記データセットを処理することにより消費されるべき顧客リソースの最大量と、上記データセットを処理することに費やされるべき最大加入者料金と、上記データセットの処理により達成されるべき最小閾予測品質レベルと、上記処理するステップを続けるために必要な信頼度品質尺度に対する最小の向上と、上記処理するステップにより生成されるべき上記インデックスの最大又は最小数と、のうち１又は複数を含む、付記１５に記載の方法。
〔付記１７〕
インデックスを生成するように上記データセットを処理するステップは、上記インデックスを生成するように上記データセットにわたって同時確率分布を繰り返し学習することを含み、
当該方法は、
上記データセットの処理により生成される上記インデックスの信頼度品質尺度を周期的に決定するステップと、
上記信頼度品質尺度が指定された閾値を達成したとき、上記データセットの処理を終了するステップと、
をさらに含む、付記１５に記載の方法。
〔付記１８〕
上記データセットを処理することにより生成される上記インデックスからの結果を要求する予測クエリ又は潜在構造クエリを受信するステップと、
上記データセットの処理を終了する前に上記の生成されたインデックスに対して上記クエリを実行するステップと、
上記結果を要求する上記予測クエリ又は上記潜在構造クエリに応答して予測レコードセットを返すステップと、
上記データセットの処理がまだ完了していないと示す結果を備えた通知、若しくは上記信頼度品質尺度が上記指定された閾値を下回ると示す結果を備えた通知、又は双方を返すステップと、
をさらに含む付記１７に記載の方法。
〔付記１９〕
生成された上記インデックスについての信頼度品質尺度を決定するステップ
をさらに含み、上記信頼度品質尺度は、
上記データセット内に観察され及び存在する値に対応する既知の結果と上記データセットの処理により生成された上記インデックスに問い合わせることにより得られる予測結果とを比較すること、又は
上記データセットからのグラウンドトルースデータと上記データセットの処理により生成された上記インデックスに問い合わせることにより得られる１又は複数の予測結果とを比較すること、
のうち１つによって決定される、付記１５に記載の方法。
〔付記２０〕
データセットを受信するステップは、リモートのコンピューティング装置にとってパブリックインターネットを介してアクセス可能であるオンデマンドのクラウドベースのサービスを提供するホスト組織において、上記データセットを受信することを含み、
上記インデックスをデータベースに記憶するステップは、上記ホスト組織において動作する予測データベースシステムに、該予測データベースシステムのメモリに記憶され、かつ上記予測データベースシステムの１又は複数のプロセッサを介して実行される動作ロジックを介して、上記インデックスを記憶することを含み、
上記インデックスに問い合わせるための上記ＡＰＩを公開するステップは、上記リモートのコンピューティング装置に予測問い合わせ言語（ＰｒｅＱＬ）ＡＰＩを公開することを含む、
付記１５に記載の方法。
【図１】
2019057286.tif 000008
【図２】
2019057286.tif 000009
【図３】
2019057286.tif 000010
【図４】
2019057286.tif 000011
【図５Ａ】
2019057286.tif 000012
【図５Ｂ】
2019057286.tif 000013
【図６】
2019057286.tif 000014
【図７】
2019057286.tif 000015
【図８】
2019057286.tif 000016
【図９】
2019057286.tif 000017
【図１０Ａ】
2019057286.tif 000018
【図１０Ｂ】
2019057286.tif 000019
【図１１】
2019057286.tif 000020
【図１２Ａ】
2019057286.tif 000021
【図１２Ｂ】
2019057286.tif 000022
【図１２Ｃ】
2019057286.tif 000023
【図１２Ｄ】
2019057286.tif 000024
【図１２Ｅ】
2019057286.tif 000025
【図１３Ａ】
2019057286.tif 000026
【図１３Ｂ】
2019057286.tif 000027
【図１３Ｃ】
2019057286.tif 000028
【図１４Ａ】
2019057286.tif 000029
【図１４Ｂ】
2019057286.tif 000030
【図１４Ｃ】
2019057286.tif 000031
【図１５Ａ】
2019057286.tif 000032
【図１５Ｂ】
2019057286.tif 000033
【図１５Ｃ】
2019057286.tif 000034
【図１６Ａ】
2019057286.tif 000035
【図１６Ｂ】
2019057286.tif 000036
【図１６Ｃ】
2019057286.tif 000037
【図１６Ｄ】
2019057286.tif 000038
【図１６Ｅ】
2019057286.tif 000039
【図１６Ｆ】
2019057286.tif 000040
【図１６Ｇ】
2019057286.tif 000041
【図１７Ａ】
2019057286.tif 000042
【図１７Ｂ】
2019057286.tif 000043
【図１７Ｃ】
2019057286.tif 000044
【図１７Ｄ】
2019057286.tif 000045
【図１７Ｅ】
2019057286.tif 000046
【図１８】
2019057286.tif 000047
【図１９Ａ】
2019057286.tif 000048
【図１９Ｂ】
2019057286.tif 000049
【図１９Ｃ】
2019057286.tif 000050
【図１９Ｄ】
2019057286.tif 000051
【図１９Ｅ】
2019057286.tif 000052
【図２０Ａ】
2019057286.tif 000053
【図２０Ｂ】
2019057286.tif 000054
【図２０Ｃ】
2019057286.tif 000055
【図２０Ｄ】
2019057286.tif 000056
【図２０Ｅ】
2019057286.tif 000057
【図２０Ｆ】
2019057286.tif 000058
【図２０Ｇ】
2019057286.tif 000059
【図２１Ａ】
2019057286.tif 000060
【図２１Ｂ】
2019057286.tif 000061
【図２１Ｃ】
2019057286.tif 000062
【図２２Ａ】
2019057286.tif 000063
【図２２Ｂ】
2019057286.tif 000064
【図２２Ｃ】
2019057286.tif 000065
【外国語明細書】
2019057286000001.pdf