(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-06
(54)【発明の名称】階層型データを視覚化するデータ処理
(51)【国際特許分類】
G06F 16/26 20190101AFI20240730BHJP
【FI】
G06F16/26
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024500348
(86)(22)【出願日】2022-06-21
(85)【翻訳文提出日】2024-02-28
(86)【国際出願番号】 US2022034283
(87)【国際公開番号】W WO2023283042
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521550194
【氏名又は名称】タブロー ソフトウェア,エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ビアーズ,アンドリュー,シー.
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175JA02
5B175KA11
(57)【要約】
実施形態は、データの視覚化を管理することを対象とする。提供されるデータモデルは、データモデル内のオブジェクト同士の親子関係を宣言するツリー仕様を含むことができる。データモデル内のオブジェクトに関連するクエリに応答して、親子関係を使用して、親子関係に基づいてオブジェクトから親オブジェクトと子オブジェクトを含むツリーを決定することと、クエリ及びツリーに基づいてルートオブジェクトを決定することと、ルートオブジェクトからツリーを走査して、ツリー内の子オブジェクトに到達することと、部分的な結果が中間テーブルに格納されるように、到達された子オブジェクトの特性に基づいて、部分的な結果を決定することと、中間テーブル及び部分的な結果に基づく値を含む、クエリに対する応答を提供することとを、含む。
【特許請求の範囲】
【請求項1】
動作を実施する命令を実行する1つ以上のプロセッサを使用して、
データの視覚化を生成する方法であって、
データモデル及びツリー仕様を提供することであって、前記ツリー仕様が前記データモデル内の2つ以上のオブジェクト同士の1つ以上の親子関係を宣言することと、
前記1つ以上の親子関係を使用して、前記1つ以上の親子関係に基づいて、前記1つ以上のオブジェクトから1つ以上の親オブジェクト及び1つ以上の子オブジェクトを含む、ツリーを決定することと、
1つ以上のルートオブジェクトを前記ツリーに基づいて決定することであって、前記1つ以上のルートオブジェクトが前記ツリーの1つ以上の部分のルートノードに対応する親オブジェクトであることと、
前記ツリーの前記1つ以上の部分における前記1つ以上の子オブジェクトに到達するよう、前記ツリーを前記1つ以上のルートオブジェクトから走査することと、
前記到達した1つ以上の子オブジェクトの1つ以上の特性に基づいて、1つ以上の部分的な結果を決定することであって、前記1つ以上の部分的な結果は、集約されて中間テーブルに格納されることと、
前記データモデル内の1つ以上のオブジェクトに関連付けられたクエリに応答して、前記中間テーブルと前記1つ以上の部分的な結果に基づく1つ以上の値を含む、前記クエリに対する応答を提供することとを含む、方法。
【請求項2】
前記1つ以上の部分的な結果を集約して、前記中間テーブルに格納することは、
前記到達された1つ以上の子オブジェクトの前記1つ以上の特性に基づいて、各親オブジェクト及び各子オブジェクトの1つ以上の値を決定することと、1つ以上のレコードを前記中間テーブルに格納することも更に含み、各レコードは、親オブジェクト又は子オブジェクトに対応する識別子と、部分的な結果に対応する値を含む、請求項1に記載の方法。
【請求項3】
前記データソースは、1つ以上のテーブルに配置された情報の複数のレコードを含む、請求項1に記載の方法。
【請求項4】
前記ツリーを決定することは、前記データモデル及び前記1つ以上の親子関係に基づいて、1つ以上のノード及び1つ以上のエッジを決定することも更に含み、前記ツリーの前記1つ以上のノードが前記1つ以上の親オブジェクト又は前記1つ以上の子オブジェクトに対応し、更に、前記ツリーの前記1つ以上のエッジが前記1つ以上の親子関係に対応する、請求項1に記載の方法。
【請求項5】
前記クエリに対する前記応答に含まれる前記1つ以上の値に基づいて、ツリービューを表示することと、
親オブジェクトに対応する前記ツリービュー内のノードを展開又は折りたたむ、1つ以上のユーザ相互作用に応答して、更なる動作を実行することも更に含み、前記更なる動作は、
前記展開又は折りたたまれたノードに基づいて、前記クエリを更新することと、
更新されたクエリに基づいて、1つ以上の他の部分的な結果を生成することと、
前記1つ以上の部分的な結果に基づいて、前記中間テーブルを更新することと、
前記更新されたクエリ及び前記更新された中間テーブルに基づいて、1つ以上の他の値を含む前記クエリに対する別の応答を生成することと、
前記1つ以上の他の値に基づいて、前記表示されたツリービューを更新することも更に含む、請求項1に記載の方法。
【請求項6】
データパネル、表示パネル、及びツリービューを含む、グラフィカル・ユーザ・インターフェース(GUI)を生成することと、
前記データパネルを使用して、前記ツリービューに含めるために利用可能なデータソース又は前記データモデルの1つ以上の部分を表示することと、
前記ツリービューを使用して、前記ツリーを視覚化するための1つ以上のチャート又はプロットを表示することも更に含む、請求項1に記載の方法。
【請求項7】
前記ツリーを視覚化するためのツリービューを表示することであって、前記ツリービューを通じて、1つ以上のユーザ入力を提供可能であることと、
前記1つ以上のユーザ入力に基づいて、前記ツリービューの外観を更新することと、
ツリービューの現状態に基づいて、前記ツリー仕様を更新することも更に含む、請求項1に記載の方法。
【請求項8】
プロセッサ可読非一時的記憶媒体であって、データの視覚化を生成する命令を含み、1つ以上のプロセッサにより前記命令を実行して、動作を実施し、前記動作は、
データモデル及びツリー仕様を提供することであって、前記ツリー仕様が前記データモデル内の2つ以上のオブジェクト同士の1つ以上の親子関係を宣言することと、
前記1つ以上の親子関係を使用して、前記1つ以上の親子関係に基づいて、前記1つ以上のオブジェクトから1つ以上の親オブジェクト及び1つ以上の子オブジェクトを含む、ツリーを決定することと、
1つ以上のルートオブジェクトを前記ツリーに基づいて決定することであって、前記1つ以上のルートオブジェクトが前記ツリーの1つ以上の部分のルートノードに対応する親オブジェクトであることと、
前記ツリーの前記1つ以上の部分における前記1つ以上の子オブジェクトに到達するよう、前記ツリーを前記1つ以上のルートオブジェクトから走査することと、
前記到達した1つ以上の子オブジェクトの1つ以上の特性に基づいて、1つ以上の部分的な結果を決定することであって、前記1つ以上の部分的な結果は、集約されて中間テーブルに格納されることと、
前記データモデル内の1つ以上のオブジェクトに関連付けられたクエリに応答して、前記中間テーブルと前記1つ以上の部分的な結果に基づく1つ以上の値を含む、前記クエリに対する応答を提供することとを含む、プロセッサ可読非一時的記憶媒体。
【請求項9】
前記1つ以上の部分的な結果を前記中間テーブルに格納することは、
前記到達した1つ以上の子オブジェクト及び前記クエリの前記1つ以上の特性に基づいて、前記クエリに関連付けられた各親オブジェクト及び各子オブジェクトの1つ以上の値を決定することと、
1つ以上のレコードを前記中間テーブルに格納することも更に含み、各レコードは、親オブジェクト又は子オブジェクトに対応する識別子と、部分的な結果に対応する値を含む、請求項8に記載の媒体。
【請求項10】
前記データソースは、1つ以上のテーブルに配置された情報の複数のレコードを含む、請求項8に記載の媒体。
【請求項11】
前記ツリーを決定することは、前記データモデル及び前記1つ以上の親子関係に基づいて、1つ以上のノード及び1つ以上のエッジを決定することも更に含み、前記ツリーの前記1つ以上のノードが前記1つ以上の親オブジェクト又は前記1つ以上の子オブジェクトに対応し、更に、前記ツリーの前記1つ以上のエッジが前記1つ以上の親子関係に対応する、請求項8に記載の媒体。
【請求項12】
前記クエリに対する前記応答に含まれる前記1つ以上の値に基づいて、ツリービューを表示することと、
親オブジェクトに対応する前記ツリービュー内のノードを展開又は折りたたむ、1つ以上のユーザ相互作用に応答して、更なる動作を実行することも更に含み、前記更なる動作は、
前記展開又は折りたたまれたノードに基づいて、前記クエリを更新することと、
更新されたクエリに基づいて、1つ以上の他の部分的な結果を生成することと、
前記1つ以上の部分的な結果に基づいて、前記中間テーブルを更新することと、
前記更新されたクエリ及び前記更新された中間テーブルに基づいて、1つ以上の他の値を含む前記クエリに対する別の応答を生成することと、
前記1つ以上の他の値に基づいて、前記表示されたツリービューを更新することとを含む、請求項8に記載の媒体。
【請求項13】
データパネル、表示パネル、及びツリービューを含む、
グラフィカル・ユーザ・インターフェース(GUI)を生成することと、
前記データパネルを使用して、前記ツリービューに含めるために利用可能なデータソース又は前記データモデルの1つ以上の部分を表示することと、
前記ツリービューを使用して、前記ツリーを視覚化するための1つ以上のチャート又はプロットを表示することも更に含む、請求項8に記載の媒体。
【請求項14】
前記ツリーを視覚化するためのツリービューを表示することであって、
前記ツリービューを通じて、1つ以上のユーザ入力を提供可能であることと、
前記1つ以上のユーザ入力に基づいて、前記ツリービューの外観を更新することと、
ツリービューの現状態に基づいて、前記ツリー仕様を更新することも更に含む、請求項8に記載の媒体。
【請求項15】
データの視覚化を生成するシステムであって、
ネットワークコンピュータであって、
少なくとも命令を記憶するメモリを含むクライアントコンピュータと、
動作を遂行する命令を実行する1つ以上のプロセッサであって、
前記動作はデータモデル及びツリー仕様を提供することであって、前記ツリー仕様が前記データモデル内の2つ以上のオブジェクト同士の1つ以上の親子関係を宣言することと、
前記1つ以上の親子関係を使用して、前記1つ以上の親子関係に基づいて、前記1つ以上のオブジェクトから1つ以上の親オブジェクト及び1つ以上の子オブジェクトを含む、ツリーを決定することと、
1つ以上のルートオブジェクトを前記ツリーに基づいて決定することであって、前記1つ以上のルートオブジェクトが前記ツリーの1つ以上の部分のルートノードに対応する親オブジェクトであることと、
前記ツリーの前記1つ以上の部分における前記1つ以上の子オブジェクトに到達するよう、前記ツリーを前記1つ以上のルートオブジェクトから走査することと、
前記到達した1つ以上の子オブジェクトの1つ以上の特性に基づいて、1つ以上の部分的な結果を決定することであって、前記1つ以上の部分的な結果は、集約されて中間テーブルに格納されること、
及び
前記データモデル内の1つ以上のオブジェクトに関連付けられたクエリに応答して、前記中間テーブルと前記1つ以上の部分的な結果に基づく1つ以上の値を含む、前記クエリに対する応答を提供することとを含む、1つ以上のプロセッサと、
クライアントコンピュータであって、
少なくとも命令を記憶するメモリを含むクライアントコンピュータと、
動作を遂行する命令を実行する1つ以上のプロセッサであって、
前記クエリを提供するか、又は前記クエリに対する前記応答を表示することを含む、1つ以上のプロセッサとを含む、システム。
【請求項16】
前記1つ以上の部分的な結果を前記中間テーブルに格納することは、
前記到達した1つ以上の子オブジェクト及び前記クエリの前記1つ以上の特性に基づいて、前記クエリに関連付けられた各親オブジェクト及び各子オブジェクトの1つ以上の値を決定することと、
前記クエリに関連付けられた各親オブジェクト及び各子オブジェクトについて、1つ以上のレコードを生成することであって、各レコードが、親オブジェクト又は子オブジェクトに対応する識別子と、部分的な結果に対応する値とを含むことと、
1つ以上のレコードを前記中間テーブルに格納することも更に含み、各レコードは、親オブジェクト又は子オブジェクトに対応する識別子と、部分的な結果に対応する値を含む、請求項15に記載のシステム。
【請求項17】
前記データソースは、1つ以上のテーブルに配置された情報の複数のレコードを含む、請求項15に記載のシステム。
【請求項18】
前記ツリーを決定することは、前記データモデル及び前記1つ以上の親子関係に基づいて、1つ以上のノード及び1つ以上のエッジを決定することも更に含み、前記ツリーの前記1つ以上のノードが前記1つ以上の親オブジェクト又は前記1つ以上の子オブジェクトに対応し、更に、前記ツリーの前記1つ以上のエッジが前記1つ以上の親子関係に対応する、請求項15に記載のシステム。
【請求項19】
前記ネットワークコンピュータの前記1つ以上のプロセッサが、動作を実行する命令を実行し、前記動作は、
前記クエリに対する前記応答に含まれる前記1つ以上の値に基づいて、ツリービューを表示することと、
親オブジェクトに対応する前記ツリービュー内のノードを展開又は折りたたむ、1つ以上のユーザ相互作用に応答して、更なる動作を実行することも更に含み、前記更なる動作は、
前記展開又は折りたたまれたノードに基づいて、前記クエリを更新することと、
更新されたクエリに基づいて、1つ以上の他の部分的な結果を生成することと、
前記1つ以上の部分的な結果に基づいて、前記中間テーブルを更新することと、
前記更新されたクエリ及び前記更新された中間テーブルに基づいて、1つ以上の他の値を含む前記クエリに対する別の応答を生成することと、
前記1つ以上の他の値に基づいて、前記表示されたツリービューを更新することも更に含む、請求項15に記載のシステム。
【請求項20】
前記ネットワークコンピュータの前記1つ以上のプロセッサが、動作を実行する命令を実行し、前記動作は、
データパネル、表示パネル、及びツリービューを含む、グラフィカル・ユーザ・インターフェース(GUI)を生成することと、
前記データパネルを使用して、前記ツリービューに含めるために利用可能なデータソース又は前記データモデルの1つ以上の部分を表示することと、
前記ツリービューを使用して、前記ツリーを視覚化するための1つ以上のチャート又はプロットを表示することも更に含む、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般にデータ視覚化に関し、より具体的には、限定されないが、階層型情報を視覚化することに関する。
【背景技術】
【0002】
組織は増え続けるデータを生成、収集している。このデータは、消費者活動、製造活動、顧客サービス、サーバログなどの組織の異なる部分に関連付けられてもよい。様々な理由で、そのような組織がそれらの膨大なデータの集合を効果的に利用することは不便であり得る。幾つかの場合では、データの量が多いと、収集したデータを効果的に利用して、取引慣行を改善することが難しくなる可能性がある。幾つかの場合では、組織は、一部、又は全てのデータの視覚化を生成することができる。このようなデータを表現するために視覚化を使用することで、組織は重要な事業運営の理解を深め、重要業績評価指標を監視するのに役立てることができる。幾つかの場合では、組織は、ツリー又はツリー状の視覚化を使用して階層型データを視覚化する、視覚化を採用したいと考えることもあり得る。更に、階層型データの集約セマンティクスは、ツリー又はツリー状の視覚化として表現するのに適している場合もある。したがって、ツリー状の視覚化には、階層型データ集約セマンティクスと一致する折りたたみ/展開機能を含めることができる。しかし、幾つかの場合では、階層型データ集約セマンティックを効果的に活用して視覚化を提供することは、基礎となるデータストアの配置によっては、困難となる場合がある。したがって、本発明がなされたのは、これらの考察及び他の考察に関してである。
【図面の簡単な説明】
【0003】
本発明の非限定的かつ非網羅的な実施形態は、以下の図面を参照して説明される。図面では、同様の参照番号は、特に明記しない限り、様々な図全体を通して同様の部分を指す。記載された技術革新をよりよく理解するために、添付の図面と併せて読まれるべきである、以下の様々な実施形態の詳細な説明について言及する。
【
図1】様々な実施形態が実装され得るシステム環境を例示する。
【
図2】クライアントコンピュータの概略的な実施形態を示す。
【
図3】ネットワークコンピュータの概略的な実施形態を示す。
【
図4】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用システムの論理アーキテクチャを例解する図である。
【
図5】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータツリーの論理表記を例解する図である。
【
図6】様々な実施形態の1つ以上に係る、階層型データを格納するためのデータ構造の論理表記を例解する図である。
【
図7】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造の論理表記を例解する図である。
【
図8】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造の論理表記を例解する図である。
【
図9】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造の論理表記を例解する図である。
【
図10】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造の論理表記を例解する図である。
【
図11】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用システムの一部の論理表記を例解する図である。
【
図12】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のユーザインターフェースの一部の論理表記を例解する図である。
【
図13】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のプロセス全体を例解する流れ図である。
【
図14】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用プロセスを例解する流れ図である。
【
図15】様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のクエリ式を処理するプロセスを例解する流れ図である。
【発明を実施するための形態】
【0004】
ここで、本明細書の一部を形成し、本発明を実施することができる特定の例示的な実施形態を例示として示す添付の図面を参照して、以下で様々な実施形態をより完全に説明する。しかしながら、実施形態は、多くの異なる形態で具体化されてもよく、本明細書に記載の実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、本開示が徹底的かつ完全であり、実施形態の範囲を当業者に完全に伝えるように提供される。とりわけ、様々な実施形態は、方法、システム、媒体、又はデバイスであり得る。したがって、様々な実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はソフトウェア及びハードウェアの態様を組み合わせた実施形態の形態をとることができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0005】
明細書及び特許請求の範囲を通して、以下の用語は、コンテキストが明らかにそうでないことを指示しない限り、本明細書に明示的に関連する意味をとる。本明細書で使用される「一実施形態では」という語句は、同じ実施形態を指す場合もあるが、必ずしも同じ実施形態を指すとは限らない。更に、本明細書で使用される「別の実施形態では」という語句は、必ずしも異なる実施形態を指すとは限らないが、そうであってもよい。したがって、以下に説明するように、本発明の範囲又は精神から逸脱することなく、様々な実施形態を容易に組み合わせることができる。
【0006】
更に、本明細書で使用される場合、「又は」という用語は、包括的な「又は」演算子であり、コンテキスト上他に明確に指示されない限り、「及び/、又は」という用語と同等である。「~に基づく」という用語は排他的ではなく、コンテキスト上他に明確に指示されない限り、記載されていない追加の要因に基づくことを可能にする。更に、本明細書全体を通して、「a」、「an」、及び「the」の意味は、複数の言及を含む。「in」の意味は、「in」及び「on」を含む。
【0007】
例えば、実施形態では、以下の用語も、文脈が明らかにそうでないことを表していない限り、対応する意味に従って本明細書で使用される。
【0008】
本明細書で使用する場合、「エンジン」という語句は、ハードウェア命令又はソフトウェア命令で具体化され、C、C++、Objective-C、COBOL、Java(商標)、PHP、Perl、JavaScript、Ruby、VBScript、C#のようなMicrosoft.NET(商標)言語などの、プログラミング言語で記述できるロジックを称する。エンジンは、実行可能プログラムにコンパイルされてもよく、又は解釈されたプログラミング言語で書かれてもよい。ソフトウェアエンジンは、他のエンジンから、又はそれら自体から呼び出すことができる。本明細書で説明されるエンジンは、他のエンジン又はアプリケーションとマージされ得るか、又はサブエンジンに分割され得る、1つ以上の論理モジュールを指す。エンジンは、非一時的コンピュータ可読媒体又はコンピュータ記憶装置内に記憶され、1つ以上の汎用コンピュータ上に記憶され、それによって実行され、したがって、エンジンを提供するように構成された専用コンピュータを作成することができる。
【0009】
本明細書で使用する場合、「データソース」という語句は、データベース、アプリケーション、サービス、ファイルシステムなど、組織の情報を格納又は提供するものを称する。データソースの例としては、RDBMSデータベース、グラフデータベース、スプレッドシート、ファイルシステム、文書管理システム、ローカル又はリモートのデータストリームなどが、あり得る。幾つかの場合において、データソースは、1つ以上のテーブル又はテーブル状構造を中心に構成される。他の場合では、データソースは、グラフ又はグラフ状構造として編成される。
【0010】
本明細書で使用する場合、「データモデル」という語句は、基礎となるデータソースの表現を提供する1つ以上のデータ構造を称する。幾つかの場合において、データモデルは、特定アプリケーション用のデータソースのビューを提供することができる。データモデルは、基礎となるデータソースに対するビュー又はインターフェースと考えられ得る。幾つかの場合において、データモデルをデータソースに直接マッピングすることができる(例えば、実質的に論理的なパススルー)。更に、幾つかの場合において、データモデルはデータソースから提供されてもよい。幾つかの状況では、データモデルは、データソースへのインターフェースと考えられ得る。データモデルによって、組織はデータソースからの情報を、より便利で、より意味のある(例えば、推論しやすい)、より安全な方法などで整理したり、あるいは、提示したりすることができる。
【0011】
本明細書で使用される場合、「データオブジェクト」という用語は、データモデルを含む1つ以上のエンティティ又はデータ構造を指す。場合によっては、データオブジェクトは、データモデルの部分と見なされてもよい。データオブジェクトは、アイテムの個々のインスタンス、あるいはアイテムのクラス又は種類を表し得る。
【0012】
本明細書で使用する場合、「パネル」という語句は、グラフィカル・ユーザ・インターフェース(GUI)内で定義されたジオメトリ(例えば、x、y、zの順)を持つ、GUI内の領域を称する。パネルは、ユーザに情報を表示するか、又は1つ以上の対話型コントロールをホストするように配置されてもよい。パネルに関連付けられるジオメトリ又はスタイルは、動的ルールを含む構成情報を使用して定義することができる。また、場合によっては、ユーザは、移動、表示、非表示、サイズ変更、並べ替えなどの、1つ以上のパネルに対する動作を遂行することができる。
【0013】
本明細書で使用する場合、「視覚化モデル」という語句は、1つ以上のハードウェアディスプレイ上に表示される視覚化で使用するのに適し得る、データモデルに関する1つ以上の表現を表す1つ以上のデータ構造を称する。視覚化モデルでは、非オーサリングユーザが利用できるようにする、スタイリング又はユーザインターフェース機能を定義できる。
【0014】
本明細書で使用する場合、「ツリービュー」という語句は、ツリー状フォーマットを使用してデータを表示する視覚化を称する。対話型ツリービューは、親子グループ化、レベル階層、ツリーノードを展開して内部のノード又はリーフを表示するなど、1つ以上のツリー状ユーザインターフェースのセマンティクスに従うよう、配置することができる。
【0015】
本明細書で使用する場合、「ツリーモデル」という語句は、モデリングエンジン又は視覚化エンジンが、1つ以上のデータソース又はデータモデル内に存在し得る、階層関係を定義あるいは宣言するために使用する情報を称する。ツリーモデルでは、データモデル内の1つ以上のデータオブジェクト同士の1つ以上の関係を宣言あるいは定義することができる。したがって、幾つかの場合において、ツリーモデルはデータモデルの一部と見なされ得る。
【0016】
本明細書で使用する場合、「ツリービュー仕様」又は「ツリー仕様」という語句は、視覚化エンジンが、ツリービューの表示データ、表示フォーマット、スタイリングなどを決定するために、使用できる情報を称する。幾つかの場合において、ツリービュー仕様は、対話型ツリービューの表示状態を表し得る。例えば、幾つかの場合において、ツリー仕様では、ツリーのどのノードを展開又は折りたたむかを指定することができる。
【0017】
本明細書で使用する場合、「構成情報」という語句は、構成ファイル、データベース、ユーザ入力、ビルトインデフォルトなど、又はそれらの組み合わせを含む様々なソースから提供され得る、ルールベースのポリシー、パターンマッチング、スクリプト(例えば、コンピュータ可読命令)などを含み得る、情報を称する。
【0018】
以下は、本発明の幾つかの態様の基本的な理解を提供するために、本発明の実施形態を簡単に説明する。この簡単な説明は、広範な概要として意図されていない。それは、重要又は重大な要素を識別すること、又は範囲を線引き又は他の方法で狭めることを意図するものではない。その目的は、後に提示されるより詳細な説明の前置きとして、幾つかの概念を単純化された形で提示することにすぎない。
【0019】
簡潔に述べると、様々な実施形態は、データの視覚化を管理することを対象とする。様々な実施形態の1つ以上において、ツリー仕様がデータモデル内の2つ以上のオブジェクト同士の1つ以上の親子関係を宣言するよう、データモデルとツリー仕様を提供することができる。
【0020】
様々な実施形態の1つ以上において、1つ以上の親子関係を使用して、1つ以上の親子関係に基づいて、1つ以上のオブジェクトから1つ以上の親オブジェクト及び1つ以上の子オブジェクトを含む、ツリーを決定できる。
【0021】
様々な実施形態の1つ以上において、1つ以上のルートオブジェクトがツリーの1つ以上の部分のルートノードに対応する親オブジェクトとなるよう、1つ以上のルートオブジェクトがツリーに基づいて決定され得る。
【0022】
様々な実施形態の1つ以上において、ツリーの1つ以上の部分における1つ以上の子オブジェクトに到達するよう、ツリーは、1つ以上のルートオブジェクトから走査され得る。
【0023】
様々な実施形態の1つ以上において、1つ以上の部分的な結果が集約されて中間テーブルに格納されるよう、到達した1つ以上の子オブジェクトの1つ以上の特性に基づいて、1つ以上の部分的な結果を決定できる。
【0024】
様々な実施形態の1つ以上において、データモデル内の1つ以上のオブジェクトに関連付けられたクエリに応答して、中間テーブルと1つ以上の部分的な結果に基づく1つ以上の値を含むクエリに対する応答を提供可能である。
【0025】
様々な実施形態の1つ以上において、中間テーブルに1つ以上の部分的な結果を格納することは、到達した1つ以上の子オブジェクト及びクエリの1つ以上の特性に基づいて、クエリに関連付けられた各親オブジェクト及び各子オブジェクトの1つ以上の値を決定することと、各レコードが、親オブジェクト又は子オブジェクトに対応する識別子と、部分的な結果に対応する値とを含むように、クエリに関連付けられた各親オブジェクト及び各子オブジェクトについて、1つ以上のレコードを生成することと、幾つかの実施形態において、1つ以上のレコードを中間テーブルに格納することとを、含められる。
【0026】
様々な実施形態の1つ以上において、データソースは、1つ以上のテーブルに配置された情報の複数のレコードを含むことができる。
【0027】
様々な実施形態の1つ以上において、ツリーを決定することは、ツリーの1つ以上のノードが1つ以上の親オブジェクト又は1つ以上の子オブジェクトに対応し、更に、ツリーの1つ以上のエッジが1つ以上の親子関係に対応するように、データモデル及び1つ以上の親子関係に基づいて、1つ以上のノード及び1つ以上のエッジを決定することを、含められる。
【0028】
様々な実施形態の1つ以上において、後続のクエリに対する後続の応答を提供することは、データモデルと後続のクエリに基づいて、中間テーブルを決定することと、後続のクエリに基づいて、中間テーブル内の1つ以上のレコードを反復処理すること、1つ以上のレコードと他のクエリの反復処理に基づいて、1つ以上の他の値を生成することと、1つ以上の他の値に基づいて後続の応答を生成することを、含められる。
【0029】
様々な実施形態の1つ以上において、クエリに対する応答に含まれる1つ以上の値に基づいて、ツリービューを表示可能である。また、親オブジェクトに対応するツリービュー内のノードを展開又は折りたたむ、ツリービューとの1つ以上のユーザ相互作用に応答して、更なる動作を実行し、この更なる動作は、展開又は折りたたまれたノードに基づいて、クエリを更新することと、更新されたクエリに基づいて、1つ以上の他の部分的な結果を生成することと、1つ以上の部分的な結果に基づいて、中間テーブルを更新することと、更新されたクエリ及び更新された中間テーブルに基づいて、1つ以上の他の値を含むクエリに対する別の応答を生成することと、1つ以上の他の値に基づいて、表示されたツリービューを更新することとを、含む。
【0030】
図で示す動作環境
図1は、本発明の実施形態を実施することができる環境の一実施形態の構成要素を示す。本発明を実施するために全ての構成要素が必要とされるわけではなく、本発明の趣旨又は範囲から逸脱することなく、構成要素の配置及び種類の変更を行うことができる。図示のように、
図1のシステム100は、ローカルエリアネットワーク(LAN)/ワイドエリアネットワーク(WAN)-(ネットワーク)110、無線ネットワーク108、クライアントコンピュータ102~105、視覚化サーバコンピュータ116などを含む。
【0031】
クライアントコンピュータ102~105の少なくとも1つの実施形態を、
図2に関連して以下により詳細に説明する。一実施形態では、クライアントコンピュータ102~105の少なくとも幾つかは、ネットワーク108又は110などの1つ以上の有線又は無線ネットワークを介して動作することができる。一般に、クライアントコンピュータ102~105は、情報を送受信し、様々なオンラインアクティビティを遂行し、オフライン動作などを遂行するためにネットワークを介して通信することができる実質的に任意のコンピュータを含むことができる。一実施形態では、クライアントコンピュータ102~105のうちの1つ以上は、企業又は他のエンティティのための様々なサービスを遂行するために、企業又は他のエンティティ内で動作するように構成されることができる。例えば、クライアントコンピュータ102~105は、ウェブサーバ、ファイアウォール、クライアントアプリケーション、メディアプレーヤ、携帯電話、ゲームコンソール、デスクトップコンピュータなどとして動作するように構成されてもよい。しかしながら、クライアントコンピュータ102~105は、これらのサービスに限定されず、例えば、他の実施形態におけるエンドユーザコンピューティングに関しても使用されてもよい。より多くの、又はより少ないクライアントコンピュータ(
図1に示されているように)が、本明細書に記載されているようなシステム内に含まれてもよく、したがって、実施形態は、使用されるクライアントコンピュータの数又はタイプによって限定されないことが認識されるべきである。
【0032】
クライアントコンピュータ102として動作することができるコンピュータは、パーソナルコンピュータ、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル電子デバイス、ネットワークPCなどの有線又は無線通信媒体を使用して通常接続するコンピュータを含むことができる。幾つかの実施形態では、クライアントコンピュータ102~105は、ラップトップコンピュータ103、モバイルコンピュータ104、タブレットコンピュータ105など、別のコンピュータに接続し、情報を受信することができる実質的に任意のポータブルコンピュータを含むことができる。しかしながら、ポータブルコンピュータは、そのように限定されず、携帯電話、ディスプレイページャ、無線周波数(RF)装置、赤外線(IR)装置、個人用携帯情報端末(PDA)、ハンドヘルドコンピュータ、ウェアラブルコンピュータ、先行コンピュータのうちの1つ以上を組み合わせた統合装置などの他のポータブルコンピュータを含んでもよい。したがって、クライアントコンピュータ102~105は、典型的には、能力及び特徴に関して広範囲に及ぶ。更に、クライアントコンピュータ102~105は、ブラウザ又は他のウェブベースのアプリケーションを含む様々なコンピューティングアプリケーションにアクセスすることができる。
【0033】
ウェブ対応クライアントコンピュータは、ウェブを介して要求を送信し、応答を受信するように構成されたブラウザアプリケーションを含むことができる。ブラウザアプリケーションは、実質的に任意のウェブベース言語を使用して、グラフィックス、テキスト、マルチメディアなどを受信及び表示するように構成されてもよい。一実施形態では、ブラウザアプリケーションは、JavaScript、ハイパーテキストマークアップ言語(HTML)、eXtensible Markup Language(XML)、JavaScript Object Notation(JSON)、Cascading Style Sheets(CSS)など、又はそれらの組み合わせを使用して、メッセージを表示及び送信することを可能にされる。一実施形態では、クライアントコンピュータのユーザは、ネットワーク(オンライン)を介して様々なアクティビティを遂行するためにブラウザアプリケーションを使用することができる。しかしながら、別のアプリケーションを使用して様々なオンラインアクティビティを遂行することもできる。
【0034】
クライアントコンピュータ102~105はまた、別のコンピュータ間でコンテンツを受信又は送信するように構成された少なくとも1つの他のクライアントアプリケーションを含むことができる。クライアントアプリケーションは、コンテンツを送信又は受信する機能などを含むことができる。クライアントアプリケーションは、タイプ、機能、名前などを含む、それ自体を識別する情報を更に提供することができる。一実施形態では、クライアントコンピュータ102~105は、インターネットプロトコル(IP)アドレス、電話番号、携帯電話識別番号(MIN)、電子シリアル番号(ESN)、クライアント証明書、又は他のデバイス識別子を含む様々な機構のいずれかを介してそれら自体を一意に識別することができる。そのような情報は、他のクライアントコンピュータ、視覚化サーバコンピュータ116、又は他のコンピュータ間で送信される1つ以上のネットワークパケットなどで提供されてもよい。
【0035】
クライアントコンピュータ102~105は、視覚化サーバコンピュータ116などの別のコンピュータによって管理され得るエンドユーザアカウントにエンドユーザがログインすることを可能にするクライアントアプリケーションを含むように更に構成されてもよい。そのようなエンドユーザアカウントは、1つの非限定的な例では、エンドユーザが、1つの非限定的な例では、プロジェクト管理、ソフトウェア開発、システム管理、構成管理、検索アクティビティ、ソーシャルネットワーキングアクティビティ、様々なウェブサイトの閲覧、他のユーザとの通信などを含む1つ以上のオンラインアクティビティを管理することを可能にするように構成することができる。また、クライアントコンピュータは、ユーザが、視覚化サーバコンピュータ116によって提供されるレポート、対話型ユーザインターフェース、又は結果を表示することを可能にするように構成することができる。
【0036】
無線ネットワーク108は、クライアントコンピュータ103~105及びその構成要素をネットワーク110に結合するように構成される。無線ネットワーク108は、クライアントコンピュータ103~105にインフラストラクチャ指向の接続を提供するために、スタンドアロンのアドホックネットワークなどに更にオーバーレイすることができる様々な無線サブネットワークのいずれかを含むことができる。そのようなサブネットワークは、メッシュネットワーク、無線LAN(WLAN)ネットワーク、セルラネットワークなどを含むことができる。一実施形態では、システムは、2つ以上の無線ネットワークを含むことができる。
【0037】
無線ネットワーク108は、無線リンクなどによって接続された端末、ゲートウェイ、ルータなどの自律システムを更に含むことができる。これらのコネクタは、無線ネットワーク108のトポロジが急速に変化し得るように、自由かつランダムに移動し、かつ、自らを任意に編成するように構成され得る。
【0038】
無線ネットワーク108は更に、セルラ方式のための第2(2G)、第3(3G)、第4(4G)、第5(5G)世代無線アクセス、WLAN、無線ルータ(WR)メッシュ等を含む複数のアクセス技術を適用し得る。2G、3G、4G、5G、及び将来のアクセスネットワークなどのアクセス技術は、様々な移動度を有するクライアントコンピュータ103~105などのモバイルコンピュータの広域カバレッジを可能にすることができる。非限定的な一例では、無線ネットワーク108は、汎欧州デジタル移動電話方式(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、広帯域符号分割多元接続(WCDMA)、高速ダウンリンクパケットアクセス(HSDPA)、ロングタームエボリューション(LTE)などの無線ネットワークアクセスを介して無線接続を可能にすることができる。本質的に、無線ネットワーク108は、情報がクライアントコンピュータ103~105と別のコンピュータ、ネットワーク、クラウドベースのネットワーク、クラウドインスタンスなどとの間を移動することができる実質的に任意の無線通信機構を含むことができる。
【0039】
ネットワーク110は、無線ネットワーク108などを介して、ネットワークコンピュータを、視覚化サーバコンピュータ116、クライアントコンピュータ102、及びクライアントコンピュータ103~105を含む他のコンピュータと結合するように構成される。ネットワーク110は、ある電子デバイスから別の電子デバイスに情報を通信するための任意の形態のコンピュータ可読媒体を使用することが可能である。また、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)に加えてインターネット、ユニバーサルシリアルバス(USB)ポート、イーサネットポートなどを介した直接接続、他の形態のコンピュータ可読媒体、又はそれらの任意の組み合わせを含むことができる。異なるアーキテクチャ及びプロトコルに基づくものを含むLANの相互接続されたセットでは、ルータはLAN間のリンクとして機能し、メッセージが互いに送信されることを可能にする。更に、LAN内の通信リンクは、典型的には、ツイストワイヤペア又は同軸ケーブルを含む一方で、ネットワーク間の通信リンクは、アナログ電話回線、T1、T2、T3、及びT4を含む完全な又は部分的な専用デジタル回線、又は、例えば、Eキャリア、総合デジタル通信網(ISDN)、デジタル加入者線(DSL)、衛星リンクを含む無線リンク、又は、当業者に知られている他の通信リンクを含む他のキャリア機構を利用し得る。更に、通信リンクは、例えば、DS-0、DS-1、DS-2、DS-3、DS-4、OC-3、OC-12、OC-48などを含むがこれらに限定されない様々なデジタルシグナリング技術のいずれかを更に使用することができる。更に、リモートコンピュータ及び他の関連する電子デバイスは、モデム及び一時的な電話リンクを介してLAN又はWANのいずれかにリモート接続することができる。一実施形態では、ネットワーク110は、インターネットプロトコル(IP)の情報を転送するように構成されてもよい。
【0040】
更に、通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のトランスポート機構を具現化し、任意の情報非一時的配信媒体又は一時的配信媒体を含む。例として、通信媒体は、ツイストペア、同軸ケーブル、光ファイバ、導波管などの有線媒体、並びに音響、RF、赤外線、及び他の無線媒体などの他の有線媒体及び無線媒体を含む。
【0041】
また、視覚化サーバコンピュータ116の一実施形態は、
図3に関連して以下により詳細に説明される。
図1では、視覚化サーバコンピュータ116等を単一コンピュータとして図示しているが、本発明に係る技術革新又は実施形態は、それに限定されるものではない。例えば、視覚化サーバコンピュータ116などの1つ以上の機能は、1つ以上の別個のネットワークコンピュータにわたって分散されてもよい。更に1つ以上の実施形態では、視覚化サーバコンピュータ116は、複数のネットワークコンピュータを使用して実装されてもよい。更に、様々な実施形態のうちの1つ以上において、視覚化サーバコンピュータ116などは、1つ以上のクラウドネットワーク内の1つ以上のクラウドインスタンスを使用して実装されてもよい。したがって、これらの革新及び実施形態は、単一の環境及び他の構成に限定されると解釈されるべきではなく、他のアーキテクチャも想定される。
【0042】
例示的なクライアントコンピュータ
図2は、図示されている構成要素よりも多くの多い又は少ない構成要素を含むことができるクライアントコンピュータ200の一実施形態を示す。クライアントコンピュータ200は、例えば、
図1に示すモバイルコンピュータ又はクライアントコンピュータの1つ以上の実施形態を表すことができる。
【0043】
クライアントコンピュータ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内でジャイロスコープを使用することができる。
【0044】
電源230は、クライアントコンピュータ200に電力を供給することができる。充電式又は非充電式バッテリを使用して電力を供給することができる。電力はまた、バッテリを補足又は再充電するACアダプタ又は電動ドッキングクレードルなどの外部電源によって供給されてもよい。
【0045】
ネットワークインターフェース232は、クライアントコンピュータ200を1つ以上のネットワークに結合するための回路を含み、モバイル通信(GSM)、CDMA、時分割多元接続(TDMA)、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)として知られることがある。
【0046】
オーディオインターフェース256は、人間の声の音などのオーディオ信号を生成及び受信するように構成することができる。例えば、オーディオインターフェース256は、他のものとの通信を可能にするために、又は何らかの動作に対するオーディオ確認応答を生成するために、スピーカ及びマイクロフォン(図示せず)に結合されてもよい。オーディオインターフェース256内のマイクロフォンは、例えば、音声認識を使用する、音に基づくタッチを検出するなど、クライアントコンピュータ200への入力又は制御に使用することもできる。
【0047】
ディスプレイ250は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LED)、有機LED(OLED)、あるいはコンピュータで使用可能な他の種類の光反射性又は光透過性のディスプレイであってもよい。ディスプレイ250はまた、スタイラス又は人間の手の指などのオブジェクトから入力を受信するように構成されたタッチインターフェース244を含むことができ、抵抗、容量、表面弾性波(SAW)、赤外線、レーダ、又は他の技術を使用してタッチ又はジェスチャを検知することができる。
【0048】
プロジェクタ246は、リモート壁又はリモートスクリーンなどの任意の他の反射物体に画像を投影することができるリモートハンドヘルドプロジェクタ又は一体型プロジェクタであってもよい。
【0049】
ビデオインターフェース242は、静止写真、ビデオセグメント、赤外線ビデオなどのビデオ画像をキャプチャするように構成することができる。例えば、ビデオインターフェース242は、デジタルビデオカメラ、ウェブカメラなどに結合されてもよい。ビデオインターフェース242は、レンズ、画像センサ、及び他の電子機器を含むことができる。画像センサは、相補型金属酸化膜半導体(CMOS)集積回路、電荷結合素子(CCD)、又は光を感知するための任意の他の集積回路を含むことができる。
【0050】
キーパッド252は、ユーザからの入力を受信するように構成された任意の入力装置を備えてもよい。例えば、キーパッド252は、押しボタン式数字ダイヤル、又はキーボードを含むことができる。キーパッド252はまた、画像の選択及び送信に関連付けられたコマンドボタンを含んでもよい。
【0051】
イルミネータ254は、状態表示を提供してもよく、又は光を提供してもよい。イルミネータ254は、特定の期間にわたって、又はイベントメッセージに応答してアクティブなままであってもよい。例えば、イルミネータ254がアクティブな場合、これによって、キーパッド252のボタンをバックライトで照らし、クライアントコンピュータに給電されている間、点灯したままにすることができる。また、イルミネータ254は、他のクライアントコンピュータにダイヤルするなど、特定動作が実行された際、これらのボタンに様々なパターンによりバックライトで照らすことができる。イルミネータ254はまた、クライアントコンピュータの透明又は半透明のケース内に配置された光源に、動作に応答して照明させることができる。
【0052】
更に、クライアントコンピュータ200はまた、鍵、デジタル証明書、パスワード、パスフレーズ、二要素認証情報などのセキュリティ/暗号情報を生成、記憶、又は使用するための追加の耐タンパ保護手段を提供するためのハードウェアセキュリティモジュール(HSM)268を備えることができる。幾つかの実施形態では、ハードウェアセキュリティモジュールは、1つ以上の標準的な公開鍵暗号基盤(PKI)をサポートするために採用することができ、鍵ペアなどを生成、管理、又は格納するために採用することができる。幾つかの実施形態では、HSM268はスタンドアロンコンピュータであってもよく、他の場合には、HSM268は、クライアントコンピュータに追加され得るハードウェアカードとして構成されてもよい。
【0053】
クライアントコンピュータ200はまた、外部周辺機器又は他のクライアントコンピュータ及びネットワークコンピュータなどの他のコンピュータと通信するための入出力インターフェース238を備えることができる。周辺装置は、オーディオヘッドセット、バーチャルリアリティヘッドセット、ディスプレイスクリーングラス、リモートスピーカシステム、リモートスピーカ及びマイクロフォンシステムなどを含むことができる。入出力インターフェース238は、ユニバーサルシリアルバス(USB)、赤外線、WiFi、WiMax、Bluetooth(商標)などの1つ以上の技術を利用することができる。
【0054】
入出力インターフェース238はまた、地理的位置情報(例えば、GPS)を決定するため、電力状態(例えば、電圧センサ、電流センサ、周波数センサなど)を監視するため、天候(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水量計など)を監視するためなどのための1つ以上のセンサを含むことができる。センサは、クライアントコンピュータ200の外部にあるデータを収集又は測定する1つ以上のハードウェアセンサであってもよい。
【0055】
ハプティックインターフェース264は、クライアントコンピュータのユーザに触覚フィードバックを提供するように構成されてもよい。例えば、ハプティックインターフェース264は、コンピュータの別のユーザが電話しているときに特定の方法でクライアントコンピュータ200を振動させるために使用されてもよい。温度インターフェース262を使用して、クライアントコンピュータ200のユーザに温度測定入力又は温度変化出力を提供することができる。オープンエアジェスチャインターフェース260は、例えば、単一又はステレオビデオカメラ、レーダ、ユーザによって保持又は装着されたコンピュータ内のジャイロセンサなどを使用することによって、クライアントコンピュータ200のユーザの物理的ジェスチャを検知することができる。カメラ240は、クライアントコンピュータ200のユーザの物理的な目の動きを追跡するために使用することができる。
【0056】
GPSトランシーバ258は、地球の表面上のクライアントコンピュータ200の物理的座標を決定することができ、これは通常、緯度及び経度の値として位置を出力する。GPSトランシーバ258はまた、限定はしないが、三角測量、アシストGPS(AGPS)、強化観測時間差(E-OTD)、セル識別子(CI)、サービスエリア識別子(SAI)、拡張タイミングアドバンス(ETA)、基地局サブシステム(BSS)などを含む他の地理的測位機構を使用して、地球の表面上のクライアントコンピュータ200の物理的位置を更に決定することができる。異なる条件下で、GPSトランシーバ258は、クライアントコンピュータ200の物理的位置を決定することができることが理解される。しかし、1つ以上の実施形態において、クライアントコンピュータ200は、他の構成要素を通じて、例えば、メディアアクセス制御(MAC)アドレス、IPアドレスなどを含む、クライアントコンピュータの物理的位置を決定するために採用され得る、他の情報を提供することができる。
【0057】
様々な実施形態の少なくとも1つにおいて、オペレーティングシステム206、他のクライアントアプリ224、ウェブブラウザ226などのアプリケーションは、地理的位置情報を使用して、タイムゾーン、言語、通貨、カレンダーフォーマットなどの1つ以上の位置特定機能を選択するように、配置され得る。位置特定機能は、表示オブジェクト、データモデル、データオブジェクト、ユーザインターフェース、レポート、並びに内部プロセス又はデータベースで使用できる。様々な実施形態のうちの少なくとも1つでは、位置特定情報を選択するために使用される地理的位置情報は、GPS258によって提供されてもよい。また、幾つかの実施形態では、地理的位置情報は、無線ネットワーク108又はネットワーク111などのネットワークを介して1つ以上の地理的位置プロトコルを使用して提供される情報を含むことができる。
【0058】
ヒューマンインターフェースコンポーネントは、クライアントコンピュータ200から物理的に分離された周辺機器とすることができ、クライアントコンピュータ200へのリモート入力又は出力を可能にする。例えば、ディスプレイ250又はキーボード252などのヒューマンインターフェースコンポーネントを介してここで説明したようにルーティングされた情報は、代わりに、ネットワークインターフェース232を介して、リモートに配置された適切なヒューマンインターフェースコンポーネントにルーティングすることができる。リモートであり得るヒューマンインターフェース周辺構成要素の例には、オーディオデバイス、ポインティングデバイス、キーパッド、ディスプレイ、カメラ、プロジェクタなどが含まれるが、これらに限定されない。これらの周辺構成要素は、Bluetooth(商標)、Zigbee(商標)などのピコネットワークを介して通信することができる。そのような周辺ヒューマンインターフェースコンポーネントを有するクライアントコンピュータの1つの非限定的な例は、壁又はユーザの手などの反射面上にピコプロジェクタによって投影された画像の部分に向かうユーザのジェスチャを感知するために、別個に配置されたクライアントコンピュータとリモート通信する1つ以上のカメラと共にリモートピコプロジェクタを含むことができるウェアラブルコンピュータである。
【0059】
クライアントコンピュータは、ウェブページ、ウェブベースのメッセージ、グラフィック、テキスト、マルチメディアなどを受信及び送信するように構成されたウェブブラウザアプリケーション226を含むことができる。クライアントコンピュータのブラウザアプリケーションは、ワイヤレスアプリケーションプロトコルメッセージ(WAP)などを含む実質的に任意のプログラミング言語を使用することができる。1つ以上の実施形態において、ブラウザアプリケーションは、携帯型デバイスマークアップ言語(HDML)、ワイヤレスマークアップ言語(WML)、WMLScript、JavaScript、標準汎用マークアップ言語(SGML)、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、HTML5などを、使用できるようになっている。
【0060】
メモリ204は、RAM、ROM、又は他のタイプのメモリを含むことができる。メモリ204は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するためのコンピュータ可読記憶媒体(デバイス)の一例を示す。メモリ204は、クライアントコンピュータ200の低レベル動作を制御するためのBIOS208を記憶することができる。メモリはまた、クライアントコンピュータ200の動作を制御するためのオペレーティングシステム206を記憶することができる。このコンポーネントには、あるバージョンのUNIX又はLinux(登録商標)などの汎用オペレーティングシステム、あるいは、WindowsPhone(商標)又はSymbian(登録商標)オペレーティングシステム等の専用クライアントコンピュータ通信オペレーティングシステムが含まれ得ることが、理解されよう。オペレーティングシステムは、Javaアプリケーションプログラムを介してハードウェアコンポーネント又はオペレーティングシステム動作の制御を可能にするJava仮想マシンモジュールを含むか、又はJava仮想マシンモジュールとインターフェースすることができる。
【0061】
メモリ204は、とりわけ、アプリケーション220又は他のデータを記憶するためにクライアントコンピュータ200によって利用されることができる、1つ以上のデータ記憶装置210を更に含むことができる。例えば、データ記憶装置210はまた、クライアントコンピュータ200の様々な能力をディスクリプションする情報を記憶するために使用されてもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて別のデバイス又はコンピュータに提供され得る。更に、データ記憶装置210を使用して、アドレス帳、バディリスト、エイリアス、ユーザプロファイル情報などを含む、ソーシャルネットワーク情報を格納することもできる。データ記憶装置210は、動作を実行及び遂行するためにプロセッサ202などのプロセッサによって使用されるプログラムコード、データ、アルゴリズムなどを更に含むことができる。一実施形態では、データ記憶装置210の少なくとも一部はまた、非一時的なプロセッサ可読リムーバブル記憶装置236、プロセッサ可読固定記憶装置234を含むがこれらに限定されないクライアントコンピュータ200の別の構成要素に、又はクライアントコンピュータの外部に記憶されてもよい。
【0062】
アプリケーション220は、クライアントコンピュータ200によって実行されると、命令及びデータを送信、受信、又は処理するコンピュータ実行可能命令を含むことができる。アプリケーション220は、例えば、クライアント視覚化エンジン222、他のクライアントアプリケーション224、ウェブブラウザ226などを、含められる。クライアントコンピュータは、1つ以上のサーバと通信を行うように配置されてもよい。
【0063】
他のアプリケーションプログラムの例としては、カレンダ、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、ボイス・オーバー・インターネット・プロトコル(VOIP)アプリケーション、コンタクトマネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、ワープロプログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラム、視覚化アプリケーションなどがある。
【0064】
更に、(図示されていない)1つ以上の実施形態では、クライアントコンピュータ200は、CPUの代わりに、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなどの組み込みロジックハードウェアデバイスを含むことができる。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。更に、1つ以上の実施形態において(図示せず)、クライアントコンピュータ200は、CPUの代わりに、1つ以上のハードウェアマイクロコントローラを含むことができる。1つ以上の実施形態において、1つ以上のマイクロコントローラは、それら独自の組み込みロジックを直接実行して動作を実施し、独自の内部メモリ、並びに独自の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)などの、動作を実行することができる。
【0065】
例示的なネットワークコンピュータ
図3は、様々な実施形態のうちの1つ以上を実装するシステムに含まれ得るネットワークコンピュータ300の一実施形態を示す。ネットワークコンピュータ300は、
図3に示されている構成要素よりも多い又は少ない構成要素を含んでもよい。しかしながら、示されている構成要素は、これらの革新を実施するための例示的な実施形態を開示するのに十分である。ネットワークコンピュータ300は、例えば、
図1の視覚化サーバコンピュータ116などの少なくとも1つの一実施形態であり得る。
【0066】
ネットワークコンピュータ300などのネットワークコンピュータは、バス328を介してメモリ304と通信することができるプロセッサ302を含むことができる。幾つかの実施形態では、プロセッサ302は、1つ以上のハードウェアプロセッサ、又は1つ以上のプロセッサコアで構成されてもよい。場合によっては、1つ以上のプロセッサのうちの1つ以上は、本明細書に記載されたものなどの1つ以上の特殊な動作を遂行するように設計された特殊なプロセッサであってもよい。ネットワークコンピュータ300はまた、電源330、ネットワークインターフェース332、オーディオインターフェース356、ディスプレイ350、キーボード352、入力/出力インターフェース338、プロセッサ可読固定記憶装置334、及びプロセッサ可読リムーバブル記憶装置336を含む。電源330は、ネットワークコンピュータ300に電力を供給する。
【0067】
ネットワークインターフェース332は、ネットワークコンピュータ300を1つ以上のネットワークに結合するための回路を含み、限定はしないが、開放型システム間相互接続モデル(OSIモデル)、グローバル移動体通信システム(GSM)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、汎用パケット無線サービス(GPRS)、WAP、超広帯域(UWB)、IEEE802.16ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMax)、セッション開始プロトコル/リアルタイム転送プロトコル(SIP/RTP)、又は様々な他の有線及び無線通信プロトコルのいずれかを実装するプロトコル及び技術を含む、1つ以上の通信プロトコル及び技術で使用するために構築される。場合によっては、ネットワークインターフェース332は、トランシーバ、トランシーバデバイス、あるいはネットワークインターフェースカード(NIC)として、呼ばれることもある。ネットワークコンピュータ300は、任意選択的に、基地局(図示せず)と通信してもよく、又は別のコンピュータと直接通信してもよい。
【0068】
オーディオインターフェース356は、人間の声の音などのオーディオ信号を生成及び受信するように構成される。例えば、音声インターフェース356は、他者との電気通信を可能にするか、あるいは、何らかの動作に対する音声確認を生成するために、スピーカとマイクロフォン(図示せず)に結合することができる。オーディオインターフェース356内のマイクロフォンは、例えば音声認識を使用して、ネットワークコンピュータ300への入力又はネットワークコンピュータの制御に使用することもできる。
【0069】
ディスプレイ350は、液晶ディスプレイ(LCD)、ガスプラズマ、電子インク、発光ダイオード(LED)、有機LED(OLED)、又はコンピュータと共に使用することができる任意の他のタイプの光反射型もしくは光透過型ディスプレイであってもよい。幾つかの実施形態では、ディスプレイ350は、壁又は他の物体に画像を投影することができるハンドヘルドプロジェクタ又はピコプロジェクタであってもよい。
【0070】
ネットワークコンピュータ300はまた、
図3に示されていない外部デバイス又はコンピュータと通信するための入力/出力インターフェース338を備えてもよい。入出力インターフェース338は、USB(商標)、Firewire(商標)、WiFi、WiMax、Thunderbolt(商標)、赤外線、Bluetooth(商標)、Zigbee(商標)、シリアルポート、パラレルポートなどのような、1つ以上の有線又は無線通信技術を利用することができる。
【0071】
また、入力/出力インターフェース338はまた、地理的位置情報(例えば、GPS)を決定するため、電力状態(例えば、電圧センサ、電流センサ、周波数センサなど)を監視するため、天候(例えば、サーモスタット、気圧計、風速計、湿度検出器、降水量計など)を監視するためなどのための1つ以上のセンサを含むことができる。センサは、ネットワークコンピュータ300の外部にあるデータを収集又は測定する1つ以上のハードウェアセンサであってもよい。ヒューマンインターフェースコンポーネントは、ネットワークコンピュータ300から物理的に分離することができ、ネットワークコンピュータ300へのリモート入力又は出力を可能にする。例えば、ディスプレイ350又はキーボード352などのヒューマンインターフェースコンポーネントを介してここで説明したようにルーティングされた情報は、代わりに、ネットワークインターフェース332を介して、ネットワーク上の他の場所に配置された適切なヒューマンインターフェースコンポーネントにルーティングすることができる。ヒューマンインターフェースコンポーネントは、コンピュータがコンピュータの人間のユーザから入力を受け取り、又はコンピュータの人間のユーザに出力を送信することを可能にする任意のコンポーネントを含む。したがって、マウス、スタイラス、トラックボールなどのポインティングデバイスは、ユーザ入力を受信するためにポインティングデバイスインターフェース358を介して通信することができる。
【0072】
GPSトランシーバ340は、典型的には位置を緯度及び経度値として出力する地球の表面上のネットワークコンピュータ300の物理座標を決定することができる。GPSトランシーバ340はまた、限定はしないが、三角測量、アシストGPS(AGPS)、強化観測時間差(E-OTD)、セル識別子(CI)、サービスエリア識別子(SAI)、拡張タイミングアドバンス(ETA)、基地局サブシステム(BSS)などを含む他の地理的測位機構を使用して、地球の表面上のネットワークコンピュータ300の物理的位置を更に決定することができる。異なる条件下で、GPSトランシーバ340は、ネットワークコンピュータ300の物理的位置を決定することができることが理解される。しかしながら、1つ以上の実施形態では、ネットワークコンピュータ300は、他の構成要素を介して、例えば、媒体アクセス制御(MAC)アドレス、IPアドレスなどを含む、クライアントコンピュータの物理的位置を決定するために使用され得る他の情報を提供してもよい。
【0073】
様々な実施形態の少なくとも1つにおいて、オペレーティングシステム306、モデリングエンジン322、視覚化エンジン324、他のアプリケーション329などのアプリケーションは、地理的位置情報を使用して、タイムゾーン、言語、通貨、通貨フォーマット、カレンダーフォーマットなどの1つ以上の位置特定機能を選択するように、配置され得る。位置特定機能は、ユーザインターフェース、ダッシュボード、視覚化、レポート、並びに内部プロセス又はデータベースで使用できる。様々な実施形態のうちの少なくとも1つでは、位置特定情報を選択するために使用される地理的位置情報は、GPS340によって提供されてもよい。また、幾つかの実施形態では、地理的位置情報は、無線ネットワーク108又はネットワーク111などのネットワークを介して1つ以上の地理的位置プロトコルを使用して提供される情報を含むことができる。
【0074】
メモリ304は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、又は他の種類のメモリを含むことができる。メモリ304は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するための、一例示のコンピュータ可読記憶媒体(デバイス)を例示する。メモリ304は、ネットワークコンピュータ300の低レベル動作を制御するための基本入出力システム(BIOS)308を記憶する。メモリはまた、ネットワークコンピュータ300の動作を制御するためのオペレーティングシステム306を記憶する。このコンポーネントには、あるバージョンのUNIX又はLinux(登録商標)などの汎用オペレーティングシステム、あるいは、Microsoft社のWindowsオペレーティングシステム又はApple社のmacOS(登録商標)オペレーティングシステムなどの専用オペレーティングシステムが含まれ得ることが、理解されよう。オペレーティングシステムは、Javaアプリケーションプログラムを介してハードウェアコンポーネント又はオペレーティングシステム動作の制御を可能にするJava仮想マシンモジュールなどの1つ以上の仮想マシンモジュールを含むか、又はそれとインターフェースすることができる。同様に、他のランタイム環境が含まれてもよい。
【0075】
メモリ304は、とりわけアプリケーション320又は他のデータを記憶するためにネットワークコンピュータ300によって利用され得る、1つ以上のデータ記憶装置310を更に含むことができる。例えば、データ記憶装置310はまた、ネットワークコンピュータ300の様々な能力をディスクリプションする情報を記憶するために使用されてもよい。次いで、情報は、通信中にヘッダの一部として送信されること、要求に応じて送信されることなどを含む、様々な方法のいずれかに基づいて別のデバイス又はコンピュータに提供され得る。データ記憶装置310はまた、アドレス帳、友人リスト、エイリアス、ユーザプロファイル情報などを含むソーシャルネットワーキング情報を記憶するために使用されてもよい。データ記憶装置310は、以下に説明する動作などの動作を実行及び遂行するために、プロセッサ302などのプロセッサによって使用されるプログラムコード、データ、アルゴリズムなどを更に含むことができる。一実施形態では、データ記憶装置310の少なくとも一部はまた、限定はしないが、プロセッサ可読リムーバブル記憶装置336内の非一時的媒体、プロセッサ可読固定記憶装置334、又はネットワークコンピュータ300内の、又はネットワークコンピュータ300の外部の任意の他のコンピュータ可読記憶装置も含む、ネットワークコンピュータ300の別の構成要素に記憶されてもよい。データ記憶装置310は、例えば、データソース314、視覚化モデル316、データモデル318、ツリー(インメモリ)319などを、含むことができる。
【0076】
アプリケーション320は、ネットワークコンピュータ300によって実行されると、メッセージ(例えば、SMS、マルチメディアメッセージングサービス(MMS)、インスタントメッセージ(IM)、電子メール、又は他のメッセージ)、オーディオ、ビデオを送信、受信、又は処理し、別のモバイルコンピュータの別のユーザとの通信を可能にするコンピュータ実行可能命令を含むことができる。アプリケーションプログラムの他の例には、カレンダ、検索プログラム、電子メールクライアントアプリケーション、IMアプリケーション、SMSアプリケーション、ボイスオーバインターネットプロトコル(VOIP)アプリケーション、連絡先マネージャ、タスクマネージャ、トランスコーダ、データベースプログラム、ワードプロセッシングプログラム、セキュリティアプリケーション、スプレッドシートプログラム、ゲーム、検索プログラムなどが含まれる。アプリケーション320は、モデリングエンジン322、視覚化エンジン324、以下で説明する実施形態用の動作を実行するように配置され得る他のアプリケーション329などを、含められる。様々な実施形態のうちの1つ以上において、1つ以上のアプリケーションは、別のアプリケーションのモジュール又は構成要素として実装されてもよい。更に、様々な実施形態のうちの1つ以上において、アプリケーションは、オペレーティングシステム拡張、モジュール、プラグインなどとして実装されてもよい。
【0077】
更に、様々な実施形態の1つ以上において、モデリングエンジン322、視覚化エンジン324、他のアプリケーション329、他のアプリケーション329などは、クラウドベースのコンピューティング環境で動作可能であり得る。様々な実施形態の1つ以上において、視覚化プラットフォームを含むこれらのアプリケーションなどは、クラウドベースのコンピューティング環境で管理され得る、仮想マシン又は仮想サーバ内で実行されることがある。様々な実施形態のうちの1つ以上において、これに関連して、アプリケーションは、クラウドコンピューティング環境によって自動的に管理される性能及びスケーリングの考慮事項に応じて、クラウドベース環境内の1つの物理ネットワークコンピュータから別の物理ネットワークコンピュータに流れることができる。同様に、様々な実施形態の1つ以上において、モデリングエンジン322、視覚化エンジン324、他のアプリケーション329などに専用の仮想マシン又は仮想サーバは、自動的にプロビジョニング及びデコミッショニングされ得る。
【0078】
更に、様々な実施形態の1つ以上において、モデリングエンジン322、視覚化エンジン324、他のアプリケーション329などは、1つ以上の特定の物理的ネットワークコンピュータに縛られるのではなく、クラウドベースのコンピューティング環境で動作する仮想サーバに配置することができる。
【0079】
更に、ネットワークコンピュータ300は、鍵、デジタル証明書、パスワード、パスフレーズ、二要素認証情報などのセキュリティ/暗号化情報を生成、格納、あるいは使用するための追加の改ざん防止セーフガードを提供するためのハードウェアセキュリティモジュール(HSM)360も、含むことができる。幾つかの実施形態では、ハードウェアセキュリティモジュールは、1つ以上の標準的な公開鍵暗号基盤(PKI)をサポートするために採用することができ、鍵ペアなどを生成、管理、又は格納するために採用することができる。幾つかの実施形態では、HSM360は、スタンドアロンネットワークコンピュータであってもよく、他の場合には、HSM360は、ネットワークコンピュータにインストールされ得るハードウェアカードとして構成されてもよい。
【0080】
更に、1つ以上の実施形態(図示せず)では、ネットワークコンピュータ300は、CPUの代わりに、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなどの埋め込みロジックハードウェアデバイスを含むことができる。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。また、1つ以上の実施形態(図示せず)では、ネットワークコンピュータは、CPUの代わりに1つ以上のハードウェアマイクロコントローラを含むことができる。1つ以上の実施形態において、1つ以上のマイクロコントローラは、それら独自の組み込みロジックを直接実行して動作を実施し、それら独自の内部メモリ、並びにそれら独自の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)などの、動作を実行することができる。
【0081】
例示的な論理システムアーキテクチャ
図4は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用システム400の論理アーキテクチャを例解する。様々な1つ以上の実施形態において、システム400は、様々なコンポーネントを含むように配置された視覚化プラットフォームで良く、このようなコンポーネントには、視覚化サーバ402、データソース404などの1つ以上のデータソース、データモデル406などの1つ以上のデータモデル、視覚化モデル408などの1つ以上の視覚化モデル、ツリーモデル412などの1つ以上のツリーモデル、視覚化414などの1つ以上の視覚化、ツリー仕様416などの1つ以上のツリー仕様、モデリングエンジン418などの1つ以上のモデリングエンジン、視覚化エンジン420などの1つ以上の視覚化エンジンなどが、含まれる。
【0082】
様々な実施形態の1つ以上において、視覚化サーバ402などの視覚化サーバは、視覚化414などの1つ以上の視覚化を生成するように配置可能である。幾つかの実施形態において、視覚化サーバ402は、データソース404などのデータソースから情報を取得するように配置可能である。したがって、幾つかの実施形態において、データソース404によって提供される情報の一部又は全部は、1つ以上のデータモデルあるいは視覚化モデルの1つ以上にマッピングされ、あるいは他の方法で抽出、変換され得る。かくして、幾つかの実施形態において、視覚化サーバは、データモデル又は視覚化モデルに基づいて、視覚化414などの1つ以上の視覚化を生成するよう、配置されてもよい。
【0083】
幾つかの実施形態において、モデリングエンジン418などのモデリングエンジンは、データソース404によって提供された情報の一部又は全部を、データモデル406などの1つ以上のデータモデルに変換するために、使用され得る。幾つかの実施形態において、モデリングエンジンは、構成情報によって提供されるコンピュータ可読命令を使用、又は実行して、データソースによって提供される情報をデータモデルに変換するステップの一部又は全部を決定するように、配置することができる。
【0084】
様々な実施形態の1つ以上において、ユーザ入力を含む、構成情報を使用して、データモデルに変換するためにデータソースから提供される情報の1つ以上の部分を選択することができる。
【0085】
様々な実施形態の1つ以上において、視覚化モデルは、1つ以上の表示オブジェクトから構成され得る。幾つかの実施形態において、表示オブジェクトは、1つ以上のデータオブジェクトに関連するデータの視覚化又は部分的な視覚化を表すことができる。表示オブジェクトによって表現される特定の視覚化は、所与のデータオブジェクトの構成(例えば、データ型、プロパティ、アイテム数、セマンティック意味など)に基づいて、選択することができる。幾つかの実施形態において、データオブジェクトを複数の表示オブジェクトに関連付けてもよく、それぞれが所与のデータオブジェクトの異なる視覚化を表す。したがって、表示オブジェクトは、データを理解し易くするために視覚化に含まれ得る、折れ線グラフ、面グラフ、棒グラフ、円グラフ、テーブル、テキストフィールド、テキストエリアなどの、様々な一般的、特殊、あるいはカスタムの視覚化要素を表すように、配置され得る。幾つかの実施形態において、視覚化は、顧客、利害関係者、内部チーム、ビジネス・インテリジェンス・チームなど、様々な対象者をターゲットにすることができる。したがって、複数の視覚化モデルを、同じデータモデルに生成、あるいは関連付けてもよい。
【0086】
更に、様々な実施形態の1つ以上において、モデリングエンジン418などのモデリングエンジンは、階層型データを視覚化するためのデータ処理を可能にするように配置可能である。幾つかの実施形態において、ツリー状の視覚化は、展開-折りたたみセマンティクス、親子描写、ノード、ルートノード、ブランチ/エッジなど、ツリーに通常関連付けられ得る1つ以上の特徴を含む、視覚化であり得る。更に、幾つかの実施形態において、1つ以上のツリー状の視覚化は、ユーザに表示された際にツリー状に表示されなくても、データモデル内で宣言された階層関係に基づく特徴/値を含められる。したがって、幾つかの実施形態において、ツリー状視覚化は、
図5で見られるツリーのように見える場合もあれば、あるいは、リスト、チャート、テーブル、フィールドなど、階層関係に基づく場合でも、従来のツリーのようには見えないこともあり得る。
【0087】
様々な実施形態の1つ以上において、データモデル406などのデータモデルは、ツリーモデル(複数)412など、1つ以上のツリーモデルを含められる。幾つかの実施形態において、ツリーモデルは、データモデル内の一部又は全てのデータオブジェクト間に存在し得る、階層関係などを宣言又は定義するデータモデルの1つ以上の部分でよい。
【0088】
幾つかの実施形態において、場合によっては、モデリングエンジンは、基礎となるデータソースに基づいてツリーモデルを自動的に生成するように配置され得る。例えば、データソースが明示的に階層構造(グラフデータベース、オブジェクト指向データベースなど)をサポートしている場合、データソースからツリーモデルを自動的に生成するように、モデリングエンジンを配置することができる。しかし、幾つかの実施形態において、データモデル定義の一環として、視覚化作成者がデータオブジェクト同士の階層関係を定義/宣言できるよう、モデリングエンジンを配置することができる。
【0089】
したがって、幾つかの実施形態において、データモデルにツリーモデルが含まれている場合、視覚化作成者は、関連するデータモデル内で宣言された階層関係の一部又は全てを組み込んだ視覚化モデルを設計することができる。幾つかの実施形態において、視覚化作成者又は視覚化ユーザによって使用されているデータモデル内のツリーモデルの存在に基づいて、ツリー視覚化機能を含めるためのユーザインターフェース(例えば、メニューアイテム、コントロール、ツールボックスアイテムなど)がユーザに提示されるかどうかを自動的に決定するように、モデリングエンジン又は視覚化エンジンを配置可能である。
【0090】
したがって、様々な実施形態の1つ以上において、モデリングエンジン又は視覚化エンジンは、ツリー視覚化を生成するために、ツリーモデル412などの1つ以上のツリーモデルを使用するよう、配置することができる。
【0091】
様々な実施形態の1つ以上において、前述のように、データソースによっては、階層関係をネイティブにサポートしていない場合がある。したがって、幾つかの実施形態において、ツリーモデルは、テーブルなどの非階層型データ構造で格納され得るデータの階層関係を視覚化エンジンが判断できるように宣言することができる。したがって、様々な実施形態の1つ以上において、階層型データの集約を容易にするために、1つ以上の中間値又はデータセットを生成するように、視覚化エンジンを配置することができる。後述するように、幾つかの実施形態では、階層型情報の集合体の視覚化をサポートする計算された情報を一時的に格納するために、1つ以上の中間テーブルを生成するよう、視覚化エンジンを配置することができる。様々な実施形態の1つ以上において、視覚化エンジンは、ツリー仕様(複数)416などのツリー仕様データ構造における中間テーブルなどの1つ以上のデータ構造を含むか、あるいは参照するように配置され得る。
【0092】
更に、幾つかの実施形態において、視覚化エンジンは、視覚化作成者が対話型視覚化を作成できるように配置可能である。幾つかの実施形態において、対話型視覚化は、ユーザ/閲覧者がツリーのセマンティクスを活用して基礎となるデータを探索できるようにする1つ以上の機能、あるいはユーザインターフェースを含むことができる。例えば、幾つかの実施形態では、ツリーモデルで宣言された階層関係に関連する展開、又は折りたたみアクションをサポートするよう、ツリー状視覚化が配置され得る。したがって、幾つかの実施形態において、視覚化エンジンは、ツリー視覚化の状態を追跡又は表現するために、ツリー仕様416などのようなツリー仕様を採用するように配置され得る。例えば、幾つかの実施形態において、ツリー仕様を使用して、どのツリー・ビュー・ノードが展開され、あるいはどのノードが折りたたまれるかを追跡することができる。
【0093】
図5は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータツリー500の論理表記を例解する図である。
【0094】
幾つかの状況において、ツリーあるいはツリー状構造を使って、情報又はデータを推論することができる。したがって、様々な社会的関係、又は商業的関係は、推論したり、あるいは、ツリーとして視覚化するのに自然に適していることがある。この例において、ツリー500は、組織における従業員と従業員同士の関係を表していると考えられ得る。この例では、ツリー500の各ノードが従業員に対応している。他の従業員の管理を担当する従業員は、マネージャ従業員が親ノードに関連付けられている子ノードを有する親ノードに関連付けられ、報告従業員は子ノードに関連付けられている。この例では、従業員Adam(ノード502)が他の4人の従業員(Mark、Dan、Jackie、Beers)を直接管理している。したがって、この例では、従業員Mark(ノード504)は従業員Adam(ノード502)に報告する。しかし、この例では、従業員Mark(ノード504)は2人の従業員(KirkとEllie)も管理している。同様に、従業員Jackieには、2人の報告従業員(AdriとJen)がいるといった、具合である。したがって、この例において、ツリー500は、組織の従業員階層を明確に示している。
【0095】
図6は、様々な実施形態の1つ以上に係る、階層型データを格納するためのデータ構造600の論理表記を例解する図である。様々な実施形態の1つ以上では、階層型情報を表現する様々なデータ構造を配置することができる。したがって、幾つかの実施形態において、データソースは、階層関係が保持されて情報を格納するよう、配置することができる。しかし、従来のデータストアは、行と列を使って階層型情報を表現するテーブルなどの、データ構造を採用していることが多い。通常、行はオブジェクトのインスタンスを表し、所与の行の列フィールドはオブジェクトインスタンスのプロパティ又は属性を表し得る。このように、階層を表現するためのネイティブ又は自然な機能がないので、テーブルベースのデータストアは、階層型情報を表現するために使用可能な列フィールドを含むように配置され得る。幾つかの実施形態において、オブジェクト間の階層関係は、列フィールド又は列フィールド値から推測することができる。他の実施形態では、テーブルは、階層関係を明示的に符号化可能とする列を含むように配置され得る。
【0096】
したがって、この例において、テーブル602とテーブル608は、テーブルデータ構造で階層関係を表現する2つの方法を示している。注意すべき点として、当業者であれば、階層型情報又は階層関係は、様々なデータ構造、テーブル、あるいはデータベーススキーマを使用して表し得ることを、理解するであろう。幾つかの場合において、視覚化エンジンは、データ構造又はデータ自身から直接階層構造を推測するように配置され得る。他の場合において、データモデルには、関連する階層関係を明示的に宣言し得る、1つ以上のツリーモデルを含めることができる。例えば、幾つかの実施形態において、視覚化プラットフォームは、視覚化作成者がツリーモデルに含まれ得る、関連する階層関係を明示的に宣言可能にする1つ以上のユーザインターフェースを提供することができる。
【0097】
例えば、様々な実施形態の1つ以上では、テーブル602などのデータソーステーブルは、階層関係を暗黙的に定義、あるいは表現する1つ以上の列フィールドを含むように配置される場合がある。例えば、テーブル602は人物列604とマネージャ列606を含む。この例において、列604は人物を識別し、列606はその人物の直属のマネージャを識別する。注意すべき点として、テーブル602の値は前述のツリー500に対応している。したがって、幾つかの実施形態において、テーブル602がツリー又はツリー状データ構造ではなくても、ツリーとして表現され得る情報を含んでいる。
【0098】
更に、様々な実施形態の1つ以上では、テーブル608などのデータソーステーブルは、ツリー情報を明示的に表現する1つ以上の列フィールドを含むように配置される場合がある。この例では、テーブル608は従業員を識別する人物列610を含み、レベル0列612、レベル1列614、レベル2列616は従業員の階層関係を表す。この例において、ツリー500の各深さレベルは個別の列で表される。この例において、各従業員レコードに従業員ごとのツリーパス情報を含めることで、ツリー500の各ノードをテーブル608内で明示的に表現することができる。したがって、この例では、従業員Adamがツリーのルートに相当するため、Adamの列612、列614、列616は空である。更に、テーブル608で採用されている他はそれぞれ、階層内の位置に対応するレベル列の値を有する。
【0099】
様々な実施形態の1つ以上において、視覚化エンジンは、視覚化に表示され得る値を生成するために、クエリを実行するか、又はクエリに応答するように配置可能である。幾つかの実施形態において、視覚化エンジンは、データソース又はデータモデル内の集約値に関連する1つ以上の値を生成するよう、配置されてもよい。
【0100】
更に、様々な実施形態の1つ以上において、視覚化エンジンは、集約情報に基づくか、又は集約情報から導出された、1つ以上の視覚化オブジェクトを含む1つ以上の視覚化を表示するように配置され得る。例えば、組織内の総従業員数と総マネージャ数を比較した単純な棒グラフは、テーブル602から簡単に生成することができる。この例では、このような棒グラフには、11人の従業員を表すように目盛りが付けられた1本の棒と、4人のマネージャを表すように目盛りが付けられたもう1本の棒を含めることができる。なお、この視覚化では、従業員の階層関係が含まれていない、あるいは表現されていないはずである。むしろ、これは、組織内の従業員の人数と、少なくとも1人の他の従業員を管理する組織内の従業員の人数を示す視覚化を提供する。階層関係を表現する視覚化の生成には、従来の視覚化エンジンでは利用できない特殊な処理が必要になる場合がある。
【0101】
したがって、幾つかの実施形態において、視覚化エンジンは、階層型情報に関連する集約値を提供するための1つ以上のサポートデータ構造を自動的に生成するように、配置することができる。
【0102】
様々な実施形態の1つ以上において、モデリングエンジンは、視覚化作成者がツリービュー仕様に含められる情報を定義できるように、配置され得る。様々な実施形態の1つ以上において、ツリービュー仕様は、視覚化エンジンが、ツリービューのデータ、フォーマット、スタイリングなどを決定するために、使用できる情報であり得る。
【0103】
様々な実施形態の1つ以上において、ツリー仕様に含まれる情報は、ソースデータがデータソース内でどのように構成されているかに応じて、異なる場合がある。更に、幾つかの実施形態において、ツリー仕様に含まれる情報は、視覚化作成者が視覚化に含められる視覚化オブジェクトによって異なる場合がある。
【0104】
様々な実施形態の1つ以上において、モデリングエンジンは、ソースデータに存在し得る1つ以上の階層関係をモデル化する1つ以上のツリーモデルを含むデータモデルをユーザが定義できるように、配置することが可能である。例えば、幾つかの実施形態において、モデリングエンジンは、階層関係を持つデータフィールド又はデータオブジェクトをユーザが明示的に識別できるユーザインターフェースを提供するように、配置することができる。
【0105】
更に、様々な実施形態の1つ以上において、モデリングエンジンは、1つ以上のルール、命令、ヒューリスティックなどを採用して、ソースデータを自動的に分析し、1つ以上の階層関係を識別するように配置することができる。様々な実施形態の1つ以上において、モデリングエンジンは、1つ以上の階層関係を表示するか、あるいは他の方法でユーザに提供するように配置することができる。したがって、幾つかの実施形態において、ユーザは、どの階層関係が有効であるか、又は関連性があるかを確認したり、あるいは他の方法で識別したりすることができる。例えば、幾つかの実施形態について、モデリングエンジンは、テーブル602内の列604と列606など、同じ種類のオブジェクトを参照し得る列フィールドを識別し、これらを潜在的な階層関係として提示するように、配置することができる。
【0106】
更に、例えば、様々な実施形態の1つ以上において、モデリングエンジンは、「ツリービュー」などの視覚化オブジェクトを視覚化に追加できるように配置することができる。したがって、幾つかの実施形態において、視覚化作成者がツリービューを視覚化に追加する場合、モデリングエンジンは、ツリービューの階層関係を識別するために、作成者に追加の入力を要求、又は求めるように配置することができる。幾つかの実施形態において、ユーザがツリービューを視覚化に追加する場合、モデリングエンジンは、1つ以上のテーブル又は他のデータオブジェクトが選択され、関連する階層関係が識別されることを要求するように配置することができる。例えば、幾つかの実施形態について、ユーザがテーブル602に基づくツリービューを視覚化に追加する場合、モデリングエンジンは、列606が列604のオブジェクトの親を含むものとして、ユーザが識別できるようにすることができる。したがって、この例では、モデリングエンジンは、ツリー500などのツリー視覚化を生成可能とするツリーモデルを生成できるようにすることができる。
【0107】
同様に、幾つかの実施形態において、ソースデータがテーブル608と同様に配置される場合、モデリングエンジンは、どの列がツリーの異なるレベルに対応するかをユーザが識別できるように配置される。
【0108】
様々な実施形態の1つ以上において、モデリングエンジンは、自動的又はユーザによって定義されたツリーモデルが実際にツリーグラフの特徴を持つことを検証するように配置され得る。例えば、幾つかの実施形態において、モデリングエンジンは、ツリー内の子ノードが1つの親を持つことを検証するといった具合で、配置することができる。幾つかの実施形態において、モデリングエンジンは、ユーザが定義しているツリーモデルが有効なツリーにならない恐れがあることを警告するように配置され得る。幾つかの実施形態において、モデリングエンジンは、ツリーモデルを検証するために、構成情報を介して提供されるルール、指示などを使用するように配置されてもよい。
【0109】
図7は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造700の論理表記を例解している。幾つかの実施形態について、テーブル702は、幾つかの種類のクエリに応答して視覚化エンジンによって生成され得る一時的な中間データ構造を表す。
【0110】
様々な実施形態の1つ以上において、視覚化エンジンは、視覚化で表示する1つ以上の値又は結果を決定する要求を受信することができる。幾つかの実施形態において、視覚化に関連する視覚化モデルは、様々な表示特徴(例えば、線、マーク、フィールド値、ラベル、色など)を、データモデルで宣言された1つ以上のデータオブジェクトに対応し得る値にマッピングすることができる。例えば、視覚化によって売上高のグラフが時系列で表示される場合、グラフの生成で使用されるデータを収集する要求を提供することができる。更に、幾つかの実施形態において、視覚化は、視覚化用の値を提供するために、データソースからのデータに対する1つ以上の操作を含む、データの追加処理を可能にし得る。例えば、幾つかの実施形態において、表示用に提供されるデータを、所与の視覚化の特定の設計に応じて、フィルタリング、集約などの1つ以上に適用できる。したがって、説明を簡潔かつ明瞭にするために、本明細書で言及されるクエリは、視覚化で表示又は適用するための値を取得、決定、フォーマットするために使用される、1つ以上の要求、フィルタ、関数、集約、定数などに対応するデータ構造、式、メッセージなどを表していると、考えられ得る。注意すべき点として、様々な実施形態の1つ以上において、クエリ情報を、視覚化作成者又は視覚化と相互作用し得る他のユーザによって作成された視覚化の定義(例えば、視覚化モデル)の一部として提供できる。
【0111】
この例において、視覚化エンジンは、ツリービューに関連付けられ得るクエリの受信又は処理に応答して、テーブル702などのテーブルを生成するように配置することができる。この例では、従業員Adamに対応するツリーノードの子孫に関連するクエリである。(ツリー500又はテーブル602を参照)。幾つかの実施形態において、クエリの1つ以上の部分は、データモデル内のデータオブジェクト同士の1つ以上の階層関係に関連する値を決定することに直接関連し得る。
【0112】
この例において、幾つかの実施形態では、視覚化エンジンは、テーブル602に関連付けられたツリービュー仕様を採用して、テーブル702を生成するように配置されてもよい。この例において、幾つかの実施形態では、モデリングエンジンは、従業員Adamノードの各子孫ノードを識別するために、テーブル702を反復処理するように配置され得る。したがって、この例において、従業員Adamが階層のルートであるため、組織内の他の従業員はそれぞれ従業員Adamの子孫になる。
【0113】
様々な実施形態の1つ以上において、テーブル702などの中間テーブルは、人物列704、集約対象列706などの1つ以上の列を含むように配置することができる。したがって、この例では、列704には、組織の従業員が投入され得る。また、この例では、列706には、従業員Adamが投入され得る。この例において、列706の従業員Adamのエントリは、対応する従業員が階層において従業員Adamの下にいることを表している。したがって、テーブル702の第1レコードの列704には従業員Adamが含まれ、従業員Adamに対応するツリーノードは自身の子孫ではないため、列706は空である。一方、ツリー500の先祖が従業員Adamであるため、テーブル702の残りのレコードには、集約対象列706に従業員Adamを持つ従業員が含まれる。
【0114】
様々な実施形態の1つ以上において、視覚化エンジンは、クエリ式の結果を計算するために、テーブル702などの中間テーブルを使用するように配置することができる。この例において、テーブル708は、従業員Adamの下にある従業員の人数を要求するクエリ式の結果を表すデータ構造を表す。したがって、この例では、視覚化エンジンは、集約対象列(列706)に従業員Adamを含むテーブル702のレコード数をカウントするように配置することができる。
【0115】
注意すべき点として、当業者であれば、合計/カウント以外の他の集約クエリ式は、テーブル702などのデータ構造によってサポートされ得ることを、理解するであろう。例えば、幾つかの実施形態において、視覚化エンジンは、条件式(より小さい、より大きいなど)、平均値、中央値などを含むクエリ式に答えるために、テーブル702などのテーブルを使用するように配置することができる。更に、幾つかの実施形態において、視覚化エンジンは、必要に応じてクエリに答えるために複数の中間テーブルを使用するように配置され得る。
【0116】
図8は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造800の論理表記を例解している。様々な実施形態の1つ以上において、視覚化エンジンは、所与の視覚化モデルが含み得るクエリ式によって、異なる中間テーブルを生成するように配置され得る。この例において、テーブル802は、ツリー500によって決定された組織の第2レベルの従業員に関連するクエリ式に答えるために生成された中間テーブルを表す。
【0117】
したがって、この例では、視覚化エンジンは、組織の第2レベルの従業員によって管理される従業員の人数(存在する場合)を計算するための中間テーブル802を生成するように配置され得る。したがって、この例では、列804には各従業員が含まれ、列806には各従業員の第2レベルのマネージャがリストアップされている。この例では、このクエリは、第2レベルのツリー部の(第2レベルの従業員の)ルートノードが含まれるという点で、包括的であると考えられ得る。例えば、従業員Markは集約対象値Markに関連付けられている。
【0118】
中間テーブル708と同様、中間テーブル808は、クエリ式の結果を含む。この例において、列810は各集約対象をリストし、列812は対応する集約対象の従業員に関連する従業員数をリストする。これらの結果を解釈する別の方法として、列812の値は、列810にリストされた従業員によって管理されている、部署又はグループの従業員数を表している場合がある。
【0119】
図9は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造900の論理表記を例解している。この例において、中間テーブル902及び中間テーブル908は、中間テーブル708と中間テーブル808とを組み合わせることによって中間テーブル908を生成できるよう、
図7又は
図8について説明した中間テーブルと同様に考えられ得る。したがって、説明を簡潔かつ明瞭にするために、上記の検討はここでは省略する。
【0120】
この例では、視覚化エンジンは、ツリー500で表される組織の第3レベルに関連するクエリの結果を提供するために、中間テーブル902を生成することができる。
【0121】
同様に、この例では、中間テーブル908は、クエリの結果を保持する列910及び列912を含む。ここでは、組織の第3レベルの従業員が主導する部門に含まれる従業員数のカウントに関連するクエリであることが想定され得る。しかし、この例において、中間テーブル908は、単一レベルではなく、組織の最初の3レベルの値を含む。
【0122】
図10は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のデータ構造1000の論理表記を例解している。
図9について上述した中間テーブルと同様、視覚化エンジンは、中間テーブル1002又は中間テーブル1010などのテーブルを生成するように配置することができる。したがって、この例では、中間テーブル1002は、組織内の従業員をリストする列1004と、応答クエリ式であり得る集約対象をリストする列1006を含む。この例では、視覚化エンジンは、ツリー500に従った組織の第4レベルに関するクエリに応答して、中間テーブル1002を生成することができる。同様に、この例では、中間テーブル1008は、列1010に集約対象、列1012にカウントをリストした中間テーブル708、中間テーブル808、及び中間テーブル908の組み合わせと考えられ得る。
【0123】
この例において、ツリー500に従った組織の第4レベルには2人の従業員が含まれ、どちらも他の従業員を管理しない。
【0124】
図11は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用システム1100の一部の論理表記を例解する図である。上述のとおり、幾つかの実施形態において、視覚化エンジンは、視覚化に含まれ得るツリービューに関連する状態を追跡するために、ツリー仕様などの1つ以上のデータ構造を採用するように配置され得る。前述のように、幾つかの実施形態において、視覚化エンジンは、データモデルに含まれ得るツリーモデルに基づき、視覚化においてツリービューを生成するように配置され得る。通常、幾つかの実施形態において、ツリーモデルは、視覚化のオーサリング時に視覚化作成者が宣言することができる。一方、ツリー仕様は、ユーザに提示される視覚化におけるツリービューの表示をサポートするために、視覚化エンジンによって生成され得る。この例において、システム1100は、ツリービューに関する情報を追跡するために、ツリー仕様が視覚化エンジンによってどのように採用され得るかを例示している。
【0125】
この例において、ツリー仕様1102Aは、視覚化の一部として表示され得るツリービュー1104Aに関する情報を追跡するためのデータ構造を表すことができる。この例において、視覚化1104Aは、ツリー500などに基づいて決定された、Adamに報告する従業員数を示す円グラフである。したがって、この例では、幾つかの実施形態について、ツリー仕様1102Aは、ツリービュー名、ツリーレベルの数、1つ以上の中間テーブルへの参照、現在表示されているレベルなどを含む、視覚化エンジンがツリービュー1104Aを管理するために採用できる、情報又はメタデータを含む。注意すべき点として、当業者であれば、本明細書で開示の技術革新は、ツリー仕様がここに例示されたよりも多くの、あるいは少ない属性を含み得ることを想定していることを、理解するであろう。しかしながら、当業者であれば、ツリー仕様1102A/1102Bの開示は、本明細書で開示される技術革新を開示するのに少なくとも十分であることを理解するであろう。更に、ツリー仕様1102A/Bは、JSON状データ構造に基づくものとして図示されているが、他のデータ構造もこれらの技術革新の範囲内である。例えば、幾つかの実施形態において、リスト、ハッシュテーブル、C/C++構造、XMLなど、様々な実行時データ構造を使用するツリー仕様を採用するように、視覚化エンジンを配置することができる。幾つかの実施形態において、視覚化エンジンは、API又はライブラリを介してツリー仕様にアクセスしたり、あるいは相互作用するように配置することができる。したがって、幾つかの実施形態において、視覚化エンジンは、ツリー仕様を定義するか、又はツリー仕様と相互作用するために、構成情報を採用するように配置され得る。
【0126】
この例において、ツリービュー1104Aは、ユーザがツリーの様々なレベルでツリーノードをドリルダウンできるように配置可能である。この例において、ユーザ相互作用1106は、ツリーの様々な位置に基づいてツリービューを再レンダリングする(例えば、視覚化アクション1108)ために、視覚化エンジンをアクティブ化することを含み得る。この例では、ユーザは、ツリービュー1104Bを表示するために対話式ユーザ・インターフェース・コントロールをクリックした可能性がある。この例では、ツリービュー1104A及びツリービュー1104Bは、ツリー内の様々な位置における同じツリービューの視覚化を提供することができる。したがって、この例では、ツリービュー1104Bは、基礎となるツリーの第2レベルから始まる視覚化を表す。したがって、この例では、幾つかの実施形態について、ツリー仕様1102Bは、ツリービューの現レベルが第2レベルであることを示している。同様に、幾つかの実施形態において、ユーザがツリービュー1104Bの円グラフのウェッジの1つをクリックした場合、視覚化エンジンは、基礎となるツリーの次までドリルダウンし(ツリーが存在する場合)、それに応じてツリー仕様を更新できる。
【0127】
図12では、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のユーザインターフェース1200の一部の論理表記を例解している。幾つかの実施形態において、ユーザインターフェース1200は、データパネル1202、表示パネル1204などの1つ以上のパネルを含むように配置され得る。
【0128】
様々な実施形態の1つ以上において、ユーザインターフェース1200は、クライアントコンピュータのディスプレイ、モバイルデバイスのディスプレイなど、1つ以上のハードウェアディスプレイに表示することができる。幾つかの実施形態において、ユーザインターフェース1200は、ネイティブアプリケーションを介して、あるいはウェブブラウザ又は他の同様のアプリケーションでホストされるウェブアプリケーションとして、提供され得る。当業者であれば、少なくとも説明を明瞭又は簡潔にするために、商用/本番用ユーザインターフェースでよく見られる多くの詳細がユーザインターフェース1200から省略されていることを、理解するであろう。同様に、幾つかの実施形態において、ユーザインターフェースは、ローカルな状況又はローカルな要件により、図示とは異なる配置となる場合がある。しかしながら、当業者であれば、ユーザインターフェース1200に関する開示/説明は、本明細書に含まれる技術革新を開示するのに少なくとも十分であることを理解するであろう。
【0129】
この例において、データパネル1202は、ツリービューに含めるのに使用可能となり得るデータソース、又はデータモデルの一部を表示するために採用される。この例において、リストされたアイテムは、ツリービューの仕様情報に追加され得るデータフィールド又はデータオブジェクトを表している。幾つかの実施形態において、データパネルに表示される特定のアイテムは、所与の時点で利用可能となり得るデータソース又はデータモデルの一部を識別可能とする構成情報に基づいて決定され得る。
【0130】
この例において、表示パネル1204は、1つ以上のツリービューを含み得る視覚化モデルに基づく視覚化の1つ以上の部分を表示するために採用される。
【0131】
更に、この例において、ツリービュー1206は、ツリー情報又はツリー状情報を視覚化するために採用され得る、1つ以上のチャート、プロットなどを表すことができる。注意すべき点として、ツリービュー1206は、基礎となる視覚化モデル、データモデル、ユーザ入力などに基づいて、様々なスタイル、マーク、ラベル、値などを含むように配置され得る。
【0132】
この例において、データパネル1202は、データモデル又はデータソースによって提供されるオブジェクト又はフィールドを表すデータオブジェクト1208を含む。更に、この例において、関係1210は、データオブジェクト1208同士の関係を定義するツリービュー仕様の一部を表す。この例において、関係1210は、マネージャオブジェクトが人物オブジェクトの親であることを示すと考えられ得る。
【0133】
一般化された動作
図13~
図15は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用の一般化された操作を表す。様々な実施形態の1つ以上において、
図13~
図15に関連して説明したプロセス1300、1400、及び1500は、
図3のネットワークコンピュータ300などの単一ネットワークコンピュータ上の1つ以上のプロセッサによって実装、又は実行され得る。他の実施形態では、これらのプロセス又はその一部は、
図3のネットワークコンピュータ300などの複数のネットワークコンピュータによって実装されてもよく、又は複数のネットワークコンピュータ上で実装されてもよい。更に他の実施形態では、これらのプロセス又はその一部は、クラウドベースの環境内の仮想化コンピュータなどの1つ以上の仮想化コンピュータによって実装又は実装されてもよい。しかしながら、実施形態はそのように限定されず、ネットワークコンピュータ、クライアントコンピュータなどの様々な組み合わせを利用することができる。更に、様々な実施形態の1つ以上において、
図13~
図15に関連して説明したプロセスは、
図4~
図12に関連して説明したなどの、様々な実施形態又はアーキテクチャの少なくとも1つに従って、階層型データを視覚化するデータ処理用に使用可能である。更に、様々な実施形態の1つ以上において、プロセス1300、1400、及び1500によって実行される動作の一部又は全ては、1つ以上のネットワークコンピュータの1つ以上のプロセッサ上で実行するモデリングエンジン322又は視覚化エンジン324によって、部分的に実行され得る。
【0134】
図13は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のプロセス1300全体の流れ図を示す。開始ブロック後、ブロック1302で、様々な実施形態の1つ以上において、視覚化エンジンは、データソースパネルを表示するように配置することができる。上記のとおり、視覚化エンジンは、対話式ユーザインターフェースの1つ以上のパネルを生成するように配置され得る。パネルのレイアウトは、ローカルな要件又は構成情報によって、異なる場合がある。幾つかの実施形態において、1つ以上のパネルを組み合わせることができる。同様に、幾つかの実施形態において、1つ以上のパネルを2つ以上のパネルに分割することができる。
【0135】
ブロック1304で、様々な実施形態の1つ以上において、視覚化エンジンは、表示パネルを表示するように配置することができる。上記のとおり、視覚化エンジンは、1つ以上のツリービューあるいは他の種類のビューなどの対話型視覚化を表示するために、表示パネルを採用するように配置され得る。
【0136】
ブロック1306で、様々な実施形態の1つ以上において、視覚化エンジンは、ツリービューの視覚化を生成するために採用され得る1つ以上のツリービュー仕様を提供するように配置され得る。上記のとおり、ツリービュー仕様は、データモデルから決定される階層関係に基づいてもよい。幾つかの場合において、データモデルは、ツリー仕様に含められ得る、データオブジェクト、1つ以上のデータオブジェクト同士の関係などを明示的に宣言する、1つ以上のツリーモデルを含むことができる。
【0137】
幾つかの実施形態において、基礎となるデータモデルが、オブジェクト同士の階層関係を記述する情報(ツリーモデルなど)を省略している場合、ユーザは必要な情報を提供するよう促されることがある。あるいは、幾つかの実施形態において、場合によっては、視覚化エンジンは、基礎となるデータソース又はデータモデルに基づいて、データオブジェクト同士の1つ以上の階層関係の候補を自動的に推論するように配置され得る。
【0138】
幾つかの実施形態において、階層関係の候補は、最初のツリービュー仕様の基礎となり得る。様々な実施形態の1つ以上において、以前に生成された可能性のあるツリービューは、ツリービューが作成された際に提供されたツリービュー仕様情報と関連付けられてもよい。したがって、幾つかの実施形態において、視覚化エンジンは、データストアからツリービュー仕様を取得するために、ツリービューに関連付けられた識別子を使用するように配置され得る。更に、幾つかの実施形態において、表示パネルに表示される視覚化に関連付けられている視覚化モデルは、視覚化モデルの作成者によって決定されたツリービュー仕様を含むか、あるいは埋め込むように配置することができる。
【0139】
幾つかの実施形態において、ツリービュー仕様は、作成者が視覚化に追加しようとし得る、新しいツリービューでは利用できない場合がある。したがって、幾つかの実施形態において、視覚化エンジンは、新しいツリービュー用のツリービュー仕様を生成するように配置され得る。幾つかの実施形態において、視覚化エンジンは、新しいツリービュー用の初期ツリービュー仕様を生成するために、構成情報を介して提供されるテンプレート又はルールを採用するように配置することができる。
【0140】
ブロック1308で、様々な実施形態の1つ以上において、視覚化エンジンは、ツリービュー仕様情報及び1つ以上のデータソースに基づいて、1つ以上のデータアイテムを提供するように配置され得る。上述のとおり、幾つかの実施形態において、データアイテムは、ツリービューの視覚化を補完するために使用され得る。注意すべき点として、幾つかの実施形態において、視覚化における特定のデータアイテム又はその配置は、提供され得る視覚化モデル、ツリービュー仕様、クエリ、フィルタなどによって異なる場合がある。例えば、
図10で見られる中間テーブル1008は、ツリービュー視覚化で採用され得る1つ以上のデータアイテムの代表と考えられる。
【0141】
ブロック1310で、様々な実施形態の1つ以上において、視覚化エンジンは、データアイテム及びツリービュー仕様情報に基づいて、ツリービューを生成するように配置され得る。様々な実施形態の1つ以上において、視覚化エンジンは、ツリービューに含まれ得る視覚化オブジェクトを生成するために、ツリービュー仕様及び視覚化モデルを解釈するように配置され得る。
【0142】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0143】
図14は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のプロセス1400の流れ図を示す。開始ブロック後、ブロック1402で、様々な実施形態の1つ以上において、視覚化エンジンに1つ以上のデータオブジェクトを提供できる。上記のとおり、視覚化モデルは、視覚化エンジンが1つ以上の基礎となるデータソースから値を取得するために使用できる、1つ以上のデータモデルに関連付けられ得る。例えば、上記のとおり、従業員、マネージャなどがデータオブジェクトと見なされることがある。
【0144】
しかしながら、当業者であれば、データオブジェクトの数又は種類は、視覚化に関連付けられる特定のデータソース、データモデル等に応じて、変化し得ることを理解するであろう。実際、幾つかの実施形態では、データオブジェクトはこれよりも多くても、少なくてもよく、その一部又は全てがツリービューあるいはツリービュー仕様に関連付けられる。
【0145】
ブロック1404で、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上のデータオブジェクト同士の1つ以上の階層関係を決定するよう配置され得る。様々な実施形態の1つ以上において、データオブジェクトの一部又は全ての間の階層関係は、1つ以上のツリービュー仕様で定義することができる。同様に、幾つかの実施形態において、視覚化プラットフォームは、ユーザ又は視覚化作成者が、1つ以上のデータオブジェクト同士の1つ以上の関係を動的に識別又は定義して、ツリービュー仕様を即座に生成可能とする対話式ユーザインターフェースを提供するように、配置され得る。
【0146】
ブロック1406で、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上の決定された階層関係を検証するよう配置され得る。様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上のデータオブジェクト又は1つ以上の関係が、ツリーあるいはツリービューを定義するために必要な1つ以上の制約もしくは特性と一致する可能性があることを検証あるいは確認する1つ以上のルールを施行するように、配置され得る。
【0147】
様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上のデータオブジェクト又は1つ以上の関係が、1つ以上の従来の制約又はグラフ理論によって定義されたツリーの特性を破るかどうかを評価するように配置され得る。例えば、幾つかの実施形態において、視覚化エンジンは、サイクルを含むグラフになり得るといった具合でツリービューを定義しようとする試行を拒否するように、配置されてもよい。しかし、幾つかの実施形態において、視覚化エンジンは、ツリーの形式的なグラフ理論の定義に関連する1つ以上の制約又は特性を無視するように配置することができる。したがって、幾つかの実施形態において、視覚化エンジンは、ツリービューについて施行され得る特定の制約又は特性を決定するために、構成情報から1つ以上のルールを採用するように配置され得る。
【0148】
注意すべき点として、モデリングエンジン又は視覚化エンジンが、モデリングエンジン又は視覚化エンジンによって施行されるツリーの制約又は特性と矛盾し得るツリービューを、ユーザ又は視覚化作成者が定義することを自動的に無効にするように配置できるので、このブロックは任意として記録される。
【0149】
判定ブロック1408で、様々な実施形態の1つ以上において、データオブジェクトに関連する視覚化モデルが1つ以上の中間テーブルを必要とする場合、制御はブロック1410に進むことができる。そうでない場合、制御は、ブロック1412へと進むことができる。幾つかの実施形態において、視覚化モデルは、中間テーブルが生成されるべきであることを示し得る1つ以上の特徴(例えば、ツリービュー、サマリーテーブル、表示値など)を含められる。他の場合において、幾つかの実施形態では、ユーザは、1つ以上の中間テーブルを必要とするきっかけとなる、対話型視覚化の1つ以上のコントロールあるいは機能と相互作用することができる。
【0150】
ブロック1410で、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上の中間テーブルを生成するように配置することができる。上記のとおり、視覚化エンジンは、1つ以上のデータオブジェクト又は1つ以上の関係を評価して、生成可能な1つ以上の中間テーブルを決定するように配置され得る。
【0151】
ブロック1412で、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上のツリービューを生成、表示するように配置することができる。上記のとおり、視覚化エンジンは、1つ以上の中間テーブルを使用して、ツリービューに表示するための情報を生成するように配置することができる。なお、幾つかの実施形態において、ツリービューは、木のような外観を持つ必要はない。幾つかの実施形態において、ツリービューは、基礎となるデータのツリー状構造、及びツリービュー仕様に基づいた情報を含むビューと捉えることができ、従来のようにツリー状に表示する必要がある。例えば、幾つかの実施形態において、管理する従業員の数に基づいて、従業員のソートリストを表示する視覚化は、従来のリストのように見える場合がある。しかし、幾つかの実施形態において、リストに表示される1つ以上の値は、ツリービュー仕様などに関連する1つ以上の中間テーブルに基づいて生成され得る。
【0152】
判定ブロック1414で、様々な実施形態の1つ以上において、必要に応じて、ツリービューの1つ以上のノードが展開又は折りたたまれた場合、制御はブロック1416に進むことができる。そうでない場合、制御は判定ブロック1414に逆戻りし得る。
【0153】
様々な実施形態の1つ以上において、ツリービューを含む視覚化は、ユーザ/閲覧者がツリービューの一部を展開又は折りたたんで、ツリービューの異なるレベルにドリルダウン、あるいはドリルアップすることを可能にする1つ以上の対話型機能を有するように構成され得る。
【0154】
様々な実施形態の1つ以上において、対話型コントロール又は対話式ユーザインターフェースの特定の形態又は形式は、視覚化に伴う特定の視覚化モデル又はツリービュー仕様に依存する場合がある。
【0155】
注意すべき点として、様々な実施形態の1つ以上において、ツリービューを含む視覚化には、ノード、リーフ、エッジなど、従来又は既存のツリー状コンポーネントを含む視覚化が含まれ得る。しかし、当業者であれば、本明細書で開示された技術革新がそのように限定されるものではないことを理解されよう。したがって、幾つかの場合において、幾つかの実施形態では、視覚化は、観察者には「ツリー状」に見えない中間集約テーブルのデータアイテムを表示する、棒グラフ、円グラフなどの視覚化オブジェクトを表示することができる。したがって、幾つかの実施形態において、表示されるデータアイテムが、ツリービューに関連付けられたツリービュー仕様で定義された階層関係に基づいて決定される可能性があるにもかかわらず、ツリーノードの展開又は折りたたみは、観察者からはツリーのように見えない場合がある。
【0156】
幾つかの実施形態において、視覚化エンジンは、ツリービュー仕様を使用して、対話型ツリービューに関連する状態情報を格納するように配置することができる。幾つかの実施形態において、これには、展開されたノード、折りたたまれたノード、ルートノード、フォーカスされているノード、ツリー内の位置など、様々なツリー状特性に関連する状態情報が含まれ得る。
【0157】
注意すべき点として、視覚化によっては、ツリーノードの展開又は折りたたみを可能にする対話型コントロール、あるいはユーザインターフェースが含まれていない場合があるので、この判定ブロックは任意として記録される。
【0158】
ブロック1416で、様々な実施形態の1つ以上において、視覚化エンジンは、展開又は折りたたまれた1つ以上のノードに応答して、1つ以上の中間テーブルを生成又は更新するよう配置され得る。
【0159】
様々な実施形態の1つ以上において、視覚化エンジンは、上記のように1つ以上の中間テーブルを生成して、視覚化で表示するためのデータアイテムを生成することができる。幾つかの実施形態において、視覚化エンジンは、ユーザセッション又は他の限定期間の間持続可能な揮発性ストレージに、生成物を格納するように配置され得る。幾つかの実施形態において、必要に応じて、1つ以上の中間テーブルを生成することができる。例えば、ユーザ又は作成者がクエリ情報を提供すると、追加の中間テーブルが必要になる場合がある。幾つかの実施形態において、場合によっては、1つ以上の中間テーブルに関連するデータアイテムが視覚化内で見えない可能性がある場合、1つ以上の中間テーブルは破棄されることがある。幾つかの実施形態において、視覚化エンジンは、構成情報を介して提供されるルール、条件、閾値などを採用して、1つ以上の中間テーブルを保持すべきか、あるいは破棄すべきかを決定するように配置することができる。
【0160】
幾つかの実施形態において、中間テーブルは、表示されたツリービューに関連付けられたツリービュー仕様に関連付けられるか、あるいは含まれ得る。幾つかの実施形態において、ツリービュー仕様のデータ構造は、埋め込み中間テーブルとして配置することができる。あるいは、幾つかの実施形態において、ツリービュー仕様のデータ構造は、中間テーブルへの参照又はポインタを含むように配置することができる。
【0161】
注意すべき点として、幾つかの実施形態では、ツリービューが初期化、表示される際、必要な中間テーブルが生成されることがあるため、このブロックは任意であると指示されている。更に、幾つかの場合では、展開/折りたたみ動作に関連付けられた中間テーブルが、以前の相互作用に代わっていた可能性がある。
【0162】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0163】
図15は、様々な実施形態の1つ以上に係る、階層型データを視覚化するためのデータ処理用のクエリ式を処理するプロセス1500の流れ図を示す。開始ブロック後、ブロック1502で、様々な実施形態の1つ以上において、ツリークエリ式を視覚化エンジンに提供できる。様々な実施形態の1つ以上において、ツリークエリ式は、視覚化におけるツリービューの存在を前提とするか、あるいはそれに依存するクエリ式と考えられ得る。幾つかの実施形態において、データモデル又は視覚化モデルは、ツリービューあるいはツリービュー仕様に関連付けられ得る、フィールド、マーク、プロット、グラフなどを含むことができる。
【0164】
様々な実施形態の1つ以上において、ツリークエリ式は、ツリービューに対するユーザ相互作用に基づいて、トリガされ得る。例えば、ユーザが基礎となるツリーのノードを展開、あるいは折りたたむ動作を行った場合、視覚化で使用される適切な値を決定するツリークエリ式が生成され得る。
【0165】
更に、幾つかの実施形態において、視覚化プラットフォームは、ユーザが対話式にツリークエリ式を提供可能とするユーザインターフェースを提供し得る。注意すべき点として、幾つかの実施形態において、本来、ツリークエリ式は、ツリーとして配置されるか、あるいは表示されるデータを対象とする従来型の式であると考えられ得る。様々な実施形態の1つ以上において、視覚化プラットフォームは、定められた数のツリークエリ式、又はツリークエリ式の種類(例えば、集約など)をサポートすることができる。幾つかの実施形態において、視覚化エンジンは、ローカルな要件又はローカルな状況を考慮するために、構成情報を介して提供されるルール、命令、ライブラリ等に基づいて、サポートされる1つ以上のツリークエリ式の種類を決定するように配置され得る。例えば、幾つかの実施形態において、視覚化プラットフォームは、ユーザ又は視覚化作成者が、サポートされ得る様々なツリークエリ式を拡張するスクリプト、あるいはライブラリを提供できるように配置可能である。
【0166】
幾つかの実施形態において、ツリービューが視覚化に含まれる場合、視覚化プラットフォームは、ツリービュー機能を自動的に有効にする(例えば、ツリークエリ式を有効にする)ユーザインターフェースを提供するように配置され得る。同様に、幾つかの実施形態において、視覚化の中にツリービューがない場合、視覚化プラットフォームは、ツリークエリ式を有効にする機能を無効にするように配置することができる。
【0167】
ブロック1504で、様々な実施形態の1つ以上において、視覚化エンジンは、視覚化に伴うデータモデルに関連付けられたツリービュー仕様を決定するように配置され得る。幾つかの実施形態において、ツリークエリ式をサポートする視覚化モデル又はデータモデルは、含まれる/表示されるツリービューの1つ以上の特徴を定義する1つ以上のツリービュー仕様と関連付けることができる。
【0168】
判定ブロック1506で、様々な実施形態の1つ以上において、必要に応じて、必要な中間テーブルが利用可能であれば、制御はブロック1516に進むことができる。そうでない場合、制御は、ブロック1508へと進むことができる。上記のとおり、幾つかの実施形態において、視覚化エンジンは、1つ以上の中間テーブルを使用して、ツリークエリ式の結果を提供するように配置することができる。幾つかの実施形態において、ツリービューに関連する中間テーブルは、ツリービューに対応するツリービュー仕様に含まれるか、あるいは参照され得る。
【0169】
様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上の関連する中間テーブルがあれば、それらを再利用するよう配置可能である。例えば、幾つかの実施形態において、ツリービューが最初に表示された際、あるいは表示用に選択された際、1つ以上の中間テーブルを生成することができる。したがって、幾つかの実施形態において、視覚化エンジンは、ユーザセッションの間、RAM又は一時キャッシュなどの揮発性メモリに中間テーブルを保持するように配置することができる。更に、幾つかの実施形態において、保留中のセッション中に、基礎となるデータソース、データモデル、ツリービュー仕様などが変更された場合、中間テーブルは破棄されることがある。
【0170】
幾つかの実施形態において、視覚化エンジンは、ユーザセッションの期間を超えて中間テーブルを保持するように配置することができる。例えば、幾つかの実施形態において、視覚化エンジンは、基礎となるデータモデルに静的データ及び関係が含まれている場合、セッションの長さを超えて中間テーブルを永続化するように配置することができる。
【0171】
ブロック1508で、様々な実施形態の1つ以上において、視覚化エンジンは、クエリ式に関連する1つ以上のルートノードを決定するよう配置することができる。様々な実施形態の1つ以上において、視覚化エンジンは、ツリークエリ式によって、含まれる(又は暗示される)1つ以上のデータオブジェクト又は関係に基づいて、ルートノードを決定するように配置され得る。幾つかの実施形態において、視覚化エンジンは、ツリークエリ式に対応するツリービューの一部のルートノードを識別するために採用され得るオブジェクト同士の関係を決定するために、ツリービュー仕様を採用するように配置できる。幾つかの実施形態において、ツリークエリ式は、ルートノードを明示的に識別可能である。例えば、幾つかの実施形態について、視覚化エンジンは、選択されたオブジェクトがツリークエリ式のルートノードとして提供されるよう、ユーザが表示オブジェクトを選択可能にする対話型視覚化を提供することができる。他の場合において、実施形態によっては、クエリ式は、識別されたオブジェクトインスタンス又はデータアイテムを含むのではなく、マネージャ->従業員などの関係から、記述することができる。
【0172】
ブロック1510で、様々な実施形態の1つ以上において、視覚化エンジンは、ツリービュー仕様及びクエリ式に基づいてツリーを走査するよう配置することができる。上記のとおり、幾つかの実施形態では、ツリービュー仕様は、ツリー又は木のような表現を提供する1つ以上のデータオブジェクト同士の1つ以上の関係の定義又は宣言を含むことができる。したがって、幾つかの実施形態において、視覚化エンジンは、関連するツリービュー仕様を適用して、ツリークエリ式に応答して走査するツリーの関連部分を決定するように配置することができる。
【0173】
ブロック1512で、様々な実施形態の1つ以上において、視覚化エンジンは、この走査に基づいて、1つ以上の中間テーブルを生成するように配置することができる。幾つかの実施形態において、視覚化エンジンは、走査によって関連するツリー部のノードが到達するにつれて、ツリークエリ式の結果を蓄積するように配置することができる。様々な実施形態の1つ以上において、各ノードに対して実行される特定の操作は、処理される特定のツリークエリ式に依存し得る。例えば、幾つかの実施形態では、ツリークエリ式がマネージャに報告する従業員の総計を要求し得る場合、視覚化エンジンは到達した各ノードをカウントする。他の例において、ツリークエリ式は、クエリ結果に含まれる1つ以上の到達ノードを含むか、あるいは除外できる追加条件を含み得る。例えば、幾つかの実施形態では、クエリが、マネージャに報告する現地従業員の数をカウントするように配置されている場合、地理的位置に基づいて結果から従業員を除外するか、あるいは含めるフィルタ式を適用して、結果に影響を与えることができる。
【0174】
判定ブロック1515で、様々な実施形態の1つ以上において、ツリーの走査が完了する可能性がある場合、制御はブロック1516に進むことができる。そうでない場合、制御はブロック1510に逆戻りし、ツリー部の走査を続行できる。
【0175】
上記のとおり、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上のツリー部の走査が進むにつれて、1つ以上の中間テーブルを更新することができる。
【0176】
ブロック1516で、様々な実施形態の1つ以上において、視覚化エンジンは、クエリ式及び中間テーブルに基づいて、1つ以上のデータアイテムを提供するように配置され得る。上記のとおり、様々な実施形態の1つ以上において、視覚化エンジンは、1つ以上の中間テーブルを使用して、ツリークエリ式に応答して1つ以上のデータアイテムを提供するように配置され得る。様々な実施形態の1つ以上において、視覚化エンジンは、視覚化に一部又は全部のデータアイテムを使用するよう配置可能である。注意すべき点として、視覚化モデルに含まれるフィルタ、ルールなどに応じて、1つ以上のデータアイテムを表示(又は他の検討)から除外することができる。
【0177】
次に、様々な実施形態のうちの1つ以上において、制御は呼び出しプロセスに戻されてもよい。
【0178】
各フローチャート図の各ブロック、及び各フローチャート図のブロックの組み合わせは、コンピュータプログラム命令によって実装できることが理解されよう。これらのプログラム命令は、プロセッサ上で実装される命令が、1つ以上の各フローチャートブロックで指定された動作を実行するための手段を作成するように、機械を製造するためにプロセッサに提供され得る。コンピュータプログラム命令は、プロセッサによって実行されて、プロセッサ上で実行される命令が、1つ以上の各フローチャートブロックで指定された動作を遂行するためのステップを提供するように、一連の動作ステップをプロセッサによって実行させてコンピュータ実装プロセスを生成することができる。コンピュータプログラム命令はまた、各フローチャートのブロックに示される動作ステップの少なくとも幾つかを並列に遂行させることができる。更に、ステップの幾つかは、マルチプロセッサコンピュータシステムで発生する可能性があるように、2つ以上のプロセッサにわたって遂行されてもよい。更に、各フローチャート図における1つ以上のブロック又はブロックの組み合わせはまた、本発明の範囲又は精神から逸脱することなく、他のブロック又はブロックの組み合わせと同時に、又は図示されたものとは異なる順序で遂行されてもよい。
【0179】
したがって、各フローチャート図の各ブロックは、指定された動作を遂行するための手段の組み合わせ、指定された動作を遂行するためのステップの組み合わせ、及び指定された動作を遂行するためのプログラム命令手段をサポートする。更に、各流れ図の各ブロック、及び各流れ図のブロックの組み合わせは、指定された動作又は手順を実行する、専用ハードウェアベースのシステム、あるいは専用ハードウェアとコンピュータ命令との組み合わせによって実施できることも、理解されよう。前述の例は、限定的又は網羅的であると解釈されるべきではなく、むしろ、本発明の様々な実施形態のうちの少なくとも1つの実施態様を示すための例示的な使用例であると解釈されるべきである。
【0180】
更に、1つ以上の実施形態(図示せず)では、例示的なフローチャートの論理は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルアレイロジック(PAL)など、又はそれらの組み合わせなど、CPUの代わりに組み込みロジックハードウェアデバイスを使用して実行されてもよい。組み込みロジックハードウェアデバイスは、その組み込みロジックを直接実行して動作を遂行することができる。1つ以上の実施形態において、マイクロコントローラは、独自の組み込みロジックを直接実行して動作を実施し、独自の内部メモリ、並びに独自の外部入出力インターフェース(例えば、ハードウェアピン又は無線トランシーバ)にアクセスして、システムオンチップ(SOC)などの、動作を実行するよう、配置することができる。
【国際調査報告】