(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-01
(45)【発行日】2024-08-09
(54)【発明の名称】データ可視化の言語ベースの操作
(51)【国際特許分類】
G06F 16/242 20190101AFI20240802BHJP
G06F 16/248 20190101ALI20240802BHJP
G06F 3/16 20060101ALI20240802BHJP
G06F 3/04842 20220101ALI20240802BHJP
【FI】
G06F16/242
G06F16/248
G06F3/16 650
G06F3/04842
(21)【出願番号】P 2021555549
(86)(22)【出願日】2020-01-27
(86)【国際出願番号】 US2020015145
(87)【国際公開番号】W WO2020190372
(87)【国際公開日】2020-09-24
【審査請求日】2022-09-07
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ブルーメン,ジュリア
【審査官】長 由紀子
(56)【参考文献】
【文献】特開2005-267647(JP,A)
【文献】米国特許第09501585(US,B1)
【文献】特開2004-046394(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-958
G06F 3/16
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって実行されると、以下の動作を実行させるための命令
を備えるプログラムであって、
前記動作は、
複数の次元を含む多次元データセットを示すデータ可視化を提示することを含み、前記複数の次元の各次元は、前記多次元データセットの複数の属性のうち、1つ以上の属性を含み、
前記データ可視化との特定の対話に関連する言語を含む第1のユーザ入力を受け入れることを含み、
前記特定の対話は、前記データ可視化における前記多次元データセットの1つ以上のサブセットの提示を操作するように構成され、
前記第1のユーザ入力は、前記多次元データセットの任意の特定のサブセットを特定せず、
前記多次元データセットのうちのどのサブセットが前記データ可視化の操作に利用可能であるかを示すメタデータに基づいて、前記メタデータによって示される2つ以上のサブセットを前記特定の対話の2つ以上の候補サブセットとして選択することと、
前
記2つ以上の候補サブセット
を提示することと、
提示された前記多次元データセットの前記2つ以上の候補サブセットから、前記多次元データセットの特定のサブセットを選択する第2のユーザ入力を受け入れることと、
少なくとも前記第1のユーザ入力および前記第2のユーザ入力に基づいて、前記データ可視化との前記特定の対話に対応する完全なコマンドを生成することと、
前記データ可視化における前記多次元データセットの前記特定のサブセットの提示を操作するように、前記完全なコマンドに基づいて前記特定の対話を実行することとを含む、プログラム。
【請求項2】
前記1つ以上のプロセッサによって実行されると、前記完全なコマンドに基づいてクエリを生成させる命令をさらに
備え、
前記特定の対話を実行することは、前記クエリを前記多次元データセットに適用することを含む、請求項1に記載のプログラム。
【請求項3】
前記特定の対話を実行することは、前記多次元データセットに照会することなく実行される、請求項1または2に記載のプログラム。
【請求項4】
前記1つ以上のプロセッサによって実行されると、対話用語集に基づいて、前記第1の
ユーザ入力の前記言語が前記特定の
対話にマッピングすることを決定させる命令をさらに
備える、請求項1~3のいずれか1項に記載のプログラム。
【請求項5】
前記メタデータによって示される前記2つ以上のサブセットを前記特定の対話の前記2つ以上の候補サブセットとして選択することは、前記多次元データセットの
うち、前記メタデータによって示され、かつ、前記データ可視化に既に提示されている2以上のデータセットを前記特定の対話の前記2つ以上の候補サブセットとして選択することを含む、請求項1~4のいずれか1項に記載のプログラム。
【請求項6】
前記メタデータによって示される前記2つ以上のサブセットを前記特定の対話の前記2つ以上の候補サブセットとして選択することは、
少なくとも前記第1のユーザ入力のコンテキストに基づいて
、前記多次元データセット
における、前記コンテキストに関連する特定の種類のデー
タを決定することと、
前記多次元データセットの
うち、前記メタデータによって示され、かつ、前記特定の種類
である2つ以上のサブセットを
前記特定の対話の前記2つ以上の候補サブセットとして選択することとを含む、請求項1~
4のいずれか1項に記載のプログラム。
【請求項7】
前記第1のユーザ入力は、モバイル装置上で動作するモバイルデータ解析アプリケーションに提供される音声入力またはテキスト入力のうちの1つ以上を含む、請求項1~
6のいずれか1項に記載のプログラム。
【請求項8】
前記特定の対話は、前
記データ可視化において特定の次元の全ての属性を示し、
前記2つ以上の候補サブセットは、前記多次元データセットの次元である、請求項1~
7のいずれか1項に記載のプログラム。
【請求項9】
前記特定の対話は、前
記データ可視化において、特定の次元でデータを集約し、
前記2つ以上の候補サブセットは、前記多次元データセットの次元である、請求項1~
8のいずれか1項に記載のプログラム。
【請求項10】
前記特定の対話は、前
記データ可視化において、特定の次元でデータをソートし、
前記2つ以上の候補サブセットは、前記多次元データセットの次元である、請求項1~
9のいずれか1項に記載のプログラム。
【請求項11】
前記特定の対話は、前
記データ可視化において特定の属性を強調し、
前記2つ以上の候補サブセットは、前記多次元データセットの属性である、請求項1~
10のいずれか1項に記載のプログラム。
【請求項12】
前記特定の対話は、前記データ可視化において標的属性以外の全ての属性を削除し、
前記2つ以上の候補サブセットは、前記多次元データセットの属性である、請求項1~
11のいずれか1項に記載のプログラム。
【請求項13】
前記
標的属性は、前記複数の次元のうち、特定の次元に関連し、
前記特定の対話は、前記特定の次元のサブ次元に関連する前記
標的属性の1つ以上のサブ属性をさらに提示する、請求項
12に記載のプログラム。
【請求項14】
前記特定の対話を実行する前に、前記データ可視化は、前記
標的属性とは異なる属性に関連するデータを提示
し、
前記特定の対話を実行することは、
前記標的属性とは異なる前記属性に関連する前記データを削除することと、
前記標的属性に関連するデータを提示することとを含む、請求項
12に記載のプログラム。
【請求項15】
前記特定の対話は、前記データ可視化において2つ以上の特定の属性に関連するデータの比較を提示し、
前記多次元データセットの前記2つ以上の候補サブセットは、前記多次元データセットの属性である、請求項1~
14のいずれか1項に記載のプログラム。
【請求項16】
前記特定の対話は、特定の指標に従って、前
記データ可視化においてデータを提示し、
前記多次元データセットの前記2つ以上の候補サブセットは、前記多次元データセットの指標である、請求項1~
15のいずれか1項に記載のプログラム。
【請求項17】
前記1つ以上のプロセッサによって実行されると、対話用語集に基づいて、前記第1の
ユーザ入力の前記言語が前記特定の
対話にマッピングすることを決定させる命令をさらに
備え、
前記特定の対話を実行することは、前記多次元データセットに照会することなく実行され、
前記第1のユーザ入力は、モバイル装置上で動作するモバイルデータ解析アプリケーションに提供される音声入力またはテキスト入力のうちの1つ以上を含み、
前記多次元データセットの前記2つ以上の候補サブセットは、前記多次元データセットの次元、前記多次元データセットの属性、または前記多次元データセットの指標のうち、1つ以上である、請求項1~
16のいずれか1項に記載のプログラム。
【請求項18】
方法であって、
複数の次元を含む多次元データセットを示すデータ可視化を提示することを含み、前記複数の次元の各次元は、前記多次元データセットの複数の属性のうち、1つ以上の属性を含み、
前記データ可視化との特定の対話に関連する言語を含む第1のユーザ入力を受け入れることを含み、
前記特定の対話は、前記データ可視化における前記多次元データセットの1つ以上のサブセットの提示を操作するように構成され、
前記第1のユーザ入力は、前記多次元データセットの任意の特定のサブセットを特定せず、
前記多次元データセットのうちのどのサブセットが前記データ可視化の操作に利用可能であるかを示すメタデータに基づいて、前記メタデータによって示される2つ以上のサブセットを前記特定の対話の2つ以上の候補サブセットとして選択することと、
前
記2つ以上の候補サブセット
を提示することと、
提示された前記多次元データセットの前記2つ以上の候補サブセットから、前記多次元データセットの特定のサブセットを選択する第2のユーザ入力を受け入れることと、
少なくとも前記第1のユーザ入力および前記第2のユーザ入力に基づいて、前記データ可視化との前記特定の対話に対応する完全なコマンドを生成することと、
前記データ可視化における前記多次元データセットの前記特定のサブセットの提示を操作するように、前記完全なコマンドに基づいて前記特定の対話を実行することとを含み、
前記方法は、ハードウェアプロセッサを備える少なくとも1つの装置によって実行される、方法。
【請求項19】
請求項1~
17のいずれか1項に記載のプログラムを格納したメモリと、
前記プログラムを実行するための1つまたは複数のプロセッサとを備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示は、データ解析に関する。特に、本開示は、可視データ解析に関する。
【背景技術】
【0002】
背景
データ解析は、プログラマティックデータ処理技術を用いて、生データから、意味のある情報を抽出する。この文脈において、「生データ」は、さらなる処理を受けない場合、データ解析によって提供される意味のある情報の一部または全部を提供しないデータを指す。生データは、データ解析によって処理される前に他の処理によって処理されてもよい。例えば、ビジネスアプリケーション(すなわち、1つ以上の営業活動、例えば、販売、供給チェーン管理、人事、金融、顧客関係管理、および/または別の営業活動またはそれらの組み合わせをサポートするアプリケーション)によって生成されたデータは、データ解析の生データとしてみなすことができる。
【0003】
データ解析は、多くの異なる種類のプログラマティックデータ処理技術を使用することができる。例えば、データ解析は、データ選別、集約、重複排除、トレンド分析、統計分析、および/または他の種類の処理技術またはそれらの組み合わせのうち、1つ以上を使用することができる。データ解析は、生データを、機械学習モデル、統計モデル、予測モデル、および/または別の種類のデータ処理モデルまたはそれらの組み合わせに適用することができる。データ解析は、多くの異なるフォーマットで、意味のある情報を生成することができる。例えば、データ解析は、データベースエントリ、チャート、グラフ、テーブル、リスト、英数字テキスト、および/または他の形式またはそれらの組み合わせを生成することができる。
【0004】
可視データ解析は、1人以上のユーザがデータ解析によって生成された情報を閲覧し、当該情報と対話することを可能にするグラフィカルユーザインターフェイスを提供する。グラフィカルユーザインターフェイスは、データ解析によって生成された情報の視覚表現に対応するデータ可視化を提示する。グラフィカルユーザインターフェイスは、ユーザがデータ可視化における要素の提示を手動で操作することを可能にする制御素子(すなわち、対話型ユーザインターフェイス素子)を含む。データ可視化の複雑さに応じて、グラフィカルユーザインターフェイスは、多くの制御素子を含むことができる。代替的にまたは追加的に、ユーザが制御素子を用いて、データ可視化における要素の提示を操作することは、基礎となるデータ解析システムを高度に理解する必要がある。
【0005】
一部のコンピューティング装置は、手動制御の可視データ解析に適していない。例えば、モバイル装置(例えば、携帯電話、タブレットなど)は、典型的には、比較的に小さい画面を有するため、データ可視化および/または手動制御を提示するための利用可能なスペースが少ない。さらに、一部のコンピューティング装置は、物理的なキーボードおよび/またはマウスを有しないため、アクセス制御に利用可能なユーザ対話のモードを制限する。このような制約によって、非モバイルコンピューティング装置上で動作する可視データ解析ツールに比べて、モバイル装置上で動作する可視データ解析ツールの利用可能な機能および/または制御素子は、制限され得る。
【0006】
コンピュータシステムにおいて、多次元データベースは、データをハイパーキューブまたは多次元アレイとして示す。多次元データベースは、複数の次元を有する。各次元は、データの異なるインデックスに対応する。一例として、多次元データベースは、従業員データを記憶する。この例では、異なる次元は、「従業員」、「部署」、「給料」を含むことができる。異なる次元は、キューブの軸として可視化することができる。多次元データベースは、任意の数の次元を有することができる。多次元データベース内の特定のデータ値は、属性と呼ばれてもよい。例えば、多次元データベースの次元「部署」は、属性「販売」、「法律」、「人事」などを含むことができる。データ解析は、プログラマティックデータ処理技術を用いて、多次元データベースのデータから、意味のある情報を抽出することができる。可視データ解析ツールは、1人以上のユーザがその情報を閲覧し、その情報と対話することを可能にするグラフィカルユーザインターフェイスを提供することができる。
【0007】
本項に記載されたアプローチは、達成され得るアプローチであるが、必ずしもこれまでに想到され得るまたは達成され得るアプローチであるとは限らない。したがって、別段の指示がない限り、本項に記載されたアプローチのいずれも、単に本項に含まれるというだけで、先行技術として適格であると想定されるべきではない。
【0008】
実施形態は、例として示されており、添付の図面によって限定されない。なお、本開示において「ある」または「1つの」実施形態を言及する場合、必ずしも同じ実施形態に限定されず、少なくとも1つを意味する。
【図面の簡単な説明】
【0009】
【
図1】1つ以上の実施形態に係るシステムを示す図である。
【
図2A】1つ以上の実施形態に係るデータ可視化の言語ベースの操作を行うための一連の動作を示す図である。
【
図2B】1つ以上の実施形態に係るデータ可視化の言語ベースの操作を行うための一連の動作を示す図である。
【
図2C】1つ以上の実施形態に係るデータ可視化の言語ベースの操作を行うための一連の動作を示す図である。
【
図3A】1つ以上の実施形態に係る多次元データベース構造の一例を示す図である。
【
図3B】1つ以上の実施形態に係る多次元データベース構造の一例を示す図である。
【
図4】1つ以上の実施形態に係る対話用語集の一例を示す図である。
【
図5A】1つ以上の実施形態に係る一例を示す図である。
【
図5B】1つ以上の実施形態に係る一例を示す図である。
【
図5C】1つ以上の実施形態に係る一例を示す図である。
【
図5D】1つ以上の実施形態に係る一例を示す図である。
【
図5E】1つ以上の実施形態に係る一例を示す図である。
【
図5F】1つ以上の実施形態に係る一例を示す図である。
【
図5G】1つ以上の実施形態に係る一例を示す図である。
【
図5H】1つ以上の実施形態に係る一例を示す図である。
【
図5I】1つ以上の実施形態に係る一例を示す図である。
【
図6A】1つ以上の実施形態に係る一例を示す図である。
【
図6B】1つ以上の実施形態に係る一例を示す図である。
【
図6C】1つ以上の実施形態に係る一例を示す図である。
【
図6D】1つ以上の実施形態に係る一例を示す図である。
【
図6E】1つ以上の実施形態に係る一例を示す図である。
【
図6F】1つ以上の実施形態に係る一例を示す図である。
【
図6G】1つ以上の実施形態に係る一例を示す図である。
【
図7】1つ以上の実施形態に係るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0010】
詳細な説明
以下の記載において、説明の目的のために、多数の具体的な詳細が記載され、完全な理解を提供する。これらの具体的な詳細なくても、1つ以上の実施形態を実施することができる。一実施形態において説明された特徴は、別の実施形態において説明された特徴と併用されてもよい。いくつかの例において、本発明を不必要に曖昧にしないように、ブロック図を参照して周知の構造および装置を説明する。
【0011】
1.全体の概要
2.アーキテクチャの概要
3.データ可視化の言語ベースの操作
4.例示的な実施例
4.1 多次元データベース構造
4.2 対話用語集
4.3 ユーザインターフェイス
5.その他、拡張
6.ハードウェアの概要
7.コンピュータネットワークおよびクラウドネットワーク
8.マイクロサービスアプリケーション
【0012】
1.全体の概要
1つ以上の実施形態は、データ可視化を操作する。データセットを表す現在のデータ可視化の場合、システムは、言語ベースのユーザ入力(すなわち、テキストおよび/またはスピーチ)を受け入れ、ユーザ入力に基づいて、データ可視化においてデータセットの1つ以上のサブセットの提示を操作する。一実施形態において、データセットは、多次元データセットであり、システムは、言語ベースのユーザ入力を受け入れて、データ可視化に示された次元、属性および/または指標の提示を操作する。
【0013】
また、1つ以上の実施形態は、言語ベースのユーザ入力を提供するユーザを支援する。データ可視化との対話を特定し、データセットのサブセットを特定しないユーザ入力の場合、システムは、対話がデータセットの1つ以上の候補サブセットに適用可能であることを決定する。システムは、候補サブセットのうちの1つ以上を選択する追加のユーザ入力を受け入れる。対話に候補サブセットを提示することは、言語ベースのユーザ入力、特に限定された機能および/または制御素子を有する装置(例えば、より小さな画面を有するモバイル装置および/または物理的なキーボードおよびマウスを欠くモバイル装置)上の言語ベースのユーザ入力を容易にする。
【0014】
データ解析システムは、多くの異なる方法で、対話がデータセットの候補サブセットに適用可能であることを決定することができる。一実施形態において、データ可視化において既に提示されているデータのサブセットは、対話の候補である。代替的にまたは追加的に、データ解析システムは、データ可視化に関連するメタデータ中の1つ以上の候補サブセットを特定することができる。代替的にまたは追加的に、データ解析システムは、対話が特定の種類のデータに適用可能であることを決定することができる。データ解析システムは、データセットの1つ以上の候補サブセットを、特定の種類のものとして特定することができる。対話が1つ以上の特定の候補サブセットに適用可能であることを決定することによって、ユーザに提示された候補の関連性を改善し、ユーザ経験の速度および効率を改善することができる。
【0015】
本明細書に記載され、および/または特許請求の範囲に列挙された1つ以上の実施形態は、この全体の概要に含まれなくてもよい。
【0016】
2.アーキテクチャの概要
図1は、1つ以上の実施形態に係るシステム100を示す。
図1に示すように、システム100は、ユーザ装置102と、データ解析サービス108と、データレポジトリ116と、それらの様々なコンポーネントとを含む。1つ以上の実施形態において、システム100は、
図1に示されたコンポーネントよりも多いまたは少ないコンポーネントを含むことができる。
図1に示されたコンポーネントは、互いに局所的または遠隔的なものであってもよい。
図1に示されたコンポーネントは、ソフトウェアおよび/またはハードウェアで実装されてもよい。各コンポーネントは、複数のアプリケーションおよび/またはマシンに分散されてもよい。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンに合併されてもよい。1つのコンポーネントに関して説明される動作は、別のコンポーネントによって実行されてもよい。コンピュータネットワークに関連するさらなる実施形態および/または実施例は、以下に説明される。
【0017】
一実施形態において、データ解析サービス108は、本明細書に記載されたデータ可視化の言語ベースの操作を行うための動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指す。データ可視化の言語ベースの操作を行うための動作の例は、以下に説明される。データ解析サービス108は、プログラマティックデータ処理技術を用いて、データリポジトリ116に記憶されたデータセット118から、意味のある情報を抽出するように構成されてもよい。代替的にまたは追加的に、データ解析サービス108は、データ可視化106を生成し、ユーザインターフェイス104に提示するために、当該データ可視化をユーザ装置102に送信するように構成されてもよい。データ可視化106は、データ解析によって生成された情報の視覚表現に対応する。
【0018】
一実施形態において、ユーザインターフェイス104は、ユーザがデータ可視化106における要素の提示を手動で操作することを可能にする制御素子(すなわち、対話型ユーザインターフェイス要素)を含む。より一般的には、ユーザインターフェイス104は、ユーザとデータ解析サービス108との間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを含む。ユーザインターフェイス104は、ユーザインターフェイス要素を提供し、ユーザインターフェイス要素を介して入力を受け入れる。インターフェイスの例は、グラフィカルユーザインターフェイス(GUI)、コマンドラインインターフェイス(CLI)、触覚インターフェイス、および音声コマンドインターフェイスを含む。ユーザインターフェイス要素の例は、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日付および時間セレクタ、コマンドライン、スライダ、ページ、およびフォームを含む。
【0019】
一実施形態において、ユーザインターフェイス104の異なるコンポーネントは、異なる言語で指定される。ユーザインターフェイス要素の挙動は、JavaScript(登録商標)などの動的なプログラミング言語で指定される。ユーザインターフェイス要素の内容は、ハイパーテキストマークアップ言語(HTML)またはXMLユーザインターフェイス言語(XUL)などのマークアップ言語で指定される。ユーザインターフェイス要素のレイアウトは、カスケードスタイルシート(CSS)などのスタイルシート言語で指定されている。代替的には、ユーザインターフェイスは、Java(登録商標)、CまたはC++などの1つ以上の他の言語で指定される。
【0020】
一実施形態において、データ解析サービス108は、システムコマンド110を含む。システムコマンド110は、データ解析機能を実行するためにデータ解析サービス108によって実行されるコマンドを含む。具体的には、システムコマンド110は、データ可視化106におけるデータセット118の1つ以上のサブセットの提示を操作するように、データ解析サービス108によって実行される1つ以上のコマンドを含む。データセットの「サブセット」とは、本明細書に使用された場合、データセットの1つ以上の別個の要素および/または要素の1つ以上のグループを指す。多次元データセットのサブセットは、次元、属性、指標、および/または多次元データセットの任意の他のサブセットを含むことができる。リレーショナルデータベースのサブセットは、テーブル、行、列、セル、および/またはリレーショナルデータベースの任意の他のサブセットを含むことができる。データ可視化を操作するためのコマンドの例は、以下に説明される。
【0021】
代替的にまたは追加的に、システムコマンド110は、データリポジトリ116に照会するための1つ以上のコマンドを含むことができる。例えば、データレポジトリ116が多次元データベースである場合、システムコマンド110は、データレポジトリ116に適用される多次元表現(MDX)クエリを生成するための1つ以上のコマンドを含むことができる。データレポジトリ116がリレーショナルデータベースである場合、システムコマンド110は、データレポジトリ116に適用される構造化照会言語(SQL)クエリを生成するための1つ以上のコマンドを含むことができる。代替的にまたは追加的に、データ解析サービス108は、データ可視化106を操作するためのシステムコマンド110の一部としてのクエリを生成および/または実行するように構成されてもよい。
【0022】
一実施形態において、データ解析サービス108は、自然言語プロセッサ112を含む。自然言語プロセッサ112は、言語ベースのユーザ入力(すなわち、テキスト入力および/または音声入力)から意味を抽出するために、本明細書に記載された動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指す。具体的には、自然言語プロセッサ112は、言語ベースのユーザ入力を受け入れ、言語ベースのユーザ入力を1つ以上のシステムコマンド110にマッピングするように構成されてもよい。自然言語プロセッサ112は、自然言語解析(例えば、自然言語解析および/または他の種類の自然言語解析またはそれらの組み合わせを実行するようにトレーニングされた機械学習モデル)を用いて、言語ベースのユーザ入力を解釈することができる。具体的には、自然言語プロセッサ112は、コンテキストに基づいて、言語ベースのユーザ入力内の関連単語および/またはフレーズを分離することができる。自然言語プロセッサ112は、対話用語集114を用いて、単語またはフレーズが1つ以上のシステムコマンド110に対応するか否かを判断することができる。一実施形態において、対話用語集114は、自然言語単語および/またはフレーズと特定のシステムコマンド110との間のマッピングを含む。以下で説明するように、データ解析サービス108は、指定されたシステムコマンド110を適用するための候補を提示するように構成されてもよい。
【0023】
一実施形態において、データリポジトリ116は、データセット118を記憶するための任意の記憶ユニットおよび/または装置(例えば、ファイルシステム、データベース、テーブルの集合、または任意の他の記憶メカニズム)である。データレポジトリ116は、複数の異なる記憶ユニットおよび/または装置を含むことができる。複数の異なる記憶ユニットおよび/または装置は、同じまたは異なる種類であってもよく、同じまたは異なる物理サイトに配置されてもよい。また、データレポジトリ116は、システム100の他のコンポーネントと同様のコンピューティングシステム上で実装されてもよく、または実行されてもよい。代替的にまたは追加的に、データレポジトリ116は、システム100の1つ以上の他のコンポーネントとは別個のコンピューティングシステム上で実装されてもよく、または実行されてもよい。データレポジトリ116は、直接接続によってまたはネットワークを介して、システム100の1つ以上の他のコンポーネントに通信可能に結合されてもよい。
【0024】
一実施形態において、データレポジトリ116は、多次元データベースである。具体的には、データセット118は、1つ以上の次元120および1つ以上の属性122を含む多次元データセットであってもよい。代替的にまたは追加的に、データセット118は、1つ以上の指標(図示せず)を含むことができる。多次元データベース構造の一例は、以下に説明される。
【0025】
一実施形態において、
図1に示す1つ以上のコンポーネントは、1つ以上のデジタル装置上で実装される。「デジタル装置」という用語は、一般に、プロセッサを含む任意のハードウェア装置を指す。デジタル装置とは、アプリケーションまたは仮想マシンを実行する物理的装置を指してもよい。デジタル装置の例は、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、特定機能のハードウェア装置、ハードウェアルータ、ハードウェアスイッチ、ハードウェアファイアウォール、ハードウェアファイアウォール、ハードウェアネットワークアドレストランスレータ(NAT)、ハードウェアロードバランサ、メインフレーム、テレビ、コンテンツ受信機、セットトップボックス、プリンタ、携帯電話機、スマートフォン、携帯情報端末(PDA)、無線受信機および/または送信機、基地局、通信管理装置、ルータ、スイッチ、コントローラ、アクセスポイント、および/またはクライアント装置を含む。
【0026】
3.データ可視化の言語ベースの操作
図2A~2Cは、1つ以上の実施形態に係るデータ可視化の言語ベースの操作を行うための一連の動作を示す。
図2A~2Cに示された1つ以上の動作は、共に変更され、再配置されまたは省略されてもよい。したがって、
図2A~2Cに示された動作の特定の順序は、1つ以上の実施形態の範囲を限定するものとして解釈されるべきではない。
【0027】
一実施形態において、システム(例えば、
図1のシステム100)は、多次元データセットを示すデータ可視化を提示する(工程202)。データ可視化を提示するために、データ解析サービスは、プログラマティックデータ処理技術を用いて、データセット(例えば、多次元データベース内の多次元データセット)から、意味のある情報を抽出することができる。データ解析サービスは、データ可視化を生成し、ユーザインターフェイスに提示するためにデータ可視化をユーザ装置に送信する。代替的にまたは追加的に、実施形態は、リレーショナルデータベース内のデータセットおよび/または多次元データセットではない別の種類のデータセットを用いて実施されてもよい。
【0028】
一実施形態において、システムは、ユーザ入力を受け入れる(工程204)。ユーザ入力は、言語ベースのユーザ入力、すなわち、テキストベースおよび/または音声入力であってもよい。例えば、ユーザは、物理キーボードまたは仮想キーボードを用いて入力を打ち込むことができる。代替的にまたは追加的に、ユーザは、入力をマイクロフォンに話すことができる。代替的にまたは追加的に、ユーザは、特定のユーザ入力に対応するユーザインターフェイスコマンドを選択してもよい。
【0029】
一実施形態において、システムは、ユーザ入力に対して自然言語処理を実行する(工程206)。自然言語処理は、自然言語分析を用いて、言語ベースのユーザ入力を解釈する。自然言語分析は、コンテキストに基づいて、言語ベースのユーザ入力内の関連単語および/またはフレーズを分離する。具体的には、自然言語分析は、言語ベースのユーザ入力内の1つ以上の動詞を分離することができる。動詞は、データ可視化を操作する1つ以上の対話に対応してもよい。代替的にまたは追加的に、自然言語分析は、言語ベースのユーザ入力内の1つ以上の名詞を分離することができる。名詞は、対話を適用する多次元データセットの1つ以上のサブセットに対応してもよい。
【0030】
一実施形態において、システムは、ユーザ入力が対話用語集内の対話にマッピングするか否かを判断する(工程208)。具体的には、システムは、ユーザ入力内の動詞が対話用語集内のシステムコマンドまたはシステムコマンドの同義語に対応するか否かを判断することができる。ユーザ入力が対話用語集内の対話にマッピングしない場合、システムは、ユーザ入力を拒否することができる(工程210)。システムは、ユーザ入力が認識された対話を指定しないことを示すエラーメッセージを提示することができる。代替的にまたは追加的に、システムは、1つ以上の他の有効な対話を提案するメッセージを提示することができる。
【0031】
一実施形態において、ユーザ入力は、データ可視化における多次元データセットのサブセットの提示を操作する対話を示す。対話は、多次元データセットの次元の提示を操作することができる。代替的にまたは追加的に、対話は、多次元データセットの属性の提示を操作することができる。代替的にまたは追加的に、対話は、多次元データセットの指標の提示を操作することができる。代替的にまたは追加的に、対話は、データ可視化の提示モードを操作することができる。多次元データセットのサブセットを提示する対話の例は、以下に説明される。
【0032】
一実施形態において、いくつかの対話は、ユーザが、対話を適用する多次元データセットの任意のサブセット(例えば、次元、属性、または指標)を指定する必要がない。例えば、
図4は、システムコマンド「swap」を含む対話用語集の例を示す。この例において、「swap」コマンドは、データ可視化において提示される次元の優先順位を変更する。データ可視化が製品別で分類された地域を提示する場合、「swap」コマンドは、代わりに地域別で分類された製品を提示するようにデータ可視化を操作する。「swap」コマンドは、コンテキストに基づいてスワップする次元(すなわち、現在のデータ可視化に提示された次元)を知っているため、「swap」コマンドは、ユーザがスワップする次元を指定する必要がある。対照的に、
図4において、「highlight」コマンドは、データ可視化において特定の属性を強調する。一実施形態において、「highlight」コマンドは、ユーザが強調するための属性を指定する必要がある。一実施形態において、システムは、ユーザ入力によって指定された対話が多次元データセットのサブセットを指定する必要があるか否かを判断する(工程212)。対話が多次元データセットのサブセットを指定する必要がある場合、システムは、ユーザ入力が必要なサブセットを指定したか否かを判断する(工程214)。ユーザ入力が必要なサブセットを指定しない場合、システムは、以下のように、対話のための1つ以上の候補サブセットを特定するように進む。
【0033】
一実施形態において、システムは、対話が多次元データセットの特定の種類のデータに適用可能であることを決定する(工程216)。対話を適用する特定の種類のデータを判定することは、ユーザ入力内の1つ以上の単語またはフレーズに基づいて行われてもよい。例えば、単語「国」は、一般に場所に関連付けられ、単語「年」は、一般に時間に関連付けられる。代替的にまたは追加的に、対話を適用する特定の種類のデータを判定することは、対話自体、すなわち、対話がデータ可視化において操作するデータの種類に基づいて行われてもよい。
【0034】
例えば、
図4は、システムコマンド「compare to」を含む対話用語集の例を示す。この例において、「compare to」コマンドは、2つ以上の属性に関連するデータの比較を提示する。ユーザ入力が「compare to」というフレーズを含み且つ場所ベースの属性(例えば、「Midwest」という地域属性)が現在のデータ可視化に強調されている場合、システムは、対話が位置ベースの属性に適用可能であることを決定することができる。一実施形態において、対話を適用する特定の種類のデータを判定することによって、システムは、対話に関連する候補サブセットを提示することができる。
【0035】
一実施形態において、システムは、対話の候補である多次元データセットのサブセットを決定する(工程218)。対話の候補であるサブセットを決定することは、(例えば、上記の工程216で決定された)対話を適用可能な種類のデータに基づくことができる。システムは、特定のデータ種類のサブセット(例えば、次元、属性、および/または指標)を決定することができる。システムは、対話の候補サブセットとして、適用可能なデータ種類のサブセットを特定することができる。
【0036】
代替的にまたは追加的に、対話の候補であるサブセットを決定することは、データ可視化において現在提示されているサブセットに基づくことができる。例えば、
図4は、システムコマンド「highlight」を含む対話用語集の例を示す。この例において、「highlight」コマンドは、データ可視化において特定の属性を強調する。システムは、データ可視化において現在提示されている属性のみが「highlight」コマンドの候補であることを決定することができる。一般に、対話がデータ可視化に既に提示されているサブセットの提示を操作するように構成された場合、システムは、既に提示されているサブセットのみが対話の候補であることを決定することができる。
【0037】
代替的にまたは追加的に、対話の候補であるサブセットを決定するために、システムは、サブセットがデータ可視化に関連するメタデータに示されていると決定することができる。データ可視化に関連するメタデータは、データ可視化に利用可能な多次元データセットのサブセットを指定することができる。代替的にまたは追加的に、データ可視化に関連するメタデータは、多次元データセットの異なるサブセット間の関係を指定することができる。一例において、多次元データセットに関連するメタデータは、多次元データセットのデータ階層の表現を含む。システムは、データ階層を検査するによって、対話の候補であるサブセットを決定することができる。多次元データセットに関連するメタデータに提示されているサブセットは、データ可視化に現在提示されていないサブセットであってもよい。
【0038】
一実施形態において、システムは、対話の候補である多次元データセットのサブセットの数、すなわち、システムが候補として特定したサブセットの数を判断する(工程220)。一実施形態において、システムは、候補サブセットを特定していない場合、ユーザ入力を拒否する(工程222)。システムは、ユーザ入力によって指定された対話が多次元データセットの利用可能なサブセットに適用できないことを示すエラーメッセージを提示することができる。代替的にまたは追加的に、システムは、1つ以上の候補サブセットに適用可能な代替対話を提案するメッセージを提示することができる。一実施形態において、システムは、1つのみの候補サブセットを特定した場合、単一の候補サブセットを用いて、データ可視化との対話に対応する完全なコマンドを生成するように進む(工程226、以下でさらに詳細に説明する)。システムは、最初に単一の候補サブセットをユーザに提示し、および/または特定されたサブセットを使用するか否かを示すようにユーザに促すことができる。
【0039】
一実施形態において、システムが2つ以上の候補サブセットを特定した場合、対話に使用されるサブセットを選択するために、追加のユーザ入力が必要である。一実施形態において、システムは、候補をユーザに提示する(工程222)。システムは、多くの異なる方法で候補を提示することができる。以下の例に示されたように、システムは、リストで候補を提示することができる。代替的にまたは追加的に、システムは、ユーザ装置内のスピーカを用いて候補の名前を「発話する」ことによって、音声で候補を提示することができる。一実施形態において、システムは、候補サブセットの提示に応答して、提示された候補のうちの1つ以上を選択するユーザ入力を受け入れる(工程224)。
【0040】
一実施形態において、システムは、多次元データセットから対話に使用される1つ以上のサブセットを特定した後(例えば、1つのみの候補サブセットを特定した場合および/またはシステムが1つ以上の候補サブセットを選択するユーザ入力を受け入れた場合)、データ可視化との対話に対応する完全なコマンドを生成する(工程226)。完全なコマンドは、対話と、対話を適用する多次元データセットのサブセットとの両方を特定する。対話が(例えば、上述の工程212で決定された)特定のサブセットを特定する必要がない場合、完全なコマンドを生成する必要がない。
【0041】
一実施形態において、システムは、対話を実行するためにクエリが必要であるか否かを判断する(工程228)。対話が多次元データセットの特定のサブセットを特定する必要があるか否かに関わらず、クエリが必要である。対話が現在提示されているデータ可視化に関連して取得されなかったデータを必要とする場合、クエリが必要である。例えば、対話が、データ可視化において現在提示されておらず、現在提示されているデータ可視化を用意するときに取得されなかった次元からのデータを提示する場合、クエリが必要である。
【0042】
一実施形態において、データ可視化における多次元データセットの1つ以上のサブセットの提示を操作する1つ以上の対話は、多次元データベースに照会することなく実行される。対話は、データ可視化において既に提示されているデータの提示を操作することができる。代替的にまたは追加的に、データがデータ可視化において現在提示されていない場合であっても、対話は、以前に取得されたデータの提示を操作することができる。一例において、データ可視化は、販売地域に関連するデータを提示する。この例において、「地域」は、多次元データセットの次元である。データ可視化を用意する過程において、システムは、多次元データベースに照会することによって、各販売地域の異なる州に関連するデータを取得する。この例において、「州」は、「地域」次元のサブ次元である。異なる州に関連するデータを提示する対話を実行するために、システムは、多次元データベースに再び照会することなく、既に取得されたデータを使用することができる。
【0043】
一実施形態において、システムは、多次元データセットの1つ以上のサブセットの提示を操作するように対話を実行する(工程232)。対話後のサブセットは、対話前のサブセットとは異なるように提示される。特定のサブセットに関連するデータは、選別され、非表示され、明瞭化され、強調され、ソートされ、集約され、コンポーネントデータに分類されてもよく、および/またはそれらの組み合わせで処理されてもよい。対話は、多くの異なる方法で、多次元データセットのサブセットの提示を操作することができる。多次元データセットのサブセットの提示を操作する対話の実施例は、以下に説明される。
【0044】
4.例示的な実施例
明確にするために、以下に詳細な実施例を説明する。以下に説明されるコンポーネントおよび/または動作は、特定の実施形態に適用できない具体例として理解されるべきである。したがって、以下に説明されるコンポーネントおよび/または動作は、特許請求の範囲を限定するものとして解釈されるべきではない。
【0045】
4.1 多次元データベース構造
図3A~3Bは、1つ以上の実施形態に係る多次元データベース構造300の例を示す。この例において、
図3Aに示すように、多次元データベース構造300は、複数のトップレベル次元302、すなわち、顧客名304、注文識別子(ID)306、製品カテゴリ308、位置310、運送方法316、および郵便番号318を含む。また、多次元データベース構造300は、サブ次元階層を含む。地域312は、位置310のサブ次元である。州314は、位置310のサブ次元である。「次元」という用語は、本明細書に使用された場合、トップレベル次元および/またはサブ次元を指してもよい。
【0046】
一実施形態において、多次元データベースは、1つ以上の指標を含む。指標とは、本明細書に使用された場合、均質且つ定量化可能なデータの特定のグループ化を意味する。各指標は、対応する値を有する。例えば、「利益」という指標は、「35000ドル」という値を有してもよい。この例において、
図3Bに示すように、多次元データベース構造300は、複数のトップレベル指標、すなわち、配達時間322、販売合計328、および利益330を含む。また、多次元データベース構造300は、サブ指標階層を含む。年324は、配達時間322のサブ指標である。四半期326は、年324のサブ指標である。「指標」という用語は、本明細書に使用された場合、トップレベル指標および/またはサブ指標を指してもよい。
【0047】
4.2 対話用語集
上述したように、システムは、言語ベースのユーザ入力を受け入れると、対話用語集を用いて、ユーザ入力がシステムコマンドにマッピングするか否かを判断することができる。
図4は、1つ以上の実施形態に係る対話用語集400の例を示す。
図4に示すように、システムコマンドは、1つ以上の同義語を有してもよい。ユーザ入力がシステムコマンドにマッピングするか否かを判断するために、システムは、ユーザ入力がシステムコマンド自体またはその同義語のいずれかを含むか否かを判断することができる。
図4は、特定の対話に対応する様々な単語および用語を示すが、多くの異なる単語および/または用語を用いて、多くの異なる対話を記述することができる。
【0048】
一実施形態において、対話は、1つ以上の特定の次元の全ての属性を示す。
図4に示される例において、対話用語集400は、同義語を有しないシステムコマンド「show all」を含む。ユーザが「show all」および特定の次元を入力する場合、システムは、当該次元の全ての属性を示すことができる。例えば、「地域」という次元を有する多次元データセットの場合、システムは、「全ての地域を示す」ユーザ入力を受け入れることができる。一実施形態において、ユーザ入力は、提示された候補次元のセットからの選択を含む。
【0049】
一実施形態において、対話は、特定のサブ次元で、現在提示されている次元内のデータを分類する、すなわち、データを特定のサブ次元のレベルまで分解する。また、対話は、対話の前に提示されなかったサブ次元に関連するデータを提示することができる。
図4に示された例において、対話用語集は、システムコマンド「view by」を含み、システムコマンド「view by」は、同義語「break down by」、「split by」、および「switch dimension to」を有する。ユーザ入力が「view by」および特定のサブ次元である場合、システムは、任意の次元を選択する追加のユーザ入力を必要とすることなく、特定のサブ次元で、現在提示されている次元のデータを分類することができる。例えば、現在のデータ可視化が特定の州の販売データを提示している場合、システムは、「郡別で閲覧する」ユーザ入力を受け入れることができ、当該州の郡別で販売データを分類することができる。一実施形態において、ユーザ入力は、提示された候補次元のセットからの選択を含む。
【0050】
一実施形態において、ユーザ入力が現在提示されている次元のサブ次元ではない次元で「閲覧する」場合、システムは、現在のデータ可視化に次元を追加することによって、特定の次元でデータを分類することができる。例えば、現在のデータ可視化が年単位(時間次元)で集約された販売データを提示している場合、ユーザは、「地域別で」(場所次元)閲覧することをリクエストすることができる。この例において、システムは、時間次元と位置次元との両方を現在のデータ可視化に保持することができる。代替的には、システムは、位置次元で時間次元を置換することができる。現在提示されている次元を保持するかまたは置換するかを判断するために、システムは、ユーザに選択を与えることができ、システム規則および/または設定を参照することができ、過去の使用パターンから導き出された機械学習を使用することができ、および/または別の方法またはそれらの組み合わせで現在提示されている次元を保持するかまたは置換するかを判断することができる。ユーザは、以下で本明細書に説明される「swap」次元を用いて、次元を切り替えることができる。
【0051】
一実施形態において、対話は、特定の次元でデータを集約する。
図4に示される例において、対話用語集400は、システムコマンド「view by」を含み、システムコマンド「view by」は、同義語「group by」、「aggregate by」、「cluster by」、「sum up by」を有する。ユーザ入力が「view by」および特定のサブ次元である場合、システムは、当該次元でデータを集約することができる。例えば、現在のデータ可視化は、州別で集約されたデータを提示することができる。システムは、代わりに「製品別で閲覧する」ユーザ入力を受け入れることができる。別の例として、システムは、「地域別で閲覧する」ユーザ入力を受け入れることができ、地域別で各州のデータを集約することができる。一実施形態において、ユーザ入力は、提示された候補次元のセットからの選択を含む。
【0052】
図4に示すように、対話用語集400は、2つの異なる「view by」コマンドを含む。一般に、対話用語集は、同じ名前を有する複数のコマンドを含むことができる。一実施形態において、システムは、コマンド間の曖昧さを取り除くように構成される。具体的には、システムは、追加のユーザ入力および/またはコンテキストデータに基づいて、使用するコマンドを決定することができる。上記の例において、システムは、ユーザ入力に指定された次元に基づいて、使用する「view by」コマンドを決定することができる。
【0053】
一実施形態において、対話は、特定の次元でデータをソートする。
図4に示される例において、対話用語集400は、システムコマンド「sort by」を含み、システムコマンド「sort by」は、同義語「order by」を有する。ユーザ入力が「sort by」および特定の次元である場合、システムは、当該次元でデータをソートすることができる。例えば、現在のデータ可視化は、地域別でソートされたデータを提示することができる。システムは、代わりに「州別でソートする」ユーザ入力を受け入れることができる。一実施形態において、ユーザ入力は、提示された候補次元のセットからの選択を含む。
【0054】
一実施形態において、対話は、データ可視化における2つの次元の優先順位を切り替える。
図4に示される例において、対話用語集400は、システムコマンド「swap」を含み、システムコマンド「swap」は、同義語「pivot」および「swap rows and columns」を有する。ユーザ入力が「swap」である場合、システムは、次元を選択する追加のユーザ入力を必要とすることなく、データ可視化において現在提示されている2つの次元の優先順位を切り替えることができる。例えば、システムは、製品で分類された地域を閲覧することから、地域で分類された製品を閲覧することに切り替えるユーザ入力「swap」を受け入れることができる。
【0055】
一実施形態において、対話は、現在提示されている次元に最も近いサブ次元で、現在提示されている次元内のデータを分類する、すなわち、データを最も近いサブ次元まで分解する。また、対話は、対話の前に提示されなかったサブ次元に関連するデータを提示することができる。
図4に示される例において、対話用語集400は、システムコマンド「zoom in」を含む。ユーザ入力が「zoom in」である場合、システムは、任意の次元を選択する追加のユーザ入力を必要とすることなく、現在提示されている次元に最も近いサブ次元で、現在提示されている次元内のデータを分類することができる。例えば、現在のデータ可視化が特定の地域の販売データを提示している場合、システムは、「zoom in」というユーザ入力を受け入れることができ、当該地域内の州別で販売データを分類することができる。
【0056】
一実施形態において、対話は、特定のサブ次元でデータの分類を取り消し、最も近い親次元でデータを集約する。
図4に示される例において、対話用語集400は、システムコマンド「zoom out」を含む。ユーザ入力が「zoom out」である場合、システムは、任意の次元を選択する追加のユーザ入力を必要とすることなく、データの分類を取り消すことができる。例えば、データ可視化がある地域内の複数の州の販売データを提示する場合、システムは、「zoom out」というユユーザ入力を受け入れることができ、地域別でデータを集約することができる。
【0057】
一実施形態において、対話は、特定の指標でデータをソートする。
図4に示される例において、対話用語集400は、システムコマンド「sort by」を含み、システムコマンド「sort by」は、同義語「order by」を有する。ユーザ入力が「sort by」および特定の指標である場合、システムは、当該指標でデータをソートすることができる。例えば、現在のデータ可視化は、名前でソートされたデータを提示することができる。システムは、代わりに「利益でソートする」ユーザ入力を受け入れることができる。一実施形態において、ユーザ入力は、提示された候補指標のセットからの選択を含む。システムが次元および指標の両方によるソートをサポートする場合、システムは、候補次元および候補指標のセットを提示することができる。代替的にまたは追加的に、システムは、ユーザ入力のコンテキストに応じて、候補次元または候補指標のいずれかを提示するように構成されてもよい。一般に、システムは、同じ名前および/または同義語を有するコマンドをサポートすることができ、ユーザ入力および/またはコンテキストに基づいて使用されるコマンドを決定することができる。
【0058】
一実施形態において、対話は、1つの指標で集約されたデータを閲覧することから、別の指標で集約されたデータを閲覧することに切り替える。
図4に示される例において、対話用語集400は、システムコマンド「switch to」を含み、システムコマンド「switch to」は、同義語「switch measure to」および「show」を有する。ユーザ入力が「switch to」および特定の指標である場合、システムは、当該指標で集約されたデータの閲覧に切り替えることができる。例えば、現在のデータ可視化は、利益で集約された販売データを提示することができる。システムは、代わりに「販売に切り替える」ユーザ入力を受け入れることができ、販売数で集約されたデータを閲覧することができる。一実施形態において、ユーザ入力は、提示された候補指標のセットからの選択を含む。
【0059】
一実施形態において、対話は、1つ以上の属性を強調する。この文脈において、「強調」は、陰影付け、下線、太字、斜字、および/またはデータ可視化において特定の属性をより視覚的に目立つようにするための他の処理またはそれらの組み合わせを意味する。
図4に示される例において、対話用語集400は、システムコマンド「highlight」を含み、システムコマンド「highlight」は、同義語「brush」および「select」を有する。ユーザ入力が「highlight」および特定の属性である場合、システムは、当該属性を強調することができる。例えば、現在のデータ可視化は、西北販売地域の複数の州のデータを提示することができる。システムは、「マサチューセッツ州を強調する」ユーザ入力を受け入れることができ、マサチューセッツ州のデータを強調することができる。一実施形態において、ユーザ入力は、提示された候補属性のセットからの選択を含む。
【0060】
一実施形態において、対話は、特定の属性以外の全ての属性に関連するデータの提示を削除する。
図4に示される例において、対話用語集400は、システムコマンド「focus on」を含み、システムコマンド「focus on」は、同義語「filter to」を有する。ユーザ入力が「focus on」および特定の属性である場合、システムは、当該属性以外の全ての属性に関連するデータの提示を削除することができる。例えば、現在のデータ可視化は、西北販売地域の複数の州のデータを提示することができる。システムは、「マサチューセッツ州に注目する」ユーザ入力を受け入れることができ、マサチューセッツ州以外の全てのデータの提示を削除することができる。一実施形態において、ユーザ入力は、提示された候補属性のセットからの選択を含む。
【0061】
一実施形態において、対話は、2つ以上の属性に関連するデータの比較を提示する。
図4に示される例において、対話用語集400は、システムコマンド「compare to」を含み、システムコマンド「compare to」は、同義語「add」を有する。ユーザ入力が「compare to」および特定の属性である場合、システムは、(a)現在提示されている属性に関連するデータと、(b)特定の属性に関連するデータとの比較を提示することができる。例えば、現在のデータ可視化は、マサチューセッツ州の販売データを提示することができる。システムは、「ニューヨーク州と比較する」ユーザ入力を受け入れることができ、マサチューセッツ州に関連するデータとニューヨーク州に関連するデータとの比較を提示することができる。一実施形態において、ユーザ入力は、提示された候補属性のセットからの選択を含む。
【0062】
一実施形態において、対話は、複合対話、すなわち、単一の対話に2つ以上の他の対話の機能を組み合わせたものであってもよい。例えば、単一の対話は、(a)特定の属性以外の全ての属性に関連するデータの提示を削除すること(例えば、上述した「focus on」)と、(b)現在提示されている次元内のデータを最も近いサブ次元によって分類すること(例えば、上述の「zoom in」)との両方を行うことができる。この複合対話は、最も近いサブ次元のレベルで、特定の属性の1つ以上のサブ属性を効果的に提示する。
図4に示される例において、対話用語集400は、システムコマンド「drill into」を含み、システムコマンド「drill into」は、同義語「focus on and zoom in」を有する。ユーザ入力が「focus on and zoom in」および特定の属性である場合、システムは、(a)特定の属性以外の全ての属性に関連するデータの提示を削除し、(b)特定の属性の1つ以上のサブ属性を提示することができる。例えば、現在のデータ可視化は、複数の販売地域のデータを提示することができる。システムは、「西北地域に絞る」ユーザ入力を受け入れることができ、西北地域以外の全ての地域のデータの提示を削除し、西北地域の州別で販売データを分類することができる。一実施形態において、ユーザ入力は、提示された候補属性のセットからの選択を含む。
【0063】
一実施形態において、単一の属性のデータのみを閲覧する(例えば、上述した「focus on」)場合、対話は、代わりに異なる属性のみのデータを提示することができる。
図4に示される例において、対話用語集400は、システムコマンド「go to」を含み、システムコマンド「go to」は、同義語「scroll to」を有する。ユーザ入力が「go to」および特定の属性である場合、システムは、現在の属性のデータの提示を削除し、代わりに指定された属性のデータを提示することができる。例えば、現在のデータ可視化は、2018年の販売データを提示することができる。システムは、「2019年に移す」ユーザ入力を受け入れることができ、2018年の販売データの提示を削除し、代わりに2019年の販売データを提示することができる。一実施形態において、ユーザ入力は、提示された候補属性のセットからの選択を含む。
【0064】
一実施形態において、対話は、多次元データセットの特定のサブセットを変更しないが、データ可視化におけるデータの提示を操作する。
図4に示される例において、対話用語集400は、システムコマンド「show as」を含み、システムコマンド「show as」は、同義語「switch graph type to」を有する。ユーザ入力が「show as」である場合、システムは、1組の候補可視化モード(例えば、円グラフ、テーブルなど)を提示することができる。システムは、可視化モードのうち、1つのモードを選択するユーザ入力を受け入れると、そのモードでデータ可視化を表示することができる。
【0065】
4.3 ユーザインターフェイス
図5A~5Iは、1つ以上の実施形態に係る例を示す。具体的には、
図5A~5Iは、モバイル装置上のユーザインターフェイス500を使用する、データ可視化の言語ベースの操作の例を示す。
図5Aにおいて、ユーザインターフェイス500は、時間に対する利益のグラフを示すデータ可視化を提示する。画面下部の入力ボックスは、ユーザインターフェイス500に提供された言語ベースのユーザ入力を示す。
図5Aにおいて、入力ボックスは、空である。代替的に、入力ボックスは、デフォルトテキスト「type something」、「try group by location」および/または他のデフォルトテキストを示すことができる。ユーザが入力ボックスをタップすると、システムは、仮想キーボードを提示する。また、システムは、モバイル装置内のマイクロフォンを介して、ユーザ入力を受け入れることができる。
【0066】
図5Bにおいて、ユーザが入力ボックスをタップすることに応答して、システムは、仮想キーボードを提示する。システムは、入力ボックスの上方において、提案およびヘルプトピックスのリストを提示する。提案のリストは、コンテキストに基づくデフォルト提案を含むことができ、および/または過去のユーザ入力の履歴を含むことができる。
図5Cにおいて、システムは、文字「g」に対応するユーザ入力を受け入れる。システムは、入力ボックス上方のリストにおいて、文字「g」で始まる単語を含む提案入力を提示する。
図5Dにおいて、システムは、文字「r」に対応するさらなるユーザ入力を受け入れると、それに対応する提案のリストを絞り込む。この例において、システムは、(例えば、話すことまたは画面上にタップすることによって)提案のリストから対話「group by」を選択するユーザ入力を受け入れる。上記で説明した
図4の例示的な対話用語集において、「group by」は、システムコマンド「view by」の同義語である(すなわち、システムコマンド「view by」にマッピングされる)。
【0067】
図5Eにおいて、ユーザが対話「group by」を選択することに応答して、システムは、当該対話に対応する候補次元のリストを提示するように、入力ボックス上方のリストを更新する。
図5Fにおいて、システムは、文字「c」に対応するユーザ入力を受け入れる。システムは、入力ボックス上方のリストにおいて、文字「c」で始まる単語を含む次元のリストを提示する。
図5Gにおいて、システムは、文字「a」に対応するさらなるユーザ入力を受け入れると、提案のリストを単一の候補次元「product category」に絞り込む。システムは、対話に対応する当該次元を選択するユーザ入力を受け入れる。
【0068】
一実施形態において、1つ以上の候補サブセットから選択するユーザ入力を受け入れた後、システムは、ユーザから追加のユーザ入力を受けることができる。
図5Hにおいて、入力ボックス上方のリストにおいて、システムは、対話に追加される追加の提案「group by category」を提供する。システムは、これらの選択肢のいずれかを選択するユーザ入力を受け入れない。代わりに、システムは、対話を実行する命令に対応する「Go」を選択するユーザ入力を受け入れる。
図5Iにおいて、システムは、ユーザ入力に基づいて変更されたデータ可視化を提示する。この場合、利益は、製品カテゴリでグループ化される。
【0069】
図6A~6Gは、1つ以上の実施形態に係る例を示す。具体的には、
図6A~6Gは、モバイル装置上のユーザインターフェイス600を使用する、データ可視化の言語ベースの操作の例を示す。
図6Aにおいて、ユーザインターフェイス600は、時間に対する利益のグラフを示すデータ可視化を提示する。システムは、文字「g」に対応するユーザ入力を受け入れる。システムは、入力ボックス上方のリストにおいて、文字「g」で始まる単語を含む提案入力を提示する。この例において、リストは、次元(「global holidays」、「team goals」、「group benefits」)と対話(「group by」および「go to」)との両方を含む。
図6Bにおいて、システムは、文字「ros」に対応するさらなるユーザ入力を受け入れる。システムは、入力ボックス上方のリストにおいて、文字「gross」で始まる単語を含む提案入力を提示する。この例において、修正されたリストは、属性(「Gross Auto Group」および「Cutler & Gross LLD」)および指標(「gross margin」、「gross profit margin」および「gross profit」)を含む。システムは、指標「gross profit margin」を選択するユーザ入力を受け入れる。
図6Cにおいて、システムは、入力ボックス上方のリストにおいて、売上総利益率データを集約または選別するための追加の入力を提示する。この例において、提案「2018」、「North America」、「ABC Inc」は、属性である。これらの属性のうち、1つの属性の選択に応答して、システムは、選択された属性に関連する売上総利益率を提示するように構成される。選択肢「by region」および「by country」は、次元を指す。これらの次元のうちの1つの選択に応答して、システムは、選択された次元によって分類される売上総利益率を提示する。
図6Dにおいて、システムは、文字「p」に対応するさらなるユーザ入力を受け入れる。ユーザ入力に応答して、システムは、文字「p」で始まる単語を含む異なる提案リストを提示する。システムは、「per region」を選択するユーザ入力を受け入れ、地域別で売上総利益率データを分類する。
図6Eにおいて、システムは、入力ボックス上方のリストにおいて、売上総利益率データを集約または選別するための追加の選択肢を提示する。具体的には、システムは、平均売上総利益率、特定量を超える売上総利益率、年別で集約された売上総利益率、本年の売上総利益率、または東海岸地域の売上総利益率を閲覧するための選択肢を提示する。
図6Fにおいて、1つの提案の代わりに、システムは、「年度の初めから今日まで」(year to date)を意味する文字「ytd」に対応するユーザ入力を受け入れる。
図6Gにおいて、システムは、ユーザ入力に基づいて変更されたデータ可視化を提示する。この場合、年度の初めから今日までの売上総利益率は、販売地域別で集約される。
【0070】
5.その他、拡張
実施形態は、ハードウェアプロセッサを含み、本明細書に記載されおよび/または以下の特許請求の範囲のいずれかに列挙された動作のうちのいずれかを実行するように構成された1つ以上の装置を有するシステムに関する。
【0071】
一実施形態において、非一時的なコンピュータ可読記憶媒体は、1つ以上のハードウェアプロセッサによって実行されると、本明細書に記載されおよび/または特許請求の範囲のいずれかに列挙された動作のいずれかを実行する命令を含む。
【0072】
本明細書に記載された特徴および機能の任意の組み合わせは、1つ以上の実施形態に従って使用されてもよい。上述の明細書において、実現例によって異なり得る多くの具体的詳細を参照して、本発明の実施形態を説明した。したがって、明細書および添付の図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一且つ排他的な指標、および出願人が意図する本発明の範囲は、その後のあらゆる補正を含めて、特定の形態で本願から得られた特許請求の範囲の文言上の範囲および同等の範囲である。
【0073】
6.ハードウェアの概要
一実施形態によれば、本明細書に記載された技術は、1つ以上の専用コンピューティング装置(すなわち、特定の機能を実行するように特別に構成されたコンピューティング装置)によって実現される。これらの専用コンピューティング装置は、これらの技術を実行するためにハードワイヤードされてもよく、もしくは、これらの技術を実行するように永続的にプログラムされた1つ以上の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、もしくはネットワーク処理ユニット(NPU)といったデジタル電子装置を含んでもよく、または、ファームウェア、メモリ、他の記憶装置、もしくはそれらの組合せにおいてプログラム命令に従ってこれらの技術を実行するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含んでもよい。そのような専用コンピューティング装置はまた、これらの技術を遂行するために、カスタムハードワイヤードロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組合わせてもよい。当該専用コンピューティング装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯型装置、ネットワーキング装置、または、これらの技術を実現するためにハードワイヤードロジックおよび/もしくはプログラムロジックを組込んだ任意の他の装置であってもよい。
【0074】
例えば、
図7は、本発明の一実施形態が実現され得るコンピュータシステム700を示すブロック図である。コンピュータシステム700は、情報を通信するためのバス702または他の通信機構と、情報を処理するためにバス702と結合されるハードウェアプロセッサ704とを含む。ハードウェアプロセッサ704は、例えば、汎用マイクロプロセッサであってもよい。
【0075】
また、コンピュータシステム700は、プロセッサ704によって実行されるべき命令および情報を格納するためにバス702に結合された、ランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ706を含む。メインメモリ706はまた、プロセッサ704によって実行されるべき命令の実行中に一時的な変数または他の中間情報を格納するために使用されてもよい。そのような命令は、プロセッサ704にアクセス可能な非一時的記憶媒体に格納されると、コンピュータシステム700を、命令で特定された動作を実行するようにカスタマイズされた専用マシンにする。
【0076】
コンピュータシステム700は、プロセッサ704のための静的情報および命令を格納するためにバス702に結合された読出専用メモリ(ROM)708または他の静的記憶装置をさらに含む。磁気ディスクまたは光ディスクなどの記憶装置710が設けられ、情報および命令を格納するためにバス702に結合される。
【0077】
コンピュータシステム700は、バス702を介して、液晶ディスプレイ(LCD)、プラズマディスプレイ、電子インクディスプレイ、陰極線管(CRT)モニタ、または情報をコンピュータユーザに提示するための任意の他の種類の装置などのディスプレイ712に結合されてもよい。英数字キーおよび他のキーを含む入力装置714は、情報およびコマンド選択をプロセッサ704に通信するためにバス702に結合されてもよい。代替的にまたは追加的に、コンピュータシステム700は、方向情報およびコマンド選択をプロセッサ704に通信し、ディスプレイ712上でカーソルの移動を制御するために、マウス、トラックボール、トラックパッド、タッチスクリーン、またはカーソル方向キーなどのカーソルコントロール716を介してユーザ入力を受け入れてもよい。この入力装置は、通常、第1の軸(例えばx)および第2の軸(例えばy)という2つの軸に2つの自由度を有するため、平面内の位置を特定することができる。ディスプレイ712は、1つ以上の感圧センサ、マルチタッチセンサ、および/またはジェスチャセンサを介して、ユーザ入力を受け入れるように構成されてもよい。代替的にまたは追加的に、コンピュータシステム700は、マイクロフォン、ビデオカメラ、および/または他の種類のユーザ入力装置(図示せず)を介して、ユーザ入力を受け入れてもよい。
【0078】
コンピュータシステム700は、コンピュータシステムと組合されることでコンピュータシステム900を専用マシンにするかまたは専用マシンになるようプログラムする、カスタマイズされたハードワイヤードロジック、1つ以上のASICもしくはFPGA、ファームウェアおよび/またはプログラムロジックを用いて、本明細書に記載された技術を実現することができる。一実施形態によれば、本明細書の技術は、メインメモリ706に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ704に応答して、コンピュータシステム700によって実行される。このような命令は、記憶装置710などの別の記憶媒体からメインメモリ706に読込まれてもよい。メインメモリ706に含まれる命令のシーケンスの実行は、プロセッサ704に、本明細書に記載された手プロセスステップを実行させる。代替の実施形態において、ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて、ハードワイヤード回路を使用することができる。
【0079】
本明細書に使用された「記憶媒体」という用語は、機械を特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的な媒体を指す。このような記憶媒体は、不揮発性媒体および/または揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶装置710などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ706などのダイナミックメモリを含む。記憶媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光データ記憶媒体、穴のパターンを有する任意の物理的媒体、RAM、プログラム可能な読み取り専用メモリ(PROM)、および消去可能なPROM(EPROM)、FLASH(登録商標)-EPROM、不揮発性ランダムアクセスメモリ(NVRAM)、任意の他のメモリチップまたはカートリッジ、連想メモリ(CAM:content-addressable memory)、および3値連想メモリ(TCAM:ternary content-addressable memory)を含む。
【0080】
記憶媒体は、伝送媒体とは異なるが、伝送媒体と併せて使用されてもよい。伝送媒体は、記憶媒体間の情報の転送に関与する。例えば、伝送媒体は、バス702を構成するワイヤを含む同軸ケーブル、銅ワイヤ、および光ファイバを含む。また、伝送媒体は、電波通信および赤外線データ通信時に生成された音響波または光波であってもよい。
【0081】
様々な形態の媒体を用いて、1つ以上の命令の1つ以上のシーケンスをプロセッサ704に搬送して実行することができる。例えば、命令は、最初に、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送されてもよい。リモートコンピュータは、イーサネット(登録商標)コントローラまたはWi-Fi(登録商標)コントローラなどのネットワークインターフェイスコントローラ(NIC)を介して、命令をそのダイナミックメモリにロードし、ネットワークを介してその命令を送信することができる。コンピュータシステム700に対してローカルなNICは、ネットワークからデータを受け入れ、バス702上にデータを配置することができる。バス702は、データをメインメモリ706に搬送する。プロセッサ704は、メインメモリ706から命令を取り出し、実行する。メインメモリ706に搬送された命令は、任意選択で、プロセッサ704によって実行される前または後に、記憶装置710に記憶されてもよい。
【0082】
また、コンピュータシステム700は、バス702に結合された通信インターフェイス718を含む。通信インターフェイス718は、ローカルネットワーク722に接続されたネットワークリンク720への双方向データ通信結合を提供する。例えば、通信インターフェイス718は、総合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、または対応する種類の電話回線へのデータ通信接続を提供するためのモデムであってもよい。別の例として、通信インターフェイス718は、互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであってもよい。ワイヤレスリンクを実装してもよい。このような実装形態において、通信インターフェイス718は、様々な種類の情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【0083】
ネットワークリンク720は、典型的には、1つ以上のネットワークを通して、他のデータ装置にデータ通信を提供する。例えば、ネットワークリンク720は、ローカルネットワーク722を介して、ホストコンピュータ724またはインターネットサービスプロバイダ(ISP)726によって運営されるデータ機器への接続を形成することができる。ISP726は、現在一般に「インターネット」728と称されるワールドワイドパケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク722およびインターネット728の両方は、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。様々なネットワークを通る信号、および通信インターフェイス718を通るネットワークリンク720上の信号は、コンピュータシステム700との間でデジタルデータを搬送する伝送媒体の例示的な形態である。
【0084】
コンピュータシステム700は、ネットワーク、ネットワークリンク720、および通信インターフェイス718を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例において、サーバ730は、インターネット728、ISP726、ローカルネットワーク722、および通信インターフェイス718を介して、要求されたアプリケーションプログラムのコードを送信することができる。
【0085】
受信されたコードは、受信時にプロセッサ704によって実行されてもよく、および/または後で実行するために記憶装置710または他の不揮発性記憶装置に記憶されてもよい。
【0086】
7.コンピュータネットワークおよびクラウドネットワーク
1つ以上の実施形態において、コンピュータネットワークは、本明細書に記載された技術を利用するソフトウェアを実行する1組のノード間の接続を提供する。これらのノードは、互いにローカルおよび/またはリモートであってもよい。これらのノードは、1組のリンクによって接続される。リンクの例は、同軸ケーブル、非被覆ツイストケーブル、銅ケーブル、光ファイバ、および仮想リンクを含む。
【0087】
1つのサブセットのノードは、コンピュータネットワークを実装する。このようなノードの例は、スイッチ、ルータ、ファイアウォール、およびネットワークアドレストランスレータ(NAT)を含む。他のサブセットのノードは、コンピュータネットワークを使用する。このようなノード(「ホスト」とも呼ばれる)は、クライアントプロセスおよび/またはサーバプロセスを実行することができる。クライアントプロセスは、コンピューティングサービス(例えば、特定のアプリケーションの実行および/または特定の量のデータの格納)を要求する。サーバプロセスは、要求されたサービスを実行することによっておよび/または対応するデータを返すことによって、応答する。
【0088】
コンピュータネットワークは、物理リンクによって接続された物理ノードを含む物理ネットワークであってもよい。物理ノードとは、任意のデジタル装置である。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、およびハードウェアNATなどの特定機能のハードウェア装置であってもよい。追加的にまたは代替的に、物理ノードは、タスクを実行するための計算能力を提供する任意の物理リソース、例えば、様々な仮想マシンおよび/またはそれぞれの機能を提供するアプリケーションを実行するように構成された物理リソースであってもよい。物理リンクとは、2つ以上の物理ノードを接続する物理媒体である。リンクの例は、同軸ケーブル、非被覆ツイストケーブル、銅ケーブル、および光ファイバを含む。
【0089】
コンピュータネットワークは、オーバーレイネットワークであってもよい。オーバーレイネットワークとは、別のネットワーク(物理ネットワークなど)の上に実装された論理ネットワークである。オーバーレイネットワーク内の各ノードは、下位ネットワーク内の各ノードに対応する。したがって、オーバーレイネットワーク内の各ノードは、(オーバーレイノードのアドレスを指定するための)オーバーレイアドレスと、(オーバーレイノードを実装するアンダーレイノードのアドレスを指定するための)アンダーレイアドレスとの両方に関連付けられる。オーバーレイノードは、デジタル装置および/またはソフトウェアプロセス(例えば、仮想マシン、アプリケーションインスタンス、またはスレッド)であってもよい。トンネルの両端のオーバーレイノードは、当該オーバーレイノード同士の間の下位マルチホップ経路を、単一の論理的リンクとして扱う。トンネリングは、カプセル化およびカプセル化解除によって行われる。
【0090】
一実施形態において、クライアントは、コンピュータネットワークに対してローカルおよび/またはリモートであってもよい。クライアントは、プライベートネットワークまたはインターネットなどの他のコンピュータネットワークを介して、コンピュータネットワークにアクセスすることができる。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを用いて、要求をコンピュータネットワークに送信することができる。要求は、クライアントインターフェイス(例えば、ウェブブラウザ)、プログラムインターフェイス、またはアプリケーションプログラミングインターフェイス(API)などのインターフェイスを介して送信される。
【0091】
一実施形態において、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データ記憶装置、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションを含む。ネットワークリソースは、複数のクライアント間で共有される。クライアントは、互いに独立して、コンピュータネットワークからコンピューティングサービスを要求する。ネットワークリソースは、オンデマンドで、各要求および/または各クライアントに動的に割り当てられる。各要求および/または各クライアントに割り当てられたネットワークリソースは、例えば、(a)特定のクライアントによって要求されたコンピューティングサービス、(b)特定のテナントによって要求された集約コンピューティングサービス、および/または(c)コンピュータネットワークによって要求された集約コンピューティングサービスに基づいて、拡大または縮小されてもよい。このようなコンピュータネットワークは、「クラウドネットワーク」と称されてもよい。
【0092】
一実施形態において、サービスプロバイダは、クラウドネットワークを1人以上のエンドユーザに提供する。SaaS(Software-as-a-Service)、PaaS(Platform-as-a-Service)、IaaS(Infrastructure-as-a-Service)を含むがこれらに限定されない様々なサービスモデルは、クラウドネットワークによって実装されてもよい。SaaSにおいて、サービスプロバイダは、ネットワークリソース上で実行されているサービスプロバイダのアプリケーションを使用する能力を、エンドユーザに提供する。PaaSにおいて、サービスプロバイダは、カスタムアプリケーションをネットワークリソース上に展開する能力を、エンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダによってサポートされたプログラミング言語、ライブラリ、サービス、およびツールを用いて作成されてもよい。IaaSにおいて、サービスプロバイダは、ネットワークリソースによって提供された処理、記憶、ネットワーク、および他の基本的なコンピューティングリソースを提供する能力を、エンドユーザに提供する。オペレーティングシステムを含む任意のアプリケーションは、ネットワークリソース上に展開されてもよい。
【0093】
一実施形態において、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含むがこれらに限定されない様々な展開モデルは、コンピュータネットワークによって実装されてもよい。プライベートクラウドにおいて、ネットワークリソースは、1つ以上のエンティティ(本明細書に使用された「エンティティ」という用語は、企業、組織、人、または他の実体を指す)からなる特定のグループによって排他的使用されるようにプロビジョニングされる。ネットワークリソースは、エンティティからなる特定のグループの構内に対してローカルおよび/またはリモートであってもよい。パブリッククラウドにおいて、クラウドリソースは、互いに独立した複数のエンティティ(また、「テナント」または「顧客」とも称される)に対してプロビジョニングされる。コンピュータネットワークおよびそのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と称されてもよい。いくつかのテナントは、異なる時間および/または同じ時間に、同じ特定のネットワークリソースを使用することができる。ネットワークリソースは、テナントの構内に対してローカルおよび/またはリモートであってもよい。ハイブリッドクラウドにおいて、コンピュータネットワークは、プライベートクラウドとパブリッククラウドとを含む。プライベートクラウドとパブリッククラウドとの間のインターフェイスは、データおよびアプリケーション可搬性を可能にする。プライベートクラウドに格納されたデータおよびパブリッククラウドに格納されたデータは、インターフェイスを介して交換されてもよい。プライベートクラウドに実装されたアプリケーションと、パブリッククラウドに実装されたアプリケーションとは、互いに依存関係を有してもよい。プライベートクラウド上のアプリケーションからパブリッククラウド上のアプリケーションへのコール(およびその逆)は、インターフェイスを介して実行されてもよい。
【0094】
一実施形態において、マルチテナントコンピュータネットワークのテナントは、互いに独立している。例えば、1つのテナント(動作、テナント固有の実行、従業員、および/または外部世界へのID)は、別のテナントとは別個であってもよい。異なるテナントは、コンピュータネットワークに対して異なるネットワーク要件を要求することができる。ネットワーク要件の例は、処理速度、データ記憶量、セキュリティ要件、性能要件、スループット要件、待ち時間要件、復元要件、サービス品質(QoS)要件、テナント分離、および/または一貫性を含む。同じコンピュータネットワークは、異なるテナントによって要求された異なるネットワーク要件を実現する必要があり得る。
【0095】
1つ以上の実施形態において、マルチテナントコンピュータネットワークにおけるテナントの分離は、異なるテナントのアプリケーションおよび/またはデータが相互に共有されないことを確実にするように、実現される。様々なテナント分離技術を使用してもよい。
【0096】
一実施形態において、各テナントは、テナントIDに関連付けられる。マルチテナントコンピュータネットワークの各ネットワークリソースは、テナントIDでタグ付けされる。テナントは、テナントと特定のネットワークリソースとが同じテナントIDに関連付けられる場合のみ、特定のネットワークリソースへのアクセスを許可される。
【0097】
一実施形態において、各テナントは、テナントIDに関連付けられる。コンピュータネットワークによって実装された各アプリケーションは、テナントIDでタグ付けされる。追加的にまたは代替的に、コンピュータネットワークによって格納された各データ構造および/またはデータセットは、テナントIDでタグ付けされる。テナントは、テナントと特定のアプリケーション、データ構造および/またはデータセットとが同じテナントIDに関連付けられる場合のみ、特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許可される。
【0098】
一例として、マルチテナントコンピュータネットワークによって実装された各データベースは、テナントIDでタグ付けされてもよい。対応するテナントIDに関連付けられたテナントのみが、特定のデータベースのデータにアクセスすることができる。別の例として、マルチテナントコンピュータネットワークによって実装されたデータベース内の各エントリは、テナントIDでタグ付けされてもよい。対応するテナントIDに関連付けられたテナントのみが、特定のエントリのデータにアクセスすることができる。しかしながら、データベースは、複数のテナントによって共有されてもよい。
【0099】
一実施形態において、サブスクリプションリストは、アプリケーションにアクセスする権限を有するテナントを示す。アプリケーションにアクセスする権限を有するテナントのテナントIDのリストは、アプリケーションごとに格納される。あるテナントのテナントIDが特定のアプリケーションに対応する加入リストに含まれている場合のみ、当該テナントは、そのアプリケーションへのアクセスを許可される。
【0100】
一実施形態において、異なるテナントに対応するネットワークリソース(例えば、デジタル装置、仮想マシン、アプリケーションインスタンス、およびスレッド)は、マルチテナントコンピュータネットワークによって維持されるテナント固有のオーバーレイネットワークに分離される。一例として、テナントオーバーレイネットワーク内の任意のソース装置からのパケットは、同じテナントオーバーレイネットワーク内の他の装置にのみ送信されてもよい。カプセル化トンネルは、テナントオーバーレイネットワーク上のソース装置から他のテナントオーバーレイネットワーク内の装置への任意の送信を禁止するために使用される。具体的には、ソース装置から受信したパケットは、外部パケット内でカプセル化される。外部パケットは、テナントオーバーレイネットワーク上のソース装置と通信する)第1のカプセル化トンネルエンドポイントから、(テナントオーバーレイネットワーク上の宛先装置と通信する)第2のカプセル化トンネルエンドポイントに送信される。第2のカプセル化トンネルエンドポイントは、ソース装置によって送信されたオリジナルパケットを取得するために、外部パケットのカプセル化を解除する。オリジナルパケットは、第2のカプセル化トンネルエンドポイントから、同じ特定のオーバーレイネットワーク上の宛先装置に送信される。
【0101】
8.マイクロサービスアプリケーション
1つ以上の実施形態によれば、本明細書に記載された技術は、マイクロサービスアーキテクチャで実現される。この文脈におけるマイクロサービスは、独立して展開できるように設計され、様々なアプリケーションを構築するように他のマイクロサービスに論理的に結合され得るエンドポイントを有するソフトウェアロジックを指す。マイクロサービスを用いて構築されたアプリケーションは、単一の固定ユニットとして設計され且つ一般に実行可能な単一のロジックを含むモノリシックアプリケーションとは異なる。マイクロサービスアプリケーションを用いて、異なるマイクロサービスを別個の実行ファイルとして独立して展開することができる。マイクロサービスは、ハイパーテキスト転送プロトコル(HTTP)メッセージを用いておよび/または他の通信プロトコルに従って、APIエンドポイントを介して通信することができる。マイクロサービスは、別々に管理および更新されてもよく、異なる言語で記述されてもよく、または他のマイクロサービスとは独立して実行されてもよい。
【0102】
マイクロサービスは、アプリケーションの管理および構築に柔軟性を提供する。マイクロサービスのソースコードを変更することなく、異なるセットのマイクロサービスを接続することによって、異なるアプリケーションを構築することができる。したがって、マイクロサービスは、異なるアプリケーションを構築するように様々な方法で配置され得る論理ビルディングブロックとして機能する。マイクロサービスは、マイクロサービスマネージャに公開される複数のトリガイベントのうち、1つのトリガイベントが発生する時に、マイクロサービスマネージャ(例えば、If-This-Then-That(IFTTT)、Zapier、またはOracle(登録商標)Self-Service Automation(OSSA))に通知する監視サービスを提供することができる。代替的にまたは追加的に、アプリケーションに公開されるマイクロサービスは、マイクロサービスマネージャから受信されたデータに基づいて、アプリケーションにおいてアクションを実行するアクションサービス(値を渡すことによって、アクションをマイクロサービスマネージャ内の他のトリガおよび/または他のアクションから渡されたデータに接続することによって、マイクロサービスマネージャを介して制御可能且つ構成可能である)を提供することができる。マイクロサービストリガおよび/またはアクションは、互いに認識しないまたは互いに制御もしくは依存しない任意の異なるアプリケーションに発生するアクションのレシピを形成するように、連結されてもよい。これによって、管理されたアプリケーションを単独でまたは他のアプリケーションと組み合わせて使用する度に再認証を必要とすることなく、マイクロサービスマネージャに提供されたユーザアプリケーション証明書を用いて、これらの管理されたアプリケーションを認証することができ、またはマイクロサービスマネージャに差し込むことができる。
【0103】
1つ以上の実施形態において、マイクロサービスは、GUIを介して接続されてもよい。例えば、マイクロサービスは、GUIのウィンドウ、フレームまたは他の要素内の論理ブロックとして表示されてもよい。ユーザは、アプリケーションを構築するために使用されるGUIにマイクロサービスをドラッグアンドドロップすることができる。ユーザは、有向矢印または任意の他のGUI要素を用いて、1つのマイクロサービスの出力を別のマイクロサービスの入力に接続することができる。アプリケーションビルダは、検証テストを実行することによって(例えば、データ種類、サイズ制限などをチェックことによって)、出力と入力との互換性を確認することができる。
【0104】
トリガ
1つ以上の実施形態によれば、上述した技術は、マイクロサービスにカプセル化されてもよい。換言すれば、マイクロサービスは、上述した技術に基づいて、(本明細書では「ターゲット」マイクロサービスと称される他の差し込み型アプリケーションによって使用され得るマイクロサービスマネージャへの)通知をトリガすることができ、および/またはGUIブロックとして提示され、1つ以上の他のマイクロサービスに接続されてもよい。トリガ条件は、数値の絶対閾値または相対閾値、および/または分析すべきデータ量もしくは時間の絶対閾値または相対閾値を含むことができる。したがって、差し込み型マイクロサービスアプリケーションが閾値を超えたことを検出すると、マイクロサービスマネージャがトリガされる。例えば、マイクロサービスアプリケーションがトリガ閾値を超えたことを検出すると、ユーザは、マイクロサービスマネージャのトリガを要求することができる。
【0105】
一実施形態において、トリガは、満足されると、ターゲットマイクロサービスによって消費されるデータを出力することができる。別の実施形態において、トリガは、満足されると、トリガが満足されたことを示すバイナリ値を出力する、またはトリガ条件が満たされたフィールドの名前または他のコンテキスト情報を出力する。追加的または代替的に、ターゲットマイクロサービスを1つ以上の他のマイクロサービスに接続することによって、警告を他のマイクロサービスに提供することができる。他のマイクロサービスは、上述した技術に基づいて、追加のリソースの展開、システム構成の調整および/またはGUIの生成を含むがこれらに限定されない応答アクションを実行することができる。
【0106】
アクション
1つ以上の実施形態において、差し込み型マイクロサービスアプリケーションは、アクションをマイクロサービスマネージャに公開することができる。公開されたアクションは、データ、またはデータをデータクラウド内に移動させるデータオブジェクトまたはデータ位置のIDを入力として受信することができる。
【0107】
1つ以上の実施形態において、公開されたアクションは、既存の警告閾値を増加または減少させるリクエストを入力として受信することができる。入力は、既存のアプリケーション警告閾値を特定することができ、その閾値を増加または減少するかまたは削除するかを特定することができる。追加的または代替的に、入力は、新たなアプリケーション警告閾値を作成するように、マイクロサービスアプリケーションに要求することができる。アプリケーション警告は、ユーザがアプリケーションにログインする時に警告をユーザに発行することができ、またはマイクロサービスマネージャに差し込まれた他のアプリケーションを通さず、マイクロサービスアプリケーション自体に利用可能なデフォルトまたはユーザ選択警告メカニズムを用いて警告をユーザに発行することができる。
【0108】
1つ以上の実施形態において、マイクロサービスアプリケーションは、履歴データを特定入力、位置を特定する入力、履歴データを提供する入力、または要求された出力の広さまたは範囲を定義する入力に基づいて、出力を生成および提供することができる。アクションがトリガされると、マイクロサービスアプリケーションは、出力を、例えばデータモデルとしてまたはデータモデルを記述する集約データとして、提供、記憶または提示する。
【0109】
上述の明細書において、実現例によって異なり得る多くの具体的詳細を参照して、本発明の実施形態を説明した。したがって、明細書および添付の図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一且つ排他的な指標、および出願人が意図する本発明の範囲は、その後のあらゆる補正を含めて、特定の形態で本願から得られた特許請求の範囲の文言上の範囲および同等の範囲である。