以下、本発明を実施し得る特定の例示的な実施形態を例として示し、かつ実施形態の一部を形成する添付の図面を参照して、様々な実施形態を以下十分に説明する。しかしながら、実施形態は、多くの異なる形態で具現化されてもよく、本明細書に記載した実施形態に限定されると解釈されるべきではなく、むしろ、これらの実施形態は、本開示が徹底的かつ完全であり、当業者に実施形態の範囲を十分に伝えるように提供されている。とりわけ、様々な実施形態は、方法、システム、媒体またはデバイスであり得る。したがって、様々な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはソフトウェアとハードウェアの観点を組み合わせた実施形態の形態を取ってもよい。したがって、以下の詳細な説明は、限定的な意味ではとられない。
明細書および特許請求の範囲の全体を通じて、以下の用語は、文脈が他のことを明示しない限り、本明細書において明示的に関連した意味をとる。本明細書において使用される「一実施形態において」というフレーズは、必ずしも同じ実施形態を指しているわけではないが、同じ実施形態を指してもよい。さらに、本明細書において使用される「別の実施形態において」というフレーズは、必ずしも異なる実施形態を指しているわけではないが、異なる実施形態を指してもよい。このように、以下に説明するように、本発明の範囲または精神から逸脱することなく、様々な実施形態を容易に組み合わせてもよい。追加的に、本明細書において使用される場合、用語「または」は、包括的な「または」の演算子であり、文脈が他のことを明示しない限り、用語「および/または」と等価である。用語「に基づく」は排他的ではなく、文脈が他のことを明示しない限り、説明していない追加的な要因に基づくことを許容する。追加的に、明細書全体を通じて、「a」、「an」および「the」の意味は、複数の参照を含む。「in」の意味は、「in」および「on」を含む。
例えば、実施形態において、以下の用語は、文脈が他のことを明示しない限り、対応する意味にしたがって本明細書においても使用される。
本明細書で使用される場合、「エンジン」とは、ハードウェアまたはソフトウェア命令に具現化された論理を指し、命令は、C、C++、Objective-C、COBOL、Java(商標)、PHP、Perl、JavaScript、Ruby、VBScript、C#などのMicrosoft .NET(商標)言語などのプログラミング言語で書くことができる。エンジンは、実行可能なプログラムにコンパイルされるか、または解釈されたプログラミング言語で書かれる。ソフトウェアエンジンは、他のエンジンまたはそれ自体から呼び出し可能であってもよい。本明細書において説明されるエンジンは、他のエンジンまたはアプリケーションとマージすることができる、またはサブエンジンに分割することができる1つ以上の論理モジュールを指す。エンジンは、非一時的なコンピュー可読媒体またはコンピュータ記憶デバイスに記憶され、1つ以上の汎用コンピュータによって記憶され実行され得、このようにして、エンジンを提供するように構成されている専用コンピュータを作成する。
本明細書で使用される場合、用語「データソース」は、組織のために情報を記憶または提供するデータベース、アプリケーション、サービス、ファイルシステムなどを指す。データソースの例としては、RDBMSデータベース、グラフデータベース、スプレッドシート、ファイルシステム、文書管理システム、ローカルまたはリモートのデータストリームなどを含んでもよい。場合によっては、データソースは、1つ以上のテーブルまたはテーブルのような構造を中心に組織化される。それ以外の場合、データソースは、グラフまたはグラフのような構造として組織化される。
本明細書で使用される場合、用語「データモデル」は、基礎となるデータソースの表現を提供する1つ以上のデータ構造を指す。場合によっては、データモデルが特定のアプリケーションのデータソースのビューを提供してもよい。データモデルは、基礎となるデ―タソースへのビューまたはインターフェースと考えられてもよい。場合によっては、データモデルは、データソース(例えば、実際にはロジカルパススルー)に直接マッピングしてもよい。また、場合によっては、データモデルは、データソースによって提供されてもよい。場合によっては、データモデルは、データソースへのインターフェースと考えられてもよい。データモデルは、組織が、データソースからの情報を、より便利であること、より意味があること(例えば、より理論的に容易な)、より安全であることなどの方法で組織化または提示することを可能にする。
本明細書で使用される場合、用語「データオブジェクト」は、データモデルを含む1つ以上のエンティティまたはデータ構造を指す。場合によっては、データオブジェクトはデータモデルの一部分と考えられてもよい。データオブジェクトは、アイテムの個々のインスタンスまたはアイテムのクラス若しくは種類を表してもよい。
本明細書で使用される場合、用語「パネル」は、GUI内に定義された幾何学的形状(例えば、x、y、zオーダー)を有するグラフィカルユーザインターフェース(GUI)内の領域を指す。パネルは、ユーザに情報を表示するか、または1つ以上の対話型制御をホストするようにアレンジされてもよい。パネルに関連付けられる幾何学的形状またはスタイルは、動的ルールを含む設定情報を使用して定義されてもよい。また、場合によっては、ユーザは、移動、表示、非表示、再サイズ化、再順序付けなどのアクションを1つ以上のパネルで実行することが可能であってもよい。
本明細書で使用される場合、「可視化モデル(visualization model)」は、1つ以上のハードウェアディスプレイ上に表示される可視化において使用するのに適し得るデータモデルの1つ以上の表現を表す1つ以上のデータ構造を指す。可視化モデルは、制作者ではないユーザが利用可能であり得るスタイルまたはユーザインターフェース特徴を定義してもよい。
本明細書で使用される場合、用語「表示オブジェクト」は、可視化モデルを含む1つ以上のデータ構造を指す。場合によっては、表示オブジェクトは、可視化モデルの一部分と考えられてもよい。表示オブジェクトは、可視化で表示され得るアイテムの個々のインスタンスまたはアイテムの全体のクラス若しくは種類を表してもよい。いくつかの実施形態において、表示オブジェクトは、データモデルの一部分のビューを提供するため、ビューとみなされるか、またはビューと呼ばれてもよい。
本明細書で使用される場合、用語「推奨モデル(recommendation model)」は、ユーザのための可視化を予測するようにアレンジされ得る機械学習ベースのモデルを含む1つ以上のデータ構造を指す。場合によっては、異なるタイプの機械学習に基づき得る異なるタイプの推奨モデルがあってもよい。同様に、いくつかの実施形態では、異なる基準に基づく、または異なる目的のための可視化を推奨するために、異なる推奨モデルがアレンジされてもよい。場合によっては、推奨モデルは、1つ以上の機械学習サブモデルと併せて動作する1つ以上の発見的手法、フィルタなどを含んでもよい。
本明細書で使用される場合、用語「ベースラインモデル」は、組織に関連付けられたユーザではなく、一般集団のユーザのパブリックまたは共通使用履歴に関連付けられた訓練データに基づいて訓練または調整された推奨モデルを指す。ベースラインモデルは、個々の組織におけるユーザのためにパーソナライズされたモデルを訓練するために、十分な訓練データが収集されるまで使用され得る初期推奨モデルをブートストラップするために使用されてもよい。
本明細書中で使用される場合、用語「ユーザプロファイル」は、個々のユーザの1つ以上の特性に基づく、またはこれに関連付けられた情報またはデータを含むデータ構造を指す。例えば、ユーザプロファイルは、ユーザID、グループメンバーシップ、役割、アクセス権、以前の活動、好ましい可視化、ユーザの好みなどのような情報を表す情報を含んでもよい。場合によっては、ユーザプロファイルは、履歴活動ログ、テレメトリ情報などを含む追加情報への参照またはポインタを含んでもよい。実施形態によっては、ユーザプロファイルに含まれるいくつかのまたは全ての値は、モデル化エンジンが推奨モデルを訓練することを可能にするために、または推奨エンジンがユーザプロファイルに基づいた可視化の推奨に使用するために、正規化され、重み付けされ、湾曲され、形状付けされるなどが行われてもよい。
本明細書で使用する場合、用語「設定情報」は、規則に基づくポリシー、パターンマッチング、スクリプト(例えば、コンピュータ可読命令)などを含み得る情報を指し、これらは、設定ファイル、データベース、ユーザ入力、組み込みデフォルトなど、またはそれらの組み合わせを含む様々なソースから提供され得る。
以下では、本発明のいくつかの態様の基本的な理解を提供するために、本発明の実施形態について簡単に説明する。この簡単な説明は、広範な概観を意図したものではない。これは、キーとなる要素若しくは重要な要素を識別すること、範囲を明確にするか、またはそれ以外の方法で範囲を狭めることを意図したものではない。その目的は、いくつかの概念を単純化した形式で、後に提示されるより詳細な説明の序文として提示することである。
簡単に述べると、様々な実施形態は、本明細書で説明されるように実行するための1つ以上の命令を実行する1つ以上のプロセッサを使用して、データの可視化を管理することを対象とする。様々な実施形態のうちの1つ以上において、複数の可視化モデルおよびユーザプロファイルが、複数の可視化モデルおよびユーザプロファイルが組織に関連付けられ得るように、提供されてもよい。
様々な実施形態のうちの1つ以上において、組織に対する複雑性スコアは、組織の1つ以上の特性に基づいて提供されてもよい。様々な実施形態のうちの1つ以上において、組織に対する複雑性スコアを提供することは、組織に関連付けられたユーザ数を決定することと、組織に関連付けられた可視化モデル数を決定することと、複雑性スコアを、組織に関連付けられたユーザ数および組織に関連付けられた可視化モデル数のうちの大きい方に基づいて提供することと、を含んでもよい。様々な実施形態のうちの1つ以上において、複雑性スコアの1つ以上の特性は、組織の従業員数、組織に関連付けられた可視化モデル数、または組織による1つ以上の機能と組織の市場参入に基づく組織の分類のうちの1つ以上を含んでもよい。
様々な実施形態のうちの1つ以上において、推奨モデルは、複雑性スコアおよびベースラインモデルに基づいて提供されてもよい。
様々な実施形態のうちの1つ以上において、推奨モデルを用いて、複数の可視化モデルの1つ以上の推奨される可視化モデルを、ユーザプロファイルと、すべてのユーザにおける1つ以上の可視化モデルの全体的な人気、またはユーザプロファイルの同じ特性に対応する特性を有する他のユーザプロファイルを有する可視化モデルの人気のうちの1つ以上とに基づいて決定することであって、推奨モデルは、各推奨可視化モデルを信頼スコアと関連付ける、こととを行ってもよい。
様々な実施形態のうちの1つ以上において、推奨モデルを用いて、1つ以上の推奨可視化モデルを決定することは、推奨モデルに基づいて各推奨に対する1つ以上の理由を含む1つ以上の自然言語の叙述を生成することを含んでもよく、1つ以上の理由は、すべてのユーザにわたる推奨可視化モデルの人気、またはユーザに類似する他のユーザに関連付けられた活動のうちの1つ以上を含んでもよい。
様々な実施形態のうちの1つ以上において、推奨モデルを生成することは、1つ以上の可視化モデルを推奨する1つ以上のサブモデルを、すべてのユーザにおける1つ以上の可視化モデルの全体的な人気に基づいて決定することと、可視化モデルを推奨する1つ以上の他のサブモデルを、ユーザプロファイルの同じ特性に対応する特性を有する他のユーザプロファイルを有する可視化モデルの人気に基づいて決定することと、1つ以上の重み値を1つ以上のサブモデルおよび1つ以上の他のサブモデルに関連付けることであって、1つ以上の重み値が、1つ以上のサブモデルまたは1つ以上の他のサブモデルが1つ以上の推奨可視化モデルを決定するためにどのように使用されるかを決定する、ことと、を含んでもよい。
様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化モデルは、関連付けられた各信頼スコアに基づいてランク順にされてもよい。様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化モデルを順序付けることは、ユーザがアクセス可能な1つ以上の推奨可視化モデルの第1の部分を、ユーザに関連付けられたアクセス許可情報に基づいて決定することと、1つ以上の推奨の第2の部分を、以前にユーザに推奨された1つ以上の可視化モデルに基づいて決定することと、1つ以上の他の推奨可視化モデルの第3の部分を、以前にユーザによってアクセスされた1つ以上の他の可視化モデルに基づいて決定することと、1つ以上の推奨可視化モデルのランク順リストを、1つ以上の推奨可視化モデルの第1の部分、1つ以上の推奨可視化モデルの第2の部分、および1つ以上の推奨可視化モデルの第3の部分を除去すること、またはランクを下げることのうちの1つ以上を行うことに基づいて、1つ以上の推奨可視化モデルのランク順リストを修正することと、をさらに含んでもよい。
様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化モデルのランク順リストを含むレポートが、ユーザプロファイルに関連付けられたユーザに提供されてもよい。
様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化モデルに関連付けられたユーザの1つ以上のアクションが監視されてもよい。様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化モデルに関連付けられたユーザの1つ以上のアクションが監視されてもよい。様々な実施形態のうちの1つ以上において、1つ以上のアクションおよび1つ以上の他のアクションに関連付けられた情報がデータ記憶部に記憶されてもよい。様々な実施形態のうちの1つ以上において、ユーザプロファイルが、1つ以上のアクションおよび1つ以上の他のアクションに基づいて更新されてもよい。また、様々な実施形態のうちの1つ以上において、推奨モデルが、データ記憶部に記憶された情報および更新されたユーザプロファイルに基づいて訓練されてもよい。
様々な実施形態のうちの1つ以上において、パブリックコミュニティの1つ以上のアクションに関連付けられた情報を記憶するコミュニティデータ記憶部が提供されてもよい。様々な実施形態のうちの1つ以上において、推奨モデルが、コミュニティデータ記憶部に基づいて訓練して、訓練された推奨モデルされてもよい。様々な実施形態のうちの1つ以上において、ベースラインモデルが、訓練された推奨モデルに基づいて提供されてもよい。
様々な実施形態のうちの1つ以上において、レポートに関連付けられ得るフィードバック情報が監視されてもよい。様々な実施形態のうちの1つ以上において、1つ以上のスコアが、フィードバック情報に基づいて提供されてもよい。いくつかの実施形態において、1つ以上のスコアを用いて、推奨モデル、または1つ以上の推奨可視化モデルのランク順リストのうちの1つ以上を修正してもよい。
示された動作環境
図1は、本発明の実施形態が実施され得る環境の一実施形態の構成要素を示す。全ての構成要素が本発明を実施するために必要とされなくてもよく、構成要素の配置および種類の変更は、本発明の精神または範囲から逸脱することなく行ってもよい。図示のように、図1のシステム100は、ローカルエリアネットワーク(LAN)/ワイドエリアネットワーク(WAN)-(ネットワーク)110、無線ネットワーク108、クライアントコンピュータ102~105、可視化サーバコンピュータ116、データソースサーバコンピュータ118などを含む。
クライアントコンピュータ102~105の少なくとも1つの実施形態は、図2と併せて以下により詳細に説明される。一実施形態において、クライアントコンピュータ102~105の少なくとも一部は、ネットワーク108または110などの1つ以上の有線または無線ネットワーク上で動作してもよい。一般に、クライアントコンピュータ102~105は、情報を送受信し、様々なオンラインアクティビティを実行し、オフラインアクションを実行するために、ネットワークを介して通信することが可能である実質的に任意のコンピュータを含み得る。一実施形態において、クライアントコンピュータ102~105のうちの1つ以上は、ビジネスまたは他のエンティティ内で動作し、ビジネスまたは他のエンティティのために様々なサービスを実行するように構成されてもよい。例えば、クライアントコンピュータ102~105は、ウェブサーバ、ファイアウォール、クライアントアプリケーション、メディアプレーヤ、移動電話、ゲームコンソール、デスクトップコンピュータなどとして動作するように構成されてもよい。しかし、クライアントコンピュータ102~105は、これらのサービスに制約されず、例えば、他の実施形態におけるエンドユーザのコンピューティングのようにも用いられてもよい。より多くまたはより少ないクライアントコンピュータ(図1に示される)が、本明細書で説明されるようなシステム内に含まれてもよく、したがって、実施形態は、用いられるクライアントコンピュータの数またはタイプによって制約されないことを認識すべきである。
クライアントコンピュータ102として動作するコンピュータは、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル電子デバイス、ネットワークPCなどのような有線または無線通信媒体を使用して典型的には接続するコンピュータを含んでもよい。いくつかの実施形態において、クライアントコンピュータ102~105は、ラップトップコンピュータ103、モバイルコンピュータ104、タブレットコンピュータ105など、別のコンピュータに接続し、情報を受信することができる実質的に任意のポータブルコンピュータを含んでもよい。しかしながら、ポータブルコンピュータは、それに限定されるものではなく、携帯電話、ディスプレイページャ、無線周波(RF)デバイス、赤外線(IR)デバイス、パーソナルデジタルアシスタント(PDA)、ハンドヘルドコンピュータ、ウェアラブルコンピュータ、先行のコンピュータのうちの1つ以上を組み合わせた一体化デバイスなどの他のポータブルコンピュータも含んでもよい。このようにして、クライアントコンピュータ102~105は、典型的には、能力および特徴の点で広範囲に及ぶ。さらに、クライアントコンピュータ102~105は、ブラウザまたは他のウェブベースのアプリケーションを含む様々なコンピューティングアプリケーションにアクセスしてもよい。
ウェブ対応クライアントコンピュータは、ウェブ経由で要求を送信し、応答を受信するように構成されているブラウザアプリケーションを含んでもよい。ブラウザアプリケーションは、グラフィック、テキスト、マルチメディアなどを受信し、表示するように構成され得、実質的に任意のウェブベースの言語を用いる。一実施形態において、ブラウザアプリケーションは、JavaScript、HTML(HyperText Markup Language)、XML(eXtensible Markup Language)、JSON(JavaScript Object Notation)、CSS(Cascading Style Sheets)などか、またはそれらの組み合わせを用いて、メッセージを表示および送信することが可能である。一実施形態において、クライアントコンピュータのユーザは、ブラウザアプリケーションを用いて、ネットワーク上(オンライン)で様々なアクティビティを実行してもよい。しかし、様々なオンラインアクティビティを実行するために、別のアプリケーションも使用してもよい。
クライアントコンピュータ102~105はまた、別のコンピュータ間でコンテンツを受信または送信するように構成されている少なくとも1つの他のクライアントアプリケーションを含んでもよい。クライアントアプリケーションは、コンテンツなどを送信または受信する能力などを含んでもよい。クライアントアプリケーションは、さらに、タイプ、能力、名前などを含む、自身を識別する情報を提供してもよい。一実施形態では、クライアントコンピュータ102~105は、インターネットプロトコル(IP)アドレス、電話番号、モバイル識別番号(MIN)、電子シリアル番号(ESN)、クライアント証明書、または他のデバイス識別子を含む様々なメカニズムのいずれかを介して、自身を一意に識別してもよい。このような情報は、他のクライアントコンピュータ、可視化サーバコンピュータ116、データソースサーバコンピュータ118、または他のコンピュータ間で送信される1つ以上のネットワークパケットなどで提供されてもよい。
クライアントコンピュータ102~105は、可視化サーバコンピュータ116、データソースサーバコンピュータ118などの別のコンピュータによって管理され得るエンドユーザアカウントにエンドユーザがログインすることを可能にするクライアントアプリケーションを含むようにさらに構成されてもよい。1つの非限定的な例において、このようなエンドユーザアカウントは、1つの非限定的な例において、プロジェクト管理、ソフトウェア開発、システム管理、構成管理、検索アクティビティ、ソーシャルネットワーキングアクティビティ、様々なウェブサイトの閲覧、他のユーザとの通信などを含む、1つ以上のオンラインアクティビティをエンドユーザが管理できるように構成されてもよい。また、クライアントコンピュータは、ユーザがレポート、対話型ユーザインターフェース、または可視化サーバコンピュータ116、データソースサーバコンピュータ118によって提供される結果を表示することを可能にするようにアレンジされてもよい。
無線ネットワーク108は、クライアントコンピュータ103~105およびその構成要素をネットワーク110と結合するように構成されている。無線ネットワーク108は、クライアントコンピュータ103~105のためのインフラストラクチャ指向の接続を提供するために、スタンドアロンアドホックネットワークなどをさらにオーバーレイし得る様々な無線サブネットワークのいずれかを含んでもよい。このようなサブネットワークは、メッシュネットワーク、無線LAN(WLAN)ネットワーク、セルラネットワークなどを含んでもよい。一実施形態において、システムは、複数の無線ネットワークを含んでもよい。
無線ネットワーク108は、無線ラジオリンクなどによって接続された端末、ゲートウェイ、ルータなどの自律システムをさらに含んでもよい。これらのコネクタは、無線ネットワーク108のトポロジが急速に変化するように、自由にかつランダムに移動し、自身を任意に組織化するように構成されてもよい。
無線ネットワーク108は、セルラシステムのための第2(2G)、第3(3G)、第4(4G)第5(5G)世代無線アクセス、WLAN、無線ルータ(WR)メッシュなどを含む複数のアクセス技術をさらに用いてもよい。2G、3G、4G、5G、および将来のアクセスネットワークなどのアクセス技術は、様々なモバイル性を有するクライアントコンピュータ103~105のようなモバイルコンピュータに対する広域カバレッジを可能にしてもよい。1つの非限定的な例において、無線ネットワーク108は、GSM(Global System for Mobil communication)、GPRS(General Packet Radio Services)、EDGE(Enhanced Data GSM Environment)、CDMA(code division multiple access)、TDMA(time division multiple acces)、WCDMA(登録商標)(Wideband Code Division Multiple Access)、HSDPA(High Speed Downlink Packet Access)、LTE(Long Term Evolution)などの無線ネットワークアクセスを介して無線接続を可能にしてもよい。本質的に、無線ネットワーク108は、情報がクライアントコンピュータ103~105と別のコンピュータ、ネットワーク、クラウドベースのネットワーク、クラウドインスタンスなどとの間を移動することができる実質的に任意の無線通信メカニズムを含んでもよい。
ネットワーク110は、ネットワークコンピュータを、可視化サーバコンピュータ116、データソースサーバコンピュータ118、クライアントコンピュータ102、およびクライアントコンピュータ103~105などを含む他のコンピュータに無線ネットワーク108などを介して結合するように構成されている。ネットワーク110は、ある電子デバイスから別のデバイスへ情報を通信するために、任意の形態のコンピュータ可読媒体を用いることが可能となっている。また、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ユニバーサルシリアルバス(USB)ポート、イーサネット(登録商標)ポート、他の形態のコンピュータ可読媒体、またはそれらの任意の組み合わせを介した直接接続に加えて、インターネットを含むことができる。異なるアーキテクチャおよびプロトコルに基づくものを含む、相互接続されたLANのセットでは、ルータはLAN間のリンクとして作用し、メッセージを互いに送信することを可能にする。加えて、LAN内の通信リンクは、典型的には、ツイストワイヤ対または同軸ケーブルを含むが、ネットワーク間の通信リンクは、アナログ電話回線、T1、T2、T3、およびT4を含む完全若しくは部分専用デジタル回線、または、例えば、Eキャリア、ISDN(Integrated Services Digital Network)、DSL(Digital Subscriber Line)、衛星リンクを含む無線リンク、または当業者に既知の他の通信リンクを含む他のキャリアメカニズムを利用してもよい。さらに、通信リンクは、例えば、DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48などを含むが、これらに限定されない、様々なデジタルシグナリング技術のいずれかをさらに用いてもよい。さらに、遠隔コンピュータおよび他の関係する電子デバイスは、モデムおよび一時的な電話リンクを介してLANまたはWANのいずれかに遠隔的に接続され得る。一実施形態では、ネットワーク110は、インターネットプロトコル(IP)の情報を転送するように構成され得る。
追加的に、通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または他の転送メカニズムを具現化し、任意の情報非一時的な送達媒体または一時的送達媒体を含む。例として、通信媒体は、ツイストペア、同軸ケーブル、光ファイバ、導波路、および他の有線媒体などの有線媒体、並びに音響、RF、赤外線、および他の無線媒体などの無線媒体を含む。
また、可視化サーバコンピュータ116、データソースサーバコンピュータ118の一実施形態が、図3と併せて以下でより詳細に説明される。図1は、可視化サーバコンピュータ116、データソースサーバコンピュータ118などを、それぞれが単一のコンピュータとして示しているが、イノベーションまたは実施形態は、そのようには限定されない。例えば、可視化サーバコンピュータ116、データソースサーバコンピュータ118などの1つ以上の機能が、1つ以上の別個のネットワークコンピュータに分散してもよい。さらに、1つ以上の実施形態において、可視化サーバコンピュータ116、データソースサーバコンピュータ118は、複数のネットワークコンピュータを使用して実装されてもよい。さらに、様々な実施形態のうちの1つ以上において、可視化サーバコンピュータ116、データソースサーバコンピュータ118などは、1つ以上のクラウドネットワーク内の1つ以上のクラウドインスタンスを使用して実装されてもよい。したがって、これらのイノベーションおよび実施形態は、単一の環境に限定されると解釈されるべきではなく、他の構成および他のアーキテクチャもまた、想定されている。
例示的なクライアントコンピュータ
図2は、図示されているものよりも多くまたはより少ない多くの構成要素を含み得るクライアントコンピュータ200の一実施形態を示す。クライアントコンピュータ200は、例えば、図1に示すモバイルコンピュータまたはクライアントコンピュータのうちの1つ以上の実施形態を表してもよい。
クライアントコンピュータ200は、バス228を介してメモリ204と通信するプロセッサ202を含んでもよい。クライアントコンピュータ200はまた、電源230、ネットワークインターフェース232、オーディオインターフェース256、ディスプレイ250、キーパッド252、照明器254、ビデオインターフェース242、入力/出力インターフェース238、触覚インターフェース264、グローバルポジショニングシステム(GPS)受信機258、オープンエアジェスチャインターフェース260、温度インターフェース262、カメラ(複数可)240、プロジェクタ246、ポインティングデバイスインターフェース266、プロセッサ可読固定記憶デバイス234、およびプロセッサ可読リムーバブル記憶デバイス236を含んでもよい。クライアントコンピュータ200は、任意選択で、基地局(図示せず)、または別のコンピュータと直接通信してもよい。また、一実施形態において、図示されていないが、クライアントコンピュータ200の向きを測定または維持するために、クライアントコンピュータ200内でジャイロスコープが用いられてもよい。
電源230は、クライアントコンピュータ200に電力を提供してもよい。電力を提供するために、再充電可能または非再充電可能なバッテリが使用されてもよい。電力はまた、バッテリを補足または再充電するACアダプタまたは電源付きドッキングクレードルなどの外部電源によって提供されてもよい。
ネットワークインターフェース232は、クライアントコンピュータ200を1つ以上のネットワークに結合するための回路を含み、移動通信(GSM)、CDMA、TDMA(time division multiple access)、UDP、TCP/IP、SMS、MMS、GPRS、WAP、UWB、WiMax、SIP/RTP、GPRS、EDGE、WCDMA、LTE、UMTS、OFDM、CDMA2000、EV-DO、HSDPA、または様々な他の無線通信プロトコルのいずれかのためのOSIモデルの任意の部分を実装するプロトコルおよび技術を含むが、これらに限定されない、1つ以上の通信プロトコルおよび技術と共に使用するために構築されている。ネットワークインターフェース232は、トランシーバ、トランシーバデバイス、またはネットワークインターフェースカード(NIC)として知られることがある。
オーディオインターフェース256は、人間の音声の音のようなオーディオ信号を生成および受信するようにアレンジされてもよい。例えば、オーディオインターフェース256は、スピーカおよびマイクロホン(図示せず)に結合されて、他者との通信を可能にするか、または何らかのアクションのためのオーディオ確認応答を生成する。また、オーディオインターフェース256内のマイクロホンは、例えば音声認識、音に基づくタッチ検出などを使用して、クライアントコンピュータ200への入力または制御のために使用され得る。
ディスプレイ250は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LCD)、有機LED(OLED)、またはコンピュータと共に使用され得る任意の他のタイプの反射型または光透過型ディスプレイであってもよい。ディスプレイ250はまた、スタイラスまたは人間の手の指などの物体から入力を受信するようにアレンジされたタッチインターフェース244を含んでもよく、抵抗性、容量性、表面音波(SAW)、赤外線、レーダ、または接触またはジェスチャを感知するための他の技術を使用してもよい。
プロジェクタ246は、遠隔ハンドヘルドプロジェクタ、または、遠隔壁または遠隔スクリーンのような他の反射物体上に画像を投影することができる一体化されたプロジェクタであってもよい。
ビデオインターフェース242は、静止写真、ビデオセグメント、赤外線ビデオなどのビデオ画像をキャプチャするようにアレンジされ得る。例えば、ビデオインターフェース242は、デジタルビデオカメラ、ウェブカメラなどに結合されてもよい。ビデオインターフェース242は、レンズ、画像センサ、および他の電子機器を含んでもよい。画像センサは、相補型金属酸化物半導体集積回路(CMOS)、電荷結合素子(CCD)、または光を感知するための任意の他の集積回路を含んでもよい。
キーパッド252は、ユーザからの入力を受信するようにアレンジされた任意の入力デバイスを含んでもよい。例えば、キーパッド252は、プッシュボタンの数字ダイヤル、またはキーボードを含んでもよい。キーパッド252はまた、画像の選択および送信に関連付けられたコマンドボタンを含んでもよい。
照明器254は、状態表示を提供するか、または光を提供してもよい。照明器254は、特定の期間にわたって、またはイベントメッセージに応答して、アクティブのままであってもよい。例えば、照明器254は、作動しているときに、キーパッド252のボタンをバックライト点灯し、クライアントコンピュータの電源が入っている間、オンのままにしてもよい。また、照明器254は、別のクライアントコンピュータをダイヤルするような特定のアクションが実行されるときに、これらのボタンを様々なパターンでバックライト点灯してもよい。照明器254はまた、クライアントコンピュータの透明または半透明ケース内に位置決めされた光源が、アクションに応答して照明するようにしてもよい。
さらに、クライアントコンピュータ200はまた、キー、デジタル証明書、パスワード、パスフレーズ、2因子認証情報などのセキュリティ/暗号情報を生成、記憶、または使用するための追加の耐タンパーセーフガードを提供するためのハードウェアセキュリティモジュール(HSM)268を含んでもよい。いくつかの実施形態において、ハードウェアセキュリティモジュールを用いて、1つ以上の標準的な公開キー基盤(PKI)を支援してもよく、ハードウェアセキュリティモジュールを用いて、キーペアなどを生成、管理、または記憶してもよい。いくつかの実施形態において、HSM 268は、スタンドアロンコンピュータであってもよく、他の場合には、HSM 268は、クライアントコンピュータに追加され得るハードウェアカードとしてアレンジされてもよい。
クライアントコンピュータ200はまた、外部周辺デバイスまたは他のクライアントコンピュータおよびネットワークコンピュータなどの他のコンピュータと通信するための入力/出力インターフェース238を含んでもよい。周辺デバイスは、オーディオヘッドセット、バーチャルリアリティヘッドセット、ディスプレイスクリーングラス、リモートスピーカシステム、リモートスピーカおよびマイクロホンシステムなどを含んでもよい。入力/出力インターフェース238は、ユニバーサルシリアルバス(USB)、赤外線、WiFi、WiMax、Bluetooth(登録商標)などの1つ以上の技術を利用してもよい。
入力/出力インターフェース238はまた、地理位置情報(例えば、GPS)を決定する、電力状態を監視する(例えば、電圧センサ、電流センサ、周波数センサなど)、天気を監視する(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水スケールなど)などを含んでもよい。センサは、クライアントコンピュータ200の外部のデータを収集または測定する1つ以上のハードウェアセンサであってもよい。
触覚インターフェース264は、クライアントコンピュータのユーザに触覚フィードバックを提供するようにアレンジされてもよい。例えば、触覚インターフェース264を用いて、コンピュータの別のユーザが呼び出しているときに、クライアントコンピュータ200を特定の方法で振動させてもよい。温度インターフェース262は、温度測定入力または温度変化出力をクライアントコンピュータ200のユーザに提供するために使用されてもよい。オープンエアジェスチャインターフェース260は、例えば、単一またはステレオビデオカメラ、レーダ、ユーザが保持または装着するコンピュータ内のジャイロセンサなどを使用することによって、クライアントコンピュータ200のユーザの物理的ジェスチャを感知してもよい。カメラ240は、クライアントコンピュータ200のユーザの物理的な眼の動きを追跡するために使用されてもよい。
GPSトランシーバ258は、地球の表面上のクライアントコンピュータ200の物理座標を決定することができ、この座標は、典型的には、緯度値および経度値として位置を出力する。GPSトランシーバ258はまた、三角測量、AGPS(assisted GPS)、E-OTD(Enhanced Observed Time Difference)、CI(Cell Identifier)、SAI(Service Area Identifier)、ETA(Enhanced Timing Advance)、基地局サブシステム(BSS)などを含むが、これらに限定されない、他のジオポジショニングメカニズムを用いて、地球の表面上のクライアントコンピュータ200の物理的な位置をさらに決定することができる。異なる条件下では、GPSトランシーバ258はクライアントコンピュータ200の物理的位置を決定することができることが理解される。しかし、1つ以上の実施形態において、クライアントコンピュータ200は、他の構成要素を介して、クライアントコンピュータの物理的な位置を決定するために用いられ得る、例えば、メディアアクセス制御(MAC)アドレス、IPアドレスなどを含む他の情報を提供してもよい。
様々な実施形態のうちの少なくとも1つにおいて、オペレーティングシステム206、他のクライアントアプリケーション224、ウェブブラウザ226などのアプリケーションが、ジオロケーション情報を利用して、時間帯、言語、通貨、カレンダーフォーマットなどの1つ以上のローカル特徴を選択するように構成されてもよい。ローカル特徴は、ディスプレイオブジェクト、データモデル、データオブジェクト、ユーザインターフェース、レポート、および内部プロセスまたはデータベースで使用されてもよい。様々な実施形態のうちの少なくとも1つにおいて、ローカライズ情報を選択するために使用されるジオロケーション情報は、GPS258によって提供されてもよい。また、いくつかの実施形態では、ジオロケーション情報は、無線ネットワーク108またはネットワーク111など、ネットワーク上の1つ以上のジオロケーションプロトコルを使用して提供される情報を含んでもよい。
ヒューマンインターフェース構成要素は、クライアントコンピュータ200から物理的に分離された周辺デバイスであってもよく、クライアントコンピュータ200への遠隔入力またはそこからの出力を可能にする。例えば、ディスプレイ250またはキーボード252などのヒューマンインターフェース構成要素を通して本明細書に説明されるようにルーティングされた情報は、代わりに、ネットワークインターフェース232を通して遠隔に位置する適切なヒューマンインターフェース構成要素にルーティングされ得る。遠隔であり得るヒューマンインターフェース周辺構成要素の例としては、オーディオデバイス、ポインティングデバイス、キーパッド、ディスプレイ、カメラ、プロジェクタなどを含んでもよいが、これらに限定されない。これらの周辺構成要素は、Bluetooth、Zigbee(商標)などのピコネットワーク上で通信してもよい。このような周辺ヒューマンインターフェース構成要素を有するクライアントコンピュータの1つの非限定的な例は、ウェアラブルコンピュータであり、これは、壁またはユーザの手のような反射面にピコプロジェクタによって投影された画像の一部分に対するユーザのジェスチャを感知するために、別個に位置するクライアントコンピュータと遠隔に通信する1つ以上のカメラと共に遠隔ピコプロジェクタを含んでもよい。
クライアントコンピュータは、ウェブページ、ウェブベースのメッセージ、グラフィック、テキスト、マルチメディアなどを受信および送信するように構成されているウェブブラウザアプリケーション226を含んでもよい。クライアントコンピュータのブラウザアプリケーションは、無線アプリケーションプロトコルメッセージ(WAP)などを含む実質的に任意のプログラミング言語を用いてもよい。1つ以上の実施形態において、ブラウザアプリケーションは、HDML(Handheld Device Markup Language)、WML(Wireless Markup Language)、WMLスクリプト、JavaScript、SGML(Standard Generalized Markup Language)、HTML(HyperText Markup Language)、XML(eXtensible Markup Language)、HTML5などを用いることが可能となっている。
メモリ204は、RAM、ROM、または他のタイプのメモリを含んでもよい。メモリ204は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するためのコンピュータ可読記憶媒体の例を示す。メモリ204は、クライアントコンピュータ200の低レベル動作を制御するためのBIOS208を記憶してもよい。メモリはまた、クライアントコンピュータ200の動作を制御するためのオペレーティングシステム206を記憶してもよい。この構成要素は、UNIX(登録商標)、LINUX(商標)などの汎用オペレーティングシステム、Windows Phone(商標)、Symbian(商標)オペレーティングシステムなどの特殊化されたクライアントコンピュータ通信オペレーティングシステムが含み得ることが理解されよう。オペレーティングシステムは、ハードウェア構成要素の制御、またはオペレーティングシステムの動作をJavaアプリケーションプログラムを介して可能にするJava仮想マシンモジュールを含むか、またはこれとインターフェースしてもよい。
メモリ204は、とりわけ、アプリケーション220または他のデータを記憶するためにクライアントコンピュータ200によって利用され得る1つ以上のデータ記憶デバイス210をさらに含んでもよい。例えば、データ記憶デバイス210を用いて、クライアントコンピュータ200の様々な能力を記述する情報も記憶してもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて、別のデバイスまたはコンピュータに提供されてもよい。データ記憶デバイス210を用いて、アドレスブック、バディリスト、エイリアス、ユーザプロファイル情報などを含むソーシャルネットワーキング情報も記憶してもよい。データ記憶デバイス210は、プロセッサ202などのプロセッサがアクションを実行および実行するために使用するためのプログラムコード、データ、アルゴリズムなどをさらに含んでもよい。一実施形態において、データ記憶部210の少なくとも一部分はまた、非一時的なプロセッサ可読リムーバブル記憶デバイス236、プロセッサ可読固定記憶デバイス234、またはクライアントコンピュータの外部のものでさえも含むが、これらに限定されない、クライアントコンピュータ200の別の構成要素に記憶されてもよい。
アプリケーション220は、クライアントコンピュータ200によって実行されるときに、命令およびデータを送信するか、受信するか、またはそれ以外の方法で処理するコンピュータ実行可能命令を含んでもよい。アプリケーション220は、例えば、クライアント可視化エンジン222、他のクライアントアプリケーション224、ウェブブラウザ226などを含んでもよい。クライアントコンピュータは、1つ以上のサーバと通信するようにアレンジされてもよい。
アプリケーションプログラムの他の例としては、カレンダー、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、VOIP(Voice Over Internet Protocol)アプリケーション、コンタクトマネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、文書処理プログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラム、可視化アプリケーションなどを含む。
追加的に、1つ以上の実施形態(図示せず)において、クライアントコンピュータ200は、CPUの代わりに、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、PAL(Programmable Array Logic)など、またはそれらの組み合わせなどの組み込み論理ハードウェアを含んでもよい。組み込み論理ハードウェアデバイスは、その組み込み論理を直接実行してアクションを実行してもよい。また、1つ以上の実施形態(図示せず)において、クライアントコンピュータ200は、CPUの代わりに1つ以上のハードウェアマイクロコントローラを含んでもよい。1つ以上の実施形態において、1つ以上のマイクロコントローラは、アクションを実行し、自身の内部メモリおよび自身の外部の入力および出力インターフェース(例えば、ハードウェアピンまたは無線トランシーバ)にアクセスして、システムオンアチップ(SOC)などのアクションを実行するために、自身の組み込み論理を直接実行してもよい。
例示的なネットワークコンピュータ
図3は、様々な実施形態のうちの1つ以上を実装するシステムに含まれ得るネットワークコンピュータ300の一実施形態を示す。ネットワークコンピュータ300は、図3に示すものよりも多くまたはより少ない多くの構成要素を含んでもよい。しかしながら、示された構成要素は、これらのイノベーションを実施するための例示的な実施形態を開示するのに十分である。ネットワークコンピュータ300は、例えば、図1の可視化サーバコンピュータ116、データソースサーバコンピュータ118などのうちの少なくとも1つの実施例を表してもよい。
ネットワークコンピュータ300のようなネットワークコンピュータは、バス328を介してメモリ304と通信し得るプロセッサ302を含んでもよい。いくつかの実施形態において、プロセッサ302は、1つ以上のハードウェアプロセッサ、または1つ以上のプロセッサコアから構成されてもよい。場合によっては、1つ以上のプロセッサのうちの1つ以上は、本明細書で説明されているような1つ以上の特殊化されたアクションを実行するように設計された特殊化されたプロセッサであってもよい。ネットワークコンピュータ300はまた、電源330、ネットワークインターフェース332、オーディオインターフェース356、ディスプレイ350、キーボード352、入力/出力インターフェース338、プロセッサ可読固定記憶デバイス334、およびプロセッサ可読リムーバブル記憶デバイス336を含む。電源330は、クライアントコンピュータ300に電力を提供してもよい。
ネットワークインターフェース332は、ネットワークコンピュータ300を1つ以上のネットワークに結合するための回路を含み、OSIモデル(Open Systems Interconnection model)、GSM(global system for mobile communication)、CDMA(code division multiple access)、TDMA(time division multiple access)、UDP(user datagram protocol)、TCP/IP(transmission control protocol/Internet protocol)、SMS(Short Message Service)、MMS(Multimedia Messaging Service)、GPRS(general packet radio service)、WAP、UWB(ultra-wide band)、IEEE 802.16 WiMax(Worldwide Interoperability for Microwave Access)、SIP/RTP(Session Initiation Protocol/Real-time Transport Protocol)、または様々な他の有線および無線通信プロトコルのいずれかの任意の部分を実装するプロトコルおよび技術を含み、これらに限定されない、1つ以上の通信プロトコルおよび技術と共に使用するために構築されている。ネットワークインターフェース332は、トランシーバ、トランシーバデバイス、またはネットワークインターフェースカード(NIC)として知られることがある。ネットワークコンピュータ300は、任意選択で、基地局(図示せず)、または別のコンピュータと直接通信してもよい。
オーディオインターフェース356は、人間の音声の音のようなオーディオ信号を生成および受信するようにアレンジされている。例えば、オーディオインターフェース356は、スピーカおよびマイクロホン(図示せず)に結合されて、他者との通信を可能にするか、または何らかのアクションのためのオーディオ確認応答を生成する。オーディオインターフェース356内のマイクロホンを、例えば音声認識を使用して、ネットワークコンピュータ300への入力またはこれの制御に使用することもできる。
ディスプレイ350は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LCD)、有機LED(OLED)、またはコンピュータと共に使用され得る任意の他のタイプの反射型または光透過型ディスプレイであってもよい。いくつかの実施形態において、ディスプレイ350は、壁または他の物体上に画像を投影することができるハンドヘルドプロジェクタまたはピコプロジェクタであってもよい。
ネットワークコンピュータ300はまた、図3に示されていない外部デバイスまたはコンピュータと通信するための入力/出力インターフェース338を含んでもよい。入力/出力インターフェース338は、USB(登録商標)、Firewire(登録商標)、WiFi、WiMax、Thunderbolt(登録商標)、赤外線、Bluetooth(登録商標)、Zigbee(登録商標)、シリアルポート、パラレルポートなどの1つ以上の有線またはワイヤレス通信技術を利用することができる。
入力/出力インターフェース338はまた、地理位置情報(例えば、GPS)を決定する、電力状態を監視する(例えば、電圧センサ、電流センサ、周波数センサなど)、天気を監視する(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水スケールなど)などを含んでもよい。センサは、ネットワークコンピュータ300の外部のデータを収集または測定する1つ以上のハードウェアセンサであってもよい。ヒューマンインターフェース構成要素は、ネットワークコンピュータ300から物理的に分離することができ、ネットワークコンピュータ300への遠隔入力またはそこからの出力を可能にする。例えば、ディスプレイ350またはキーボード352のようなヒューマンインターフェース構成要素を通して本明細書に説明されるようにルーティングされた情報は、代わりに、ネットワークインターフェース332を通して、ネットワーク上の他の場所に位置する適切なヒューマンインターフェース構成要素にルーティングされ得る。ヒューマンインターフェース構成要素は、コンピュータがコンピュータの人間ユーザから入力を受信すること、またはコンピュータに出力を送信することを可能にする任意の構成要素を含む。したがって、マウス、スタイラス、トラックボールなどのポインティングデバイスは、ポインティングデバイスインターフェース358を介して通信し、ユーザの入力を受信してもよい。
GPSトランシーバ340は、地球の表面上のネットワークコンピュータ300の物理座標を決定することができ、この座標は、典型的には、緯度値および経度値として位置を出力する。GPSトランシーバ340はまた、三角測量、AGPS(assisted GPS)、E-OTD(Enhanced Observed Time Difference)、CI(Cell Identifier)、SAI(Service Area Identifier)、ETA(Enhanced Timing Advance)、基地局サブシステム(BSS)などを含むが、これらに限定されない、他のジオポジショニングメカニズムを用いて、地球の表面上のネットワークコンピュータ300の物理的な位置をさらに決定することができる。異なる条件下では、GPSトランシーバ340はネットワークコンピュータ300の物理的位置を決定することができることが理解される。しかし、1つ以上の実施形態において、ネットワークコンピュータ300は、他の構成要素を介して、ネットワークコンピュータの物理的な位置を決定するために用いられ得る、例えば、メディアアクセス制御(MAC)アドレス、IPアドレスなどを含む他の情報を提供してもよい。
様々な実施形態のうちの少なくとも1つにおいて、オペレーティングシステム306、推奨エンジン322、可視化エンジン324、モデル化エンジン326、他のアプリケーション329などのアプリケーションは、地理位置情報を用いて、時間帯、言語、通貨、通貨フォーマット、カレンダーフォーマットなどの1つ以上のローカル特徴を選択するように構成されてもよい。ローカル特徴は、ユーザインターフェース、ダッシュボード、可視化、レポート、および内部プロセスまたはデータベースで使用されてもよい。様々な実施形態のうちの少なくとも1つにおいて、ローカライズ情報を選択するために使用されるジオロケーション情報は、GPS340によって提供されてもよい。また、いくつかの実施形態では、ジオロケーション情報は、無線ネットワーク108またはネットワーク111など、ネットワーク上の1つ以上のジオロケーションプロトコルを使用して提供される情報を含んでもよい。
メモリ304は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、または他のタイプのメモリを含んでもよい。メモリ304は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するためのコンピュータ可読記憶媒体の例を示す。メモリ304は、ネットワークコンピュータ300の低レベル動作を制御するための基本入力/出力システム(BIOS)308を記憶する。メモリはまた、ネットワークコンピュータ300の動作を制御するためのオペレーティングシステム306を記憶してもよい。この構成要素は、UNIXまたはLINUX(商標)のバージョンのような汎用オペレーティングシステム、またはMicrosoft社のWindows(登録商標)オペレーティングシステム若しくはApple社のOSX(登録商標オペレーティングシステムなどの特殊化されたオペレーティングシステムを含み得ることが理解されよう。オペレーティングシステムは、ハードウェア構成要素の制御またはオペレーティングシステムの動作をJavaアプリケーションプログラムを介して可能にするJava仮想マシンモジュールのような、1つ以上の仮想マシンモジュールを含むか、またはそれらの仮想マシンモジュールとインターフェースしてもよい。同様に、他のランタイム環境が含まれてもよい。
メモリ304は、とりわけ、アプリケーション320または他のデータを記憶するためにネットワークコンピュータ300によって利用され得る1つ以上のデータ記憶デバイス310をさらに含んでもよい。例えば、データ記憶デバイス310を用いて、ネットワークコンピュータ300の様々な能力を記述する情報も記憶してもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて、別のデバイスまたはコンピュータに提供されてもよい。データ記憶デバイス310を用いて、アドレスブック、バディリスト、エイリアス、ユーザプロファイル情報などを含むソーシャルネットワーキング情報も記憶してもよい。データ記憶デバイス310は、プロセッサ302などのプロセッサが以下に説明されるアクションのようなアクションを実行および実行するために使用するためのプログラムコード、データ、アルゴリズムなどをさらに含んでもよい。一実施形態では、データ記憶デバイス310の少なくとも一部分はまた、プロセッサ可読リムーバブル記憶デバイス336内の非一時的な媒体、プロセッサ可読固定記憶デバイス334、またはネットワークコンピュータ300内の任意の他のコンピュータ可読記憶デバイス、若しくはネットワークコンピュータ300の外部のものでさえも含むが、これらに限定されない、ネットワークコンピュータ300の別の構成要素に記憶されてもよい。データ記憶デバイス310は、例えば、データモデル314、データソース316、可視化モデル318、評価モデル319などを含んでもよい。
アプリケーション320は、ネットワークコンピュータ300によって実行されるときに、メッセージ(例えば、SMS、MMS(Multimedia Messaging Service)、IM(Instant Message)、電子メールまたは他のメッセージ)、オーディオ、ビデオ、および別のモバイルコンピュータの別のユーザとの有効な電気通信を送信するか、受信するか、またはそれ以外の方法で処理するコンピュータ実行可能命令を含んでもよい。アプリケーションプログラムの他の例としては、カレンダー、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、VOIP(Voice Over Internet Protocol)アプリケーション、コンタクトマネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、文書処理プログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラムなどを含む。アプリケーション320は、推奨エンジン322、可視化エンジン324、モデル化エンジン326、他のアプリケーション329などを含み、これらは、以下に説明する実施形態のためのアクションを実行するようにアレンジされてもよい。様々な実施形態のうちの1つ以上において、1つ以上のアプリケーションは、別のアプリケーションのモジュールまたは構成要素として実装されてもよい。さらに、様々な実施形態のうちの1つ以上において、アプリケーションは、オペレーティングシステム拡張、モジュール、プラグインなどとして実装されてもよい。
さらに、様々な実施形態のうちの1つ以上において、推奨エンジン322、可視化エンジン324、モデル化エンジン326、他のアプリケーション329などは、クラウドベースのコンピューティング環境において動作可能であってもよい。様々な実施形態のうちの1つ以上において、これらのアプリケーション、および管理プラットフォームを含む他のものは、クラウドベースのコンピューティング環境において管理され得る仮想マシンまたは仮想サーバ内で実行してもよい。様々な実施形態のうちの1つ以上において、この文脈では、アプリケーションは、クラウドコンピューティング環境によって自動的に管理される性能およびスケーリングの考慮に応じて、クラウドベース環境内の1つの物理ネットワークコンピュータから別のものへと流れてもよい。同様に、様々な実施形態のうちの1つ以上において、推奨エンジン322、可視化エンジン324、モデル化エンジン326、他のアプリケーション329に専用の仮想マシンまたは仮想サーバは、自動的に提供され、コミッショニング解除されてもよい。
また、様々な実施形態のうちの1つ以上において、推奨エンジン322、可視化エンジン324、モデル化エンジン326、他のアプリケーション329などは、1つ以上の特定の物理ネットワークコンピュータと結び付けられるのではなく、クラウドベースのコンピューティング環境で動作する仮想サーバ内に位置してもよい。
さらに、ネットワークコンピュータ300はまた、キー、デジタル証明書、パスワード、パスフレーズ、2因子認証情報などのセキュリティ/暗号情報を生成、記憶、または使用するための追加の耐タンパーセーフガードを提供するためのハードウェアセキュリティモジュール(HSM)360を含んでもよい。いくつかの実施形態において、ハードウェアセキュリティモジュールを用いて、1つ以上の標準的な公開キー基盤(PKI)を支援してもよく、ハードウェアセキュリティモジュールを用いて、キーペアなどを生成、管理、または記憶してもよい。いくつかの実施形態において、HSM 360は、スタンドアロンネットワークコンピュータであってもよく、他の場合には、HSM 360は、クライアントコンピュータに追加され得るハードウェアカードとしてアレンジされてもよい。
追加的に、1つ以上の実施形態(図示せず)において、クライアントコンピュータ300は、CPUの代わりに、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、PAL(Programmable Array Logic)など、またはそれらの組み合わせなどの組み込み論理ハードウェアを含んでもよい。組み込み論理ハードウェアデバイスは、その組み込み論理を直接実行してアクションを実行してもよい。また、1つ以上の実施形態(図示せず)において、クライアントコンピュータ200は、CPUの代わりに1つ以上のハードウェアマイクロコントローラを含んでもよい。1つ以上の実施形態において、1つ以上のマイクロコントローラは、アクションを実行し、自身の内部メモリおよび自身の外部の入力および出力インターフェース(例えば、ハードウェアピンまたは無線トランシーバ)にアクセスして、システムオンアチップ(SOC)などのアクションを実行するために、自身の組み込み論理を直接実行してもよい。
例示的な論理システムアーキテクチャ
図4は、様々な実施形態のうちの1つ以上による、パーソナライズされた推奨に基づいてデータ可視化を提供するためのシステム400の論理的アーキテクチャを示す。様々な実施形態のうちの1つ以上において、システム400は、1つ以上のモデル化エンジン、例えばモデル化エンジン402を含む様々な構成要素から構成されてもよい。
様々な実施形態のうちの1つ以上において、システム400は、モデル化エンジン402、試験データ記憶部404、訓練データ記憶部406、推奨モデルデータ記憶部408、推奨エンジン410、可視化モデル414、可視化エンジン416などを含む様々な構成要素を含むようにアレンジされてもよい。
いくつかの実施形態において、ユーザプロファイル、例えばユーザプロファイル412は、可視化を推奨するための推奨エンジン410への入力として提供されてもよい。したがって、いくつかの実施形態において、推奨エンジンは、1つ以上の推奨モデルおよびユーザプロファイルを用いて、1つ以上の推奨可視化を決定してもよい。いくつかの実施形態において、推奨モデルのうちの1つ以上が可視化エンジン416に提供されてもよい。したがって、いくつかの実施形態において、可視化エンジン416は、推奨可視化に関連付けられた1つ以上の可視化モデルを用いてもよい。
様々な実施形態のうちの1つ以上において、推奨エンジンは、1つ以上の推奨モデルを用いて、1つ以上の可視化をユーザに、それらに関連付けられたユーザプロファイルに基づいて推奨するようにアレンジされてもよい。いくつかの実施形態において、可視化エンジンは、推奨に対するユーザの反応に基づいて推奨モデルを訓練または修正するために使用され得るメトリックを生成するために、推奨可視化とのユーザの対話を監視してもよい。
また、様々な実施形態のうちの1つ以上において、経時的に、ユーザプロファイルは、ユーザの1つ以上の特性の変化に応答して更新されてもよい。例えば、組織内のユーザに新しい役割や追加の役割が割り当てられることがある。同様に、いくつかの実施形態において、ユーザ挙動が、ユーザプロファイル内の値を決定するために監視されてもよい。いくつかの実施態様において、これは、ユーザプロファイルが、ユーザの活動が期待から逸脱する状況を捕捉することを可能にする。例えば、いくつかの実施形態において、同一の役割のユーザが広く異なる挙動をとり得るように、1つの組織に対するユーザ役割が緩く定義されてもよい。一方、いくつかの他の組織においては、ユーザの役割が情報のタイプに関する強力な指標となり得るように、ユーザの役割が厳密に定義されるかまたは、強制されてもよい。
様々な実施形態のうちの1つ以上において、推奨モデルは、様々なタイプの推奨を行うようにアレンジされてもよい。例えば、いくつかの実施形態において、1つ以上の推奨モデルは、ユーザが、知らなかった可能性がある1つ以上の可視化、または以前には見たことのない可能性がある1つ以上の可視化を発見することを可能にすることに向けられてもよい。同様に、例えば、いくつかの実施形態において、1つ以上の他の推奨モデルは、ユーザの現在のワークフローを支援することに向けられてもよい。
様々な実施形態のうちの1つ以上において、発見することに向けられた推奨モデルは、ユーザが以前に使用したことのない可視化に推奨を制限するようにアレンジされてもよい。したがって、いくつかの実施形態では、ユーザによって訪問されたか、そうでなければ使用された可視化は、推奨リストから除去されてもよい。いくつかの実施形態において、制限は、絶対的であってもよく、例えば、以前に知られていたすべての可視化が、発見推奨から除外されてもよい。また、いくつかの実施形態において、制限は、確率的であってもよく、以前に見た可視化が推奨リストに含まれてもよい。いくつかの実施形態において、可視化がユーザによって使用されてから長くなるほど、「既知の可視化」制限が除去される可能性が高くなるように、時間減衰式が用いられてもよい。
様々な実施形態のうちの1つ以上において、発見に向けられた1つ以上の推奨モデルは、推奨を、組織内の他のユーザの一般的なトレンドまたは傾向に基づいて推奨を提供するように訓練またはカスタマイズされてもよい。対照的に、いくつかの実施形態において、個々のユーザを支援することに向けられた1つ以上の推奨モデル(例えば、ワークフロー支援)が、個々のユーザに対してカスタマイズされてもよい。
様々な実施形態のうちの1つ以上において、個々の組織または個々の組織のユーザを支援するために推奨モデルがアレンジされてもよいので、各組織は異なる訓練データを有してもよい。したがって、いくつかの実施形態において、訓練データは、数または特性が大きく変動し得る。また、いくつかの実施形態において、いくつかの組織は、パーソナライズされた推奨に基づいてデータ可視化を提供する前に、多くの可視化を蓄積していてもよい。対照的に、いくつかの実施形態において、他の組織は、可視化および使用履歴を有さず可視化システムを使用し始めると同時に、可視化推奨を配備してもよい。
したがって、いくつかの実施形態において、ベースラインモデルが提供されて、十分な訓練データを有さない可能性がある組織に対して有意義な推奨を可能にしてもよい。いくつかの実施形態において、ベースラインモデルは、コミュニティデータに基づき得る訓練データに基づいて訓練されてもよい。いくつかの実施形態において、コミュニティデータは、ベースラインモデルを訓練するために、その活動情報の一部または全部をボランティアで提供する他のユーザまたは組織によって提供されてもよい。
したがって、いくつかの実施形態において、独自の推奨モデルを訓練するための十分なデータを欠く組織には、ベースラインモデルに基づく1つ以上の推奨モデルを提供されてもよい。独自の訓練データを生成するにつれて、自身のデータに基づいて推奨モデルを訓練するように用いられてもよい。
様々な実施形態のうちの1つ以上において、可視化システムは、異なるタイプの組織に合わせることができるベースラインモデルよりも多くのものを提供してもよい。また、いくつかの実施形態では、異なるベースラインモデルが提供されて、組織対して推奨を、各組織に関連付けられ得る複雑性スコアに基づいて行ってもよい。
様々な実施形態のうちの1つ以上において、推奨エンジンは、組織の複雑性スコアを決定するために1つ以上の式を用いるようにアレンジされてもよい。例えば、いくつかの実施形態において、複雑性スコアは、組織に対するユーザ数を見つけること、組織に対する可視化数を見つけること、ユーザ数または可視化数の大きい方を取って、組織に対する推奨モデルに対するフリー変数の数を決定することに基づいてもよい。いくつかの実施形態において、推奨エンジンは、設定情報を介して提供される他の規則または式を用いて、組織に対する複雑性スコア、および複雑性スコアが異なるベースラインモデルまたは推奨モデル設定にどのようにマッピングされるかを決定するようにアレンジされてもよい。
図5は、様々な実施形態のうちの1つ以上による、パーソナライズされた推奨に基づいてデータ可視化を提供するためのユーザインターフェース500の一部分の論理的表現を示す。いくつかの実施形態において、ユーザインターフェース500は、1つ以上のパネル、例えばパネル502、パネル5040などを含むようにアレンジされてもよい。
様々な実施形態のうちの1つ以上において、ユーザインターフェース500は、1つ以上の推奨可視化をユーザに表示するようにアレンジされてもよい。いくつかの実施形態において、パネル、例えばパネル504は、所与の推奨可視化のコンパクトな表現(例えば、サムネイルなど)を表示してもよい。この例において、サブパネル506は、推奨可視化のコンパクトな可視表現を表してもよい。また、いくつかの実施形態において、説明的な自然言語の説明を含む追加情報が、サブパネル、例えばサブパネル508に表示されてもよい(または、サブパネルを介してアクセスされてもよい)。
様々な実施形態のうちの1つ以上において、推奨可視化に関連付けられたパネルは、与えられた推奨の強さを表す信頼スコアに基づいて、ランクジュ順に表示されてもよい。
したがって、いくつかの実施形態において、ユーザは、表示された推奨可視化の集合から可視化を選択することが可能となってもよい。
様々な実施形態のうちの1つ以上において、パネル、例えばパネル504は、推奨への同意または不同意を表すスコアをユーザが提供することを可能にする他のユーザインターフェース要素に関連付けられてもよい。したがって、いくつかの実施形態では、モデル化エンジンは、これらのスコアを用いて、ユーザまたは同じ組織における他のユーザに対する推奨モデルを修正してもよい。
様々な実施形態のうちの1つ以上において、推奨可視化に関連付けられた説明的叙述は、所与の可視化が推奨された理由を説明してもよい。いくつかの実施形態において、叙述テキストが、ユーザに関連付けられた1つ以上の入力または信号に関連付けられてもよい。例えば、可視化を推奨するための最も強力な信号が類似したユーザの過去の行動である場合、その推奨に関連付けられた叙述情報は、他の類似したユーザの好みに基づいて推奨が行われたことを説明する叙述テキストを含む。
様々な実施形態のうちの1つ以上において、ユーザインターフェース500は、ユーザが(例えば、サブパネル508を通じて)ドリルダウンして、所与の推奨に関連付けられた追加の詳細を調査することを可能にするようにアレンジされてもよい。
一般化された動作
図6~9は、様々な実施形態のうちの1つ以上による、パーソナライズされた推奨に基づいてデータ可視化を提供するための一般化された動作を示す。様々な実施形態のうちの1つ以上において、図6~9と併せて説明されるプロセス600、700、800、および900は、図3のネットワークコンピュータ300などの単一のネットワークコンピュータ(またはネットワークモニタリングコンピュータ)上の1つ以上のプロセッサによって実装されるか、またはそれらによって実行されてもよい。他の実施形態において、これらのプロセスまたはその一部分は、図3のネットワークコンピュータ300などの複数のネットワークコンピュータによって実装されるか、またはそれら上で実行されてもよい。さらに他の実施形態では、これらのプロセス、またはその一部は、クラウドベースの環境におけるものなどの、1つ以上の仮想化されたコンピュータによって実装されてもよく、またはそのコンピュータ上で実行されてもよい。しかしながら、実施形態はそれに限定されるものではなく、ネットワークコンピュータ、クライアントコンピュータなどの様々な組み合わせが利用されてもよい。さらに、様々な実施形態のうちの1つ以上において、図6~9と併せて説明されるプロセスは、図4~5と併せて説明されたような様々な実施形態またはアーキテクチャのうちの少なくとも1つによる、パーソナライズされた推奨に基づいてデータ可視化を提供するために使用されてもよい。さらに、様々な実施形態のうちの1つ以上において、プロセス600、700、800、および900によって実行される動作の一部または全部は、推奨エンジン322、可視化エンジン324、モデル化エンジン326によって、1つ以上のネットワークコンピュータの1つ以上のプロセッサによって実行されてもよい。
図6は、様々な実施形態のうちの1つ以上による、パーソナライズされた推奨に基づいてデータ可視化を提供するためのプロセス600のための概要フローチャートを示す。開始ブロックの後、ブロック602では、様々な実施形態のうちの1つ以上において、ユーザは、可視化システムにアクセスし得る。ブロック604では、様々な実施形態のうちの1つ以上において、ユーザプロファイルが、ユーザに対して決定され得る。ブロック606では、様々な実施形態のうちの1つ以上において、推奨エンジンが、1つ以上の推奨可視化を、ユーザに関連付けられたユーザプロファイルおよび1つ以上の推奨モデルに基づいて決定するようにアレンジされ得る。ブロック608では、様々な実施形態のうちの1つ以上において、可視化システムが、1つ以上の可視化をユーザに推奨するようにアレンジされ得る。様々な実施形態のうちの1つ以上において、1つ以上の推奨可視化が、ユーザインターフェースにおいてユーザに提示され得る。ブロック610では、様々な実施形態のうちの1つ以上において、可視化システムが、ユーザの対話のテレメトリ、ユーザフィードバックなどに関連付けられた情報を収集するようにアレンジされてもよい。ブロック612では、様々な実施形態のうちの1つ以上において、任意選択で、可視化システムが、1つ以上の推奨モデルを更新するようにアレンジされてもよい。いくつかの実施形態において、1つ以上の条件が評価されて、1つ以上の推奨モデルが更新されるべきか、または再訓練されるべきかが決定され得るので、このブロックは任意選択であると考えられてもよい。次に、様々な実施形態のうちの1つ以上において、制御は、呼び出しプロセスに戻されてもよい。
図7は、様々な実施形態のうちの1つ以上による、パーソナライズされた推奨に基づいてデータ可視化を提供するためのプロセス700のためのフローチャートを示す。開始ブロックの後、ブロック702では、様々な実施形態のうちの1つ以上において、ユーザアイデンティティ情報が提供されてもよい。様々な実施形態のうちの1つ以上において、可視化システムにアクセスするユーザは、ユーザを識別するために使用され得るクレデンシャル情報を提供してもよい。
ブロック704では、様々な実施形態のうちの1つ以上において、ユーザプロファイルは、ユーザアイデンティティに基づいて提供されてもよい。様々な実施形態のうちの1つ以上において、ユーザプロファイルは、組織内の各ユーザに対して維持されてもよい。したがって、様々な実施形態のうちの1つ以上において、所与のユーザに対するユーザプロファイルは、ユーザアイデンティティ情報に基づいて決定されてもよい。
決定ブロック706では、様々な実施形態のうちの1つ以上において、保留中の推奨が発見推奨(discovery recommendation)である場合、制御はブロック708に流れてもよく、そうでなければ、制御はブロック710に流れてもよい。本明細書で説明されるように、推奨エンジンは、異なるシチュエーションまたは状況に対して異なるタイプの推奨モデルを用いるようにアレンジされてもよい。この例において、推奨モデルには、ユーザにとって有用であり得る可視化を発見するようにアレンジされた1つ以上の推奨モデルと、ユーザのワークフローを支援または改善し得る可視化を推奨するためにアレンジされた1つ以上の推奨モデルを含んでもよい。いくつかの実施形態において、2つ以上のシチュエーションに対する推奨モデルに基づく推奨は、どちらか一方を選択しないように用いられてもよい。したがって、いくつかの実施形態において、制御は、どちらか一方ではなく、ブロック708およびブロック710に流れてもよい。
ブロック708では、様々な実施形態のうちの1つ以上において、推奨エンジンは、ユーザが認識していない、または以前には見たことのない可能性がある可視化を導入するように設計され得る1つ以上の推奨モデル(例えば、発見モデル)を提供するようにアレンジされてもよい。
様々な実施形態のうちの1つ以上において、1つ以上の発見モデルは、長期使用統計を用いて、ユーザの好みを明らかにして、1つ以上の推奨を決定するようにアレンジされてもよい。
ブロック710では、様々な実施形態のうちの1つ以上において、推奨エンジンは、ユーザの現在のワークフローを支援することを目標とし得る推奨を提供し得る1つ以上の推奨モデル(例えば、ワークフロー支援モデル)を提供するようにアレンジされてもよい。したがって、いくつかの実施形態において、推奨は、ユーザの最近の対話メトリックに基づいてもよい。
ブロック712では、様々な実施形態のうちの1つ以上において、推奨エンジンは、1つ以上の可視化を、提供された推奨モデルに基づいて推奨するようにアレンジされてもよい。いくつかの実施形態において、複数のタイプの推奨モデルが用いられて、1つ以上の発見モデルまたは1つ以上のワークフローモデルに基づく推奨を含む混合推奨が作成されてもよい。いくつかの実施形態において、異なるタイプの推奨モデルに基づく推奨が、別々のリストまたは1つの統合リストにおいて提供されてもよい。次に、様々な実施形態のうちの1つ以上において、制御は、呼び出しプロセスに戻されてもよい。
図8は、様々な実施形態のうちの1つ以上による、ベースラインモデルに基づいて初期推奨モデルを提供するためのプロセスのためのフローチャート800を示す。開始ブロックの後、ブロック802では、様々な実施形態のうちの1つ以上において、推奨エンジンが、組織に関連付けられたユーザ数を決定するようにアレンジされてもよい。いくつかの実施形態において、ユーザ数は、組織内の従業員数と異なってもよい。いくつかの実施形態において、組織によって提供される設定情報は、可視化システムを使用することが期待される従業員数を含んでもよい。いくつかの実施形態において、他の構成情報、例えばライセンス情報は、最大ユーザ数についてのハードまたは定義された限定を含んでもよい。
ブロック804では、様々な実施形態のうちの1つ以上において、推奨エンジンは、組織に関連付けられた可視化数を決定するようにアレンジされてもよい。いくつかの実施形態において、組織は、ゼロから開始するのではなく、1つ以上の既存の可視化を有してもよい。例えば、組織は、パーソナライズされた推奨能力をアクティブ化する前に、しばらくの間、可視化システム使用していてもよい。したがって、様々な実施形態のうちの1つ以上において、推奨エンジンが配備される前に、制作された可視化の集合を有してもよい。
ブロック806では、様々な実施形態のうちの1つ以上において、推奨エンジンは、ユーザ数または組織に関連付けられるようにアレンジされ得る可視化数など、組織のメトリックに基づいて複雑性スコアを生成するようにアレンジされてもよい。様々な実施形態のうちの1つ以上において、組織メトリックは、複雑性スコアにマッピングされてもよい。いくつかの実施形態において、推奨エンジンは、設定情報を介して提供される規則または式に基づいて複雑性スコアを決定するようにアレンジされてもよい。次に、様々な実施形態のうちの1つ以上において、制御は、呼び出しプロセスに戻されてもよい。
図9は、様々な実施形態のうちの1つ以上による、ベースラインモデルに基づいて初期推奨モデルを提供するためのプロセス900のためのフローチャートを示す。開始ブロックの後、ブロック902では、様々な実施形態のうちの1つ以上において、推奨エンジンは、パブリックまたは共通の訓練データに基づき得る1つ以上のベースラインモデルを提供するようにアレンジされてもよい。
様々な実施形態のうちの1つ以上において、組織が可視化システムを使用し始める場合、カスタマイズされた推奨モデルまたはパーソナライズされた推奨モデルが利用できないことがある。したがって、パブリック、共有、または共通のデータに基づき得る1つ以上のベースラインモデルが提供されてもよい。いくつかの実施形態において、ベースラインモデルは、コミュニティデータを使用して訓練されてもよい。いくつかの実施形態において、コミュニティデータは、他の組織に関連付けられた現実のデータに基づいてもよい。したがって、いくつかの実施形態において、コミュニティデータは、機密情報が除去された現実のデータであってもよい。いくつかの実施形態において、組織は、それらの対話情報の履歴の一部または全部がコミュニティデータプログラムに含まれるようにオプトインすることが可能となっていてもよい。
また、いくつかの実施形態において、可視化システムは、ベースラインモデルを訓練するために用いられ得る対話情報を収集するために使用され得る無料または公共サービスを提供してもよい。
様々な実施形態のうちの1つ以上において、ベースラインモデルは、コミュニティデータからではなく、1つ以上のパーソナライズされた推奨モデルから直接導出されてもよい。いくつかの実施形態において、推奨モデルのあまり複雑でないか、またはより詳細でないバージョンが、ベースラインモデルとして使用されてもよい。場合によっては、1つ以上の組織に対して訓練された初期の世代の推奨モデルが、新しい組織に対するベースラインモデルとして使用されてもよい。
様々な実施形態のうちの1つ以上において、異なるタイプの組織またはユーザと共に使用するために、異なるベースラインモデルが提供されてもよい。いくつかの実施形態において、ベースラインモデルは、異なるタイプの産業、問題領域、国などに対して維持されてもよい。したがって、様々な実施形態のうちの1つ以上において、産業、問題領域、国などの中に存在し得る共通性は、1つ以上のベースラインモデルにおいて表わされてもよい。
ブロック904では、様々な実施形態のうちの1つ以上において、推奨エンジンは、1つ以上の推奨モデルを、1つ以上のベースラインモデルおよび組織の複雑性に基づいて生成するように構成されてもよい。
様々な実施形態のうちの1つ以上において、初期組織プロファイルが、既知の情報に基づいて、または提供される情報に基づいて開発されてもよい。様々な実施形態のうちの1つ以上において、組織プロファイルは、産業、問題領域、国、従業員数、企業規模、収益などの情報を含んでもよい。
したがって、いくつかの実施形態において、推奨エンジンは、1つ以上のベースラインモデルを、1つ以上のマッピング規則に基づいて組織にマッピングするようにアレンジされてもよい。いくつかの実施形態において、推奨エンジンは、ベースラインモデルを、設定情報に基づいて組織にマッピングするための規則を決定するようにアレンジされてもよい。
さらに、いくつかの実施形態では、推奨エンジンが、異なるタイプのユーザを意図したベースラインモデルに基づいて、1つ以上の初期推奨モデルを生成するようにアレンジされてもよい。例えば、様々な実施形態のうちの1つ以上において、1つ以上のベースラインモデルが、幹部に対して推奨を提供するように設計されてもよく、他のベースラインモデルが、ライン労働者に推奨を提供するように設計されてもよい。同様に、いくつかの実施形態において、1つ以上の異なるベースラインモデルが、異なる職務領域のユーザに対して設計されてもよい。例えば、1つ以上のベースラインモデルが、マーケティング職務に関連付けられたユーザに対して設計されてもよく、他のベースラインモデルが、エンジニアリング職務に関連付けられたユーザに対して設計されてもよい。
ブロック906では、様々な実施形態のうちの1つ以上において、推奨エンジンは、1つ以上の可視化をユーザに推奨するようにアレンジされてもよい。様々な実施形態のうちの1つ以上において、推奨エンジンは、1つ以上の推奨モデルへの入力としてユーザプロファイル情報を用いるようにアレンジされてもよい。したがって、いくつかの実施形態において、1つ以上の可視化が、ユーザプロファイルおよび1つ以上の推奨モデルに基づいて推奨されてもよい。
様々な実施形態のうちの1つ以上において、各推奨は、推奨の相対的な強さを示すに信頼に関連付けられてもよい。したがって、いくつかの実施形態において、推奨エンジンは、推奨をユーザに、それらの関連付けられた信頼スコアに基づいてランク順に推奨を提示するようにアレンジされてもよい。
ブロック908では、様々な実施形態のうちの1つ以上において、推奨エンジンは、推奨可視化に関連付けられたユーザテレメトリまたはユーザフィードバックを収集するようにアレンジされてもよい。様々な実施形態のうちの1つ以上において、推奨可視化がユーザに提示される場合、推奨エンジンは、推奨または推奨のランキングへの同意または不同意を示し得るユーザからのフィードバックを要求してもよい。
また、様々な実施形態のうちの1つ以上において、ユーザが推奨可視化とどのように対話するかを監視することにより、推奨を提供した推奨モデルの有効性を評価するために使用され得るメトリックを生成してもよい。
ブロック910では、様々な実施形態のうちの1つ以上において、推奨エンジンは、組織データ、ユーザフィードバック、ユーザテレメトリなどに基づいて1つ以上の推奨モデルを漸進的に更新するようにアレンジされてもよい。様々な実施形態のうちの1つ以上において、組織およびそのユーザに対して収集された情報に関連付けられた1つ以上の測定(measures)が1つ以上の閾値を超え得る場合、モデル再訓練がトリガされてもよい。いくつかの実施形態において、収集された情報は、組織に対するプライベート訓練データセットとして記憶されてもよい。次に、様々な実施形態のうちの1つ以上において、制御は、呼び出しプロセスに戻されてもよい。
各フローチャート図における各ブロック、および各フローチャート図におけるブロックの組み合わせは、コンピュータプログラム命令によって実装され得ることが理解されよう。これらのプログラム命令は、プロセッサに提供されて、プロセッサ上で実行される命令が、各フローチャートブロックまたは複数のブロックにおいて指定されたアクションを実装するための手段を作成するように、マシンを生成する。コンピュータプログラム命令は、プロセッサによって実行されて、一連の動作ステップをプロセッサによって実行させて、プロセッサ上で実行される命令が、各フローチャートブロックまたは複数のブロックにおいて指定されたアクションを実装するためのステップを提供するように、コンピュータ実装プロセスを生成する。コンピュータプログラム命令はまた、各フローチャートのブロックに示される動作ステップの少なくともいくつかを並列に実行させてもよい。さらに、ステップのいくつかはまた、マルチプロセッサコンピュータシステムで発生し得るように、2つ以上のプロセッサにわたって実行され得る。追加的に、各フローチャート図における1つ以上のブロックまたはブロックの組み合わせは、本発明の範囲または精神から逸脱することなく、他のブロックまたはブロックの組み合わせと同時に、または図とは異なるシーケンスであっても実行され得る。
したがって、各フローチャート図における各ブロックは、指定されたアクションを実行するための手段の組み合わせ、指定されたアクションを実行するためのステップの組み合わせ、および指定されたアクションを実行するためのプログラム命令手段を支援する。各フローチャート図における各ブロック、および各フローチャート図におけるブロックの組み合わせは、指定されたアクションまたはステップを実行する特殊目的のハードウェアベースのシステム、または特殊目的のハードウェアおよびコンピュータ命令の組み合わせによって実装され得ることも理解されよう。前述の例は、限定的または網羅的として解釈されるべきではなく、本発明の様々な実施形態のうちの少なくとも1つの実装を示すための例示的な使用事例である。
さらに、1つ以上の実施形態(図示せず)において、例示的なフローチャートにおける論理は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイ論理(PAL)など、またはそれらの組み合わせなどのCPUの代わりに、組み込み論理ハードウェアデバイスを使用して実行されてもよい。組み込み論理ハードウェアデバイスは、その組み込み論理を直接実行してアクションを実行してもよい。1つ以上の実施形態において、マイクロコントローラは、それ自身の組み込み論理を実行してアクションを実行し、それ自身の内部メモリ並びにそれ自身の外部入力および出力インターフェース(例えば、ハードウェアピンまたは無線トランシーバ)にアクセスして、システムオンチップ(SOC)などのアクションを実行するようにアレンジされてもよい。