データビジュアライゼーション対話機能アーキテクチャ
データビジュアライゼーション対話機能アーキテクチャを提供することができる。このアーキテクチャは、グラフなど、データのビジュアル化を作成することができ、そのビジュアル化の上に対話型機能を公開することができる。このアーキテクチャは、複数のレンダリングプラットフォームと統合することができる。公開される機能をユーザーが選択すると、このアーキテクチャはその選択を共通の形式に翻訳し、レンダリングプラットフォームに依存せず、レイアウトルールに従ってデータのビジュアル化を修正することができる。
【発明の詳細な説明】
【技術分野】
【0001】
データビジュアライゼーション対話機能アーキテクチャは、多くの異なるレンダリングプラットフォームにわたってコードの共有を最大限にすることができる方法で、対話型のデータのビジュアル化を有効にするプロセスである。
【背景技術】
【0002】
場合によっては、レンダリングプラットフォーム間の著しい違いを理由に、様々なレンダリングプラットフォーム内にデータのビジュアル化機能を完全に再実装する必要がある。対話型のデータのビジュアル化は、ユーザーがデータを探索するために散布図などのビジュアル化の一部を操作できるようにすることができる。例えば散布図は何千ものデータポイントを含むことがあり、これは傾向またはパターンの分析を困難にする場合がある。その散布図の中の一組のデータポイントを囲むように選択マーキーをドラッグすることは、それらのデータポイントを拡大し、それにより一層の詳細を表示させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来の戦略は、GDI/GDI+、Silverlight、WPF、C# winformなどの多数のレンダリングプラットフォームのそれぞれについて、このズーム機能を完全に再実装することである。その従来の戦略は、多大な重複作業、ならびにプレゼンテーションにおける非互換性、エラー、および矛盾の可能性をもたらす場合があるので、そのように完全に再実装することは多くの場合問題を引き起こす。対話的にデータをビジュアル化するための共有可能なアーキテクチャを開発する動機は、極めて多量のレンダリング技術およびその技術を使用するアプリケーションにわたる一貫した対話機能に対するユーザーの高まりつつある需要を満たす。
【課題を解決するための手段】
【0004】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。この概要は、以下の詳細な説明の中でさらに説明する諸概念の抜粋を、単純化した形で紹介するために提供する。この概要は、特許請求の範囲に記載の主題の重要な特徴または不可欠な特徴を特定することを意図するものではない。またこの概要は、特許請求の範囲に記載の主題の範囲を限定するために使用されることも意図しない。
【0005】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。このアーキテクチャは、グラフなど、データのビジュアル化を作成できるようにすることができ、そのビジュアル化の上に対話型機能を公開することができる。このアーキテクチャは、複数のレンダリングプラットフォームと統合することができる。その公開される機能をユーザーが選択すると、このアーキテクチャはその選択を共通の形式に翻訳し、レンダリングプラットフォームに依存せず、レイアウトルールに従ってデータのビジュアル化を修正することができる。
【0006】
上記の概要および以下の詳細な説明は、いずれも例を提供し、説明のためのものに過ぎない。したがって、上記の概要および以下の詳細な説明を限定的とみなすべきではない。さらに、本明細書に記載する内容に加え、諸特徴または改変形態を提供することができる。例えば、諸実施形態は、詳細な説明に記載する様々な特徴の組合せおよび部分的な組合せを対象とすることができる。
【0007】
本開示に組み込まれ、本開示の一部を構成する添付図面が本発明の様々な実施形態を示す。
【図面の簡単な説明】
【0008】
【図1A】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図1B】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図2】動作環境の図である。
【図3A】対話型機能を示す図である。
【図3B】対話型機能を示す図である。
【図4】対話機能ビジュアライゼーションアーキテクチャを提供する方法の流れ図である。
【図5】選択された要素を共通の形式に翻訳するために、図4の方法で使用されるサブルーチンの流れ図である。
【図6A】対話型グラフの種類および機能を示す図である。
【図6B】対話型グラフの種類および機能を示す図である。
【図6C】対話型グラフの種類および機能を示す図である。
【図6D】対話型グラフの種類および機能を示す図である。
【図6E】対話型グラフの種類および機能を示す図である。
【図6F】対話型グラフの種類および機能を示す図である。
【図6G】対話型グラフの種類および機能を示す図である。
【図6H】対話型グラフの種類および機能を示す図である。
【図6I】対話型グラフの種類および機能を示す図である。
【図6J】対話型グラフの種類および機能を示す図である。
【図7】コンピューティングデバイスを含むシステムのブロック図である。
【発明を実施するための形態】
【0009】
以下の詳細な説明は添付図面を参照する。可能な限り、同じまたは同様の要素を参照するために、同じ参照番号を図面および以下の説明の中で使用する。本発明の諸実施形態を説明することができるが、修正形態、適合形態、および他の実装形態もあり得る。例えば、図中に示す要素に対して置換、追加、または修正を行うことができ、開示する方法について、置換し、並べ替え、または段階を追加することにより、本明細書に記載する方法を修正することができる。したがって、以下の詳細な説明は本発明を限定しない。むしろ、本発明の適切な範囲は添付の特許請求の範囲によって定義される。
【0010】
データ対話機能ビジュアライゼーションアーキテクチャを提供することができる。本発明の諸実施形態に一致して、Windows(登録商標)データビジュアライゼーションプラットフォーム105、およびOS X(登録商標)データビジュアライゼーションプラットフォーム150は、対話型のビジュアル化を提供するためのソフトウェアライブラリおよび/またはユーティリティを含む、共用コア100をそれぞれ含むことができる。共用コア100は、例えばC++やC#によって実装することができ、プラットフォームに依存しないものとすることができる。共用コア100は、レイアウト、図形および/もしくは形状、ラインサービス(line services)、3次元レンダリング、アニメーションフレームの生成、ならびに/または対話型のホットスポットを提供するための、ビジュアル化ユーティリティを含むことができる。アプリケーションプログラミングインターフェイス(API)。
【0011】
データビジュアライゼーションプラットフォーム100は、既存のデータビジュアライゼーションクライアントから集められる一組の既知の対話機能の特徴を表示することができる。例えば共用コア100は、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも1つを表示するためのユーティリティを含むことができる。それぞれのグラフの種類は、データ修正機能、データフィルタ機能、ビジュアル調節機能など、少なくとも1つの対話型機能を備えることができる。それぞれのグラフの種類は、その種類に固有の対話型機能および/または複数の種類に共通の対話型機能を備えることができる。例えば、円グラフは、ユーザーが円グラフのくさび形をクリックして選択し、そのくさび形を拡大し、そのくさび形によって表される基になるデータに関する追加情報を表示できるようにする、グラフの種類に固有のビジュアル調節機能を備えることができる。円グラフは、ユーザーが凡例表示を別の位置にドラッグできるようにするものなど、複数の種類に共通の機能をさらに備えることができる。データ修正機能は、グラフ上の点の値を変更することなど、ビジュアル化の基になるデータ要素に対する変更を受け取ることと、それに応じてビジュアル化を更新することとを含むことができる。データフィルタ機能は、検索、ズーム、パン、または他のサブセットの選択によってなど、データポイントのサブセットを選択できるようにすることを含むことができる。ビジュアル調節機能は、色、線の幅および/もしくは種類、ならびに/または点の表示アイコンを変更することなど、ビジュアル化の外観に対する変更を受け取ることを含むことができる。他の対話機能の特徴には、グラフの軸および/または基準線を移動させること、列および/またはバーの表示幅を調節すること、一組のデータポイントを反復すること、ビジュアル化のセクションおよび/または点に関する追加情報を提供すること、データの変更についての少なくとも1つの効果を予測すること、全体的におよび/または部分的にビジュアル化をコピーすること、データをソートすること、データポイントおよび/または凡例項目を並べ替えること、ビジュアル化のデータポイントおよび/または構造上の要素をサイズ変更すること、強調表示すること、ピボットすること、回転させること、ならびにツールチップを表示することが含まれ得る。本発明の諸実施形態に一致して、ビジュアル化のある領域上でのポインタの移動、キーボードの入力、ならびに/またはマウスの移動および/もしくはクリックなど、公開される対話型機能に関連するユーザーの入力デバイスから受け取る任意の入力により、対話型機能のユーザー選択を果たすことができる。
【0012】
Windows(登録商標)データビジュアライゼーションプラットフォーム105、およびOS X(登録商標)データビジュアライゼーションプラットフォーム150は、C++ API110やC API115などの共用アプリケーションプログラミングインターフェイス(API)を含むことができる。データビジュアライゼーションプラットフォーム105は、Windows(登録商標)ファイルI/Oライブラリ120や、Windows(登録商標)ユーザーインターフェイス(UI)ライブラリ125など、Windows(登録商標)プラットフォームに固有のユーティリティを含むことができる。本発明の諸実施形態に一致して、ファイルI/Oライブラリ120およびUIライブラリ125は、ダイナミックリンクライブラリ(DLL)として実装することができる。データビジュアライゼーションプラットフォーム150は、OS X(登録商標)ファイルI/Oライブラリ155や、OS X(登録商標)ユーザーインターフェイス(UI)ライブラリ160など、OS X(登録商標)プラットフォームに固有のユーティリティを含むことができる。
【0013】
共用コア100は、対話型機能が使用可能であり得るグラフ領域を覆うことができるホットスポットオブジェクトにより、それぞれのグラフの種類において対話機能を公開することができる。それぞれのレンダリングプラットフォームごとに、統合オブジェクトは、そのレンダリングプラットフォームに関するデータビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための、統合コードを含むことができる。例えば、Windows(登録商標)データビジュアライゼーションプラットフォーム105は、Win32統合オブジェクト130を含むことができ、OS X(登録商標)データビジュアライゼーションプラットフォーム150は、OS X(登録商標)統合オブジェクト165を含むことができる。それぞれのデータビジュアライゼーションプラットフォームごとの統合オブジェクトは、ソフトウェアライブラリ、ならびにマウスカーソルのフィードバックおよびヒットテストユーティリティを提供するためにマウスボタンを押すこと、マウスの移動、およびマウスボタンを離すこと(例えばクリック、ドラッグ、およびリリース)をキャプチャすることができるドラッグアンドドロップループユーティリティ、ドラッグ中に共用コア100によって供給され得るドラッグイメージを描画するためのユーティリティ、および変更リストをコミットするためのユーティリティを含むことができる。変更リストは、ドラッグアンドドロップループ中に記録されるマウスの移動および/またはキーストロークなど、ユーザー入力のリストを含むことができる。この変更リストは、データの変更(例えば値の変更、値の並べ替え、領域単位のフィルタ)、ならびに図形の変更(移動、回転、サイズ)を記述することができる。
【0014】
それぞれの統合オブジェクトは、プラットフォームに固有のユーザー入力データを、共用コア100に送信するための共通バージョンに変換することを担うことができる。この統合オブジェクトは、これらのユーティリティを提供するために、どんなグラフ固有の情報も必要としなくてもよく、共用コア100によって提供されるそれぞれのグラフの種類に関連する対話型機能の全てを、単一のオブジェクトが公開することを可能にしている。
【0015】
様々なグラフの種類は、データビジュアライゼーションプラットフォーム(DVP)によって公開することができ、それらのグラフの種類に固有の対話機能の特定の領域をそれぞれ有することができる。それらの対話型領域、例えば列の上端を公開するために、DVPはホットスポットを公開することができる。それぞれのグラフの種類は、そのグラフの種類に固有の様々なホットスポットをエンコードし、そのエンコードしたホットスポットによって対話機能を公開することができる。クライアントは、マウスを使った対話および単純なコミットステップに基づき、ホットスポットによって公開される対話型機能を自らが活用することを可能にし得る、極めてジェネリックなインターフェイス(very generic interface)をエンコードすることができる。そのジェネリックインターフェイスは次の3つの断片を含むことができ、その断片とはつまり、マウスヒットテストロジック、ドラッグアンドドロップループ、およびコミットステップである。それらの断片が整っていると、クライアントは、DVPが覆うことができるグラフ固有のホットスポットの全てに接続することができる。
【0016】
ヒットテストは、ユーザー入力デバイスをあちこち移動させること、およびそのユーザー入力カーソルが何の上にあるのかについての情報をクライアントがDVPに要求することを含むことができる。DVPは、その情報、例えばデータポイントまたは図形を使って応答することができ、あるいは何も使わずに応答してもよい。DVPは、例えばカーソルの下にホットスポットがあることをそのクライアントに知らせることもできる。次いで、クライアントはそのホットスポットへの参照を受け取り、ドラッグアンドドロップループに入ることができる。ユーザーがマウスボタンを押し、画面のあちこちにカーソルをドラッグする場合など、クライアントのユーザー入力カーソルが移動するとき、そのクライアントは、自らの位置でホットスポットを更新することができる。次いでそのホットスポットは、ユーザーのフィードバックを得るために、ドラッグされたイメージを提供することができる。例えばそのホットスポットは、ワイヤーフレームおよび/または完全な(full−fledged)図形に、塗りつぶしもしくは灰色を与えることができる。ユーザーがマウスボタンを離すと、ホットスポットオブジェクトが変更をコミットすることができ、それらの変更はDVPのためにエンコードすることができる。本発明の諸実施形態に一致して、ユーザーおよび/またはクライアントが全体的におよび/または部分的に適用することができる変更リストオブジェクトに、それらの変更を記憶することができる。それらの変更がコミットされると、DVPはそれらの全ての変更をデータのビジュアル化に内部的に反映させることができる。
【0017】
図2は、動作環境200の図である。動作環境200は、データベースサーバー210、Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240を含むことができる。データベースサーバー210、Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240は、図7に関して以下により詳細に説明するコンピューティングデバイス700をそれぞれ含むことができ、インターネットや企業のイントラネットなどのネットワーク250を介して接続されてよい。Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240は、レンダリングプラットフォームおよびデータビジュアライゼーションプラットフォームをそれぞれ含むことができる。例えば、Windows(登録商標)クライアント220は、Windows(登録商標)データビジュアライゼーションプラットフォーム105を含むことができ、Macintosh(登録商標)クライアント230は、OS X(登録商標)データビジュアライゼーションプラットフォーム150を含むことができる。Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240のデータビジュアライゼーションプラットフォームは、共用コア100をそれぞれ含むことができる。それぞれのクライアントは、ビジュアル化を表示するために使用される別々のレンダリングプラットフォームを設けることができる。
【0018】
対話機能は、マウス、タッチパッド、マルチタッチディスプレイ、タッチスクリーン、および/またはスタイラスなどの入力デバイス712を、主にクリックしかつ/またはドラッグすることによって実現することができる。キーボードベースの対話機能を提供することもできる。本発明の諸実施形態に一致して、それぞれのクライアントは、追加のユーザーインターフェイスデバイスおよび/または機能をサポートすることができる。例えば、Macintosh(登録商標)クライアント230は、Windows(登録商標)クライアント220によってサポートされない場合がある、Apple Remote(登録商標)ユーザーインターフェイスデバイスに対するサポートを提供することができる。
【0019】
図3は、対話型機能を示す図である。例えば、折れ線グラフ300は、グラフ上にプロットされる複数のデータセット305を含むことができる。折れ線グラフ300は、x軸310、y軸315、および凡例320をさらに含むことができる。折れ線グラフ300は、共用コア100に関連するグラフの種類についての情報、およびデータベースサーバー210上に記憶されるデータに従い、Windows(登録商標)クライアント220上のWindows(登録商標)データビジュアライゼーションプラットフォーム105によって生成することができる。本発明の諸実施形態に一致して、折れ線グラフ300によって示されるデータは、Windows(登録商標)クライアント220および/または別のコンピューティングデバイス上にローカルに記憶することができる。Windows(登録商標)データビジュアライゼーションプラットフォーム105は、Windows(登録商標)クライアント220のレンダリングプラットフォームにホットスポットを公開することができる。例えば、複数のデータセット305のうちの1つの名前を変更することなど、凡例320および/またはx軸310との対話機能を可能にするホットスポットを公開することができる。
【0020】
ビジュアル化の中の対話位置は、組み込み「ホットスポット」オブジェクトの集合によって公開することができる。ビジュアル化のそれぞれのレイアウトの種類は、そのレイアウトに固有のホットスポットを公開することができる。例えば縦棒グラフは、縦棒の上端を垂直にドラッグするためのホットスポットを公開することができる。円グラフは、円スライスの両側に、時計回りの方向にまたは反時計回りの方向にドラッグ可能なホットスポットを公開することができる。凡例やタイトルなどの図形の移動または回転は、汎用の図形のホットスポット(generic shape hotspot)によって公開することができる。
【0021】
ホットスポットは、ヒットテストによってクライアントに公開することができる。クライアントは、マウスカーソル325の下に何のオブジェクトがあるのか判断するために、統合オブジェクトを使用することができる。共用コア100は、ヒットした図形への参照および/または新たに作成されるホットスポットへの参照を返すことができる。共用コア100は、どの幾何曲線(geometry curve)にヒットしたのかを解析することができるそのグラフに関するアクティブなレイアウトクラスに、ホットスポットの検出を委任することができる。対話型機能に相当する領域にヒットしなかった場合、共用コア100はホットスポットの参照を返さなくてよい。ホットスポットにヒットした場合、共用コア100は、最初のヒットテストの位置を記録することができる、新たな参照カウントされる(reference−counted)ホットスポットオブジェクトを作成することができる。レンダリングプラットフォームは、どのような変更が生じるのかについての記述を得ることができ、適切なカーソルおよび/またはツールチップを表示し、かつ/またはホットスポットを無視することができる。
【0022】
ホットスポットがマウスを使ってドラッグされていることをクライアントが検出すると、そのクライアントは、標準的なドラッグアンドドロップループに入ることができる。例えば、Windows(登録商標)クライアント220は、OLE(オブジェクトのリンクと埋め込み)ドラッグアンドドロップおよび/または単純なメッセージループに入ることができる。このループの中で、例えばマウスカーソル325がドラッグされた位置を報告する方法による、それぞれのマウスの移動。クライアントは、更新された変更リストを求めて、および/またはドラッグイメージ330などのドラッグイメージとして、ホットスポットにクエリすることができる。ホットスポットに関連する変更の種類は、マウスの位置に基づいて変わり得る。例えば、円スライスを円グラフから外に向かってドラッグすることは、単純に図形を移動できるのに対し、その円スライスを別の円スライス上にドラッグすることは、データを並べ替えることができる。
【0023】
ホットスポットによって返されるドラッグイメージ330は、グラフの静的イメージを描画するために使用されるのと同じオブジェクトであり得るジオメトリ反復子(geometry iterator)の形でクライアントが受け取ることができる。したがって、クライアントがグラフを描画できた時点で、そのクライアントは、同じコードを呼び出すことによりドラッグイメージを描画できなければならない。元の形状からクローンされ、現在の変更リストを反映するように変えられる一時的な図形を作成することにより、共用コア100内でドラッグイメージ330を生成することができる。
【0024】
マウスボタンを離すイベントが起こるとき、ドラッグアンドドロップ操作が終わっている可能性があり、変更をコミットする必要があり得る。この時点でクライアントは、ホットスポットの変更リストを求め、最後にもう一度そのホットスポットにクエリすることができ、変更を内部的に適用するためにその変更リストを共用コア100にコミットすることができる。本発明の諸実施形態に一致して、クライアントは変更リストをウォーク(walks)し、そのクライアントが望むどんなふうにでも変更を選択的に適用することができる。例えば、Office(登録商標)グラフクライアントは、データの変更をExcel(登録商標)のワークシートにプッシュバックし、後で変更を共用コア100に少しずつ伝えて返すことを認めることができる。
【0025】
折れ線グラフ300内に公開される別の対話機能には、例えばズーム操作などのビジュアル調節機能が含まれ得る。Win32統合オブジェクト130は、ユーザー入力デバイスからマウスボタンを押す(例えばマウスボタンをクリックする)イベントを受け取り、追加の入力を追跡し始め、マウスボタンを離す(例えばマウスボタンをリリースする)イベントを受け取るまで、それぞれの入力を変更リストに追加することができる。例えば、ユーザーは、ある位置にカーソル325を置き、折れ線グラフ300のある領域を選択するようにマウスをドラッグすることができる。共用コア300は、プラットフォームに依存しないグラフィカル表示をユーザーに提供して、ドラッグイメージ330などの選択領域を示すことができる。マウスボタンを離すイベントを受け取ると、Win32統合オブジェクト130は、変更リストを共用コア100にコミットすることができ、それを受けて共用コア100は、折れ線グラフ300のその選択領域についての拡大されたビジュアル化を表示し得る、更新されたビジュアル化350を生成することができる。
【0026】
共用コア100によって公開されるホットスポットは、既存のデータビジュアライゼーションクライアントから集められる一組の包括的な既知の対話機能を表すことができる。クライアントが望むが、共用コア100が公開しなかったホットスポットがある可能性があり、または組み込みホットスポットが十分でないシナリオもあり得る。本発明の諸実施形態に一致して、共用コア100は、必要に応じてクライアントが拡張することを可能にするために追加のAPIを公開することができる。例えば共用コア100は、クライアントが、レイアウト固有のヒットテスト情報を取得するためのAPI、データポイントジオメトリの反復(datapoint geometry iteration)を提供するためのAPI、および/またはwhat−if変化予測を行うためのAPIを公開することができる。
【0027】
クライアントは、マウスカーソルの下にそのレイアウトのどんな興味深い部分があるのか理解したい可能性がある。例えばOfficeアプリケーションは、描画オブジェクトからコネクタ矢印を使ってグラフに注釈を付けたい場合がある。そのように注釈を付けるために、共用コア100は、「系列#1内のデータポイント#3上」や、「データポイントの伸長する端(growth edge)上」や、「値が10の値軸目盛り上」のようなサブ要素ヒットテスト情報を提供しなければならないことがある。
【0028】
データポイントは、系列図形内のパスとして表示することができる。クライアントは、個々のデータポイントを(例えばマウスでポイントしたときに)強調表示したい場合があり、そのため、系列全体でなく、単一のデータポイントに固有のジオメトリを反復処理する能力を必要とすることがある。
【0029】
クライアントは、what−ifシナリオにおいて、変更が予測的に適用された状態で完全なグラフが返されることを要求することができる。例えばデータポイントを並べ替えるとき、クライアントは、「挿入マーカー」のゴーストを示すのではなく、その新たな位置に適切に挿入されたデータポイントを示したい場合がある。そのように示すために、クライアントは変更リストを作成し、共用コア100に渡すことができ、次いでその共用コア100は、そのグラフのコピーオンライト(copy−on−write)クローンを作成し、変更リストを適用し、クライアントが描画するための新たなグラフにポイントされたジオメトリ反復子を返すことができる。
【0030】
APIアクセスまたはユーザーの対話(例えばホットスポット)によって共用コア100に加えられる変更は、取り消し可能であるべきである。そのように取り消し可能にするために、共用コア100の中にトランザクションオブジェクトが存在して、クライアントがコマンドレベルで変更の境界を定め(demark)、記録できるようにすることができる。例えば、そのトランザクションオブジェクトは、取り消し/やり直し情報を記憶するためのUndoRecordオブジェクトを返す、GetUndoRecord()メソッドを公開することができる。UndoRecordオブジェクトは、クライアントの取り消し/やり直しコマンドから呼び出されることになるUndo()メソッドおよびRedo()メソッドを有することができる。ホットスポットを介して行われるユーザーの変更では、そのホットスポットが返す変更リストオブジェクトも、その取り消し/やり直し状態を追跡するためのトランザクションオブジェクトを公開することができる。
【0031】
図4は、データビジュアライゼーション対話機能アーキテクチャを提供するための、本発明の実施形態に一致する方法400に伴う全体的な段階を記載する流れ図である。方法400は、図7に関して以下により詳細に説明するコンピューティングデバイス700を使用して実施することができる。以下に、方法400の各段階を実施する方法についてより詳細に説明する。方法400は、開始ブロック410で始まり、コンピューティングデバイス700がデータのビジュアル化を作成することができる段階420に進むことができる。例えば、コンピューティングデバイス700にはwindowsクライアント220が含まれてよく、Windows(登録商標)データビジュアライゼーションプラットフォーム105を使用して、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、株価チャートなどのビジュアル化を作成することができる。
【0032】
方法400は、段階420から、そのデータのビジュアル化に関する少なくとも1つの対話型機能をコンピューティングデバイス700が公開することができる、段階430に進むことができる。例えば、コンピューティングデバイス700は、データ修正機能、データフィルタ機能、および/またはビジュアル調節機能などの対話型機能に関連するホットスポットを公開することができる。
【0033】
方法400は、段階430から、コンピューティングデバイス700が複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供することができる、段階440に進むことができる。例えば、コンピューティングデバイス700は、グラフィカル表示および/またはデータのビジュアル化を表示するために、GDI、GDI+、Silverlight、WPF、C# winforms、および/またはQTなどのレンダリングプラットフォームを使用することができる。
【0034】
方法400は、段階440から、コンピューティングデバイス700が、ユーザー入力デバイスからそのデータのビジュアル化上の少なくとも1つの位置の選択を受け取ることができる、段階450に進むことができる。例えばユーザーは、マウス、スタイラス、キーボード、および/またはタッチスクリーンを使用してデータのビジュアル化上のポイントを選択することができる。
【0035】
方法400は、段階450から、その選択された少なくとも1つの位置がホットスポットに関連するかどうかをコンピューティングデバイス700が判定することができる、段階460に進むことができる。例えば、コンピューティングデバイス700は、その選択された少なくとも1つの位置が、データポイント、軸線など、データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および/またはデータのビジュアル化制御要素を含むかどうかを判定することができる。
【0036】
段階460において、その選択された少なくとも1つの位置がホットスポットに関連するとコンピューティングデバイス700が判定する場合、方法400は、コンピューティングデバイス700がその少なくとも1つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳することができる、段階470に進むことができる。統合オブジェクトによりその選択を共通の形式に翻訳することについては、図5に関して以下により詳細に説明する。段階460において、その選択された少なくとも1つの位置がホットスポットに関連しないとコンピューティングデバイス700が判定する場合、方法400は、コンピューティングデバイス700が別のユーザー入力選択を受け取るために待機することができる、段階450に戻ることができる。
【0037】
方法400は、段階470から、コンピューティングデバイス700がその選択された対話型機能に従ってデータのビジュアル化を更新することができる、段階480に進むことができる。段階480において、コンピューティングデバイス700がデータのビジュアル化を更新すると、方法400は段階490において終了することができる。
【0038】
図5は、選択された要素を共通の形式に翻訳するために、図4の方法で使用されるサブルーチンの流れ図である。サブルーチン470は、コンピューティングデバイス700が少なくとも1つの選択の特徴をキャプチャすることができる、段階510において存在することができる。例えば、コンピューティングデバイス700は、マウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、スクロール操作などの、選択の特徴をキャプチャすることができる。本発明の諸実施形態に一致して、そのキャプチャした少なくとも1つの特徴は、レンダリングプラットフォームに関連する形式にエンコードすることができる。
【0039】
サブルーチン470は、段階510から、コンピューティングデバイス700がその少なくとも1つの特徴に関連する視覚的なフィードバックを表示することができる、段階520に進むことができる。例えば、コンピューティングデバイス700は、カーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および/またはツールチップを表示することなどの、視覚的なフィードバックを表示することができる。
【0040】
サブルーチン470は、段階520から、そのキャプチャした選択の特徴を、レンダリングプラットフォームに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式にコンピューティングデバイス700が変換することができる、段階530に進むことができる。例えば、データビジュアライゼーションプラットフォームは、選択の特徴を変換するために、関連する統合オブジェクトを使用することができる。
【0041】
サブルーチン470は、段階530から、その変換した少なくとも1つの選択の特徴に従いコンピューティングデバイス700が変更リストを作成することができる、段階540に進むことができる。例えば、コンピューティングデバイス700は、マウスボタンを押す選択の特徴を受け取ることに応答して変更リストを作成することができる。変更リストを作成すると、コンピューティングデバイス700は、さらなる選択の特徴を、それらの特徴を受け取るときに、その変更リストに追加することができる。
【0042】
サブルーチン470は、段階540から、ユーザーの選択が完了したかどうかをコンピューティングデバイス700が判定することができる、段階550に進むことができる。例えば、コンピューティングデバイス700は、マウスボタンをリリースすることにより、ユーザーがドラッグアンドドロップループを完了したと判定することができる。
【0043】
段階550において、ユーザーの選択が完了したとコンピューティングデバイス700が判定する場合、サブルーチン470は、コンピューティングデバイス700が処理のために変更リストを送信することができる、段階560に進むことができる。例えば、コンピューティングデバイス700は、変更リストをデータビジュアライゼーションプラットフォームに送信することができる。段階550において、ユーザーの選択が完了していないとコンピューティングデバイス700が判定する場合、サブルーチン470は、コンピューティングデバイス700が別のユーザー入力選択を受け取り、キャプチャするために待機することができる、段階510に戻ることができる。段階560においてコンピューティングデバイス700が変更リストを処理すると、サブルーチン470は終了し、方法400の段階480に進むことができる。
【0044】
本発明に一致する一実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、共有レイアウトに従ってデータのビジュアル化を作成し、そのデータのビジュアル化に関する少なくとも1つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、少なくとも1つの対話型機能を選択し、その少なくとも1つの対話型機能の選択を、統合オブジェクトにより、共有レイアウトに関連する共通の形式に翻訳し、その選択した対話型機能に従ってデータのビジュアル化を修正するように動作することができる。統合オブジェクトは、複数のレンダリングプラットフォームのそれぞれについて提供することができる。共有レイアウトは、レンダリングプラットフォームに依存しなくてよく、例えば、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および/または株価チャートを含むことができる。対話型機能には、例えばデータ修正機能、データフィルタ機能、および/またはビジュアル調節機能が含まれ得る。少なくとも1つの対話型機能を選択することは、マウス、スタイラス、キーボード、および/またはタッチスクリーンのうちの少なくとも1つから選択入力を受け取ることを含むことができる。
【0045】
処理ユニットは、ユーザー入力デバイスのポインタの位置を受け取り、その受け取った位置に関する情報を取得するようにさらに動作することができ、その情報は、データのビジュアル化に対するその位置に関連するあり得る修正についての記述、およびその位置における少なくとも1つのデータポイントについての記述のうちの少なくとも1つを含む。その受け取った位置に関する情報は、ツールチップの中に表示される。
【0046】
この処理ユニットは、円グラフにおいてくさび形を操作する対話型機能など、レイアウトに固有の少なくとも1つのホットスポットオブジェクトを公開するようにさらに動作することができる。ホットスポットオブジェクトは、グラフの軸線など、データのビジュアル化の少なくとも1つの構造上の要素に関連することができる。
【0047】
本発明に一致する別の実施形態は、データのビジュアル化に拡張可能な対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、一組のデータに従ってデータのビジュアル化を作成し、少なくとも1つのホットスポットを公開し、その少なくとも1つのホットスポットの選択を受け取り、その少なくとも1つのホットスポットの選択に関連する変更リストを作成し、その変更リストに複数のユーザー入力コマンドを記憶し、その変更リストを処理し、処理した変更リストに従ってデータのビジュアル化を更新するように動作することができる。例えば、モバイルクライアント240がグラフファイルを開くことができる。データビジュアライゼーションプラットフォーム(DVP)が、そのグラフファイル内のデータに従ってデータのビジュアル化を作成し、対話型機能に関連する、そのグラフの少なくとも1つのホットスポット領域を公開することができる。ユーザーは、ユーザー入力デバイスを使い、公開されたホットスポットを選択することができ、モバイルクライアント240は、ユーザー入力デバイスのカーソルの外観を変更することおよび/またはツールチップを表示することなど、ユーザーに提供するためのフィードバックをDVPから受け取ることができる。そのフィードバックは、列の幅を広げまたは狭めるためにその列の端をドラッグできることを知らせるために、その列の端を選択するときにカーソルを手の形に変えることなど、ホットスポットに関連する少なくとも1つの対話型機能に関連することができる。
【0048】
ユーザーがデータのビジュアル化を操作するとき、それぞれのユーザー入力操作をコマンドとして変更リストに追加することができる。マウスボタンを離すイベントによって指示できるようになど、ユーザーがデータのビジュアル化の操作を終えると、モバイルクライアント240は変更リストを処理することができる。例えば、モバイルクライアント240は変更リストをDVPにコミットすることができ、次いでそのDVPは、その変更リストに追加されたそれぞれのコマンドを反復処理し、それに応じてデータのビジュアル化を更新することができる。本発明の諸実施形態に一致して、データのビジュアル化に適用するために変更リスト内のコマンドのうちの少なくとも1つを選択することによってなど、モバイルデバイス240は、ユーザーが変更リスト内のコマンドを見て、それらのコマンドを全体的におよび/または部分的に適用することを可能にすることができる。
【0049】
本発明に一致するさらに別の実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、データビジュアライゼーションプラットフォームに関連するレイアウトに従ってデータのビジュアル化を作成し、そのデータのビジュアル化に関する少なくとも1つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、そのレンダリングプラットフォームには例えばGDI、GDI+、Silverlight、WPF、C# winformsが含まれ、ユーザー入力デバイスからそのデータのビジュアル化上の少なくとも1つの位置の選択を受け取り、その選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定するように動作することができる。そのユーザー入力デバイスには、マウス、スタイラス、キーボード、および/またはタッチスクリーンが含まれ得る。その選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定することは、その選択された少なくとも1つの位置が、データポイント、データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および/またはデータのビジュアル化制御要素を含むかどうかを判定することを含むことができる。
【0050】
その選択された少なくとも1つの位置がホットスポットに関連すると判定することに応じて、処理ユニットは、その少なくとも1つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳するようにさらに動作することができる。選択を翻訳するために、処理ユニットはその少なくとも1つの選択の特徴をキャプチャし、その少なくとも1つの特徴に関連する少なくとも1つの視覚的なフィードバックを表示し、その少なくとも1つの選択の特徴を、複数のレンダリングプラットフォームのうちの少なくとも1つに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式に変換し、その変換した少なくとも1つの選択の特徴に従って変更リストを作成し、その変更リストをデータビジュアライゼーションプラットフォームに送信するようにさらに動作することができる。その処理ユニットは、送信した変更リスト、および少なくとも1つの選択された位置におけるホットスポットの少なくとも1つのプロパティに従ってデータのビジュアル化を更新するようにさらに動作することができる。本発明の諸実施形態に一致して、その少なくとも1つの視覚的なフィードバックには、例えばカーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および/またはツールチップを表示することが含まれ得る。その少なくとも1つの選択の特徴には、例えばマウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、および/またはスクロール操作が含まれ得る。そのキャプチャされる少なくとも1つの特徴は、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する形式にエンコードすることができる。
【0051】
図6Aは、折れ線グラフ600を示し、ユーザー入力カーソル604をホットスポット上に置くことに対するユーザーフィードバックとして表示されるツールチップ602を含む。
【0052】
図6Bは、折れ線グラフ610を示す。
【0053】
図6Cは、バー(または縦棒)グラフ620を示す。
【0054】
図6Dは、散布図630を示す。
【0055】
図6Eは、ドーナツグラフ640を示す。
【0056】
図6Fは、面グラフ650を示す。
【0057】
図6Gは、レーダーチャート660を示す。
【0058】
図6Hは、等高線グラフ670を示す。
【0059】
図6Iは、バブルチャート680を示す。
【0060】
図6Jは、株価チャート690を示す。
【0061】
図7は、コンピューティングデバイス700を含むシステムのブロック図である。本発明の実施形態に一致して、上述のメモリ記憶装置および処理ユニットは、図7のコンピューティングデバイス700などのコンピューティングデバイスの中に実装することができる。このメモリ記憶装置および処理ユニットを実装するために、ハードウェア、ソフトウェア、またはファームウェアの任意の適切な組合せを使用することができる。例えばこのメモリ記憶装置および処理ユニットは、コンピューティングデバイス700、またはコンピューティングデバイス700と組み合わせて、他のコンピューティングデバイス718のどれかで実装することができる。上述のシステム、デバイス、およびプロセッサは例であり、本発明の諸実施形態に一致して、他のシステム、デバイス、およびプロセッサが、上述のメモリ記憶装置および処理ユニットを構成してもよい。さらに、上記に記載したように、コンピューティングデバイス700は、システム100用の動作環境を含むことができる。システム100は他の環境内で動作してもよく、コンピューティングデバイス700に限定されない。
【0062】
図7を参照して、本発明の実施形態に一致するシステムは、コンピューティングデバイス700などのコンピューティングデバイスを含むことができる。基本構成において、コンピューティングデバイス700は、少なくとも1つの処理ユニット702およびシステムメモリ704を含むことができる。コンピューティングデバイスの構成および種類に応じて、システムメモリ704は、これだけに限定されないが、揮発性メモリ(例えばRAM(ランダムアクセスメモリ))、不揮発性メモリ(例えばROM(読み取り専用メモリ))、フラッシュメモリ、または任意の組合せを含むことができる。システムメモリ704は、オペレーティングシステム705、1つまたは複数のプログラミングモジュール706を含むことができ、データビジュアライゼーションプラットフォーム707を含むことができる。オペレーティングシステム705は、例えばコンピューティングデバイス700の動作を制御するのに適していてよい。一実施形態では、プログラミングモジュール706は、データビジュアライゼーション表示プログラム720を含むことができる。さらに、本発明の諸実施形態は、グラフィックスライブラリ、他のオペレーティングシステム、または他の任意のアプリケーションプログラムと組み合わせて実施することができ、どんな特定のアプリケーションまたはシステムにも限定されない。図7に、この基本構成を、破線708の中のそれらのコンポーネントによって示す。
【0063】
コンピューティングデバイス700は、追加の特徴または機能を有することができる。例えばコンピューティングデバイス700は、例えば磁気ディスク、光ディスク、テープなど、追加の(取り外し可能なおよび/または固定の)データ記憶装置を含むこともできる。そのような追加の記憶装置を、図7に取り外し可能な記憶装置709および固定記憶装置710によって示す。コンピューター記憶媒体には、コンピューター可読命令、データ構造、プログラムモジュールや他のデータなど、情報を記憶するための任意の方法または技術によって実装される、揮発性/不揮発性の取り外し可能な媒体および固定の媒体が含まれ得る。システムメモリ704、取り外し可能な記憶装置709、および固定記憶装置710は、全てコンピューター記憶媒体の例(すなわちメモリ記憶装置)である。これだけに限定されないが、コンピューター記憶媒体には、RAM、ROM、EEPROM(電気的消去可能読み取り専用メモリ)、フラッシュメモリや他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)や他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、または情報を記憶するために使用でき、コンピューティングデバイス700によってアクセス可能な他の任意の媒体が含まれ得る。そのような任意のコンピューター記憶媒体がデバイス700の一部であり得る。コンピューティングデバイス700は、キーボード、マウス、ペン、サウンド入力デバイス、タッチ入力デバイスなど、入力デバイス(群)712を有することもできる。ディスプレイ、スピーカー、プリンターなど、出力デバイス(群)714も含まれてよい。上述のデバイスは例であり、他のデバイスを使用することもできる。
【0064】
コンピューティングデバイス700は、分散コンピューティング環境内のネットワーク、例えばイントラネットやインターネットなどを介し、デバイス700が他のコンピューティングデバイス718と通信することを可能にし得る通信接続716を含むこともできる。通信接続716は、通信媒体の一例である。通信媒体は、キャリア波や他のトランスポート機構などの変調済みデータ信号の中のコンピューター可読命令、データ構造、プログラムモジュール、または他のデータによって典型的には具体化することができ、任意の情報配信媒体を含む。用語「変調済みデータ信号」は、信号の中の情報をエンコードするような方法で、1つまたは複数の特性が設定されもしくは変更された信号を表すことができる。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、およびアコースティック、無線周波数(RF)、赤外線や他の無線媒体などの無線媒体が含まれ得る。本明細書で使用するとき、用語コンピューター可読媒体は、記憶媒体および通信媒体の両方を含むことができる。
【0065】
上記に述べたように、システムメモリ704には、オペレーティングシステム705を含む、いくつかのプログラムモジュールおよびデータファイルを記憶することができる。処理ユニット702上で実行される間、プログラミングモジュール706(例えばデータビジュアライゼーション表示プログラム720)は、例えば上記に記載した方法400の段階のうちの少なくとも1つを含むプロセスを実行することができる。上述のプロセスは例であり、処理ユニット702は他のプロセスを実行することもできる。本発明の諸実施形態に従って使用することができる他のプログラミングモジュールには、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピューター支援アプリケーションプログラム、等が含まれ得る。
【0066】
概して、本発明の諸実施形態に一致して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行できる、または特定の抽象データ型を実装できる他の種類の構造を含むことができる。さらに、本発明の諸実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの一般電化製品やプログラム可能一般電化製品、ミニコンピューター、メインフレームコンピューター等を含む、他のコンピューターシステム構成によって実施することができる。本発明の諸実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールはローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に位置することができる。
【0067】
さらに、本発明の諸実施形態は、離散的な電子的要素を含む電子回路内、論理ゲートを含むパッケージ化されたもしくは統合された電子チップ内、マイクロプロセッサを利用する回路内に、または電子的要素もしくはマイクロプロセッサを含む単一チップ上に実施することができる。本発明の諸実施形態は、これだけに限定されないが機械技術、光学技術、流体技術、および量子技術を含む、例えばAND、OR、NOTなどの論理演算を実行することができる他の技術を使用して実施してもよい。さらに本発明の諸実施形態は、汎用コンピューター内で、または他の任意の回路もしくはシステム内で実施することもできる。
【0068】
本発明の諸実施形態は、例えばコンピュータープロセス(メソッド)、コンピューティングシステム、またはコンピュータープログラム製品やコンピューター可読媒体などの製造品として実装することができる。そのコンピュータープログラム製品は、コンピューターシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、コンピューター記憶媒体とすることができる。そのコンピュータープログラム製品は、コンピューティングシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、キャリア上の伝搬される信号とすることもできる。したがって本発明は、ハードウェアおよび/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)によって実施することができる。言い換えれば本発明の諸実施形態は、命令実行システムが使用するためにもしくは命令実行システムに関連して、コンピューター使用可能プログラムコードまたはコンピューター可読プログラムコードが媒体内に具体化される、コンピューター使用可能記憶媒体またはコンピューター可読記憶媒体上の、コンピュータープログラム製品の形をとることができる。コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、機器、もしくはデバイスが使用するためにまたはそれらに関連して、プログラムを含み、記憶し、伝達し、伝搬し、または転送することができる任意の媒体とすることができる。
【0069】
コンピューター使用可能媒体またはコンピューター可読媒体は、これだけに限定されないが、例えば電気的、磁気的、光学的、電磁的、赤外線、もしくは半導体のシステム、機器、デバイス、または伝達媒体とすることができる。より詳細なコンピューター可読媒体の例(限定的なリスト)、コンピューター可読媒体には、1本または複数本の接続線を有する電気接続、ポータブルコンピューターディスケット、RAM(ランダムアクセスメモリ)、ROM(読み取り専用メモリ)、EPROMまたはフラッシュメモリ(消去可能プログラム可能読み取り専用メモリ)、光ファイバ、およびポータブルCD−ROM(コンパクトディスク読み取り専用メモリ)が含まれてよい。例えば紙または他の媒体を光学的にスキャンすることにより、プログラムを電子的にキャプチャし、次いで必要な場合はコンパイルし、解釈し、または適切な方法で違ったふうに処理し、次いでコンピューターメモリに記憶することができるので、コンピューター使用可能媒体またはコンピューター可読媒体は、その上にプログラムが印刷される紙または他の適切な媒体とすることさえ可能であることに留意されたい。
【0070】
本発明の諸実施形態を、例えば本発明の諸実施形態による方法、システム、およびコンピュータープログラム製品のブロック図および/または動作上の説明図を参照して上記に記載した。ブロック内に示す機能/行為は、任意の流れ図に示す順序から外れて行われてもよい。例えば、関与する機能/行為にもよるが、連続して示す2つのブロックを実際には実質的に同時に実行することができ、または時にはブロックを逆の順序で実行することもできる。
【0071】
本発明の特定の実施形態を記載してきたが、他の実施形態が存在してもよい。さらに、メモリおよび他の記憶媒体に記憶されるデータに関連するものとして本発明の諸実施形態を記載してきたが、データは、ハードディスク、フロッピー(登録商標)ディスク、もしくはCD−ROMのような2次記憶装置、インターネットからのキャリア波、または他の形態のRAMもしくはROMなど、他の種類のコンピューター可読媒体上に記憶し、またはそこから読み取ることもできる。さらに、本発明から逸脱することなく、開示した方法の段階は、段階を並べ替えることおよび/または段階を挿入しもしくは削除することを含む任意の方法で修正することができる。
【0072】
本明細書に含まれるコードの中の著作権を含む全ての権利は出願人に帰属し、出願人の財産である。出願人は本明細書に含まれるコードの中の全ての権利を保有しかつ確保し、付与した特許を再現することに関連してのみ、この題材(material)を再現する許可を与え、それ以外の目的では許可を与えない。
【0073】
本明細書は複数の例を含むが、本発明の範囲は特許請求の範囲によって示す。さらに、本明細書を構造上の特徴および/または方法論的な行為に固有の言語で記載してきたが、特許請求の範囲は上記に記載した特徴または行為に限定されない。むしろ、上記に記載した特定の特徴および行為は、本発明の諸実施形態についての例として開示した。
【技術分野】
【0001】
データビジュアライゼーション対話機能アーキテクチャは、多くの異なるレンダリングプラットフォームにわたってコードの共有を最大限にすることができる方法で、対話型のデータのビジュアル化を有効にするプロセスである。
【背景技術】
【0002】
場合によっては、レンダリングプラットフォーム間の著しい違いを理由に、様々なレンダリングプラットフォーム内にデータのビジュアル化機能を完全に再実装する必要がある。対話型のデータのビジュアル化は、ユーザーがデータを探索するために散布図などのビジュアル化の一部を操作できるようにすることができる。例えば散布図は何千ものデータポイントを含むことがあり、これは傾向またはパターンの分析を困難にする場合がある。その散布図の中の一組のデータポイントを囲むように選択マーキーをドラッグすることは、それらのデータポイントを拡大し、それにより一層の詳細を表示させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来の戦略は、GDI/GDI+、Silverlight、WPF、C# winformなどの多数のレンダリングプラットフォームのそれぞれについて、このズーム機能を完全に再実装することである。その従来の戦略は、多大な重複作業、ならびにプレゼンテーションにおける非互換性、エラー、および矛盾の可能性をもたらす場合があるので、そのように完全に再実装することは多くの場合問題を引き起こす。対話的にデータをビジュアル化するための共有可能なアーキテクチャを開発する動機は、極めて多量のレンダリング技術およびその技術を使用するアプリケーションにわたる一貫した対話機能に対するユーザーの高まりつつある需要を満たす。
【課題を解決するための手段】
【0004】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。この概要は、以下の詳細な説明の中でさらに説明する諸概念の抜粋を、単純化した形で紹介するために提供する。この概要は、特許請求の範囲に記載の主題の重要な特徴または不可欠な特徴を特定することを意図するものではない。またこの概要は、特許請求の範囲に記載の主題の範囲を限定するために使用されることも意図しない。
【0005】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。このアーキテクチャは、グラフなど、データのビジュアル化を作成できるようにすることができ、そのビジュアル化の上に対話型機能を公開することができる。このアーキテクチャは、複数のレンダリングプラットフォームと統合することができる。その公開される機能をユーザーが選択すると、このアーキテクチャはその選択を共通の形式に翻訳し、レンダリングプラットフォームに依存せず、レイアウトルールに従ってデータのビジュアル化を修正することができる。
【0006】
上記の概要および以下の詳細な説明は、いずれも例を提供し、説明のためのものに過ぎない。したがって、上記の概要および以下の詳細な説明を限定的とみなすべきではない。さらに、本明細書に記載する内容に加え、諸特徴または改変形態を提供することができる。例えば、諸実施形態は、詳細な説明に記載する様々な特徴の組合せおよび部分的な組合せを対象とすることができる。
【0007】
本開示に組み込まれ、本開示の一部を構成する添付図面が本発明の様々な実施形態を示す。
【図面の簡単な説明】
【0008】
【図1A】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図1B】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図2】動作環境の図である。
【図3A】対話型機能を示す図である。
【図3B】対話型機能を示す図である。
【図4】対話機能ビジュアライゼーションアーキテクチャを提供する方法の流れ図である。
【図5】選択された要素を共通の形式に翻訳するために、図4の方法で使用されるサブルーチンの流れ図である。
【図6A】対話型グラフの種類および機能を示す図である。
【図6B】対話型グラフの種類および機能を示す図である。
【図6C】対話型グラフの種類および機能を示す図である。
【図6D】対話型グラフの種類および機能を示す図である。
【図6E】対話型グラフの種類および機能を示す図である。
【図6F】対話型グラフの種類および機能を示す図である。
【図6G】対話型グラフの種類および機能を示す図である。
【図6H】対話型グラフの種類および機能を示す図である。
【図6I】対話型グラフの種類および機能を示す図である。
【図6J】対話型グラフの種類および機能を示す図である。
【図7】コンピューティングデバイスを含むシステムのブロック図である。
【発明を実施するための形態】
【0009】
以下の詳細な説明は添付図面を参照する。可能な限り、同じまたは同様の要素を参照するために、同じ参照番号を図面および以下の説明の中で使用する。本発明の諸実施形態を説明することができるが、修正形態、適合形態、および他の実装形態もあり得る。例えば、図中に示す要素に対して置換、追加、または修正を行うことができ、開示する方法について、置換し、並べ替え、または段階を追加することにより、本明細書に記載する方法を修正することができる。したがって、以下の詳細な説明は本発明を限定しない。むしろ、本発明の適切な範囲は添付の特許請求の範囲によって定義される。
【0010】
データ対話機能ビジュアライゼーションアーキテクチャを提供することができる。本発明の諸実施形態に一致して、Windows(登録商標)データビジュアライゼーションプラットフォーム105、およびOS X(登録商標)データビジュアライゼーションプラットフォーム150は、対話型のビジュアル化を提供するためのソフトウェアライブラリおよび/またはユーティリティを含む、共用コア100をそれぞれ含むことができる。共用コア100は、例えばC++やC#によって実装することができ、プラットフォームに依存しないものとすることができる。共用コア100は、レイアウト、図形および/もしくは形状、ラインサービス(line services)、3次元レンダリング、アニメーションフレームの生成、ならびに/または対話型のホットスポットを提供するための、ビジュアル化ユーティリティを含むことができる。アプリケーションプログラミングインターフェイス(API)。
【0011】
データビジュアライゼーションプラットフォーム100は、既存のデータビジュアライゼーションクライアントから集められる一組の既知の対話機能の特徴を表示することができる。例えば共用コア100は、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも1つを表示するためのユーティリティを含むことができる。それぞれのグラフの種類は、データ修正機能、データフィルタ機能、ビジュアル調節機能など、少なくとも1つの対話型機能を備えることができる。それぞれのグラフの種類は、その種類に固有の対話型機能および/または複数の種類に共通の対話型機能を備えることができる。例えば、円グラフは、ユーザーが円グラフのくさび形をクリックして選択し、そのくさび形を拡大し、そのくさび形によって表される基になるデータに関する追加情報を表示できるようにする、グラフの種類に固有のビジュアル調節機能を備えることができる。円グラフは、ユーザーが凡例表示を別の位置にドラッグできるようにするものなど、複数の種類に共通の機能をさらに備えることができる。データ修正機能は、グラフ上の点の値を変更することなど、ビジュアル化の基になるデータ要素に対する変更を受け取ることと、それに応じてビジュアル化を更新することとを含むことができる。データフィルタ機能は、検索、ズーム、パン、または他のサブセットの選択によってなど、データポイントのサブセットを選択できるようにすることを含むことができる。ビジュアル調節機能は、色、線の幅および/もしくは種類、ならびに/または点の表示アイコンを変更することなど、ビジュアル化の外観に対する変更を受け取ることを含むことができる。他の対話機能の特徴には、グラフの軸および/または基準線を移動させること、列および/またはバーの表示幅を調節すること、一組のデータポイントを反復すること、ビジュアル化のセクションおよび/または点に関する追加情報を提供すること、データの変更についての少なくとも1つの効果を予測すること、全体的におよび/または部分的にビジュアル化をコピーすること、データをソートすること、データポイントおよび/または凡例項目を並べ替えること、ビジュアル化のデータポイントおよび/または構造上の要素をサイズ変更すること、強調表示すること、ピボットすること、回転させること、ならびにツールチップを表示することが含まれ得る。本発明の諸実施形態に一致して、ビジュアル化のある領域上でのポインタの移動、キーボードの入力、ならびに/またはマウスの移動および/もしくはクリックなど、公開される対話型機能に関連するユーザーの入力デバイスから受け取る任意の入力により、対話型機能のユーザー選択を果たすことができる。
【0012】
Windows(登録商標)データビジュアライゼーションプラットフォーム105、およびOS X(登録商標)データビジュアライゼーションプラットフォーム150は、C++ API110やC API115などの共用アプリケーションプログラミングインターフェイス(API)を含むことができる。データビジュアライゼーションプラットフォーム105は、Windows(登録商標)ファイルI/Oライブラリ120や、Windows(登録商標)ユーザーインターフェイス(UI)ライブラリ125など、Windows(登録商標)プラットフォームに固有のユーティリティを含むことができる。本発明の諸実施形態に一致して、ファイルI/Oライブラリ120およびUIライブラリ125は、ダイナミックリンクライブラリ(DLL)として実装することができる。データビジュアライゼーションプラットフォーム150は、OS X(登録商標)ファイルI/Oライブラリ155や、OS X(登録商標)ユーザーインターフェイス(UI)ライブラリ160など、OS X(登録商標)プラットフォームに固有のユーティリティを含むことができる。
【0013】
共用コア100は、対話型機能が使用可能であり得るグラフ領域を覆うことができるホットスポットオブジェクトにより、それぞれのグラフの種類において対話機能を公開することができる。それぞれのレンダリングプラットフォームごとに、統合オブジェクトは、そのレンダリングプラットフォームに関するデータビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための、統合コードを含むことができる。例えば、Windows(登録商標)データビジュアライゼーションプラットフォーム105は、Win32統合オブジェクト130を含むことができ、OS X(登録商標)データビジュアライゼーションプラットフォーム150は、OS X(登録商標)統合オブジェクト165を含むことができる。それぞれのデータビジュアライゼーションプラットフォームごとの統合オブジェクトは、ソフトウェアライブラリ、ならびにマウスカーソルのフィードバックおよびヒットテストユーティリティを提供するためにマウスボタンを押すこと、マウスの移動、およびマウスボタンを離すこと(例えばクリック、ドラッグ、およびリリース)をキャプチャすることができるドラッグアンドドロップループユーティリティ、ドラッグ中に共用コア100によって供給され得るドラッグイメージを描画するためのユーティリティ、および変更リストをコミットするためのユーティリティを含むことができる。変更リストは、ドラッグアンドドロップループ中に記録されるマウスの移動および/またはキーストロークなど、ユーザー入力のリストを含むことができる。この変更リストは、データの変更(例えば値の変更、値の並べ替え、領域単位のフィルタ)、ならびに図形の変更(移動、回転、サイズ)を記述することができる。
【0014】
それぞれの統合オブジェクトは、プラットフォームに固有のユーザー入力データを、共用コア100に送信するための共通バージョンに変換することを担うことができる。この統合オブジェクトは、これらのユーティリティを提供するために、どんなグラフ固有の情報も必要としなくてもよく、共用コア100によって提供されるそれぞれのグラフの種類に関連する対話型機能の全てを、単一のオブジェクトが公開することを可能にしている。
【0015】
様々なグラフの種類は、データビジュアライゼーションプラットフォーム(DVP)によって公開することができ、それらのグラフの種類に固有の対話機能の特定の領域をそれぞれ有することができる。それらの対話型領域、例えば列の上端を公開するために、DVPはホットスポットを公開することができる。それぞれのグラフの種類は、そのグラフの種類に固有の様々なホットスポットをエンコードし、そのエンコードしたホットスポットによって対話機能を公開することができる。クライアントは、マウスを使った対話および単純なコミットステップに基づき、ホットスポットによって公開される対話型機能を自らが活用することを可能にし得る、極めてジェネリックなインターフェイス(very generic interface)をエンコードすることができる。そのジェネリックインターフェイスは次の3つの断片を含むことができ、その断片とはつまり、マウスヒットテストロジック、ドラッグアンドドロップループ、およびコミットステップである。それらの断片が整っていると、クライアントは、DVPが覆うことができるグラフ固有のホットスポットの全てに接続することができる。
【0016】
ヒットテストは、ユーザー入力デバイスをあちこち移動させること、およびそのユーザー入力カーソルが何の上にあるのかについての情報をクライアントがDVPに要求することを含むことができる。DVPは、その情報、例えばデータポイントまたは図形を使って応答することができ、あるいは何も使わずに応答してもよい。DVPは、例えばカーソルの下にホットスポットがあることをそのクライアントに知らせることもできる。次いで、クライアントはそのホットスポットへの参照を受け取り、ドラッグアンドドロップループに入ることができる。ユーザーがマウスボタンを押し、画面のあちこちにカーソルをドラッグする場合など、クライアントのユーザー入力カーソルが移動するとき、そのクライアントは、自らの位置でホットスポットを更新することができる。次いでそのホットスポットは、ユーザーのフィードバックを得るために、ドラッグされたイメージを提供することができる。例えばそのホットスポットは、ワイヤーフレームおよび/または完全な(full−fledged)図形に、塗りつぶしもしくは灰色を与えることができる。ユーザーがマウスボタンを離すと、ホットスポットオブジェクトが変更をコミットすることができ、それらの変更はDVPのためにエンコードすることができる。本発明の諸実施形態に一致して、ユーザーおよび/またはクライアントが全体的におよび/または部分的に適用することができる変更リストオブジェクトに、それらの変更を記憶することができる。それらの変更がコミットされると、DVPはそれらの全ての変更をデータのビジュアル化に内部的に反映させることができる。
【0017】
図2は、動作環境200の図である。動作環境200は、データベースサーバー210、Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240を含むことができる。データベースサーバー210、Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240は、図7に関して以下により詳細に説明するコンピューティングデバイス700をそれぞれ含むことができ、インターネットや企業のイントラネットなどのネットワーク250を介して接続されてよい。Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240は、レンダリングプラットフォームおよびデータビジュアライゼーションプラットフォームをそれぞれ含むことができる。例えば、Windows(登録商標)クライアント220は、Windows(登録商標)データビジュアライゼーションプラットフォーム105を含むことができ、Macintosh(登録商標)クライアント230は、OS X(登録商標)データビジュアライゼーションプラットフォーム150を含むことができる。Windows(登録商標)クライアント220、Macintosh(登録商標)クライアント230、およびモバイルクライアント240のデータビジュアライゼーションプラットフォームは、共用コア100をそれぞれ含むことができる。それぞれのクライアントは、ビジュアル化を表示するために使用される別々のレンダリングプラットフォームを設けることができる。
【0018】
対話機能は、マウス、タッチパッド、マルチタッチディスプレイ、タッチスクリーン、および/またはスタイラスなどの入力デバイス712を、主にクリックしかつ/またはドラッグすることによって実現することができる。キーボードベースの対話機能を提供することもできる。本発明の諸実施形態に一致して、それぞれのクライアントは、追加のユーザーインターフェイスデバイスおよび/または機能をサポートすることができる。例えば、Macintosh(登録商標)クライアント230は、Windows(登録商標)クライアント220によってサポートされない場合がある、Apple Remote(登録商標)ユーザーインターフェイスデバイスに対するサポートを提供することができる。
【0019】
図3は、対話型機能を示す図である。例えば、折れ線グラフ300は、グラフ上にプロットされる複数のデータセット305を含むことができる。折れ線グラフ300は、x軸310、y軸315、および凡例320をさらに含むことができる。折れ線グラフ300は、共用コア100に関連するグラフの種類についての情報、およびデータベースサーバー210上に記憶されるデータに従い、Windows(登録商標)クライアント220上のWindows(登録商標)データビジュアライゼーションプラットフォーム105によって生成することができる。本発明の諸実施形態に一致して、折れ線グラフ300によって示されるデータは、Windows(登録商標)クライアント220および/または別のコンピューティングデバイス上にローカルに記憶することができる。Windows(登録商標)データビジュアライゼーションプラットフォーム105は、Windows(登録商標)クライアント220のレンダリングプラットフォームにホットスポットを公開することができる。例えば、複数のデータセット305のうちの1つの名前を変更することなど、凡例320および/またはx軸310との対話機能を可能にするホットスポットを公開することができる。
【0020】
ビジュアル化の中の対話位置は、組み込み「ホットスポット」オブジェクトの集合によって公開することができる。ビジュアル化のそれぞれのレイアウトの種類は、そのレイアウトに固有のホットスポットを公開することができる。例えば縦棒グラフは、縦棒の上端を垂直にドラッグするためのホットスポットを公開することができる。円グラフは、円スライスの両側に、時計回りの方向にまたは反時計回りの方向にドラッグ可能なホットスポットを公開することができる。凡例やタイトルなどの図形の移動または回転は、汎用の図形のホットスポット(generic shape hotspot)によって公開することができる。
【0021】
ホットスポットは、ヒットテストによってクライアントに公開することができる。クライアントは、マウスカーソル325の下に何のオブジェクトがあるのか判断するために、統合オブジェクトを使用することができる。共用コア100は、ヒットした図形への参照および/または新たに作成されるホットスポットへの参照を返すことができる。共用コア100は、どの幾何曲線(geometry curve)にヒットしたのかを解析することができるそのグラフに関するアクティブなレイアウトクラスに、ホットスポットの検出を委任することができる。対話型機能に相当する領域にヒットしなかった場合、共用コア100はホットスポットの参照を返さなくてよい。ホットスポットにヒットした場合、共用コア100は、最初のヒットテストの位置を記録することができる、新たな参照カウントされる(reference−counted)ホットスポットオブジェクトを作成することができる。レンダリングプラットフォームは、どのような変更が生じるのかについての記述を得ることができ、適切なカーソルおよび/またはツールチップを表示し、かつ/またはホットスポットを無視することができる。
【0022】
ホットスポットがマウスを使ってドラッグされていることをクライアントが検出すると、そのクライアントは、標準的なドラッグアンドドロップループに入ることができる。例えば、Windows(登録商標)クライアント220は、OLE(オブジェクトのリンクと埋め込み)ドラッグアンドドロップおよび/または単純なメッセージループに入ることができる。このループの中で、例えばマウスカーソル325がドラッグされた位置を報告する方法による、それぞれのマウスの移動。クライアントは、更新された変更リストを求めて、および/またはドラッグイメージ330などのドラッグイメージとして、ホットスポットにクエリすることができる。ホットスポットに関連する変更の種類は、マウスの位置に基づいて変わり得る。例えば、円スライスを円グラフから外に向かってドラッグすることは、単純に図形を移動できるのに対し、その円スライスを別の円スライス上にドラッグすることは、データを並べ替えることができる。
【0023】
ホットスポットによって返されるドラッグイメージ330は、グラフの静的イメージを描画するために使用されるのと同じオブジェクトであり得るジオメトリ反復子(geometry iterator)の形でクライアントが受け取ることができる。したがって、クライアントがグラフを描画できた時点で、そのクライアントは、同じコードを呼び出すことによりドラッグイメージを描画できなければならない。元の形状からクローンされ、現在の変更リストを反映するように変えられる一時的な図形を作成することにより、共用コア100内でドラッグイメージ330を生成することができる。
【0024】
マウスボタンを離すイベントが起こるとき、ドラッグアンドドロップ操作が終わっている可能性があり、変更をコミットする必要があり得る。この時点でクライアントは、ホットスポットの変更リストを求め、最後にもう一度そのホットスポットにクエリすることができ、変更を内部的に適用するためにその変更リストを共用コア100にコミットすることができる。本発明の諸実施形態に一致して、クライアントは変更リストをウォーク(walks)し、そのクライアントが望むどんなふうにでも変更を選択的に適用することができる。例えば、Office(登録商標)グラフクライアントは、データの変更をExcel(登録商標)のワークシートにプッシュバックし、後で変更を共用コア100に少しずつ伝えて返すことを認めることができる。
【0025】
折れ線グラフ300内に公開される別の対話機能には、例えばズーム操作などのビジュアル調節機能が含まれ得る。Win32統合オブジェクト130は、ユーザー入力デバイスからマウスボタンを押す(例えばマウスボタンをクリックする)イベントを受け取り、追加の入力を追跡し始め、マウスボタンを離す(例えばマウスボタンをリリースする)イベントを受け取るまで、それぞれの入力を変更リストに追加することができる。例えば、ユーザーは、ある位置にカーソル325を置き、折れ線グラフ300のある領域を選択するようにマウスをドラッグすることができる。共用コア300は、プラットフォームに依存しないグラフィカル表示をユーザーに提供して、ドラッグイメージ330などの選択領域を示すことができる。マウスボタンを離すイベントを受け取ると、Win32統合オブジェクト130は、変更リストを共用コア100にコミットすることができ、それを受けて共用コア100は、折れ線グラフ300のその選択領域についての拡大されたビジュアル化を表示し得る、更新されたビジュアル化350を生成することができる。
【0026】
共用コア100によって公開されるホットスポットは、既存のデータビジュアライゼーションクライアントから集められる一組の包括的な既知の対話機能を表すことができる。クライアントが望むが、共用コア100が公開しなかったホットスポットがある可能性があり、または組み込みホットスポットが十分でないシナリオもあり得る。本発明の諸実施形態に一致して、共用コア100は、必要に応じてクライアントが拡張することを可能にするために追加のAPIを公開することができる。例えば共用コア100は、クライアントが、レイアウト固有のヒットテスト情報を取得するためのAPI、データポイントジオメトリの反復(datapoint geometry iteration)を提供するためのAPI、および/またはwhat−if変化予測を行うためのAPIを公開することができる。
【0027】
クライアントは、マウスカーソルの下にそのレイアウトのどんな興味深い部分があるのか理解したい可能性がある。例えばOfficeアプリケーションは、描画オブジェクトからコネクタ矢印を使ってグラフに注釈を付けたい場合がある。そのように注釈を付けるために、共用コア100は、「系列#1内のデータポイント#3上」や、「データポイントの伸長する端(growth edge)上」や、「値が10の値軸目盛り上」のようなサブ要素ヒットテスト情報を提供しなければならないことがある。
【0028】
データポイントは、系列図形内のパスとして表示することができる。クライアントは、個々のデータポイントを(例えばマウスでポイントしたときに)強調表示したい場合があり、そのため、系列全体でなく、単一のデータポイントに固有のジオメトリを反復処理する能力を必要とすることがある。
【0029】
クライアントは、what−ifシナリオにおいて、変更が予測的に適用された状態で完全なグラフが返されることを要求することができる。例えばデータポイントを並べ替えるとき、クライアントは、「挿入マーカー」のゴーストを示すのではなく、その新たな位置に適切に挿入されたデータポイントを示したい場合がある。そのように示すために、クライアントは変更リストを作成し、共用コア100に渡すことができ、次いでその共用コア100は、そのグラフのコピーオンライト(copy−on−write)クローンを作成し、変更リストを適用し、クライアントが描画するための新たなグラフにポイントされたジオメトリ反復子を返すことができる。
【0030】
APIアクセスまたはユーザーの対話(例えばホットスポット)によって共用コア100に加えられる変更は、取り消し可能であるべきである。そのように取り消し可能にするために、共用コア100の中にトランザクションオブジェクトが存在して、クライアントがコマンドレベルで変更の境界を定め(demark)、記録できるようにすることができる。例えば、そのトランザクションオブジェクトは、取り消し/やり直し情報を記憶するためのUndoRecordオブジェクトを返す、GetUndoRecord()メソッドを公開することができる。UndoRecordオブジェクトは、クライアントの取り消し/やり直しコマンドから呼び出されることになるUndo()メソッドおよびRedo()メソッドを有することができる。ホットスポットを介して行われるユーザーの変更では、そのホットスポットが返す変更リストオブジェクトも、その取り消し/やり直し状態を追跡するためのトランザクションオブジェクトを公開することができる。
【0031】
図4は、データビジュアライゼーション対話機能アーキテクチャを提供するための、本発明の実施形態に一致する方法400に伴う全体的な段階を記載する流れ図である。方法400は、図7に関して以下により詳細に説明するコンピューティングデバイス700を使用して実施することができる。以下に、方法400の各段階を実施する方法についてより詳細に説明する。方法400は、開始ブロック410で始まり、コンピューティングデバイス700がデータのビジュアル化を作成することができる段階420に進むことができる。例えば、コンピューティングデバイス700にはwindowsクライアント220が含まれてよく、Windows(登録商標)データビジュアライゼーションプラットフォーム105を使用して、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、株価チャートなどのビジュアル化を作成することができる。
【0032】
方法400は、段階420から、そのデータのビジュアル化に関する少なくとも1つの対話型機能をコンピューティングデバイス700が公開することができる、段階430に進むことができる。例えば、コンピューティングデバイス700は、データ修正機能、データフィルタ機能、および/またはビジュアル調節機能などの対話型機能に関連するホットスポットを公開することができる。
【0033】
方法400は、段階430から、コンピューティングデバイス700が複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供することができる、段階440に進むことができる。例えば、コンピューティングデバイス700は、グラフィカル表示および/またはデータのビジュアル化を表示するために、GDI、GDI+、Silverlight、WPF、C# winforms、および/またはQTなどのレンダリングプラットフォームを使用することができる。
【0034】
方法400は、段階440から、コンピューティングデバイス700が、ユーザー入力デバイスからそのデータのビジュアル化上の少なくとも1つの位置の選択を受け取ることができる、段階450に進むことができる。例えばユーザーは、マウス、スタイラス、キーボード、および/またはタッチスクリーンを使用してデータのビジュアル化上のポイントを選択することができる。
【0035】
方法400は、段階450から、その選択された少なくとも1つの位置がホットスポットに関連するかどうかをコンピューティングデバイス700が判定することができる、段階460に進むことができる。例えば、コンピューティングデバイス700は、その選択された少なくとも1つの位置が、データポイント、軸線など、データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および/またはデータのビジュアル化制御要素を含むかどうかを判定することができる。
【0036】
段階460において、その選択された少なくとも1つの位置がホットスポットに関連するとコンピューティングデバイス700が判定する場合、方法400は、コンピューティングデバイス700がその少なくとも1つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳することができる、段階470に進むことができる。統合オブジェクトによりその選択を共通の形式に翻訳することについては、図5に関して以下により詳細に説明する。段階460において、その選択された少なくとも1つの位置がホットスポットに関連しないとコンピューティングデバイス700が判定する場合、方法400は、コンピューティングデバイス700が別のユーザー入力選択を受け取るために待機することができる、段階450に戻ることができる。
【0037】
方法400は、段階470から、コンピューティングデバイス700がその選択された対話型機能に従ってデータのビジュアル化を更新することができる、段階480に進むことができる。段階480において、コンピューティングデバイス700がデータのビジュアル化を更新すると、方法400は段階490において終了することができる。
【0038】
図5は、選択された要素を共通の形式に翻訳するために、図4の方法で使用されるサブルーチンの流れ図である。サブルーチン470は、コンピューティングデバイス700が少なくとも1つの選択の特徴をキャプチャすることができる、段階510において存在することができる。例えば、コンピューティングデバイス700は、マウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、スクロール操作などの、選択の特徴をキャプチャすることができる。本発明の諸実施形態に一致して、そのキャプチャした少なくとも1つの特徴は、レンダリングプラットフォームに関連する形式にエンコードすることができる。
【0039】
サブルーチン470は、段階510から、コンピューティングデバイス700がその少なくとも1つの特徴に関連する視覚的なフィードバックを表示することができる、段階520に進むことができる。例えば、コンピューティングデバイス700は、カーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および/またはツールチップを表示することなどの、視覚的なフィードバックを表示することができる。
【0040】
サブルーチン470は、段階520から、そのキャプチャした選択の特徴を、レンダリングプラットフォームに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式にコンピューティングデバイス700が変換することができる、段階530に進むことができる。例えば、データビジュアライゼーションプラットフォームは、選択の特徴を変換するために、関連する統合オブジェクトを使用することができる。
【0041】
サブルーチン470は、段階530から、その変換した少なくとも1つの選択の特徴に従いコンピューティングデバイス700が変更リストを作成することができる、段階540に進むことができる。例えば、コンピューティングデバイス700は、マウスボタンを押す選択の特徴を受け取ることに応答して変更リストを作成することができる。変更リストを作成すると、コンピューティングデバイス700は、さらなる選択の特徴を、それらの特徴を受け取るときに、その変更リストに追加することができる。
【0042】
サブルーチン470は、段階540から、ユーザーの選択が完了したかどうかをコンピューティングデバイス700が判定することができる、段階550に進むことができる。例えば、コンピューティングデバイス700は、マウスボタンをリリースすることにより、ユーザーがドラッグアンドドロップループを完了したと判定することができる。
【0043】
段階550において、ユーザーの選択が完了したとコンピューティングデバイス700が判定する場合、サブルーチン470は、コンピューティングデバイス700が処理のために変更リストを送信することができる、段階560に進むことができる。例えば、コンピューティングデバイス700は、変更リストをデータビジュアライゼーションプラットフォームに送信することができる。段階550において、ユーザーの選択が完了していないとコンピューティングデバイス700が判定する場合、サブルーチン470は、コンピューティングデバイス700が別のユーザー入力選択を受け取り、キャプチャするために待機することができる、段階510に戻ることができる。段階560においてコンピューティングデバイス700が変更リストを処理すると、サブルーチン470は終了し、方法400の段階480に進むことができる。
【0044】
本発明に一致する一実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、共有レイアウトに従ってデータのビジュアル化を作成し、そのデータのビジュアル化に関する少なくとも1つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、少なくとも1つの対話型機能を選択し、その少なくとも1つの対話型機能の選択を、統合オブジェクトにより、共有レイアウトに関連する共通の形式に翻訳し、その選択した対話型機能に従ってデータのビジュアル化を修正するように動作することができる。統合オブジェクトは、複数のレンダリングプラットフォームのそれぞれについて提供することができる。共有レイアウトは、レンダリングプラットフォームに依存しなくてよく、例えば、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および/または株価チャートを含むことができる。対話型機能には、例えばデータ修正機能、データフィルタ機能、および/またはビジュアル調節機能が含まれ得る。少なくとも1つの対話型機能を選択することは、マウス、スタイラス、キーボード、および/またはタッチスクリーンのうちの少なくとも1つから選択入力を受け取ることを含むことができる。
【0045】
処理ユニットは、ユーザー入力デバイスのポインタの位置を受け取り、その受け取った位置に関する情報を取得するようにさらに動作することができ、その情報は、データのビジュアル化に対するその位置に関連するあり得る修正についての記述、およびその位置における少なくとも1つのデータポイントについての記述のうちの少なくとも1つを含む。その受け取った位置に関する情報は、ツールチップの中に表示される。
【0046】
この処理ユニットは、円グラフにおいてくさび形を操作する対話型機能など、レイアウトに固有の少なくとも1つのホットスポットオブジェクトを公開するようにさらに動作することができる。ホットスポットオブジェクトは、グラフの軸線など、データのビジュアル化の少なくとも1つの構造上の要素に関連することができる。
【0047】
本発明に一致する別の実施形態は、データのビジュアル化に拡張可能な対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、一組のデータに従ってデータのビジュアル化を作成し、少なくとも1つのホットスポットを公開し、その少なくとも1つのホットスポットの選択を受け取り、その少なくとも1つのホットスポットの選択に関連する変更リストを作成し、その変更リストに複数のユーザー入力コマンドを記憶し、その変更リストを処理し、処理した変更リストに従ってデータのビジュアル化を更新するように動作することができる。例えば、モバイルクライアント240がグラフファイルを開くことができる。データビジュアライゼーションプラットフォーム(DVP)が、そのグラフファイル内のデータに従ってデータのビジュアル化を作成し、対話型機能に関連する、そのグラフの少なくとも1つのホットスポット領域を公開することができる。ユーザーは、ユーザー入力デバイスを使い、公開されたホットスポットを選択することができ、モバイルクライアント240は、ユーザー入力デバイスのカーソルの外観を変更することおよび/またはツールチップを表示することなど、ユーザーに提供するためのフィードバックをDVPから受け取ることができる。そのフィードバックは、列の幅を広げまたは狭めるためにその列の端をドラッグできることを知らせるために、その列の端を選択するときにカーソルを手の形に変えることなど、ホットスポットに関連する少なくとも1つの対話型機能に関連することができる。
【0048】
ユーザーがデータのビジュアル化を操作するとき、それぞれのユーザー入力操作をコマンドとして変更リストに追加することができる。マウスボタンを離すイベントによって指示できるようになど、ユーザーがデータのビジュアル化の操作を終えると、モバイルクライアント240は変更リストを処理することができる。例えば、モバイルクライアント240は変更リストをDVPにコミットすることができ、次いでそのDVPは、その変更リストに追加されたそれぞれのコマンドを反復処理し、それに応じてデータのビジュアル化を更新することができる。本発明の諸実施形態に一致して、データのビジュアル化に適用するために変更リスト内のコマンドのうちの少なくとも1つを選択することによってなど、モバイルデバイス240は、ユーザーが変更リスト内のコマンドを見て、それらのコマンドを全体的におよび/または部分的に適用することを可能にすることができる。
【0049】
本発明に一致するさらに別の実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、データビジュアライゼーションプラットフォームに関連するレイアウトに従ってデータのビジュアル化を作成し、そのデータのビジュアル化に関する少なくとも1つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、そのレンダリングプラットフォームには例えばGDI、GDI+、Silverlight、WPF、C# winformsが含まれ、ユーザー入力デバイスからそのデータのビジュアル化上の少なくとも1つの位置の選択を受け取り、その選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定するように動作することができる。そのユーザー入力デバイスには、マウス、スタイラス、キーボード、および/またはタッチスクリーンが含まれ得る。その選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定することは、その選択された少なくとも1つの位置が、データポイント、データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および/またはデータのビジュアル化制御要素を含むかどうかを判定することを含むことができる。
【0050】
その選択された少なくとも1つの位置がホットスポットに関連すると判定することに応じて、処理ユニットは、その少なくとも1つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳するようにさらに動作することができる。選択を翻訳するために、処理ユニットはその少なくとも1つの選択の特徴をキャプチャし、その少なくとも1つの特徴に関連する少なくとも1つの視覚的なフィードバックを表示し、その少なくとも1つの選択の特徴を、複数のレンダリングプラットフォームのうちの少なくとも1つに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式に変換し、その変換した少なくとも1つの選択の特徴に従って変更リストを作成し、その変更リストをデータビジュアライゼーションプラットフォームに送信するようにさらに動作することができる。その処理ユニットは、送信した変更リスト、および少なくとも1つの選択された位置におけるホットスポットの少なくとも1つのプロパティに従ってデータのビジュアル化を更新するようにさらに動作することができる。本発明の諸実施形態に一致して、その少なくとも1つの視覚的なフィードバックには、例えばカーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および/またはツールチップを表示することが含まれ得る。その少なくとも1つの選択の特徴には、例えばマウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、および/またはスクロール操作が含まれ得る。そのキャプチャされる少なくとも1つの特徴は、複数のレンダリングプラットフォームのうちの少なくとも1つに関連する形式にエンコードすることができる。
【0051】
図6Aは、折れ線グラフ600を示し、ユーザー入力カーソル604をホットスポット上に置くことに対するユーザーフィードバックとして表示されるツールチップ602を含む。
【0052】
図6Bは、折れ線グラフ610を示す。
【0053】
図6Cは、バー(または縦棒)グラフ620を示す。
【0054】
図6Dは、散布図630を示す。
【0055】
図6Eは、ドーナツグラフ640を示す。
【0056】
図6Fは、面グラフ650を示す。
【0057】
図6Gは、レーダーチャート660を示す。
【0058】
図6Hは、等高線グラフ670を示す。
【0059】
図6Iは、バブルチャート680を示す。
【0060】
図6Jは、株価チャート690を示す。
【0061】
図7は、コンピューティングデバイス700を含むシステムのブロック図である。本発明の実施形態に一致して、上述のメモリ記憶装置および処理ユニットは、図7のコンピューティングデバイス700などのコンピューティングデバイスの中に実装することができる。このメモリ記憶装置および処理ユニットを実装するために、ハードウェア、ソフトウェア、またはファームウェアの任意の適切な組合せを使用することができる。例えばこのメモリ記憶装置および処理ユニットは、コンピューティングデバイス700、またはコンピューティングデバイス700と組み合わせて、他のコンピューティングデバイス718のどれかで実装することができる。上述のシステム、デバイス、およびプロセッサは例であり、本発明の諸実施形態に一致して、他のシステム、デバイス、およびプロセッサが、上述のメモリ記憶装置および処理ユニットを構成してもよい。さらに、上記に記載したように、コンピューティングデバイス700は、システム100用の動作環境を含むことができる。システム100は他の環境内で動作してもよく、コンピューティングデバイス700に限定されない。
【0062】
図7を参照して、本発明の実施形態に一致するシステムは、コンピューティングデバイス700などのコンピューティングデバイスを含むことができる。基本構成において、コンピューティングデバイス700は、少なくとも1つの処理ユニット702およびシステムメモリ704を含むことができる。コンピューティングデバイスの構成および種類に応じて、システムメモリ704は、これだけに限定されないが、揮発性メモリ(例えばRAM(ランダムアクセスメモリ))、不揮発性メモリ(例えばROM(読み取り専用メモリ))、フラッシュメモリ、または任意の組合せを含むことができる。システムメモリ704は、オペレーティングシステム705、1つまたは複数のプログラミングモジュール706を含むことができ、データビジュアライゼーションプラットフォーム707を含むことができる。オペレーティングシステム705は、例えばコンピューティングデバイス700の動作を制御するのに適していてよい。一実施形態では、プログラミングモジュール706は、データビジュアライゼーション表示プログラム720を含むことができる。さらに、本発明の諸実施形態は、グラフィックスライブラリ、他のオペレーティングシステム、または他の任意のアプリケーションプログラムと組み合わせて実施することができ、どんな特定のアプリケーションまたはシステムにも限定されない。図7に、この基本構成を、破線708の中のそれらのコンポーネントによって示す。
【0063】
コンピューティングデバイス700は、追加の特徴または機能を有することができる。例えばコンピューティングデバイス700は、例えば磁気ディスク、光ディスク、テープなど、追加の(取り外し可能なおよび/または固定の)データ記憶装置を含むこともできる。そのような追加の記憶装置を、図7に取り外し可能な記憶装置709および固定記憶装置710によって示す。コンピューター記憶媒体には、コンピューター可読命令、データ構造、プログラムモジュールや他のデータなど、情報を記憶するための任意の方法または技術によって実装される、揮発性/不揮発性の取り外し可能な媒体および固定の媒体が含まれ得る。システムメモリ704、取り外し可能な記憶装置709、および固定記憶装置710は、全てコンピューター記憶媒体の例(すなわちメモリ記憶装置)である。これだけに限定されないが、コンピューター記憶媒体には、RAM、ROM、EEPROM(電気的消去可能読み取り専用メモリ)、フラッシュメモリや他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)や他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、または情報を記憶するために使用でき、コンピューティングデバイス700によってアクセス可能な他の任意の媒体が含まれ得る。そのような任意のコンピューター記憶媒体がデバイス700の一部であり得る。コンピューティングデバイス700は、キーボード、マウス、ペン、サウンド入力デバイス、タッチ入力デバイスなど、入力デバイス(群)712を有することもできる。ディスプレイ、スピーカー、プリンターなど、出力デバイス(群)714も含まれてよい。上述のデバイスは例であり、他のデバイスを使用することもできる。
【0064】
コンピューティングデバイス700は、分散コンピューティング環境内のネットワーク、例えばイントラネットやインターネットなどを介し、デバイス700が他のコンピューティングデバイス718と通信することを可能にし得る通信接続716を含むこともできる。通信接続716は、通信媒体の一例である。通信媒体は、キャリア波や他のトランスポート機構などの変調済みデータ信号の中のコンピューター可読命令、データ構造、プログラムモジュール、または他のデータによって典型的には具体化することができ、任意の情報配信媒体を含む。用語「変調済みデータ信号」は、信号の中の情報をエンコードするような方法で、1つまたは複数の特性が設定されもしくは変更された信号を表すことができる。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、およびアコースティック、無線周波数(RF)、赤外線や他の無線媒体などの無線媒体が含まれ得る。本明細書で使用するとき、用語コンピューター可読媒体は、記憶媒体および通信媒体の両方を含むことができる。
【0065】
上記に述べたように、システムメモリ704には、オペレーティングシステム705を含む、いくつかのプログラムモジュールおよびデータファイルを記憶することができる。処理ユニット702上で実行される間、プログラミングモジュール706(例えばデータビジュアライゼーション表示プログラム720)は、例えば上記に記載した方法400の段階のうちの少なくとも1つを含むプロセスを実行することができる。上述のプロセスは例であり、処理ユニット702は他のプロセスを実行することもできる。本発明の諸実施形態に従って使用することができる他のプログラミングモジュールには、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピューター支援アプリケーションプログラム、等が含まれ得る。
【0066】
概して、本発明の諸実施形態に一致して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行できる、または特定の抽象データ型を実装できる他の種類の構造を含むことができる。さらに、本発明の諸実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの一般電化製品やプログラム可能一般電化製品、ミニコンピューター、メインフレームコンピューター等を含む、他のコンピューターシステム構成によって実施することができる。本発明の諸実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールはローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に位置することができる。
【0067】
さらに、本発明の諸実施形態は、離散的な電子的要素を含む電子回路内、論理ゲートを含むパッケージ化されたもしくは統合された電子チップ内、マイクロプロセッサを利用する回路内に、または電子的要素もしくはマイクロプロセッサを含む単一チップ上に実施することができる。本発明の諸実施形態は、これだけに限定されないが機械技術、光学技術、流体技術、および量子技術を含む、例えばAND、OR、NOTなどの論理演算を実行することができる他の技術を使用して実施してもよい。さらに本発明の諸実施形態は、汎用コンピューター内で、または他の任意の回路もしくはシステム内で実施することもできる。
【0068】
本発明の諸実施形態は、例えばコンピュータープロセス(メソッド)、コンピューティングシステム、またはコンピュータープログラム製品やコンピューター可読媒体などの製造品として実装することができる。そのコンピュータープログラム製品は、コンピューターシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、コンピューター記憶媒体とすることができる。そのコンピュータープログラム製品は、コンピューティングシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、キャリア上の伝搬される信号とすることもできる。したがって本発明は、ハードウェアおよび/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)によって実施することができる。言い換えれば本発明の諸実施形態は、命令実行システムが使用するためにもしくは命令実行システムに関連して、コンピューター使用可能プログラムコードまたはコンピューター可読プログラムコードが媒体内に具体化される、コンピューター使用可能記憶媒体またはコンピューター可読記憶媒体上の、コンピュータープログラム製品の形をとることができる。コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、機器、もしくはデバイスが使用するためにまたはそれらに関連して、プログラムを含み、記憶し、伝達し、伝搬し、または転送することができる任意の媒体とすることができる。
【0069】
コンピューター使用可能媒体またはコンピューター可読媒体は、これだけに限定されないが、例えば電気的、磁気的、光学的、電磁的、赤外線、もしくは半導体のシステム、機器、デバイス、または伝達媒体とすることができる。より詳細なコンピューター可読媒体の例(限定的なリスト)、コンピューター可読媒体には、1本または複数本の接続線を有する電気接続、ポータブルコンピューターディスケット、RAM(ランダムアクセスメモリ)、ROM(読み取り専用メモリ)、EPROMまたはフラッシュメモリ(消去可能プログラム可能読み取り専用メモリ)、光ファイバ、およびポータブルCD−ROM(コンパクトディスク読み取り専用メモリ)が含まれてよい。例えば紙または他の媒体を光学的にスキャンすることにより、プログラムを電子的にキャプチャし、次いで必要な場合はコンパイルし、解釈し、または適切な方法で違ったふうに処理し、次いでコンピューターメモリに記憶することができるので、コンピューター使用可能媒体またはコンピューター可読媒体は、その上にプログラムが印刷される紙または他の適切な媒体とすることさえ可能であることに留意されたい。
【0070】
本発明の諸実施形態を、例えば本発明の諸実施形態による方法、システム、およびコンピュータープログラム製品のブロック図および/または動作上の説明図を参照して上記に記載した。ブロック内に示す機能/行為は、任意の流れ図に示す順序から外れて行われてもよい。例えば、関与する機能/行為にもよるが、連続して示す2つのブロックを実際には実質的に同時に実行することができ、または時にはブロックを逆の順序で実行することもできる。
【0071】
本発明の特定の実施形態を記載してきたが、他の実施形態が存在してもよい。さらに、メモリおよび他の記憶媒体に記憶されるデータに関連するものとして本発明の諸実施形態を記載してきたが、データは、ハードディスク、フロッピー(登録商標)ディスク、もしくはCD−ROMのような2次記憶装置、インターネットからのキャリア波、または他の形態のRAMもしくはROMなど、他の種類のコンピューター可読媒体上に記憶し、またはそこから読み取ることもできる。さらに、本発明から逸脱することなく、開示した方法の段階は、段階を並べ替えることおよび/または段階を挿入しもしくは削除することを含む任意の方法で修正することができる。
【0072】
本明細書に含まれるコードの中の著作権を含む全ての権利は出願人に帰属し、出願人の財産である。出願人は本明細書に含まれるコードの中の全ての権利を保有しかつ確保し、付与した特許を再現することに関連してのみ、この題材(material)を再現する許可を与え、それ以外の目的では許可を与えない。
【0073】
本明細書は複数の例を含むが、本発明の範囲は特許請求の範囲によって示す。さらに、本明細書を構造上の特徴および/または方法論的な行為に固有の言語で記載してきたが、特許請求の範囲は上記に記載した特徴または行為に限定されない。むしろ、上記に記載した特定の特徴および行為は、本発明の諸実施形態についての例として開示した。
【特許請求の範囲】
【請求項1】
データビジュアライゼーション対話機能を提供する方法であって、
共有レイアウトに従ってデータのビジュアル化を作成するステップ(420)と、
前記データのビジュアル化に関する少なくとも1つの対話型機能を公開するステップ(430)と、
複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供するステップ(440)と、
前記少なくとも1つの対話型機能を選択するステップ(450)と、
前記少なくとも1つの対話型機能の前記選択を、前記統合オブジェクトにより、前記共有レイアウトに関連する共通の形式に翻訳するステップ(470)と、
前記選択した対話型機能に従って前記データのビジュアル化を修正するステップ(480)とを備えることを特徴とする方法。
【請求項2】
前記複数のレンダリングプラットフォームのそれぞれについて、少なくとも1つの統合オブジェクトを提供するステップ(440)をさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
ユーザー入力デバイスのポインタの位置を受け取るステップ(450)と、
前記受け取った位置に関する情報を取得するステップであって、前記情報は、前記データのビジュアル化に対する前記位置に関連するあり得る修正についての説明、および前記位置における少なくとも1つのデータポイントについての説明のうちの少なくとも1つを含む、取得するステップ(510)とをさらに備えることを特徴とする請求項1に記載の方法。
【請求項4】
前記受け取った位置に関する前記情報は、ツールチップの中に表示されることを特徴とする請求項3に記載の方法(450)。
【請求項5】
前記レンダリングプラットフォームは、前記共有レイアウトに依存しないことを特徴とする請求項1に記載の方法。
【請求項6】
前記少なくとも1つの対話型機能には、データ修正機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項7】
前記少なくとも1つの対話型機能には、データフィルタ機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項8】
前記少なくとも1つの対話型機能には、ビジュアル調節機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項9】
前記レイアウトには、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも1つが含まれることを特徴とする請求項1に記載の方法(420)。
【請求項10】
前記レイアウトに固有の少なくとも1つのホットスポットオブジェクトを公開するステップ(430)をさらに含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記少なくとも1つのホットスポットオブジェクトは、前記データのビジュアル化の少なくとも1つの構造上の要素に関連することを特徴とする請求項10に記載の方法(430)。
【請求項12】
前記少なくとも1つの対話型機能の前記選択は、マウス、スタイラス、キーボード、およびタッチスクリーンのうちの少なくとも1つから選択入力を受け取るステップ(450)を含むことを特徴とする請求項10に記載の方法。
【請求項13】
一組の命令を記憶するコンピューター可読媒体であって、実行されるとき、データのビジュアル化に拡張可能な対話機能を提供する方法であって、前記命令が
一組のデータに従ってデータのビジュアル化を作成するステップ(420)と、
少なくとも1つのホットスポットを公開するステップ(430)と、
前記少なくとも1つのホットスポットの選択を受け取るステップ(450、460)と、
前記少なくとも1つのホットスポットの前記選択に関連する変更リストを作成するステップ(540)と、
前記変更リストに複数のユーザー入力コマンドを記憶するステップ(540)と、
前記変更リストを処理するステップ(560)と、
前記処理した変更リストに従って前記データのビジュアル化を更新するステップ(480)とを含む、一組の命令によって実行されることを特徴とするコンピューター可読媒体。
【請求項14】
前記変更リストを処理するステップは、
前記変更リストをデータビジュアライゼーションプラットフォームにコミットするステップ、および
前記変更リストに記憶された前記複数のコマンドを前記データのビジュアル化に適用するステップ(560)
を含むことを特徴とする請求項13に記載のコンピューター可読媒体。
【請求項15】
データビジュアライゼーション対話機能を提供するシステムであって、
メモリ記憶装置(704)と、
前記メモリ記憶装置に結合される処理ユニット(702)と
を備え、前記処理ユニットは、
データビジュアライゼーションプラットフォーム(707)に関連するレイアウトに従ってデータのビジュアル化を作成し、前記レイアウトには、円グラフ(610)、バーグラフ(620)、散布図(630)、縦棒グラフ(620)、折れ線グラフ(610)、面グラフ(650)、ドーナツグラフ(640)、レーダーチャート(660)、等高線グラフ(670)、バブルチャート(680)、および株価チャート(690)のうちの少なくとも1つが含まれ、
前記データのビジュアル化に関する少なくとも1つの対話型機能を公開し、前記対話型機能には、データ修正機能、データフィルタ機能、およびビジュアル調節機能のうちの少なくとも1つが含まれ(430)、
複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、前記レンダリングプラットフォームには、GDI、GDI+、Silverlight、WPF、およびC# winformsのうちの少なくとも1つが含まれ(440)、
ユーザー入力デバイス(712)から前記データのビジュアル化上の少なくとも1つの位置の選択を受け取り、前記ユーザー入力デバイスには、マウス、スタイラス、キーボード、およびタッチスクリーンのうちの少なくとも1つが含まれ(450)、
前記選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定し、前記選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定することは、前記選択された少なくとも1つの位置が、データポイント、前記データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、およびデータのビジュアル化制御要素のうちの少なくとも1つを含むかどうかを判定することを含み(460)、
前記選択された少なくとも1つの位置がホットスポットに関連すると判定することに応じて、前記少なくとも1つの対話型機能の前記選択を、前記統合オブジェクトにより、前記データビジュアライゼーションプラットフォーム(707)に関連する共通の形式に翻訳し、前記少なくとも1つの対話型機能の前記選択を前記統合オブジェクトによって翻訳するように動作することは、
少なくとも1つの前記選択の特徴をキャプチャし、前記キャプチャした少なくとも1つの特徴は、前記複数のレンダリングプラットフォームのうちの少なくとも1つに関連する形式にエンコードされ、前記少なくとも1つの前記選択の特徴は、マウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、およびスクロール操作のうちの少なくとも1つを含み(510)、
前記少なくとも1つの特徴に関連する少なくとも1つの視覚的なフィードバックを表示し、前記少なくとも1つの視覚的なフィードバックには、カーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、およびツールチップを表示することのうちの少なくとも1つが含まれ(520)、
前記少なくとも1つの前記選択の特徴を、前記複数のレンダリングプラットフォームのうちの前記少なくとも1つに関連する前記エンコード形式から、前記データビジュアライゼーションプラットフォームに関連する共通のエンコード形式に変換し(530)、
前記変換した少なくとも1つの前記選択の特徴に従って変更リストを作成し(540)、
前記変更リストを前記データビジュアライゼーションプラットフォームに送信する(560)
ように動作することを含み(470)、
前記送信した変更リスト、および前記少なくとも1つの選択された位置における前記ホットスポットの少なくとも1つのプロパティに従って前記データのビジュアル化を更新する(480)
ように動作することを特徴とするシステム。
【請求項1】
データビジュアライゼーション対話機能を提供する方法であって、
共有レイアウトに従ってデータのビジュアル化を作成するステップ(420)と、
前記データのビジュアル化に関する少なくとも1つの対話型機能を公開するステップ(430)と、
複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供するステップ(440)と、
前記少なくとも1つの対話型機能を選択するステップ(450)と、
前記少なくとも1つの対話型機能の前記選択を、前記統合オブジェクトにより、前記共有レイアウトに関連する共通の形式に翻訳するステップ(470)と、
前記選択した対話型機能に従って前記データのビジュアル化を修正するステップ(480)とを備えることを特徴とする方法。
【請求項2】
前記複数のレンダリングプラットフォームのそれぞれについて、少なくとも1つの統合オブジェクトを提供するステップ(440)をさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
ユーザー入力デバイスのポインタの位置を受け取るステップ(450)と、
前記受け取った位置に関する情報を取得するステップであって、前記情報は、前記データのビジュアル化に対する前記位置に関連するあり得る修正についての説明、および前記位置における少なくとも1つのデータポイントについての説明のうちの少なくとも1つを含む、取得するステップ(510)とをさらに備えることを特徴とする請求項1に記載の方法。
【請求項4】
前記受け取った位置に関する前記情報は、ツールチップの中に表示されることを特徴とする請求項3に記載の方法(450)。
【請求項5】
前記レンダリングプラットフォームは、前記共有レイアウトに依存しないことを特徴とする請求項1に記載の方法。
【請求項6】
前記少なくとも1つの対話型機能には、データ修正機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項7】
前記少なくとも1つの対話型機能には、データフィルタ機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項8】
前記少なくとも1つの対話型機能には、ビジュアル調節機能が含まれることを特徴とする請求項1に記載の方法(430)。
【請求項9】
前記レイアウトには、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも1つが含まれることを特徴とする請求項1に記載の方法(420)。
【請求項10】
前記レイアウトに固有の少なくとも1つのホットスポットオブジェクトを公開するステップ(430)をさらに含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記少なくとも1つのホットスポットオブジェクトは、前記データのビジュアル化の少なくとも1つの構造上の要素に関連することを特徴とする請求項10に記載の方法(430)。
【請求項12】
前記少なくとも1つの対話型機能の前記選択は、マウス、スタイラス、キーボード、およびタッチスクリーンのうちの少なくとも1つから選択入力を受け取るステップ(450)を含むことを特徴とする請求項10に記載の方法。
【請求項13】
一組の命令を記憶するコンピューター可読媒体であって、実行されるとき、データのビジュアル化に拡張可能な対話機能を提供する方法であって、前記命令が
一組のデータに従ってデータのビジュアル化を作成するステップ(420)と、
少なくとも1つのホットスポットを公開するステップ(430)と、
前記少なくとも1つのホットスポットの選択を受け取るステップ(450、460)と、
前記少なくとも1つのホットスポットの前記選択に関連する変更リストを作成するステップ(540)と、
前記変更リストに複数のユーザー入力コマンドを記憶するステップ(540)と、
前記変更リストを処理するステップ(560)と、
前記処理した変更リストに従って前記データのビジュアル化を更新するステップ(480)とを含む、一組の命令によって実行されることを特徴とするコンピューター可読媒体。
【請求項14】
前記変更リストを処理するステップは、
前記変更リストをデータビジュアライゼーションプラットフォームにコミットするステップ、および
前記変更リストに記憶された前記複数のコマンドを前記データのビジュアル化に適用するステップ(560)
を含むことを特徴とする請求項13に記載のコンピューター可読媒体。
【請求項15】
データビジュアライゼーション対話機能を提供するシステムであって、
メモリ記憶装置(704)と、
前記メモリ記憶装置に結合される処理ユニット(702)と
を備え、前記処理ユニットは、
データビジュアライゼーションプラットフォーム(707)に関連するレイアウトに従ってデータのビジュアル化を作成し、前記レイアウトには、円グラフ(610)、バーグラフ(620)、散布図(630)、縦棒グラフ(620)、折れ線グラフ(610)、面グラフ(650)、ドーナツグラフ(640)、レーダーチャート(660)、等高線グラフ(670)、バブルチャート(680)、および株価チャート(690)のうちの少なくとも1つが含まれ、
前記データのビジュアル化に関する少なくとも1つの対話型機能を公開し、前記対話型機能には、データ修正機能、データフィルタ機能、およびビジュアル調節機能のうちの少なくとも1つが含まれ(430)、
複数のレンダリングプラットフォームのうちの少なくとも1つに関連する統合オブジェクトを提供し、前記レンダリングプラットフォームには、GDI、GDI+、Silverlight、WPF、およびC# winformsのうちの少なくとも1つが含まれ(440)、
ユーザー入力デバイス(712)から前記データのビジュアル化上の少なくとも1つの位置の選択を受け取り、前記ユーザー入力デバイスには、マウス、スタイラス、キーボード、およびタッチスクリーンのうちの少なくとも1つが含まれ(450)、
前記選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定し、前記選択された少なくとも1つの位置がホットスポットに関連するかどうかを判定することは、前記選択された少なくとも1つの位置が、データポイント、前記データのビジュアル化の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、およびデータのビジュアル化制御要素のうちの少なくとも1つを含むかどうかを判定することを含み(460)、
前記選択された少なくとも1つの位置がホットスポットに関連すると判定することに応じて、前記少なくとも1つの対話型機能の前記選択を、前記統合オブジェクトにより、前記データビジュアライゼーションプラットフォーム(707)に関連する共通の形式に翻訳し、前記少なくとも1つの対話型機能の前記選択を前記統合オブジェクトによって翻訳するように動作することは、
少なくとも1つの前記選択の特徴をキャプチャし、前記キャプチャした少なくとも1つの特徴は、前記複数のレンダリングプラットフォームのうちの少なくとも1つに関連する形式にエンコードされ、前記少なくとも1つの前記選択の特徴は、マウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、およびスクロール操作のうちの少なくとも1つを含み(510)、
前記少なくとも1つの特徴に関連する少なくとも1つの視覚的なフィードバックを表示し、前記少なくとも1つの視覚的なフィードバックには、カーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、およびツールチップを表示することのうちの少なくとも1つが含まれ(520)、
前記少なくとも1つの前記選択の特徴を、前記複数のレンダリングプラットフォームのうちの前記少なくとも1つに関連する前記エンコード形式から、前記データビジュアライゼーションプラットフォームに関連する共通のエンコード形式に変換し(530)、
前記変換した少なくとも1つの前記選択の特徴に従って変更リストを作成し(540)、
前記変更リストを前記データビジュアライゼーションプラットフォームに送信する(560)
ように動作することを含み(470)、
前記送信した変更リスト、および前記少なくとも1つの選択された位置における前記ホットスポットの少なくとも1つのプロパティに従って前記データのビジュアル化を更新する(480)
ように動作することを特徴とするシステム。
【図1A】
【図1B】
【図2】
【図4】
【図5】
【図6G】
【図7】
【図3A】
【図3B】
【図6A】
【図6B】
【図6C】
【図6D】
【図6E】
【図6F】
【図6H】
【図6I】
【図6J】
【図1B】
【図2】
【図4】
【図5】
【図6G】
【図7】
【図3A】
【図3B】
【図6A】
【図6B】
【図6C】
【図6D】
【図6E】
【図6F】
【図6H】
【図6I】
【図6J】
【公表番号】特表2012−513063(P2012−513063A)
【公表日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2011−542173(P2011−542173)
【出願日】平成21年11月13日(2009.11.13)
【国際出願番号】PCT/US2009/064325
【国際公開番号】WO2010/080207
【国際公開日】平成22年7月15日(2010.7.15)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公表日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願日】平成21年11月13日(2009.11.13)
【国際出願番号】PCT/US2009/064325
【国際公開番号】WO2010/080207
【国際公開日】平成22年7月15日(2010.7.15)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]