(57)【特許請求の範囲】
【請求項１】
データビジュアライゼーション対話機能を提供する方法であって、
異なるコンピュータオペレーティングシステムのタイプの間で共有可能なビジュアライゼーションサービスのコアを提供するステップと、
対話型ビジュアライゼーションを提供するために、複数の機能を前記ビジュアライゼーションサービスのコアに提供するステップと、
データビジュアライゼーションプラットフォームを使用して、データのレイアウトについてのデータのビジュアル表現を作成するステップと、
前記ビジュアライゼーションサービスのコアに提供される前記複数の機能を使用して、前記レイアウトの前記データのビジュアル化に関する少なくとも１つの対話型機能を公開するステップと、
複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトを提供するステップであって、前記統合オブジェクトが、前記複数のレンダリングプラットフォームのうちの少なくとも１つについて、前記データビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための統合コードを有するものと、
前記データビジュアライゼーションプラットフォームを使用して作成された前記レイアウトの前記データのビジュアル化に関する前記公開された少なくとも１つの対話型機能を選択するステップと、
前記選択された少なくとも１つの対話型機能を、前記データビジュアライゼーションプラットフォームの前記レンダリングプラットフォームに関連する前記統合オブジェクトにより、対話型ビジュアライゼーションを提供する前記複数のビジュアライゼーションサービスのコアの機能に共通の形式に翻訳するステップと、
前記対話型機能の前記翻訳に基づいて、前記ビジュアライゼーションサービスのコアからの機能を使用して、前記レンダリングプラットフォームに依存しない前記選択した対話型機能に従って前記データのビジュアル表現を修正するステップと
を備えることを特徴とする方法。
【請求項２】
前記複数のレンダリングプラットフォームのそれぞれについて、少なくとも１つの統合オブジェクトを提供するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
ユーザー入力デバイスのポインタの位置を受け取るステップと、
前記受け取った位置に関する情報を取得するステップであって、前記情報は、前記データのビジュアル化に対する前記位置に関連するあり得る修正についての記述、および前記位置における少なくとも１つのデータポイントについての記述のうちの少なくとも１つを含む、ステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記受け取った位置に関する前記情報は、ツールチップの中に表示されることを特徴とする請求項３に記載の方法。
【請求項５】
前記レンダリングプラットフォームは、前記レイアウトに依存しないことを特徴とする請求項１に記載の方法。
【請求項６】
前記少なくとも１つの対話型機能には、データ修正機能が含まれることを特徴とする請求項１に記載の方法。
【請求項７】
前記少なくとも１つの対話型機能には、データフィルタ機能が含まれることを特徴とする請求項１に記載の方法。
【請求項８】
前記少なくとも１つの対話型機能には、ビジュアル調節機能が含まれることを特徴とする請求項１に記載の方法。
【請求項９】
前記レイアウトには、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも１つが含まれることを特徴とする請求項１に記載の方法。
【請求項１０】
前記レイアウトに固有の少なくとも１つのホットスポットオブジェクトを公開するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのホットスポットオブジェクトは、前記データのビジュアル化の少なくとも１つの構造上の要素に関連することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つの対話型機能の前記選択は、マウス、スタイラス、キーボード、およびタッチスクリーンのうちの少なくとも１つから選択入力を受け取るステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
コンピューターによって実行されるとき、データのビジュアル化に拡張可能な対話機能を提供する方法を遂行する一組の命令を記憶するコンピューター可読記憶媒体であって、前記方法が
異なるコンピュータオペレーティングシステムのタイプの間で共有可能なビジュアライゼーションサービスのコアを提供するステップと、
対話型ビジュアライゼーションを提供するために、複数の機能を前記ビジュアライゼーションサービスのコアに提供するステップと、
データビジュアライゼーションプラットフォームを使用して、データのレイアウトについてのデータのビジュアル表現を作成するステップと、
前記ビジュアライゼーションサービスのコアに提供される前記複数の機能を使用して、前記レイアウトの前記データのビジュアル化に関する少なくとも１つの対話型機能を公開するステップと、
複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトを提供するステップであって、前記統合オブジェクトが、前記複数のレンダリングプラットフォームのうちの少なくとも１つについて、前記データビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための統合コードを有するステップと、
前記データビジュアライゼーションプラットフォームを使用して作成された前記レイアウトの前記データのビジュアル化に関する前記公開された少なくとも１つの対話型機能を選択するステップと、
前記選択された少なくとも１つの対話型機能を、前記データビジュアライゼーションプラットフォームの前記レンダリングプラットフォームに関連する前記統合オブジェクトにより、対話型ビジュアライゼーションを提供する前記複数のビジュアライゼーションサービスのコアの機能に共通の形式に翻訳するステップと、
前記対話型機能の前記翻訳に基づいて、前記ビジュアライゼーションサービスのコアからの機能を使用して、前記レンダリングプラットフォームに依存しない前記選択した対話型機能に従って前記データのビジュアル表現を修正するステップと
を含む、ことを特徴とするコンピューター可読記憶媒体。
【請求項１４】
前記データのビジュアル化は、チャートを含むことを特徴とする請求項１３に記載のコンピューター可読記憶媒体。
【請求項１５】
前記方法が、前記レイアウトに固有のホットスポットを公開するステップであって、前記ホットスポットは、少なくとも一つの対話型機能に関連する前記データのビジュアル化における位置を含む、ステップをさらに含むことを特徴とする請求項１３に記載のコンピューター可読記憶媒体。
【請求項１６】
前記方法が、前記ホットスポットの選択を受け取ったことに応じて、ユーザーにフィードバックを提供するステップであって、前記フィードバックは、ユーザー入力カーソルの外観を変更すること、およびツールチップを表示すること、のうちの少なくとも１つを含む、ステップをさらに含むことを特徴とする請求項１５に記載のコンピューター可読記憶媒体。
【請求項１７】
前記提供されたフィードバックは、前記選択されたホットスポットに関連する少なくとも１つの対話型機能に関連することを特徴とする請求項１６に記載のコンピューター可読記憶媒体。
【請求項１８】
データビジュアライゼーション対話機能を提供するシステムであって、
メモリ記憶装置と、
前記メモリ記憶装置に結合される処理ユニットと、
を備え、前記処理ユニットが、
異なるコンピュータオペレーティングシステムのタイプの間で共有可能なビジュアライゼーションサービスのコアを提供し、
対話型ビジュアライゼーションを提供するために、複数の機能を前記ビジュアライゼーションサービスのコアに提供し、
データビジュアライゼーションプラットフォームを使用して、データのレイアウトについてのデータのビジュアル表現を作成し、
前記ビジュアライゼーションサービスのコアに提供される前記複数の機能を使用して、前記レイアウトの前記データのビジュアル化に関する少なくとも１つの対話型機能を公開し、
複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトであって、前記複数のレンダリングプラットフォームのうちの少なくとも１つについて、前記データビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための統合コードを有するものを提供し、
前記データビジュアライゼーションプラットフォームを使用して作成された前記レイアウトの前記データのビジュアル化に関する前記公開された少なくとも１つの対話型機能を選択し、
前記選択された少なくとも１つの対話型機能を、前記データビジュアライゼーションプラットフォームの前記レンダリングプラットフォームに関連する前記統合オブジェクトにより、対話型ビジュアライゼーションを提供する前記複数のビジュアライゼーションサービスのコアの機能に共通の形式に翻訳し、
前記対話型機能の前記翻訳に基づいて、前記ビジュアライゼーションサービスのコアからの機能を使用して、前記レンダリングプラットフォームに依存しない前記選択した対話型機能に従って前記データのビジュアル表現を修正する、
ように動作することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
データビジュアライゼーション対話機能アーキテクチャは、多くの異なるレンダリングプラットフォームにわたってコードの共有を最大限にすることができる方法で、対話型のデータのビジュアル化を有効にするプロセスである。
【背景技術】
【０００２】
場合によっては、レンダリングプラットフォーム間の著しい違いを理由に、様々なレンダリングプラットフォーム内にデータのビジュアル化機能を完全に再実装する必要がある。対話型のデータのビジュアル化は、ユーザーがデータを探索するために散布図などのビジュアル表現の一部を操作できるようにすることができる。例えば散布図は何千ものデータポイントを含むことがあり、これは傾向またはパターンの分析を困難にする場合がある。その散布図の中の一組のデータポイントを囲むように選択マーキーをドラッグすることは、それらのデータポイントを拡大し、それにより一層の詳細を表示させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来の戦略は、ＧＤＩ／ＧＤＩ＋、Ｓｉｌｖｅｒｌｉｇｈｔ、ＷＰＦ、Ｃ＃  ｗｉｎｆｏｒｍなどの多数のレンダリングプラットフォームのそれぞれについて、このズーム機能を完全に再実装することである。その従来の戦略は、多大な重複作業、ならびにプレゼンテーションにおける非互換性、エラー、および矛盾の可能性をもたらす場合があるので、そのように完全に再実装することは多くの場合問題を引き起こす。対話的にデータをビジュアル化するための共有可能なアーキテクチャを開発する動機は、極めて多量のレンダリング技術およびその技術を使用するアプリケーションにわたる一貫した対話機能に対するユーザーの高まりつつある需要を満たす。
【課題を解決するための手段】
【０００４】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。この概要は、以下の詳細な説明の中でさらに説明する諸概念の抜粋を、単純化した形で紹介するために提供する。この概要は、特許請求の範囲に記載の主題の重要な特徴または不可欠な特徴を特定することを意図するものではない。またこの概要は、特許請求の範囲に記載の主題の範囲を限定するために使用されることも意図しない。
【０００５】
データビジュアライゼーション対話機能アーキテクチャを提供することができる。このアーキテクチャは、グラフなど、データのビジュアル表現を作成できるようにすることができ、そのビジュアル表現の上に対話型機能を公開することができる。このアーキテクチャは、複数のレンダリングプラットフォームと統合することができる。その公開される機能をユーザーが選択すると、このアーキテクチャはその選択を共通の形式に翻訳し、レンダリングプラットフォームに依存せず、レイアウトルールに従ってデータのビジュアル表現を修正することができる。
【０００６】
上記の概要および以下の詳細な説明は、いずれも例を提供し、説明のためのものに過ぎない。したがって、上記の概要および以下の詳細な説明を限定的とみなすべきではない。さらに、本明細書に記載する内容に加え、諸特徴または改変形態を提供することができる。例えば、諸実施形態は、詳細な説明に記載する様々な特徴の組合せおよび部分的な組合せを対象とすることができる。
【０００７】
本開示に組み込まれ、本開示の一部を構成する添付図面が本発明の様々な実施形態を示す。
【図面の簡単な説明】
【０００８】
【図１Ａ】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図１Ｂ】対話機能ビジュアライゼーションアーキテクチャのブロック図である。
【図２】動作環境の図である。
【図３Ａ】対話型機能を示す図である。
【図３Ｂ】対話型機能を示す図である。
【図４】対話機能ビジュアライゼーションアーキテクチャを提供する方法の流れ図である。
【図５】選択された要素を共通の形式に翻訳するために、図４の方法で使用されるサブルーチンの流れ図である。
【図６Ａ】対話型グラフの種類および機能を示す図である。
【図６Ｂ】対話型グラフの種類および機能を示す図である。
【図６Ｃ】対話型グラフの種類および機能を示す図である。
【図６Ｄ】対話型グラフの種類および機能を示す図である。
【図６Ｅ】対話型グラフの種類および機能を示す図である。
【図６Ｆ】対話型グラフの種類および機能を示す図である。
【図６Ｇ】対話型グラフの種類および機能を示す図である。
【図６Ｈ】対話型グラフの種類および機能を示す図である。
【図６Ｉ】対話型グラフの種類および機能を示す図である。
【図６Ｊ】対話型グラフの種類および機能を示す図である。
【図７】コンピューティングデバイスを含むシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明は添付図面を参照する。可能な限り、同じまたは同様の要素を参照するために、同じ参照番号を図面および以下の説明の中で使用する。本発明の諸実施形態を説明することができるが、修正形態、適合形態、および他の実装形態もあり得る。例えば、図中に示す要素に対して置換、追加、または修正を行うことができ、開示する方法について、置換し、並べ替え、または段階を追加することにより、本明細書に記載する方法を修正することができる。したがって、以下の詳細な説明は本発明を限定しない。むしろ、本発明の適切な範囲は添付の特許請求の範囲によって定義される。
【００１０】
データ対話機能ビジュアライゼーションアーキテクチャを提供することができる。本発明の諸実施形態に一致して、Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５、およびＯＳ  Ｘ（登録商標）データビジュアライゼーションプラットフォーム１５０は、対話型のビジュアル化を提供するためのソフトウェアライブラリおよび／またはユーティリティを含む、共用コア１００をそれぞれ含むことができる。共用コア１００は、例えばＣ＋＋やＣ＃によって実装することができ、プラットフォームに依存しないものとすることができる。共用コア１００は、レイアウト、図形および／もしくは形状、ラインサービス（ｌｉｎｅ  ｓｅｒｖｉｃｅｓ）、３次元レンダリング、アニメーションフレームの生成、ならびに／または対話型のホットスポットを提供するための、ビジュアル化ユーティリティを含むことができる。アプリケーションプログラミングインターフェイス（ＡＰＩ）。
【００１１】
データビジュアライゼーションプラットフォーム１００は、既存のデータビジュアライゼーションクライアントから集められる一組の既知の対話機能の特徴を表示することができる。例えば共用コア１００は、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および株価チャートのうちの少なくとも１つを表示するためのユーティリティを含むことができる。それぞれのグラフの種類は、データ修正機能、データフィルタ機能、ビジュアル調節機能など、少なくとも１つの対話型機能を備えることができる。それぞれのグラフの種類は、その種類に固有の対話型機能および／または複数の種類に共通の対話型機能を備えることができる。例えば、円グラフは、ユーザーが円グラフのくさび形をクリックして選択し、そのくさび形を拡大し、そのくさび形によって表される基になるデータに関する追加情報を表示できるようにする、グラフの種類に固有のビジュアル調節機能を備えることができる。円グラフは、ユーザーが凡例表示を別の位置にドラッグできるようにするものなど、複数の種類に共通の機能をさらに備えることができる。データ修正機能は、グラフ上の点の値を変更することなど、ビジュアル化の基になるデータ要素に対する変更を受け取ることと、それに応じてビジュアル表現を更新することとを含むことができる。データフィルタ機能は、検索、ズーム、パン、または他のサブセットの選択によってなど、データポイントのサブセットを選択できるようにすることを含むことができる。ビジュアル調節機能は、色、線の幅および／もしくは種類、ならびに／または点の表示アイコンを変更することなど、ビジュアル表現の外観に対する変更を受け取ることを含むことができる。他の対話機能の特徴には、グラフの軸および／または基準線を移動させること、列および／またはバーの表示幅を調節すること、一組のデータポイントを反復すること、ビジュアル表現のセクションおよび／または点に関する追加情報を提供すること、データの変更についての少なくとも１つの効果を予測すること、全体的におよび／または部分的にビジュアル表現をコピーすること、データをソートすること、データポイントおよび／または凡例項目を並べ替えること、ビジュアル表現のデータポイントおよび／または構造上の要素をサイズ変更すること、強調表示すること、ピボットすること、回転させること、ならびにツールチップを表示することが含まれ得る。本発明の諸実施形態に一致して、ビジュアル表現のある領域上でのポインタの移動、キーボードの入力、ならびに／またはマウスの移動および／もしくはクリックなど、公開される対話型機能に関連するユーザーの入力デバイスから受け取る任意の入力により、対話型機能のユーザー選択を果たすことができる。
【００１２】
Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５、およびＯＳ  Ｘ（登録商標）データビジュアライゼーションプラットフォーム１５０は、Ｃ＋＋  ＡＰＩ１１０やＣ  ＡＰＩ１１５などの共用アプリケーションプログラミングインターフェイス（ＡＰＩ）を含むことができる。データビジュアライゼーションプラットフォーム１０５は、Ｗｉｎｄｏｗｓ（登録商標）ファイルＩ／Ｏライブラリ１２０や、Ｗｉｎｄｏｗｓ（登録商標）ユーザーインターフェイス（ＵＩ）ライブラリ１２５など、Ｗｉｎｄｏｗｓ（登録商標）プラットフォームに固有のユーティリティを含むことができる。本発明の諸実施形態に一致して、ファイルＩ／Ｏライブラリ１２０およびＵＩライブラリ１２５は、ダイナミックリンクライブラリ（ＤＬＬ）として実装することができる。データビジュアライゼーションプラットフォーム１５０は、ＯＳ  Ｘ（登録商標）ファイルＩ／Ｏライブラリ１５５や、ＯＳ  Ｘ（登録商標）ユーザーインターフェイス（ＵＩ）ライブラリ１６０など、ＯＳ  Ｘ（登録商標）プラットフォームに固有のユーティリティを含むことができる。
【００１３】
共用コア１００は、対話型機能が使用可能であり得るグラフ領域を覆うことができるホットスポットオブジェクトにより、それぞれのグラフの種類において対話機能を公開することができる。それぞれのレンダリングプラットフォームごとに、統合オブジェクトは、そのレンダリングプラットフォームに関するデータビジュアライゼーションプラットフォームが使用可能なジェネリックインターフェイス情報を提供するための、統合コードを含むことができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５は、Ｗｉｎ３２統合オブジェクト１３０を含むことができ、ＯＳ  Ｘ（登録商標）データビジュアライゼーションプラットフォーム１５０は、ＯＳ  Ｘ（登録商標）統合オブジェクト１６５を含むことができる。それぞれのデータビジュアライゼーションプラットフォームごとの統合オブジェクトは、ソフトウェアライブラリ、ならびにマウスカーソルのフィードバックおよびヒットテストユーティリティを提供するためにマウスボタンを押すこと、マウスの移動、およびマウスボタンを離すこと（例えばクリック、ドラッグ、およびリリース）をキャプチャすることができるドラッグアンドドロップループユーティリティ、ドラッグ中に共用コア１００によって供給され得るドラッグイメージを描画するためのユーティリティ、および変更リストをコミットするためのユーティリティを含むことができる。変更リストは、ドラッグアンドドロップループ中に記録されるマウスの移動および／またはキーストロークなど、ユーザー入力のリストを含むことができる。この変更リストは、データの変更（例えば値の変更、値の並べ替え、領域単位のフィルタ）、ならびに図形の変更（移動、回転、サイズ）を記述することができる。
【００１４】
それぞれの統合オブジェクトは、プラットフォームに固有のユーザー入力データを、共用コア１００に送信するための共通バージョンに変換することを担うことができる。この統合オブジェクトは、これらのユーティリティを提供するために、どんなグラフ固有の情報も必要としなくてもよく、共用コア１００によって提供されるそれぞれのグラフの種類に関連する対話型機能の全てを、単一のオブジェクトが公開することを可能にしている。
【００１５】
様々なグラフの種類は、データビジュアライゼーションプラットフォーム（ＤＶＰ）によって公開することができ、それらのグラフの種類に固有の対話機能の特定の領域をそれぞれ有することができる。それらの対話型領域、例えば列の上端を公開するために、ＤＶＰはホットスポットを公開することができる。それぞれのグラフの種類は、そのグラフの種類に固有の様々なホットスポットをエンコードし、そのエンコードしたホットスポットによって対話機能を公開することができる。クライアントは、マウスを使った対話および単純なコミットステップに基づき、ホットスポットによって公開される対話型機能を自らが活用することを可能にし得る、極めてジェネリックなインターフェイス（ｖｅｒｙ  ｇｅｎｅｒｉｃ  ｉｎｔｅｒｆａｃｅ）をエンコードすることができる。そのジェネリックインターフェイスは次の３つの断片を含むことができ、その断片とはつまり、マウスヒットテストロジック、ドラッグアンドドロップループ、およびコミットステップである。それらの断片が整っていると、クライアントは、ＤＶＰが覆うことができるグラフ固有のホットスポットの全てに接続することができる。
【００１６】
ヒットテストは、ユーザー入力デバイスをあちこち移動させること、およびそのユーザー入力カーソルが何の上にあるのかについての情報をクライアントがＤＶＰに要求することを含むことができる。ＤＶＰは、その情報、例えばデータポイントまたは図形を使って応答することができ、あるいは何も使わずに応答してもよい。ＤＶＰは、例えばカーソルの下にホットスポットがあることをそのクライアントに知らせることもできる。次いで、クライアントはそのホットスポットへの参照を受け取り、ドラッグアンドドロップループに入ることができる。ユーザーがマウスボタンを押し、画面のあちこちにカーソルをドラッグする場合など、クライアントのユーザー入力カーソルが移動するとき、そのクライアントは、自らの位置でホットスポットを更新することができる。次いでそのホットスポットは、ユーザーのフィードバックを得るために、ドラッグされたイメージを提供することができる。例えばそのホットスポットは、ワイヤーフレームおよび／または完全な（ｆｕｌｌ−ｆｌｅｄｇｅｄ）図形に、塗りつぶしもしくは灰色を与えることができる。ユーザーがマウスボタンを離すと、ホットスポットオブジェクトが変更をコミットすることができ、それらの変更はＤＶＰのためにエンコードすることができる。本発明の諸実施形態に一致して、ユーザーおよび／またはクライアントが全体的におよび／または部分的に適用することができる変更リストオブジェクトに、それらの変更を記憶することができる。それらの変更がコミットされると、ＤＶＰはそれらの全ての変更をデータのビジュアル表現に内部的に反映させることができる。
【００１７】
図２は、動作環境２００の図である。動作環境２００は、データベースサーバー２１０、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０、およびモバイルクライアント２４０を含むことができる。データベースサーバー２１０、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０、およびモバイルクライアント２４０は、図７に関して以下により詳細に説明するコンピューティングデバイス７００をそれぞれ含むことができ、インターネットや企業のイントラネットなどのネットワーク２５０を介して接続されてよい。Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０、およびモバイルクライアント２４０は、レンダリングプラットフォームおよびデータビジュアライゼーションプラットフォームをそれぞれ含むことができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０は、Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５を含むことができ、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０は、ＯＳ  Ｘ（登録商標）データビジュアライゼーションプラットフォーム１５０を含むことができる。Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０、およびモバイルクライアント２４０のデータビジュアライゼーションプラットフォームは、共用コア１００をそれぞれ含むことができる。それぞれのクライアントは、ビジュアル表現を表示するために使用される別々のレンダリングプラットフォームを設けることができる。
【００１８】
対話機能は、マウス、タッチパッド、マルチタッチディスプレイ、タッチスクリーン、および／またはスタイラスなどの入力デバイス７１２を、主にクリックしかつ／またはドラッグすることによって実現することができる。キーボードベースの対話機能を提供することもできる。本発明の諸実施形態に一致して、それぞれのクライアントは、追加のユーザーインターフェイスデバイスおよび／または機能をサポートすることができる。例えば、Ｍａｃｉｎｔｏｓｈ（登録商標）クライアント２３０は、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０によってサポートされない場合がある、Ａｐｐｌｅ  Ｒｅｍｏｔｅ（登録商標）ユーザーインターフェイスデバイスに対するサポートを提供することができる。
【００１９】
図３は、対話型機能を示す図である。例えば、折れ線グラフ３００は、グラフ上にプロットされる複数のデータセット３０５を含むことができる。折れ線グラフ３００は、ｘ軸３１０、ｙ軸３１５、および凡例３２０をさらに含むことができる。折れ線グラフ３００は、共用コア１００に関連するグラフの種類についての情報、およびデータベースサーバー２１０上に記憶されるデータに従い、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０上のＷｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５によって生成することができる。本発明の諸実施形態に一致して、折れ線グラフ３００によって示されるデータは、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０および／または別のコンピューティングデバイス上にローカルに記憶することができる。Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５は、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０のレンダリングプラットフォームにホットスポットを公開することができる。例えば、複数のデータセット３０５のうちの１つの名前を変更することなど、凡例３２０および／またはｘ軸３１０との対話機能を可能にするホットスポットを公開することができる。
【００２０】
ビジュアル表現の中の対話位置は、組み込み「ホットスポット」オブジェクトの集合によって公開することができる。ビジュアル表現のそれぞれのレイアウトの種類は、そのレイアウトに固有のホットスポットを公開することができる。例えば縦棒グラフは、縦棒の上端を垂直にドラッグするためのホットスポットを公開することができる。円グラフは、円スライスの両側に、時計回りの方向にまたは反時計回りの方向にドラッグ可能なホットスポットを公開することができる。凡例やタイトルなどの図形の移動または回転は、汎用の図形のホットスポット（ｇｅｎｅｒｉｃ  ｓｈａｐｅ  ｈｏｔｓｐｏｔ）によって公開することができる。
【００２１】
ホットスポットは、ヒットテストによってクライアントに公開することができる。クライアントは、マウスカーソル３２５の下に何のオブジェクトがあるのか判断するために、統合オブジェクトを使用することができる。共用コア１００は、ヒットした図形への参照および／または新たに作成されるホットスポットへの参照を返すことができる。共用コア１００は、どの幾何曲線（ｇｅｏｍｅｔｒｙ  ｃｕｒｖｅ）にヒットしたのかを解析することができるそのグラフに関するアクティブなレイアウトクラスに、ホットスポットの検出を委任することができる。対話型機能に相当する領域にヒットしなかった場合、共用コア１００はホットスポットの参照を返さなくてよい。ホットスポットにヒットした場合、共用コア１００は、最初のヒットテストの位置を記録することができる、新たな参照カウントされる（ｒｅｆｅｒｅｎｃｅ−ｃｏｕｎｔｅｄ）ホットスポットオブジェクトを作成することができる。レンダリングプラットフォームは、どのような変更が生じるのかについての記述を得ることができ、適切なカーソルおよび／またはツールチップを表示し、かつ／またはホットスポットを無視することができる。
【００２２】
ホットスポットがマウスを使ってドラッグされていることをクライアントが検出すると、そのクライアントは、標準的なドラッグアンドドロップループに入ることができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）クライアント２２０は、ＯＬＥ（オブジェクトのリンクと埋め込み）ドラッグアンドドロップおよび／または単純なメッセージループに入ることができる。このループの中で、例えばマウスカーソル３２５がドラッグされた位置を報告する方法による、それぞれのマウスの移動。クライアントは、更新された変更リストを求めて、および／またはドラッグイメージ３３０などのドラッグイメージとして、ホットスポットにクエリすることができる。ホットスポットに関連する変更の種類は、マウスの位置に基づいて変わり得る。例えば、円スライスを円グラフから外に向かってドラッグすることは、単純に図形を移動できるのに対し、その円スライスを別の円スライス上にドラッグすることは、データを並べ替えることができる。
【００２３】
ホットスポットによって返されるドラッグイメージ３３０は、グラフの静的イメージを描画するために使用されるのと同じオブジェクトであり得るジオメトリ反復子（ｇｅｏｍｅｔｒｙ  ｉｔｅｒａｔｏｒ）の形でクライアントが受け取ることができる。したがって、クライアントがグラフを描画できた時点で、そのクライアントは、同じコードを呼び出すことによりドラッグイメージを描画できなければならない。元の形状からクローンされ、現在の変更リストを反映するように変えられる一時的な図形を作成することにより、共用コア１００内でドラッグイメージ３３０を生成することができる。
【００２４】
マウスボタンを離すイベントが起こるとき、ドラッグアンドドロップ操作が終わっている可能性があり、変更をコミットする必要があり得る。この時点でクライアントは、ホットスポットの変更リストを求め、最後にもう一度そのホットスポットにクエリすることができ、変更を内部的に適用するためにその変更リストを共用コア１００にコミットすることができる。本発明の諸実施形態に一致して、クライアントは変更リストをウォーク（ｗａｌｋｓ）し、そのクライアントが望むどんなふうにでも変更を選択的に適用することができる。例えば、Ｏｆｆｉｃｅ（登録商標）グラフクライアントは、データの変更をＥｘｃｅｌ（登録商標）のワークシートにプッシュバックし、後で変更を共用コア１００に少しずつ伝えて返すことを認めることができる。
【００２５】
折れ線グラフ３００内に公開される別の対話機能には、例えばズーム操作などのビジュアル調節機能が含まれ得る。Ｗｉｎ３２統合オブジェクト１３０は、ユーザー入力デバイスからマウスボタンを押す（例えばマウスボタンをクリックする）イベントを受け取り、追加の入力を追跡し始め、マウスボタンを離す（例えばマウスボタンをリリースする）イベントを受け取るまで、それぞれの入力を変更リストに追加することができる。例えば、ユーザーは、ある位置にカーソル３２５を置き、折れ線グラフ３００のある領域を選択するようにマウスをドラッグすることができる。共用コア３００は、プラットフォームに依存しないグラフィカル表示をユーザーに提供して、ドラッグイメージ３３０などの選択領域を示すことができる。マウスボタンを離すイベントを受け取ると、Ｗｉｎ３２統合オブジェクト１３０は、変更リストを共用コア１００にコミットすることができ、それを受けて共用コア１００は、折れ線グラフ３００のその選択領域についての拡大されたビジュアル表現を表示し得る、更新されたビジュアル表現３５０を生成することができる。
【００２６】
共用コア１００によって公開されるホットスポットは、既存のデータビジュアライゼーションクライアントから集められる一組の包括的な既知の対話機能を表すことができる。クライアントが望むが、共用コア１００が公開しなかったホットスポットがある可能性があり、または組み込みホットスポットが十分でないシナリオもあり得る。本発明の諸実施形態に一致して、共用コア１００は、必要に応じてクライアントが拡張することを可能にするために追加のＡＰＩを公開することができる。例えば共用コア１００は、クライアントが、レイアウト固有のヒットテスト情報を取得するためのＡＰＩ、データポイントジオメトリの反復（ｄａｔａｐｏｉｎｔ  ｇｅｏｍｅｔｒｙ  ｉｔｅｒａｔｉｏｎ）を提供するためのＡＰＩ、および／またはｗｈａｔ−ｉｆ変化予測を行うためのＡＰＩを公開することができる。
【００２７】
クライアントは、マウスカーソルの下にそのレイアウトのどんな興味深い部分があるのか理解したい可能性がある。例えばＯｆｆｉｃｅアプリケーションは、描画オブジェクトからコネクタ矢印を使ってグラフに注釈を付けたい場合がある。そのように注釈を付けるために、共用コア１００は、「系列＃１内のデータポイント＃３上」や、「データポイントの伸長する端（ｇｒｏｗｔｈ  ｅｄｇｅ）上」や、「値が１０の値軸目盛り上」のようなサブ要素ヒットテスト情報を提供しなければならないことがある。
【００２８】
データポイントは、系列図形内のパスとして表示することができる。クライアントは、個々のデータポイントを（例えばマウスでポイントしたときに）強調表示したい場合があり、そのため、系列全体でなく、単一のデータポイントに固有のジオメトリを反復処理する能力を必要とすることがある。
【００２９】
クライアントは、ｗｈａｔ−ｉｆシナリオにおいて、変更が予測的に適用された状態で完全なグラフが返されることを要求することができる。例えばデータポイントを並べ替えるとき、クライアントは、「挿入マーカー」のゴーストを示すのではなく、その新たな位置に適切に挿入されたデータポイントを示したい場合がある。そのように示すために、クライアントは変更リストを作成し、共用コア１００に渡すことができ、次いでその共用コア１００は、そのグラフのコピーオンライト（ｃｏｐｙ−ｏｎ−ｗｒｉｔｅ）クローンを作成し、変更リストを適用し、クライアントが描画するための新たなグラフにポイントされたジオメトリ反復子を返すことができる。
【００３０】
ＡＰＩアクセスまたはユーザーの対話（例えばホットスポット）によって共用コア１００に加えられる変更は、取り消し可能であるべきである。そのように取り消し可能にするために、共用コア１００の中にトランザクションオブジェクトが存在して、クライアントがコマンドレベルで変更の境界を定め（ｄｅｍａｒｋ）、記録できるようにすることができる。例えば、そのトランザクションオブジェクトは、取り消し／やり直し情報を記憶するためのＵｎｄｏＲｅｃｏｒｄオブジェクトを返す、ＧｅｔＵｎｄｏＲｅｃｏｒｄ（）メソッドを公開することができる。ＵｎｄｏＲｅｃｏｒｄオブジェクトは、クライアントの取り消し／やり直しコマンドから呼び出されることになるＵｎｄｏ（）メソッドおよびＲｅｄｏ（）メソッドを有することができる。ホットスポットを介して行われるユーザーの変更では、そのホットスポットが返す変更リストオブジェクトも、その取り消し／やり直し状態を追跡するためのトランザクションオブジェクトを公開することができる。
【００３１】
図４は、データビジュアライゼーション対話機能アーキテクチャを提供するための、本発明の実施形態に一致する方法４００に伴う全体的な段階を記載する流れ図である。方法４００は、図７に関して以下により詳細に説明するコンピューティングデバイス７００を使用して実施することができる。以下に、方法４００の各段階を実施する方法についてより詳細に説明する。方法４００は、開始ブロック４１０で始まり、コンピューティングデバイス７００がデータのビジュアル表現を作成することができる段階４２０に進むことができる。例えば、コンピューティングデバイス７００にはｗｉｎｄｏｗｓクライアント２２０が含まれてよく、Ｗｉｎｄｏｗｓ（登録商標）データビジュアライゼーションプラットフォーム１０５を使用して、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、株価チャートなどのビジュアル表現を作成することができる。
【００３２】
方法４００は、段階４２０から、そのデータのビジュアル化に関する少なくとも１つの対話型機能をコンピューティングデバイス７００が公開することができる、段階４３０に進むことができる。例えば、コンピューティングデバイス７００は、データ修正機能、データフィルタ機能、および／またはビジュアル調節機能などの対話型機能に関連するホットスポットを公開することができる。
【００３３】
方法４００は、段階４３０から、コンピューティングデバイス７００が複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトを提供することができる、段階４４０に進むことができる。例えば、コンピューティングデバイス７００は、グラフィカル表示および／またはデータのビジュアル表現を表示するために、ＧＤＩ、ＧＤＩ＋、Ｓｉｌｖｅｒｌｉｇｈｔ、ＷＰＦ、Ｃ＃  ｗｉｎｆｏｒｍｓ、および／またはＱＴなどのレンダリングプラットフォームを使用することができる。
【００３４】
方法４００は、段階４４０から、コンピューティングデバイス７００が、ユーザー入力デバイスからそのデータのビジュアル表現上の少なくとも１つの位置の選択を受け取ることができる、段階４５０に進むことができる。例えばユーザーは、マウス、スタイラス、キーボード、および／またはタッチスクリーンを使用してデータのビジュアル表現上のポイントを選択することができる。
【００３５】
方法４００は、段階４５０から、その選択された少なくとも１つの位置がホットスポットに関連するかどうかをコンピューティングデバイス７００が判定することができる、段階４６０に進むことができる。例えば、コンピューティングデバイス７００は、その選択された少なくとも１つの位置が、データポイント、軸線など、データのビジュアル表現の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および／またはデータのビジュアル表現制御要素を含むかどうかを判定することができる。
【００３６】
段階４６０において、その選択された少なくとも１つの位置がホットスポットに関連するとコンピューティングデバイス７００が判定する場合、方法４００は、コンピューティングデバイス７００がその少なくとも１つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳することができる、段階４７０に進むことができる。統合オブジェクトによりその選択を共通の形式に翻訳することについては、図５に関して以下により詳細に説明する。段階４６０において、その選択された少なくとも１つの位置がホットスポットに関連しないとコンピューティングデバイス７００が判定する場合、方法４００は、コンピューティングデバイス７００が別のユーザー入力選択を受け取るために待機することができる、段階４５０に戻ることができる。
【００３７】
方法４００は、段階４７０から、コンピューティングデバイス７００がその選択された対話型機能に従ってデータのビジュアル表現を更新することができる、段階４８０に進むことができる。段階４８０において、コンピューティングデバイス７００がデータのビジュアル表現を更新すると、方法４００は段階４９０において終了することができる。
【００３８】
図５は、選択された要素を共通の形式に翻訳するために、図４の方法で使用されるサブルーチンの流れ図である。サブルーチン４７０は、コンピューティングデバイス７００が少なくとも１つの選択の特徴をキャプチャすることができる、段階５１０において存在することができる。例えば、コンピューティングデバイス７００は、マウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、スクロール操作などの、選択の特徴をキャプチャすることができる。本発明の諸実施形態に一致して、そのキャプチャした少なくとも１つの特徴は、レンダリングプラットフォームに関連する形式にエンコードすることができる。
【００３９】
サブルーチン４７０は、段階５１０から、コンピューティングデバイス７００がその少なくとも１つの特徴に関連する視覚的なフィードバックを表示することができる、段階５２０に進むことができる。例えば、コンピューティングデバイス７００は、カーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および／またはツールチップを表示することなどの、視覚的なフィードバックを表示することができる。
【００４０】
サブルーチン４７０は、段階５２０から、そのキャプチャした選択の特徴を、レンダリングプラットフォームに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式にコンピューティングデバイス７００が変換することができる、段階５３０に進むことができる。例えば、データビジュアライゼーションプラットフォームは、選択の特徴を変換するために、関連する統合オブジェクトを使用することができる。
【００４１】
サブルーチン４７０は、段階５３０から、その変換した少なくとも１つの選択の特徴に従いコンピューティングデバイス７００が変更リストを作成することができる、段階５４０に進むことができる。例えば、コンピューティングデバイス７００は、マウスボタンを押す選択の特徴を受け取ることに応答して変更リストを作成することができる。変更リストを作成すると、コンピューティングデバイス７００は、さらなる選択の特徴を、それらの特徴を受け取るときに、その変更リストに追加することができる。
【００４２】
サブルーチン４７０は、段階５４０から、ユーザーの選択が完了したかどうかをコンピューティングデバイス７００が判定することができる、段階５５０に進むことができる。例えば、コンピューティングデバイス７００は、マウスボタンをリリースすることにより、ユーザーがドラッグアンドドロップループを完了したと判定することができる。
【００４３】
段階５５０において、ユーザーの選択が完了したとコンピューティングデバイス７００が判定する場合、サブルーチン４７０は、コンピューティングデバイス７００が処理のために変更リストを送信することができる、段階５６０に進むことができる。例えば、コンピューティングデバイス７００は、変更リストをデータビジュアライゼーションプラットフォームに送信することができる。段階５５０において、ユーザーの選択が完了していないとコンピューティングデバイス７００が判定する場合、サブルーチン４７０は、コンピューティングデバイス７００が別のユーザー入力選択を受け取り、キャプチャするために待機することができる、段階５１０に戻ることができる。段階５６０においてコンピューティングデバイス７００が変更リストを処理すると、サブルーチン４７０は終了し、方法４００の段階４８０に進むことができる。
【００４４】
本発明に一致する一実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、共有レイアウトに従ってデータのビジュアル表現を作成し、そのデータのビジュアル化に関する少なくとも１つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトを提供し、少なくとも１つの対話型機能を選択し、その少なくとも１つの対話型機能の選択を、統合オブジェクトにより、共有レイアウトに関連する共通の形式に翻訳し、その選択した対話型機能に従ってデータのビジュアル表現を修正するように動作することができる。統合オブジェクトは、複数のレンダリングプラットフォームのそれぞれについて提供することができる。共有レイアウトは、レンダリングプラットフォームに依存しなくてよく、例えば、円グラフ、バーグラフ、散布図、縦棒グラフ、折れ線グラフ、面グラフ、ドーナツグラフ、レーダーチャート、等高線グラフ、バブルチャート、および／または株価チャートを含むことができる。対話型機能には、例えばデータ修正機能、データフィルタ機能、および／またはビジュアル調節機能が含まれ得る。少なくとも１つの対話型機能を選択することは、マウス、スタイラス、キーボード、および／またはタッチスクリーンのうちの少なくとも１つから選択入力を受け取ることを含むことができる。
【００４５】
処理ユニットは、ユーザー入力デバイスのポインタの位置を受け取り、その受け取った位置に関する情報を取得するようにさらに動作することができ、その情報は、データのビジュアル表現に対するその位置に関連するあり得る修正についての記述、およびその位置における少なくとも１つのデータポイントについての記述のうちの少なくとも１つを含む。その受け取った位置に関する情報は、ツールチップの中に表示される。
【００４６】
この処理ユニットは、円グラフにおいてくさび形を操作する対話型機能など、レイアウトに固有の少なくとも１つのホットスポットオブジェクトを公開するようにさらに動作することができる。ホットスポットオブジェクトは、グラフの軸線など、データのビジュアル表現の少なくとも１つの構造上の要素に関連することができる。
【００４７】
本発明に一致する別の実施形態は、データのビジュアル表現に拡張可能な対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、一組のデータに従ってデータのビジュアル表現を作成し、少なくとも１つのホットスポットを公開し、その少なくとも１つのホットスポットの選択を受け取り、その少なくとも１つのホットスポットの選択に関連する変更リストを作成し、その変更リストに複数のユーザー入力コマンドを記憶し、その変更リストを処理し、処理した変更リストに従ってデータのビジュアル表現を更新するように動作することができる。例えば、モバイルクライアント２４０がグラフファイルを開くことができる。データビジュアライゼーションプラットフォーム（ＤＶＰ）が、そのグラフファイル内のデータに従ってデータのビジュアル表現を作成し、対話型機能に関連する、そのグラフの少なくとも１つのホットスポット領域を公開することができる。ユーザーは、ユーザー入力デバイスを使い、公開されたホットスポットを選択することができ、モバイルクライアント２４０は、ユーザー入力デバイスのカーソルの外観を変更することおよび／またはツールチップを表示することなど、ユーザーに提供するためのフィードバックをＤＶＰから受け取ることができる。そのフィードバックは、列の幅を広げまたは狭めるためにその列の端をドラッグできることを知らせるために、その列の端を選択するときにカーソルを手の形に変えることなど、ホットスポットに関連する少なくとも１つの対話型機能に関連することができる。
【００４８】
ユーザーがデータのビジュアル表現を操作するとき、それぞれのユーザー入力操作をコマンドとして変更リストに追加することができる。マウスボタンを離すイベントによって指示できるようになど、ユーザーがデータのビジュアル表現の操作を終えると、モバイルクライアント２４０は変更リストを処理することができる。例えば、モバイルクライアント２４０は変更リストをＤＶＰにコミットすることができ、次いでそのＤＶＰは、その変更リストに追加されたそれぞれのコマンドを反復処理し、それに応じてデータのビジュアル表現を更新することができる。本発明の諸実施形態に一致して、データのビジュアル表現に適用するために変更リスト内のコマンドのうちの少なくとも１つを選択することによってなど、モバイルデバイス２４０は、ユーザーが変更リスト内のコマンドを見て、それらのコマンドを全体的におよび／または部分的に適用することを可能にすることができる。
【００４９】
本発明に一致するさらに別の実施形態は、データビジュアライゼーション対話機能を提供するシステムを含むことができる。このシステムは、メモリ記憶装置、およびそのメモリ記憶装置に結合される処理ユニットを備えることができる。その処理ユニットは、データビジュアライゼーションプラットフォームに関連するレイアウトに従ってデータのビジュアル表現を作成し、そのデータのビジュアル化に関する少なくとも１つの対話型機能を公開し、複数のレンダリングプラットフォームのうちの少なくとも１つに関連する統合オブジェクトを提供し、そのレンダリングプラットフォームには例えばＧＤＩ、ＧＤＩ＋、Ｓｉｌｖｅｒｌｉｇｈｔ、ＷＰＦ、Ｃ＃  ｗｉｎｆｏｒｍｓが含まれ、ユーザー入力デバイスからそのデータのビジュアル表現上の少なくとも１つの位置の選択を受け取り、その選択された少なくとも１つの位置がホットスポットに関連するかどうかを判定するように動作することができる。そのユーザー入力デバイスには、マウス、スタイラス、キーボード、および／またはタッチスクリーンが含まれ得る。その選択された少なくとも１つの位置がホットスポットに関連するかどうかを判定することは、その選択された少なくとも１つの位置が、データポイント、データのビジュアル表現の構造上の要素、ユーザーインターフェイスメニュー項目、ユーザーインターフェイスコマンド要素、および／またはデータのビジュアル表現制御要素を含むかどうかを判定することを含むことができる。
【００５０】
その選択された少なくとも１つの位置がホットスポットに関連すると判定することに応じて、処理ユニットは、その少なくとも１つの対話型機能の選択を、統合オブジェクトにより、データビジュアライゼーションプラットフォームに関連する共通の形式に翻訳するようにさらに動作することができる。選択を翻訳するために、処理ユニットはその少なくとも１つの選択の特徴をキャプチャし、その少なくとも１つの特徴に関連する少なくとも１つの視覚的なフィードバックを表示し、その少なくとも１つの選択の特徴を、複数のレンダリングプラットフォームのうちの少なくとも１つに関連するエンコード形式から、データビジュアライゼーションプラットフォームに関連する共通のエンコード形式に変換し、その変換した少なくとも１つの選択の特徴に従って変更リストを作成し、その変更リストをデータビジュアライゼーションプラットフォームに送信するようにさらに動作することができる。その処理ユニットは、送信した変更リスト、および少なくとも１つの選択された位置におけるホットスポットの少なくとも１つのプロパティに従ってデータのビジュアル表現を更新するようにさらに動作することができる。本発明の諸実施形態に一致して、その少なくとも１つの視覚的なフィードバックには、例えばカーソルを変更すること、線を引くこと、図形を描くこと、タイトルを変更すること、ステータス表示を変更すること、および／またはツールチップを表示することが含まれ得る。その少なくとも１つの選択の特徴には、例えばマウスのクリック、ドラッグ操作、ドロップ操作、マウスの移動、および／またはスクロール操作が含まれ得る。そのキャプチャされる少なくとも１つの特徴は、複数のレンダリングプラットフォームのうちの少なくとも１つに関連する形式にエンコードすることができる。 
【００５１】
図６Ａは、折れ線グラフ６００を示し、ユーザー入力カーソル６０４をホットスポット上に置くことに対するユーザーフィードバックとして表示されるツールチップ６０２を含む。
【００５２】
図６Ｂは、折れ線グラフ６１０を示す。
【００５３】
図６Ｃは、バー（または縦棒）グラフ６２０を示す。
【００５４】
図６Ｄは、散布図６３０を示す。
【００５５】
図６Ｅは、ドーナツグラフ６４０を示す。
【００５６】
図６Ｆは、面グラフ６５０を示す。
【００５７】
図６Ｇは、レーダーチャート６６０を示す。
【００５８】
図６Ｈは、等高線グラフ６７０を示す。
【００５９】
図６Ｉは、バブルチャート６８０を示す。
【００６０】
図６Ｊは、株価チャート６９０を示す。
【００６１】
図７は、コンピューティングデバイス７００を含むシステムのブロック図である。本発明の実施形態に一致して、上述のメモリ記憶装置および処理ユニットは、図７のコンピューティングデバイス７００などのコンピューティングデバイスの中に実装することができる。このメモリ記憶装置および処理ユニットを実装するために、ハードウェア、ソフトウェア、またはファームウェアの任意の適切な組合せを使用することができる。例えばこのメモリ記憶装置および処理ユニットは、コンピューティングデバイス７００、またはコンピューティングデバイス７００と組み合わせて、他のコンピューティングデバイス７１８のどれかで実装することができる。上述のシステム、デバイス、およびプロセッサは例であり、本発明の諸実施形態に一致して、他のシステム、デバイス、およびプロセッサが、上述のメモリ記憶装置および処理ユニットを構成してもよい。さらに、上記に記載したように、コンピューティングデバイス７００は、システム１００用の動作環境を含むことができる。システム１００は他の環境内で動作してもよく、コンピューティングデバイス７００に限定されない。
【００６２】
図７を参照して、本発明の実施形態に一致するシステムは、コンピューティングデバイス７００などのコンピューティングデバイスを含むことができる。基本構成において、コンピューティングデバイス７００は、少なくとも１つの処理ユニット７０２およびシステムメモリ７０４を含むことができる。コンピューティングデバイスの構成および種類に応じて、システムメモリ７０４は、これだけに限定されないが、揮発性メモリ（例えばＲＡＭ（ランダムアクセスメモリ））、不揮発性メモリ（例えばＲＯＭ（読み取り専用メモリ））、フラッシュメモリ、または任意の組合せを含むことができる。システムメモリ７０４は、オペレーティングシステム７０５、１つまたは複数のプログラミングモジュール７０６を含むことができ、データビジュアライゼーションプラットフォーム７０７を含むことができる。オペレーティングシステム７０５は、例えばコンピューティングデバイス７００の動作を制御するのに適していてよい。一実施形態では、プログラミングモジュール７０６は、データビジュアライゼーション表示プログラム７２０を含むことができる。さらに、本発明の諸実施形態は、グラフィックスライブラリ、他のオペレーティングシステム、または他の任意のアプリケーションプログラムと組み合わせて実施することができ、どんな特定のアプリケーションまたはシステムにも限定されない。図７に、この基本構成を、破線７０８の中のそれらのコンポーネントによって示す。
【００６３】
コンピューティングデバイス７００は、追加の特徴または機能を有することができる。例えばコンピューティングデバイス７００は、例えば磁気ディスク、光ディスク、テープなど、追加の（取り外し可能なおよび／または固定の）データ記憶装置を含むこともできる。そのような追加の記憶装置を、図７に取り外し可能な記憶装置７０９および固定記憶装置７１０によって示す。コンピューター記憶媒体には、コンピューター可読命令、データ構造、プログラムモジュールや他のデータなど、情報を記憶するための任意の方法または技術によって実装される、揮発性／不揮発性の取り外し可能な媒体および固定の媒体が含まれ得る。システムメモリ７０４、取り外し可能な記憶装置７０９、および固定記憶装置７１０は、全てコンピューター記憶媒体の例（すなわちメモリ記憶装置）である。これだけに限定されないが、コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（電気的消去可能読み取り専用メモリ）、フラッシュメモリや他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）や他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、または情報を記憶するために使用でき、コンピューティングデバイス７００によってアクセス可能な他の任意の媒体が含まれ得る。そのような任意のコンピューター記憶媒体がデバイス７００の一部であり得る。コンピューティングデバイス７００は、キーボード、マウス、ペン、サウンド入力デバイス、タッチ入力デバイスなど、入力デバイス（群）７１２を有することもできる。ディスプレイ、スピーカー、プリンターなど、出力デバイス（群）７１４も含まれてよい。上述のデバイスは例であり、他のデバイスを使用することもできる。
【００６４】
コンピューティングデバイス７００は、分散コンピューティング環境内のネットワーク、例えばイントラネットやインターネットなどを介し、デバイス７００が他のコンピューティングデバイス７１８と通信することを可能にし得る通信接続７１６を含むこともできる。通信接続７１６は、通信媒体の一例である。通信媒体は、キャリア波や他のトランスポート機構などの変調済みデータ信号の中のコンピューター可読命令、データ構造、プログラムモジュール、または他のデータによって典型的には具体化することができ、任意の情報配信媒体を含む。用語「変調済みデータ信号」は、信号の中の情報をエンコードするような方法で、１つまたは複数の特性が設定されもしくは変更された信号を表すことができる。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、およびアコースティック、無線周波数（ＲＦ）、赤外線や他の無線媒体などの無線媒体が含まれ得る。本明細書で使用するとき、用語コンピューター可読媒体は、記憶媒体および通信媒体の両方を含むことができる。
【００６５】
上記に述べたように、システムメモリ７０４には、オペレーティングシステム７０５を含む、いくつかのプログラムモジュールおよびデータファイルを記憶することができる。処理ユニット７０２上で実行される間、プログラミングモジュール７０６（例えばデータビジュアライゼーション表示プログラム７２０）は、例えば上記に記載した方法４００の段階のうちの少なくとも１つを含むプロセスを実行することができる。上述のプロセスは例であり、処理ユニット７０２は他のプロセスを実行することもできる。本発明の諸実施形態に従って使用することができる他のプログラミングモジュールには、電子メールおよび連絡先アプリケーション、文書処理アプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、描画またはコンピューター支援アプリケーションプログラム、等が含まれ得る。
【００６６】
概して、本発明の諸実施形態に一致して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行できる、または特定の抽象データ型を実装できる他の種類の構造を含むことができる。さらに、本発明の諸実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの一般電化製品やプログラム可能一般電化製品、ミニコンピューター、メインフレームコンピューター等を含む、他のコンピューターシステム構成によって実施することができる。本発明の諸実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールはローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に位置することができる。
【００６７】
さらに、本発明の諸実施形態は、離散的な電子的要素を含む電子回路内、論理ゲートを含むパッケージ化されたもしくは統合された電子チップ内、マイクロプロセッサを利用する回路内に、または電子的要素もしくはマイクロプロセッサを含む単一チップ上に実施することができる。本発明の諸実施形態は、これだけに限定されないが機械技術、光学技術、流体技術、および量子技術を含む、例えばＡＮＤ、ＯＲ、ＮＯＴなどの論理演算を実行することができる他の技術を使用して実施してもよい。さらに本発明の諸実施形態は、汎用コンピューター内で、または他の任意の回路もしくはシステム内で実施することもできる。
【００６８】
本発明の諸実施形態は、例えばコンピュータープロセス（メソッド）、コンピューティングシステム、またはコンピュータープログラム製品やコンピューター可読媒体などの製造品として実装することができる。そのコンピュータープログラム製品は、コンピューターシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、コンピューター記憶媒体とすることができる。そのコンピュータープログラム製品は、コンピューティングシステムが読み取ることができ、コンピュータープロセスを実行するための命令のコンピュータープログラムをエンコードする、キャリア上の伝搬される信号とすることもできる。したがって本発明は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）によって実施することができる。言い換えれば本発明の諸実施形態は、命令実行システムが使用するためにもしくは命令実行システムに関連して、コンピューター使用可能プログラムコードまたはコンピューター可読プログラムコードが媒体内に具体化される、コンピューター使用可能記憶媒体またはコンピューター可読記憶媒体上の、コンピュータープログラム製品の形をとることができる。コンピューター使用可能媒体またはコンピューター可読媒体は、命令実行システム、機器、もしくはデバイスが使用するためにまたはそれらに関連して、プログラムを含み、記憶し、伝達し、伝搬し、または転送することができる任意の媒体とすることができる。
【００６９】
コンピューター使用可能媒体またはコンピューター可読媒体は、これだけに限定されないが、例えば電気的、磁気的、光学的、電磁的、赤外線、もしくは半導体のシステム、機器、デバイス、または伝達媒体とすることができる。より詳細なコンピューター可読媒体の例（限定的なリスト）、コンピューター可読媒体には、１本または複数本の接続線を有する電気接続、ポータブルコンピューターディスケット、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読み取り専用メモリ）、ＥＰＲＯＭまたはフラッシュメモリ（消去可能プログラム可能読み取り専用メモリ）、光ファイバ、およびポータブルＣＤ−ＲＯＭ（コンパクトディスク読み取り専用メモリ）が含まれてよい。例えば紙または他の媒体を光学的にスキャンすることにより、プログラムを電子的にキャプチャし、次いで必要な場合はコンパイルし、解釈し、または適切な方法で違ったふうに処理し、次いでコンピューターメモリに記憶することができるので、コンピューター使用可能媒体またはコンピューター可読媒体は、その上にプログラムが印刷される紙または他の適切な媒体とすることさえ可能であることに留意されたい。
【００７０】
本発明の諸実施形態を、例えば本発明の諸実施形態による方法、システム、およびコンピュータープログラム製品のブロック図および／または動作上の説明図を参照して上記に記載した。ブロック内に示す機能／行為は、任意の流れ図に示す順序から外れて行われてもよい。例えば、関与する機能／行為にもよるが、連続して示す２つのブロックを実際には実質的に同時に実行することができ、または時にはブロックを逆の順序で実行することもできる。
【００７１】
本発明の特定の実施形態を記載してきたが、他の実施形態が存在してもよい。さらに、メモリおよび他の記憶媒体に記憶されるデータに関連するものとして本発明の諸実施形態を記載してきたが、データは、ハードディスク、フロッピー（登録商標）ディスク、もしくはＣＤ−ＲＯＭのような２次記憶装置、インターネットからのキャリア波、または他の形態のＲＡＭもしくはＲＯＭなど、他の種類のコンピューター可読媒体上に記憶し、またはそこから読み取ることもできる。さらに、本発明から逸脱することなく、開示した方法の段階は、段階を並べ替えることおよび／または段階を挿入しもしくは削除することを含む任意の方法で修正することができる。
【００７２】
本明細書に含まれるコードの中の著作権を含む全ての権利は出願人に帰属し、出願人の財産である。出願人は本明細書に含まれるコードの中の全ての権利を保有しかつ確保し、付与した特許を再現することに関連してのみ、この題材（ｍａｔｅｒｉａｌ）を再現する許可を与え、それ以外の目的では許可を与えない。
【００７３】
本明細書は複数の例を含むが、本発明の範囲は特許請求の範囲によって示す。さらに、本明細書を構造上の特徴および／または方法論的な行為に固有の言語で記載してきたが、特許請求の範囲は上記に記載した特徴または行為に限定されない。むしろ、上記に記載した特定の特徴および行為は、本発明の諸実施形態についての例として開示した。
【図１Ａ】
0005548214.tif 000002
【図１Ｂ】
0005548214.tif 000003
【図２】
0005548214.tif 000004
【図４】
0005548214.tif 000005
【図５】
0005548214.tif 000006
【図６Ｇ】
0005548214.tif 000007
【図７】
0005548214.tif 000008
【図３Ａ】
0005548214.tif 000009
【図３Ｂ】
0005548214.tif 000010
【図６Ａ】
0005548214.tif 000011
【図６Ｂ】
0005548214.tif 000012
【図６Ｃ】
0005548214.tif 000013
【図６Ｄ】
0005548214.tif 000014
【図６Ｅ】
0005548214.tif 000015
【図６Ｆ】
0005548214.tif 000016
【図６Ｈ】
0005548214.tif 000017
【図６Ｉ】
0005548214.tif 000018
【図６Ｊ】
0005548214.tif 000019