(57)【要約】  システム、方法、及び方法のための命令を含む非一時的コンピュータ可読媒体を使用して、ストレージ及びデータ処理をネットワーク側とローカルアプリケーション側との間で効率的に分割することにより、大量のデータを用いた相互作用型チャートを作成してレンダリングすることができる。いくつかの実施形態例では、これらの２つの側が互いに連動して動作し、或いは又はこれに加えて、いくつかの実施形態例では、これらが独立して及び／又は単独で機能することができる。その後、結果として得られたチャートを外部ウェブページに埋め込むことによって使用することができる。【選択図】なし【特許請求の範囲】
【請求項１】
データを管理する方法であって、
ネットワーク及びデータストレージと通信するサーバにおいて、
データを受け取るステップと、
前記データを前記データストレージに記憶させるステップと、
モバイル装置上のアプリケーションから前記ネットワークを介して、チャートを表示するために使用する前記データの一部を求める要求を受け取るステップと、
前記ネットワークを介して前記アプリケーションに送信すべき、前記要求されたデータのサブセットを決定するステップと、
前記要求されたデータの前記サブセットを、前記ネットワークを介して前記アプリケーションに送信するステップと、
前記アプリケーションから前記ネットワークを介して、前記送信したデータに関連する関連データを求める要求を受け取るステップと、
前記ネットワークを介して前記アプリケーションに送信すべき、前記要求された関連データのサブセットを決定するステップと、
前記要求された関連データの前記サブセットを、前記ネットワークを介して前記アプリケーションに送信するステップと、
を含むことを特徴とする方法。
【請求項２】
前記要求されたデータのサブセットを決定するステップは、データ集約を含む、
請求項１又はいずれかの請求項に記載の方法。
【請求項３】
前記要求されたデータのサブセットを決定するステップは、フィルタリングを含む、
請求項１又はいずれかの請求項に記載の方法。
【請求項４】
前記要求されたデータのサブセットを決定するステップは、サブビューフィルタリングを含む、
請求項１又はいずれかの請求項に記載の方法。
【請求項５】
前記チャートは、タイムチャート、ネットワークチャート、円グラフ、ファセットチャート、ジオチャート又はイベントチャートのうちの１つである、
請求項１又はいずれかの請求項に記載の方法。
【請求項６】
データ集約は、
選択されたデータフィールドのための異なる値を抽出するステップと、
各異なるフィールドのための集約アイテムを作成するステップと、
を含む、
請求項２又はいずれかの請求項に記載の方法。
【請求項７】
フィルタリングは、フィルタリング基準を用いて、前記ネットワークを介して前記アプリケーションに送信すべきデータの前記サブセットにどのデータを含めるかを判断するステップを含む、
請求項３又はいずれかの請求項に記載の方法。
【請求項８】
サブビューフィルタリングは、チャート内で利用できる前記データ全体のサブセットを選択するステップを含む、
請求項４又はいずれかの請求項に記載の方法。
【請求項９】
データを管理する方法であって、
モバイル装置上で実行される、ネットワーク及びデータストレージと通信するアプリケーションにおいて、
データをチャート化する要求をユーザから受け取るステップと、
前記チャートをレンダリングするために使用すべきデータを求める要求を、前記ネットワークを介してネットワークサーバに送信するステップと、
前記要求したデータのサブセットを受け取るステップと、
前記要求したデータのサブセットを前記データストレージに記憶させるステップと、
前記記憶された要求したデータのサブセットを用いて、前記モバイル装置上に表示するチャートをレンダリングするステップと、
前記レンダリングされたチャートに関する入力を前記ユーザから受け取るステップと、
前記記憶された要求したデータのサブセットに関連する関連データを求める要求を前記ネットワークサーバに送信するステップと、
前記要求した関連データの前記サブセットを受け取るステップと、
前記受け取った前記要求した関連データのサブセットを記憶させるステップと、
前記記憶された受け取った前記要求した関連データのサブセットを用いて、前記レンダリングされたチャートを変更するステップと、
を含むことを特徴とする方法。
【請求項１０】
前記チャートは、タイムチャート、ネットチャート、円グラフ、ファセットチャート、ジオチャート、又はイベントチャートのうちの１つである、
請求項９又はいずれかの請求項に記載の方法。
【請求項１１】
前記アプリケーションは、前記ユーザが相互作用する視覚的ヒントをさらに表示させ、前記視覚的ヒントは、前記モバイル装置との相互作用時に表示できるデータの図形的指示を含む、
請求項１０又はいずれかの請求項に記載の方法。
【請求項１２】
前記レンダリングされたチャートが、前記モバイル装置上でユーザによる相互作用を受けた時に、
チャート変更を受け取った時に該チャート変更を待ち行列に入れるステップと、
前記チャートがレンダリングされる前の予め選択された時点まで前記チャートの更新を先送りするステップと、
を含む、
請求項９又はいずれかの請求項に記載の方法。
【請求項１３】
前記ユーザから受け取られた前記入力は、前記アプリケーションに、前記ネットワークサーバにさらに多くのデータを要求させる、
請求項９又はいずれかの請求項に記載の方法。
【請求項１４】
前記チャート内でレンダリングされる前記データ量を減少させるために、受け取ったデータに対して、前記データストレージに記憶されたライブラリからのフィルタを使用するステップをさらに含む、
請求項９又はいずれかの請求項に記載の方法。
【請求項１５】
新規データ、又は既存データの更新を求めて、前記ネットワークサーバに一定の時間間隔でクエリを送信するステップをさらに含む、
請求項９又はいずれかの請求項に記載の方法。
【請求項１６】
前記アプリケーションは、前記ネットワークサーバから前記さらに多くのデータを受け取り、前記さらに多くのデータを用いて、変更されたチャートを表示させる、
請求項１３又はいずれかの請求項に記載の方法。
【請求項１７】
前記チャートは、円グラフであり、前記視覚的ヒントは、前記円グラフの前記中央にレンダリングされた要約チャートを含み、前記中央の円グラフ内のスライスのためのハイライトヒントがレンダリングされる、
請求項１１又は他のいずれかの請求項に記載の方法。
【請求項１８】
データを管理する方法のためのコンピュータ実行可能命令を有する非一時的コンピュータ可読媒体であって、前記命令は、
モバイル装置上で実行される、ネットワーク及びデータストレージと通信するアプリケーションにおいて、
データをチャート化する要求をユーザから受け取るステップと、
前記チャートをレンダリングするために使用すべきデータを求める要求を、前記ネットワークを介してネットワークサーバに送信するステップと、
前記要求したデータのサブセットを受け取るステップと、
前記要求したデータのサブセットを前記データストレージに記憶させるステップと、
前記記憶された要求したデータのサブセットを用いて、前記モバイル装置上に表示するチャートをレンダリングするステップと、
前記レンダリングされたチャートに関する入力を前記ユーザから受け取るステップと、
前記記憶された要求したデータのサブセットに関連する関連データを求める要求を前記ネットワークサーバに送信するステップと、
前記要求した関連データの前記サブセットを受け取るステップと、
前記受け取った前記要求した関連データのサブセットを記憶させるステップと、
前記記憶された受け取った前記要求した関連データのサブセットを用いて、前記レンダリングされたチャートを変更するステップと、
を含む、
ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１９】
前記ユーザから受け取られた前記入力は、前記アプリケーションに、前記ネットワークサーバにさらに多くのデータを要求させる、
請求項１８又はいずれかの請求項に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記命令は、前記チャートをレンダリングする前記データ量を減少させるために、受け取ったデータに対して、ローカルに記憶されたライブラリからのフィルタを使用するステップをさらに含む、
請求項１８又はいずれかの請求項に記載の非一時的コンピュータ可読媒体。
【請求項２１】
前記命令は、新規データ、又は既存データの更新を求めて、前記ネットワークサーバに一定の時間間隔でクエリを送信するステップをさらに含む、
請求項１８又はいずれかの請求項に記載の非一時的コンピュータ可読媒体。
【請求項２２】
前記チャートは、タイムチャートであり、前記アプリケーションは、水平スワイプのユーザ入力に応答して前記タイムチャート上の時間範囲をさらに変更する、
請求項１８又はいずれかの請求項に記載の非一時的コンピュータ可読媒体。
【請求項２３】
前記アプリケーションは、ユーザ入力に応答して、円グラフとネットワークチャートとの組み合わせをレンダリングする、
請求項１８又はいずれかの請求項に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照〕
本出願は、２０１５年３月１３日に出願された米国仮特許出願第６２／１３３，１８３号に関連し、その優先権を主張するものである。
【０００２】
本出願は、ネットワークコンピュータの分野、並びにコンピュータアプリケーション及び／又はウェブサイトに追加される相互作用的チャートの作成に関する。
【背景技術】
【０００３】
これまでは、相互作用可能な機能を有するソフトウェアアプリケーションに開発者がチャートを追加することは困難であった。現在では、これまでに見たこともない速度でデータの取り込み及び作成が行われている。今日のコンピュータ世界において日々収集されるデータの量は、ほんの数十年前に収集されたデータの数年分に等しい。このデータは、ほぼ全ての近代産業において分析及び意思決定に使用されている。しかしながら、大量のデータを分析して人間が理解しやすい形に変化させるには課題が伴うこともある。さらに、このような量のデータを理解しやすい形で表示することは困難である。しばしば、過剰な量のデータはユーザにとって邪魔になり、理解すべき何層ものデータとの相互作用及びその表示のための論理的方法は存在しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書に開示する例は、ソフトウェアアプリケーションにチャートを追加する方法及びシステムを含む。データを管理するシステム及び方法が、ネットワーク及びデータストレージと通信するサーバにおいて、データを受け取るステップと、データをデータストレージに記憶させるステップと、モバイル装置上のアプリケーションからネットワークを介して、チャートを表示するために使用するデータの一部を求める要求を受け取るステップと、ネットワークを介してアプリケーションに送信すべき、要求されたデータのサブセットを決定するステップと、要求されたデータのサブセットを、ネットワークを介してアプリケーションに送信するステップと、アプリケーションからネットワークを介して、送信したデータに関連する関連データを求める要求を受け取るステップと、ネットワークを介してアプリケーションに送信すべき、要求された関連データのサブセットを決定するステップと、要求された関連データのサブセットを、ネットワークを介してアプリケーションに送信するステップとを含む。これとは別に、又はこれに加えて、要求されたデータのサブセットを決定するステップは、データ集約を含む。これとは別に、又はこれに加えて、要求されたデータのサブセットを決定するステップは、フィルタリングを含む。これとは別に、又はこれに加えて、要求されたデータのサブセットを決定するステップは、サブビューフィルタリングを含む。これとは別に、又はこれに加えて、チャートは、タイムチャート、ネットワークチャート、円グラフ、ファセットチャート、ジオチャート又はイベントチャートのうちの１つである。これとは別に、又はこれに加えて、データ集約は、選択されたデータフィールドのための異なる値を抽出するステップと、各異なるフィールドのための集約アイテムを作成するステップとを含む。これとは別に、又はこれに加えて、フィルタリングは、フィルタリング基準を用いて、ネットワークを介してアプリケーションに送信すべきデータのサブセットにどのデータを含めるかを判断するステップを含む。これとは別に、又はこれに加えて、サブビューフィルタリングは、チャート内で利用できるデータ全体のサブセットを選択するステップを含む。
【０００５】
データを管理するシステム及び方法は、モバイル装置上で実行される、ネットワーク及びデータストレージと通信するアプリケーションにおいて、データをチャート化する要求をユーザから受け取るステップと、チャートをレンダリングするために使用すべきデータを求める要求を、ネットワークを介してネットワークサーバに送信するステップと、要求したデータのサブセットを受け取るステップと、要求したデータのサブセットをデータストレージに記憶させるステップと、記憶された要求したデータのサブセットを用いて、モバイル装置上に表示するチャートをレンダリングするステップと、レンダリングされたチャートに関する入力をユーザから受け取るステップと、記憶された要求したデータのサブセットに関連する関連データを求める要求をネットワークサーバに送信するステップと、要求した関連データのサブセットを受け取るステップと、受け取った要求した関連データのサブセットを記憶させるステップと、記憶された受け取った要求した関連データのサブセットを用いて、レンダリングされたチャートを変更するステップとを含む。これとは別に、又はこれに加えて、チャートは、タイムチャート、ネットチャート、円グラフ、ファセットチャート、ジオチャート、又はイベントチャートのうちの１つである。これとは別に、又はこれに加えて、アプリケーションは、ユーザが相互作用する視覚的ヒントをさらに表示させ、視覚的ヒントは、モバイル装置との相互作用時に表示できるデータの図形的指示を含む。これとは別に、又はこれに加えて、レンダリングされたチャートは、モバイル装置上でユーザによる相互作用を受け、チャート変更を受け取った時に、このチャート変更を待ち行列に入れ、チャートがレンダリングされる前の予め選択された時点までチャートの更新を先送りする。これとは別に、又はこれに加えて、ユーザから受け取られた入力は、アプリケーションに、ネットワークサーバにさらに多くのデータを要求させる。これとは別に、又はこれに加えて、チャート内でレンダリングされるデータ量を減少させるために、受け取ったデータに対して、データストレージに記憶されたライブラリからのフィルタを使用する。これとは別に、又はこれに加えて、新規データ、又は既存データの更新を求めて、ネットワークサーバに一定の時間間隔でクエリを送信する。これとは別に、又はこれに加えて、アプリケーションは、ネットワークサーバからさらに多くのデータを受け取り、このさらに多くのデータを用いて、変更されたチャートを表示させる。これとは別に、又はこれに加えて、チャートは、円グラフであり、視覚的ヒントは、円グラフの中央にレンダリングされた要約チャートを含み、中央の円グラフ内のスライスのためのハイライトヒントがレンダリングされる。
【０００６】
データを管理する方法のためのコンピュータ実行可能命令を有する非一時的コンピュータ可読媒体であって、命令は、モバイル装置上で実行される、ネットワーク及びデータストレージと通信するアプリケーションにおいて、データをチャート化する要求をユーザから受け取るステップと、チャートをレンダリングするために使用すべきデータを求める要求を、ネットワークを介してネットワークサーバに送信するステップと、要求したデータのサブセットを受け取るステップと、要求したデータのサブセットをデータストレージに記憶させるステップと、記憶された要求したデータのサブセットを用いて、モバイル装置上に表示するチャートをレンダリングするステップと、レンダリングされたチャートに関する入力をユーザから受け取るステップと、記憶された要求したデータのサブセットに関連する関連データを求める要求をネットワークサーバに送信するステップと、要求した関連データのサブセットを受け取るステップと、受け取った要求した関連データのサブセットを記憶させるステップと、記憶された受け取った要求した関連データのサブセットを用いて、レンダリングされたチャートを変更するステップとを含む。これとは別に、又はこれに加えて、ユーザから受け取られた入力は、アプリケーションに、ネットワークサーバにさらに多くのデータを要求させる。これとは別に、又はこれに加えて、命令は、チャートをレンダリングするデータ量を減少させるために、受け取ったデータに対して、ローカルに記憶されたライブラリからのフィルタを使用するステップをさらに含む。これとは別に、又はこれに加えて、命令は、新規データ、又は既存データの更新を求めて、ネットワークサーバに一定の時間間隔でクエリを送信するステップをさらに含む。これとは別に、又はこれに加えて、チャートは、タイムチャートであり、アプリケーションは、水平スワイプのユーザ入力に応答してタイムチャート上の時間範囲をさらに変更する。これとは別に、又はこれに加えて、アプリケーションは、ユーザ入力に応答して、円グラフとネットワークチャートとの組み合わせをレンダリングする。
【０００７】
以下、本発明を理解するとともに、本発明を実際にどのようにして実施できるかを確認するために、添付図面を参照しながら実施形態をほんの非限定的な例として説明する。
【図面の簡単な説明】
【０００８】
【図１】本明細書の例によるネットワーク図の例である。
【図２】本明細書で説明するいくつかの例による、ネットワークサーバの視点から見たフローチャート例である。
【図３】本明細書で説明するいくつかの例による、モバイル装置上で実行中のアプリケーションから見た別のフローチャート例である。
【図４Ａ】本明細書で説明する例による構成要素のチャート例である。
【図４Ｂ】本明細書で説明する例による構成要素のチャート例である。
【図４Ｃ】本明細書で説明する例による構成要素のチャート例である。
【図４Ｄ】本明細書で説明する例による構成要素のチャート例である。
【図４Ｅ】本明細書で説明する例による構成要素のチャート例である。
【図５Ａ】本明細書で説明する例によるネットチャート例である。
【図５Ｂ】本明細書で説明する例によるネットチャート例である。
【図５Ｃ】本明細書で説明する例によるネットチャート例である。
【図５Ｄ】本明細書で説明する例によるネットチャート例である。
【図５Ｅ】本明細書で説明する例によるネットチャート例である。
【図６Ａ】本明細書で説明する例による円グラフ例である。
【図６Ｂ】本明細書で説明する例による円グラフ例である。
【図６Ｃ】本明細書で説明する例による円グラフ例である。
【図６Ｄ】本明細書で説明する例による円グラフ例である。
【図６Ｅ】本明細書で説明する例による円グラフ例である。
【図６Ｆ】本明細書で説明する例による円グラフ例である。
【図６Ｇ】本明細書で説明する例による円グラフ例である。
【図６Ｈ】本明細書で説明する例による円グラフ例である。
【図７】本明細書で説明する例によるファセットチャート例である。
【図８Ａ】本明細書で説明する例によるイベントチャート例である。
【図８Ｂ】本明細書で説明する例によるイベントチャート例である。
【図９】本明細書で説明する例による地理的チャート例である。
【図１０】本明細書で説明する例を実施するために使用されるコンピュータシステム例である。
【発明を実施するための形態】
【０００９】
以下、添付図面に例を示す実施形態を詳細に参照する。以下の詳細な説明では、本明細書に示す主題を十分に理解できるように、数多くの具体的な詳細を示す。しかしながら、当業者には、これらの具体的な詳細を伴わずに主題を実施できることが明らかであろう。さらに、本明細書で説明する特定の実施形態は一例として示すものであり、本発明の範囲をこれらの特定の実施形態に限定するために使用すべきではない。その他の場合、本発明の実施形態の態様を不必要に曖昧にしないように、周知のデータ構造、タイミングプロトコル、ソフトウェア動作、手順及び構成要素については詳細に説明していない。
【００１０】
概要
いくつかの例では、本明細書に開示するシステム及び方法が、データを分析し、データをチャート化し、チャート化したデータを視覚的に表現して人間が理解しやすい形態で出力するために有用となり得る。いくつかの種類の形態としては、以下に限定するわけではないが、スライド表現、文書レポート、スプレッドシート、又は他のいずれかの種類の視覚的表示を挙げることができる。消費者は、後でこれらのデータの視覚的表現がウェブページ及び／又はモバイルアプリケーションの実装に有用であると感じることができる。
【００１１】
本システム及び方法を使用して、ストレージ及びデータ処理をネットワーク側とローカルアプリケーション側との間で効率的に分割することにより、大量のデータを用いた相互作用型チャートを作成してレンダリングすることができる。いくつかの実施形態例では、これらの２つの側が互いに連動して動作し、或いは又はこれに加えて、いくつかの実施形態例では、これらが独立して及び／又は単独で機能することができる。その後、結果として得られたチャートを外部ウェブページに埋め込むことによって使用することができる。
【００１２】
本明細書では、以下に限定するわけではないが、タイムチャート、ネットチャート、円グラフ、ファセットチャート、イベントチャート及びジオチャート（地理）を含む多くの異なる種類のチャートを開示する。各チャートを特定の状況で使用して、ユーザにとって最良にデータを視覚化することができる。これらのチャートについては、以下でビッグデータを管理可能なデータに変化させるシステム及び方法と共に開示する。
【００１３】
図１は、本明細書で説明する方法を実施するために使用できるシステムネットワーク例を示すネットワーク図である。この例では、バックエンドサーバ又はサーバ１２０がネットワーク１２４と通信している。バックエンドサーバ１２０は、データストレージ１３０とのローカルな通信、又はネットワーク１２４を介したネットワークストレージ１３２との通信も行っている。ネットワーク１２４は、ＷｉＦｉホットスポット１４２及び／又はセルラータワー１４４などの無線機、又は他のいずれかの無線通信方法を利用し、インターネットサービスプロバイダ／モバイル加入者ネットワークなどのいずれかの種類の無線通信システムを介した、バックエンドサーバ１２０から様々なモバイル装置１４０のうちのいずれかへの通信も可能にする。非モバイルコンピュータシステムには、有線ネットワーク１４６を使用することもできる。
【００１４】
以下で説明するように、本システム及び方法では、データをバックエンドシステム１３０、１３２に記憶するとともに、クライアント側のモバイル装置上で実行されるアプリケーションを通じてモバイル装置自体１４０にローカルに記憶することもできる。このようにすると、バックエンドシステム１２０は、一般的に使用されるデータの回収を容易にするために、どのデータをどこに記憶するかを割り当てることができるようになる。
【００１５】
なお、本開示のクライアントコンピュータ及びモバイル装置は、ポータブルコンピュータ装置を含むあらゆる種類のコンピュータ装置を含むことができる。モバイル装置とは、多くの場所で使用するように設計された、少なくともＣＰＵ、ＲＡＭ、ディスプレイ及びストレージ、及び／又はネットワーク接続機能を含む装置のことである。例としては、以下に限定するわけではないが、スマートフォン、タブレット、ファブレット、ラップトップ、メガネ、時計、ブレスレット、ヘッドセットなどのウェアラブル、自動車統合システムなどが挙げられる。あらゆる種類のポータブルコンピュータ装置を使用することができる。これには、セルラーネットワーク、ＷｉＦｉネットワーク、ピコセルネットワーク、Ｂｌｕｅｔｏｏｔｈ、近距離通信、衛星、又は他のいずれかの種類の無線通信などのいずれかの種類のネットワークを介して無線で送受信を行うモバイル装置が含まれる。
【００１６】
データストレージ及び処理：サーバ及びローカル
データ処理は、サーバからデータチャンクを受け取ることから、このデータをディスプレイエンジンに転送してコンピュータ画面上にレンダリングするまでの全てを幅広く含む。サーバ側又はモバイルクライアント側におけるこのようなデータの処理及び記憶は、ソフトウェアの性能についての、並びにこのようなデータをいかに効率的に及び／又は素早く分析し、計算し、最終的にチャートフォーマットで表示できるかについての実際の結果をもたらすことができる。従って、本システム及び方法を使用して、大量のデータを１つの単位として取り扱うのではなく、データをサブセット単位でどこにどのように記憶して処理すべきかを判断することができる。
【００１７】
バックエンドサーバでは、モバイルクライアント装置又は有線クライアント装置であるローカルコンピュータよりも多くのデータストレージ、さらには処理能力を全体として利用することができる。しかしながら、実際には、サーバに記憶されたデータへのアクセス及び処理能力は、サーバのデータストレージのサブセットであるローカルデータキャッシュを利用するよりも低効率及び低速となり得る。ローカルプロセッサを使用した場合でも、ネットワークサーバを利用する場合より効率的になり得る。本システム及び方法の主題は、このデータ共有のバランス及びトレードオフである。
【００１８】
データのロード
上記のシナリオで説明したように、ネットワークシステムは、大量のデータを取り扱うために、ネットワークサーバから一定量のデータをダウンロードしてローカルシステムに記憶すべきであると判断することができる。このようなデータは、最初にローカルシステムにロードすることも、或いは増分的に及び／又はオンデマンドでロードすることもできる。チャートビューの更新、又はユーザによるチャートとの相互作用が行われると、システムは、どのデータが必要であるかを判断してネットワークサーバに要求を行う。このデータ要求は、素早く応答が生成されて不必要に余分なデータが送信されないように、データ範囲を制限するパラメータを含むことができる。
【００１９】
例えば、タイムチャートは、ｆｒｏｍＴｉｍｅｓｔａｍｐ、ｔｏＴｉｍｅｓｔａｍｐ及びａｇｇｒｅｇａｔｉｏｎＵｎｉｔといった制限パラメータを有することができる。タイムチャート内に表示される各データアイテムは、秒単位又はミリ秒単位のＵｎｉｘタイムスタンプを含むタイムスタンプフィールドを有することができる。ａｇｇｒｅｇａｔｉｏｎＵｎｉｔは、年、月、週、日、時間、分、秒、ミリ秒及びその他を可能な値として、戻されるデータの細分性を指定することができる。データベースサーバは、この制限パラメータを使用して、必要なデータのみを戻す適切なデータベースクエリを構築することができる。円グラフ及びファセットチャートは、ｄｒｉｌｌｄｏｗｎＩｄ、ｏｆｆｓｅｔ及びｌｉｍｉｔを有することができる。
【００２０】
大量のデータが必要な場合には、それぞれが必要なデータの小区分のためのものである複数の後続する又は同時のデータ要求を行うことが有用となり得る。小区分の形成には、既存のパラメータを使用することができる。このように要求を分割すると、最も関連性の高い必要なデータがローカルに記憶されるので、チャートの反応性を高めることができる。
【００２１】
データキャッシュ
データ要求を最小限に抑えるために、受け取ったデータは、モバイル装置又はクライアントコンピュータのランダムアクセスメモリ（ＲＡＭ）を使用できるアプリケーション側のチャートキャッシュに一時的に記憶することができる。このようなデータは、サーバ要求に使用される同じ制限パラメータに従って体系化することができ、従ってシステムは、レンダリングのためにデータが必要になると、ビュー制限をキャッシュ済みのデータ制限と比較して、必要な全てのデータを既にキャッシュが有しているかどうかを判断することができる。キャッシュが部分的なデータセットしか有していない場合には、欠落部分のみを要求するようにサーバへのデータ要求をスリム化し、これによって時間及び処理電力を節約することができる。
【００２２】
データ使用
これとは別に、又はこれに加えて、本システム及び方法が利用する別の特徴は、同じデータセットから多くのチャートを構築して異なる形で視覚化することである。例えば、データアイテムがタイムスタンプフィールドと地理的座標の両方を有しているとする。例えば、ニュースアイテムを含むニュースフィードでは、各アイテムが公開日及び地理的位置を有する。アプリケーション開発者は、指定されたデータフォーマットでアイテムリストを生成することができる。公開日は、Ｕｎｉｘタイムスタンプフォーマットに変換し、位置は、地理的座標の対に変換することができる。これとは別に、又はこれに加えて、タイムチャート及びジオチャートを横並びに表示して同じデータの２つのビューを示すアプリケーションを作成することもできる。
【００２３】
データ更新
これとは別に、又はこれに加えて、別の特徴は、データを表示し、このデータを定期的に更新してチャート内に表示されるようにすることである。この特徴は、データが利用可能になった時にモニタするのに有用となり得る。本システム及び方法は、新たなデータを特定の間隔で繰り返しサーバに問い合わせることによって、又は既存データを単純に更新することによってこの特徴を実装することができる。
【００２４】
全ての可視範囲を単純にサーバに要求すると、システムサーバ及びネットワーク帯域幅にストレスが加わることがある。この問題を正すために、専用ライブラリを使用する本システム及び方法は、要求に制限を加えることができる。これらの制限は、キャッシュ内の特定のタイムスタンプから現在のタイムスタンプにまで及ぶことができる。この結果、要求が非常に小さくなり、通常はたったの数秒にしか及ばない。サーバがデータを集約しており、最後の期間内に新たなデータを受け取った可能性もあるので、実際にはキャッシュ内の最後の時間単位にわたるデータをリフレッシュすることが有用となり得る。
【００２５】
別のリアルタイム問題は、現時点のタイムスタンプに至るまでデータを利用できない点である。これには、前の要求で受け取った最新データのタイムスタンプから開始するように要求制限を形成することによって対処することができる。このようにして、サーバが最後の１秒に至るまでデータを戻さずに、後で別の要求中に戻す機会を有することを容認することができる。
【００２６】
これとは別に、又はこれに加えて、複数のチャート方法を用いて特定のチャートをリアルタイムデータで更新することもできる。１つの更新例では、システムが、チャートのためのデータ要求を定期的にサーバに発行する。この方法は、サーバの修正を全く必要としない。ベースデータのロードの場合と同じ要求方法を用いてクエリを実行する。このような要求は、以下に限定するわけではないが、毎秒、１／２秒毎、２秒毎などを含むあらゆるレートとすることができる。
【００２７】
これとは別に、又はこれに加えて、別のチャート更新方法として、新たなデータが利用可能になった時に送信するようにサーバに命令することもできる。この方法は、ＷｅｂＳｏｃｋｅｔｓ又はＷｅｂＲＴＣリンク、又はサーバ主導の通信を可能にする他の技術を用いて行うことができる。システムは、この方法を使用して、チャートのための新たなデータアイテムを受け取った時にこれらを処理し、この新たなデータアイテムをキャッシュに追加することができる。これにより、チャートの表示更新を開始することができる。
【００２８】
リンクされたチャート
これとは別に、又はこれに加えて、いくつかの実施形態例では、チャートを互いにリンクさせ、１つのチャートが使用するデータを別のチャートと共有することもできる。リンクされたチャートは、データ内で反映される時間量などのパラメータを共有することもできる。このような例では、リンクされたチャートパラメータがデータのためのフィルタの役割を果たして、表示すべきデータの種類及び／又は特徴を制限することができる。
【００２９】
図２は、バックエンドネットワークサーバの視点から見たデータ要求シナリオ例を示すフローチャートである。最初に２０２において、サーバが、チャート化に使用するデータを受け取って記憶させる。次に２０４において、サーバが、モバイル装置上で実行中のモバイルアプリケーションから要求を受け取る。この要求は、モバイルアプリケーションがチャート化すべきデータを求めるものである。次に２０６において、サーバが、要求されたデータのサブセットのみをチャート化アプリケーションに送信する必要があると判断する。この判断は、以下でさらに詳細に説明するような多くの変数を含み、異なる形を取ることができる。次に２０８において、サーバは、ネットワークを介してアプリケーションから、最初に送信したデータに関するデータを求める後続の要求を受け取る。この要求は、アプリケーションとのユーザインタラクション、及びアプリケーションがチャート内でさらに多くのデータを公開する必要性に応答して生成することができる。最後に２１０において、サーバが、インターネットを介してアプリケーションに送信すべき要求された関連データのサブセットを決定して要求に応え、アプリケーションによるチャートの増強を可能にし、又は必要に応じて他のデータを表示させることができる。最後の２つのステップ２０８、２１０は、ユーザがチャート及びアプリケーションと相互作用する際に、必要に応じて繰り戻すことができる。
【００３０】
図３は、モバイル装置又は何らかのタイプのクライアントコンピュータ上で実行中のアプリケーションの視点から見たデータ要求シナリオ例を示すフローチャートである。最初に３０２において、アプリケーションが、特定のデータをチャート化するためのユーザ要求を受け取る。次に３０４において、アプリケーションが、チャートに必要なデータを求める要求を、ネットワークを介してネットワークサーバに送信する。次に３０６において、アプリケーションが、使用するチャートの作成に必要なデータのサブセットをネットワークサーバから受け取る。サブセットに何が含まれるかについての決定は、本明細書で説明するような多くの変数に基づくことができる。次に３０８において、アプリケーションが、このデータのサブセットを使用して、ユーザのためにチャートを作成及び／又はレンダリングすることができる。次に３１０において、アプリケーションが、チャートのレンダリングに使用したデータに関連する何らかのデータを求める要求をユーザから受け取ることができる。この要求は、他のデータの探索、データの特定の側面に関するさらに多くの発見、チャートのビューの変更、又は本明細書で説明するあらゆる数の他の事項のために、ユーザがモバイル装置及びアプリケーションとの相互作用を通じて行うことができる。次に３１２において、アプリケーションが、ネットワークを介してサーバに関連データを求める要求を返送する。次に３１４において、アプリケーションが、要求した関連データのサブセットをサーバから受け取り、チャートの増強、変更、又はユーザに対する関連データの表示を引き起こす（３１６）。これらの最後の４つのステップ３１０、３１２、３１４、３１６は、ユーザが自身のモバイル装置及びアプリケーションを介してチャートと相互作用している間に、必要に応じて繰り戻すことができる。
【００３１】
送信データの決定
本システムは、どのデータ及びどれほどのデータ量をネットワーク側で保持すべきか、並びにローカルアプリケーション側にどれを送信すべきかを決定することができる。これを行う方法及びどのデータを送信すべきかについての決定には、それぞれが独立した又は互いに関連する少なくとも３つの異なる方法が関与することができる。これらの３つの例は、１−データ集約、２−フィルタリング及び３−サブビューを含む。これらの３つの方法全てを連動して又は単独で使用して所望のユーザ体験を実現し、チャート性能に影響を与えることが望ましい場所へのデータの記憶を可能にすることができる。なお、各異なる種類のチャートは独自の構成を有することができ、各チャートは、本明細書で説明する３つの方法を用いて別様にデータ選択に影響を与えることができる。
【００３２】
１−データ集約
大量データの作成に役立つ方法についての第１の例は、本システム及び方法を使用して、表示するデータをチャート形式で集約することを含む。このような集約を実行できる方法は複数存在する。本明細書で説明するようなバックエンドシステムは、大量のデータをチャートとして表示する管理可能なデータセットに変化させるために多くの異なる集約アルゴリズムを利用することができる。
【００３３】
例えば、集約を使用して、選択されたフィールドの異なる値を抽出し、各異なる値のための集約アイテムを作成することができる。このような例を使用して、選択された集約関数（例えば、ｍｉｎ、ｍａｘ、ａｖｅｒａｇｅ）を用いて他のフィールドを計算し、これらのフィールドに含まれる個々のアイテムを確認するために集約アイテムに掘り下げる方法を提供することができる。複数の集約レベルを用いて掘り下げの細分性を達成し、各レベルで提示されるアイテム数を制限することができる。カレンダー単位の複数のレベルの一例は、年／月／日／時間／分とすることができる。別の例として、自動車メーカー／車種／製造年度などの異なるカテゴリフィールドを使用することもできる。モデル毎の車の数を含む新たなフィールドを自動的に追加することもできる。
【００３４】
集約は、ネットワークサーバ上で行うことができ、その後に、既に集約された要約データをクライアントアプリケーションにダウンロードして表示することができる。しかしながら、このような方法例では、ユーザが、異なる集約モードを頻繁に切り替えたいと望む際には、サーバが新たな集約基準に対応する新たなデータセットを準備するのを待つ必要があるので、課題が生じることもある。
【００３５】
本明細書のいくつかの実施形態は、集約に対処する相互作用性の高い方法を可能にする。例えば、いくつかの例では、頻繁に変更される集約動作をクライアントアプリケーション内で実行することができる。しかしながら、非集約データが大きすぎて実質的にクライアントアプリケーションにダウンロードできない場合、本システム及び方法は、いくつかのフィールドの集約をバックエンドサーバで実行し、変更頻度の高いフィールドをモバイルアプリケーションに送信してクライアント側で集約するハイブリッドモデルを使用することができる。
【００３６】
フィールドの選択は、開発者が指定することも、又はユーザ行動に基づいて自動的に検出することもできる。
【００３７】
２−フィルタリング
これとは別に、又はこれに加えて、大量のデータをチャート形式で理解しやすくするのに役立つ方法の第２の例は、本システム及び方法を使用して、表示するデータをフィルタリングすることを含む。本システム及び方法は、クライアント側及び／又はサーバ側の両方におけるデータフィルタリングを提供することができる。いくつかの例では、データベースサーバのための新たなクエリを準備することによってこのようなフィルタの適用を実装することができ、結果的に所望の応答時間よりも長くなることがある。より良好な応答を実現するために、本システム及び方法は、ライブラリを使用して、ネットワークサーバの関与を伴わずにローカルフィルタリングを活用することができる。このローカルフィルタリングは、データベースサーバの代わりにローカルデータキャッシュを用いて実装することができる。
【００３８】
このようなクライアント側のフィルタリングは、クライアントのローカルデータキャッシュに既にロードされているデータに対していくつかのフィルタリングルールを適用することによって行うことができる。この結果、フィルタリングルールに一致するアイテムのみが視覚化された新たなチャートビューが得られる。フィルタリング基準は、ＡＰＩ及びＣｈａｒｔ  Ｃｏｎｔｒｏｌｓなどの様々な方法を通じて、エンドユーザが望む視覚化及び／又はシステムが統合された他の要素を実現するように修正することができる。
【００３９】
いくつかの例では、ユーザが、相互作用的データフィルタリングを通じていくつかのデータフィルタ基準を指定してフィルタに一致するデータを見ることができる。例えば、ユーザは、ネットワークチャート内でいくつかの基準に一致するノードのみを見ることを選択することができる。基準に一致しないノードは、非表示又は非アクティブにすることができる。
【００４０】
３−サブビューフィルタリング
これとは別に、又はこれに加えて、大量のデータをチャート形式で理解しやすくするのに役立つ方法の第３の例は、本システム及び方法を使用して、表示するデータをサブフィルタリングすることを含む。サブビューは、特定のチャートで使用できるデータ全体のサブセットをシステムが選択する特殊なタイプのフィルタリングを含むことができる。表示すべきデータのサブセットの選択は、ユーザがどのチャートタイプを指定するかに依存することができる。例えば、タイムチャートでは、Ｘ軸上で選択された時間範囲が、視覚化されるデータのサブセットを決定することができる。例えば、円グラフでは、「ｐｒｅｖｉｏｕｓ（以前）」及び「ｏｔｈｅｒｓ（その他）」というナビゲーション状態が、データセットのどの部分をチャート内で視覚化するかを決定することができる。ネットワークチャートでは、可視データのサブセットが、初期セットアップ、ＡＰＩを通じたユーザインタラクション及びその他の相互作用によって決定できるチャート内のアクティブノードに依存することができる。ファセットチャート例では、表示すべきデータセットを所定数のアイテムが形成することができるが、異なるナビゲーション方法を用いて目に見えるデータのサブセットを変更することもできる。タイムチャートは、時間軸上の自動集約、及び開発者が提供するフィルタリング用のフィルタ関数を使用することができる。円グラフは、ユーザが指定した集約に使用するデータフィールドリスト、及び開発者が提供するフィルタリング用のフィルタ関数を使用することによって集約を提供する。ネットワークチャートは、開発者が提供するフィルタリング用のフィルタ関数を受け入れる。
【００４１】
チャート例
ユーザは、自身のデータを用いて何を行いたいか、それらのデータがどのような形を取るかに応じて、多くの種類のチャートを利用して自身の消費データを分析し、操作し、表示することができる。これには、異なるチャート要素を使用して異なるデータセット、並びにタイムチャート、円グラフ、ネットチャート、ファセットチャート、イベントチャート及びジオチャートなどの異なる使用ケースに対処することが含まれる。
【００４２】
ユーザは、チャート及びグラフを相互作用的にするために、チャート及びグラフのいくつかの側面を選択してデータ視覚化の異なる側面を見ることができる。理解しやすい視覚的レンダリングに多くの情報を詰め込むために、いくつかの視覚的ヒントを用いてユーザに複数のデータ層又は視覚化オプションを示すこともできる。
【００４３】
ヒントを含むチャート
従って、これとは別に、又はこれに加えて、本システム及び方法は、様々なチャートのいずれかを通じて異なる相互作用オプションを伝える視覚的ヒント技術を使用することもできる。このような視覚的ヒントは、多くの方法で伝えることができ、ユーザによる所与のチャートの操作方法及び閲覧方法の学習を可能にすることができる。これらの視覚的ヒントは、ユーザがタップ、クリック、又は本明細書で説明する他の選択方法などのあらゆる種類の相互作用を通じて選択することができる。
【００４４】
タイムチャート例
図４Ａに、時間ベースデータの視覚化を可能にするチャートであるタイムチャート例４００を示す。タイムチャートは、関連するタイムスタンプを有する視覚化データのための要素とすることができる。タイムチャート４００は、主に時間／データ識別子を有するデータと共に機能する。ユーザは、限定するわけではないが、以下を含む多くの目的でこのようなタイムチャートを使用することができる。
【００４５】
１）全体像を確認し、本システム及び方法が提供できるナビゲーション方法を用いて詳細に切り込めるようにすること。これらのチャートは、ユーザがチャートをナビゲートするにつれてさらに詳細なデータを示す。全てのデータをサーバからクライアント装置に常にアップロードできるとは限らないので、データは、サーバ側から引き出して特定のグループでローカルにロードすることができる。
【００４６】
２）これとは別に、又はこれに加えて、ユーザが期間を選択した場合、タイムチャート要素は、他のチャート例のための時間選択要素として機能することができる。システムは、このような選択が行われるとネットワークストレージにデータを要求し、このデータを用いてさらに多くの又は異なる情報をユーザに対してチャートに表示することができる。ユーザは、タイムチャートを使用して所望の年／月／日、又は他のいずれかの期間を選択することができる。新たな時間範囲が選択されると、システムは、リンクされたチャート及び／又はその他の要素に、期間が変更されたことによって、リンクされたエンティティの更新及び選択期間のみにわたるデータ表示ができるようになった旨を通知することができる。
【００４７】
３）これとは別に、又はこれに加えて、ユーザは、データが関連している期間を発見すると、さらなる処理のためにデータを画像（ｊｐｅｇ、ｐｎｇ、ｐｄｆ、又はｃｓｖ）ファイルとしてエクスポートすることができる。
【００４８】
タイムチャートヒント例
図４Ｂに、情報ポップアップ内のデータと、シリーズの色でシリーズ名を表すサイドバーとを有するシリーズであるユーザへのヒント例を示す。この例では、２０１２年１月の列の網掛け部分４０２上にマウスが存在し、情報ポップアップ４０８内には、シリーズ４０６の名前の左側４０４に対応して網掛けされたバーが見える。
【００４９】
情報ポップアップ４０８は、情報ポップアップデータがどのデータ点を参照しているかを示す三角形を有する。選択期間は対比色で強調表示されて４１０、現在どのデータ点が選択されているかをユーザに示唆する。
【００５０】
ポップアップメニュー４０８を有するツールバーアイテムは、選択オプションのリストが存在する旨をユーザに示唆する下向き矢印を有する。
【００５１】
図４Ｃには、選択された集約単位の選択された期間におけるシリーズを表示するために現在データを利用できない旨をユーザに示すチャートヒント例を示す。
【００５２】
図４Ｄには、どの日が平日であるかをどこでユーザに示唆すべきかについての例を示しており、本システム及び方法は、これらのための異なる背景色を開発者に選択させることができる。
【００５３】
図４Ｅには、水平軸に表示された値の範囲がユーザのジェスチャ又はクリックによって変化するグラフ例を示す。この例は、ユーザがコンピュータマウス又はポインタ４４０を用いて左又は右４４２のいずれかに軸をドラッグすることによってグラフ４００上に異なるデータ点が表示されることを示す。このユーザ入力の結果、本明細書における説明に従ってさらに多くの又は異なるデータをサーバに要求することができる。
【００５４】
ネットワークチャート例
図５Ａに、グラフ及びアイテム５０２間の関係の視覚化を可能にする要素であるネットチャート例５００を示す。ネットチャート５００は、関係情報を含むデータを視覚化する要素とすることができる。ネットチャート５００は、ノード５０２、及びノード５０２間のリンク５０４などのグラフデータを具体的に表示するように設計される。ネットチャートは、限定するわけではないが、例えば以下のような視覚化に使用することができる。
【００５５】
１）ノード、アイテム及び表示されたリンクとの視覚的相互作用を通じて物事の間の関係を発見する能力。ユーザは、この視覚化によってデータネットワークのあらゆる部分を探索して関連情報を発見することができる。
【００５６】
２）これとは別に、又はこれに加えて、ユーザは、チャート内に関連ノードが見つかった時に、統合を通じてコンテンツを消費することができる。この視覚化は、異なる入力タイプに基づくいくつかの動作を結びつけることや、及び／又はポップアップ情報ウィンドウ内に補助情報を表示することなどの多くの方法で実装することができる。
【００５７】
３）これとは別に、又はこれに加えて、ある状態への更新をリアルタイムで行うこともできる。従って、この視覚化は、イベントの発生時にイベントをモニタするために使用することができる。例えば、ネットチャートを使用して、ＡＰＩ／システムコールを行ういずれかのコンピュータ装置上でプロセスリストを視覚化し、これを通じてこのようなプロセスリストを取得することができる。ノードは、消費するリソースに応じて視覚化することができ、例えば使用するＣＰＵ／Ｒａｍプロセスが多ければ多いほどノードも大きくなる。同様に、リソース消費に関する視覚的ヒントでは、最も多くのリソースを消費する子プロセスへのリンクの幅が最も広くなる。ここでは、ノードに追加入力をリンクして、プロセスに関するさらに多くの情報を取得するか、又はこれらのプロセスを停止することができる。
【００５８】
４）これとは別に、又はこれに加えて、ユーザは、放射状のレイアウトを通じて所定の順序の順序付きリストを視覚化し、従って基準画像とは異なる選択されたデータセットの構造を視覚的に示すことができる。このような視覚化は、視覚的パターン認識を通じた素早いエラーチェックを可能にすることができる。
【００５９】
図５Ｂには、グラフ５１０に関連するデータを表示する１又は２以上の図形要素に別個のグラフ５１０が追加された、ハイブリッド円グラフ及びネットチャート５００の例を示す。
【００６０】
図５Ｃには、この例ではユーザによるインターフェイス上のクリック又はタッチによって図形位置の絶対位置を変更した（５１２）時に、別個のグラフ５１０と図形要素の相対位置が一定であるハイブリッド円グラフ及びネットチャート５００の例を示す。
【００６１】
ネットワークチャートヒント
図５Ｄには、ノード５０２に付着した短線５２０などの異なる視覚的手掛かりを用いてノードが拡張可能である旨のユーザへのヒントを表示する実施形態例を示す。いくつかの実施形態では、短線５２０が、これらの線も拡張可能であることをユーザに知らせために移動又は点滅することができる。短線以外の方法を使用することもできるが、これは一例にすぎない。
【００６２】
図５Ｅには、ノード５０２がこの特定のノードに焦点を当てている旨のヒントをシステムがユーザに表示し、ノード５０２の図形表示の周囲に太い輪郭５３０を表示できる例を示す。この輪郭は、エンドユーザアプリケーションのスタイルに一致するようにノードを構成できることをユーザに指示又は示唆することができる。
【００６３】
円グラフの例
図６Ａに、値などのいずれかの手段によって比較すべきデータの視覚化を可能にする円グラフ例６００を示す。円グラフ６００は、いずれかのカテゴリパラメータによってカテゴリ化していずれかの手段によって比較できるデータの視覚化のための要素とすることができる。
【００６４】
この円グラフは、例えば、限定するわけではないが、以下の視覚化のために使用することができる。
【００６５】
１）相互作用を通じたユーザのアクセスを可能にすることができる階層化データの表示。例えば、円グラフのスライスと相互作用することにより、より細かなデータの出現、データに関するさらなる詳細などのさらに深い情報を表示させることができる。相互作用は、以下に限定するわけではないが、円グラフのスライスのクリック、タップ、ホバリング、ジェスチャなどによってさらに多くのデータを表示させることを含むことができる。このような相互作用を行うと、システムは、ローカルチャート上に表示するさらに多くの又は異なるデータをネットワーク化ストレージに要求できるようになる。いくつかの例では、円グラフとの相互作用によって表示中のスライスを隠し、「Ｐｒｅｖｉｏｕｓ（以前）」６０２と呼ばれるスライスに置き換えることができる。前のスライスに戻るには、「Ｐｒｅｖｉｏｕｓ」スライスとの相互作用によって、以前に表示されていたデータを表示させることができる。
【００６６】
２）これとは別に、又はこれに加えて、ユーザは、階層的掘り下げによっていずれかの円グラフスライスと相互作用して、データ６０４の次のレベルを見ることもできる。例えば、最上位カテゴリを最上位レベルで集約できる場合には、次のレベルのデータ６０４が上位レベル６０２に関連することができる。いずれかのカテゴリと相互作用すると、そのカテゴリの内部組成を見ることができる。いくつかの例では、スライス６０２をクリックすると、次のレベル６０４において、新たなスライスが、最上位レベルがファイル名を含むことができるなどのいくつかの動作を追加することができ、その後にスライスに相互作用すると、次のレベルにおいて、そのファイルにファイルの編集、保存、ダウンロード、削除などの動作を行うことができる。その後、ユーザは、これらのスライスの各々に特定の機能を追加することができる。
【００６７】
円グラフのヒント
図６Ａには、円グラフのスライスが拡張可能である旨をどこでユーザに示唆するかについての例を示しており、このスライスを、鋸歯状の外線６０６を用いて示す。この例では、この外線が「その他」スライス上に見える。
【００６８】
図６Ｂには、スライスがさらに深いレベルのデータを含む旨をどこでユーザに示唆するかについての例を示しており、本システム及び方法は、スライスに多重線を使用することができる。例えば、より深いレベルのデータを求めて選択できるスライスには、同心円部分６０８として示す２本線が表示されている。
【００６９】
図６Ｃには、利用可能な上位レベルの円グラフが存在する旨をどこでユーザに示唆するかについての例を示しており、円グラフの中央６１０に要約チャートを表示することができる。上位レベルの円グラフにおいてどのスライスが選択されたかをユーザに示唆するために、中央円グラフ内のそのスライスを強調表示することができ、この強調表示は、ユーザがさらに深いレベルに入った時に出現することができる。
【００７０】
図６Ｄには、「Ｐｒｅｖｉｏｕｓ」スライスを使用して、ユーザが「その他」スライス６２２を用いてデータセット内でさらに移動した旨、又はＡＰＩを通じて現在の円グラフの状態が変化したかどうかをユーザに示唆する例を示す。いくつかの実施形態では、データセット内の必要な地点にユーザをナビゲートする、ＡＰＩを介したビューのためのデータオフセットを定めることができる。この例では、見えているサブビューの外側にさらなるデータが存在する場合、「その他」スライス６２２と「Ｐｒｅｖｉｏｕｓ」スライスの両方が存在するようになる。
【００７１】
図６Ｄには、ユーザが円グラフの中央の矢印６２０をクリックすると上位レベルに移動する旨をどこでユーザに示唆すべきかについての例も示す。
【００７２】
図６Ｅには、コンピュータマウス又はタッチ画面相互作用６３０などの入力装置を用いて、集約されたスライスと相互作用できる円グラフ６００の例を示す。システムは、このような相互作用に応答して、選択されたスライスが、このスライス内で集約されたスライスに置き換わることを表示することができる。
【００７３】
図６Ｆには、表示スライス６３２に置き換わった円グラフ６００の例を示す。
【００７４】
図６Ｇには、円グラフ６００の以前のスライスのサイズが縮小され、グラフ６４０の中央の新たなスライスの上部に表示された例を示す。いくつかの例では、グラフの中心領域と相互作用することによって表示スライスを置き換えることができる。
【００７５】
図６Ｈには、タッチジェスチャの使用など、入力装置を用いてグラフを回転（６５０）させることによってスライスの削除又は追加を行うことができる円グラフ６００の例を示す。
【００７６】
ファセットチャートの例
図７に、ファセットチャート例７００を示す。ファセットチャートは、値などのいずれかの手段によって比較できるデータの視覚化を可能にする要素とすることができる。ファセットチャート７００は、いずれかのカテゴリパラメータによってカテゴリ化していずれかの手段によって比較できるデータの視覚化のための要素とすることができる。
【００７７】
このファセットチャートは、例えば、限定するわけではないが、以下の視覚化のために使用することができる。
【００７８】
１）円グラフと同様に、ファセットチャート７００は、データソース内に存在する全てのデータ点をユーザが探索できるようにする。ファセットチャートは、チャートを使用可能に保つために、１つのサブビュー内に所定数のデータ点を表示することができ、スクロールなどの相互作用方法を用いて、最初のサブビューでは見えないデータ点を探索することができる。このようにして、エンドユーザは、全てのデータを探索することができる。
【００７９】
２）これとは別に、又はこれに加えて、ファセットチャートは、データの掘り下げを可能にすることができる。ユーザがいずれかのレベルのデータ点と相互作用すると、システムは、その点のサブデータを取り出し、これを同じチャート内で視覚化させることができる。このようにして、ユーザは、直感的なナビゲーション機能を用いて膨大な量のデータをナビゲートすることができる。
【００８０】
３）これとは別に、又はこれに加えて、ファセットチャートは、同じカテゴリの横並びのデータの異なる側面からの比較を可能にすることができる。一例として、カテゴリ別の売上の比較と、特定のカテゴリの年度別の売上の比較とを１つのグラフで行うことができる。このようにして、ユーザは、ファセットチャートを用いて過去のデータを探索し、傾向の変化を見ることができる。
【００８１】
図８Ａ及び図８Ｂに、イベントチャート例８００を示す。これらのイベントチャート８００は、何らかの期間を有するデータの視覚化を可能にする。イベントチャートは、時間情報を伴うイベントの視覚化のための要素とすることができる。イベントチャートは、時間属性を有する集約されていないデータを表示するように設計される。
【００８２】
イベントチャートは、例えば、限定するわけではないが、以下の視覚化のために使用することができる。
【００８３】
１）ユーザが全体像を確認し、ユーザにとって特に重要ないずれかの期間に容易にズームインできるようにする。
【００８４】
２）これとは別に、又はこれに加えて、イベントがどのようにリンクしているか、前のイベントは何であるか、次のイベントは何であるかを確認する。
【００８５】
３）これとは別に、又はこれに加えて、様々なプロジェクトのロードマップを計画して準備する。
【００８６】
図９に、ジオチャート例（ジオグラフィック）を示す。ジオチャート９００は、ＧＰＳ（全地球測位システム）データなどのあらゆるフォーマットの位置データを含むデータの視覚化を可能にする要素である。ジオチャート９００は、地理的空間データの視覚化のための要素とすることができる。
【００８７】
ジオチャートは、地理的位置データを有するデータを視覚化できるように設計される。ジオチャートは、例えば、限定するわけではないが、以下の視覚化のために使用することができる。
【００８８】
１）例えば、地図のいずれかの地域上における円グラフ、タイムチャート、ファセットチャート、ネットチャートの表示などの、チャートオンチャート技術を用いた地理的地域内のデータの組成の視覚化を可能にする。このような例では、サブチャート内に示されるデータを、サブチャートが属する地理的地域毎に自動的にフィルタリングすることができる。
【００８９】
２）これとは別に、又はこれに加えて、ユーザは、マルチレイヤ技術を通じてチャートの視点を切り替え、いずれかの所与の時点における関連する詳細を選択することができる。
【００９０】
３）これとは別に、又はこれに加えて、ユーザは、自動データ集約オプション及び数多くの視覚化オプションを通じて、エンドユーザにとって重要な情報を未加工データから瞬時に抽出することができる。
【００９１】
入力処理
本システム及び方法は、ユーザが自身のモバイル装置及び／又は非モバイルクライアントコンピュータ、及びこれらの装置で実行中のアプリケーション上でチャート及び／又はグラフと相互作用する方法を含む。このような相互作用は、ユーザが利用している装置の能力によって制限されることがあり、例えば、高性能なスマートフォンは、タッチ画面、ＧＰＳ、音声認識、モーションキャプチャ及び仮想キーボードを有することができる。ラップトップ及び／又はその他のコンピュータ装置は、マウスパッド、タッチパッド、物理キーボード、タッチ画面、ＧＰＳなどを有することができる。アプリケーションは、この入力を受け取って使用して、ネットワークサーバに追加データを求める要求を行い、この入力を用いて異なるチャート又はチャートの変更をレンダリングし、及び／又は入力に基づいてチャートを操作することができる。以下、いくつかのカスタム入力イベント処理の実装例について説明する。
【００９２】
タッチ入力は、静電容量式タッチ画面、抵抗膜式タッチ画面、赤外線タッチ画面、その他のタッチ画面実装などのタッチ感知式装置からの入力と見なすことができ、実際のタッチイベントは、感知装置に直接的又は間接的に相互作用することによって行われる。本システム及び方法は、入力装置によって放たれた複数の同時タッチイベントに由来する異なるジェスチャをサポートすることができる。サポートされているジェスチャには、ピンチイン、ピンチアウト、左スクロール、右スクロール、上スクロール、下スクロール、回転、パンがある。２つの並行回転イベントなどの複数の同時ジェスチャもサポートされる。
【００９３】
これとは別に、又はこれに加えて、マウス入力は、コンピュータ装置に有線又は無線で接続されたマウス、トラックパッド、トラックボール、ジョイスティックなどの装置からの入力と見なすことができる。本システム及び方法は、マウス入力から、例えば、マウスムーブ、マウスイン、マウスアウト、マウスオーバー、マウスムーブ、マウスダウン、マウスアップ、マウスクリック、マウスダブルクリック、マウストリプルクリック、マウス長押し、及び上／左／右／下マウススクロールといったイベントをサポートする。
【００９４】
マウスイベントの処理時には、右クリック、左クリック、中央クリックなどのクリックボタンが区別される。
【００９５】
これとは別に、又はこれに加えて、キーボード入力は、ＪａｖａＳｃｒｉｐｔを用いて検出できる機械コードにユーザ入力を変換する物理ボタン又は仮想ボタンを有するキーボード、テンキー及びその他のパッドなどの装置からの入力と見なすことができる。サポートされるキーボードイベントには、キーダウン、キーアップ及びキー押下がある。
【００９６】
「ｓｈｉｆｔ」、「ｃｔｒｌ」、「ａｌｔ」、「ｃｏｍｍａｎｄ」、「ｏｐｔｉｏｎ」、及び／又は「ｎｕｍ−ｌｏｃｋ」「ｃａｐｓ−ｌｏｃｋ」、「ｓｃｒｏｌｌ−ｌｏｃｋ」の所与の状態などの特殊なキーとキーイベントが組み合わさっているかどうかを識別することによって、イベント状態の切り替えがサポートされる。
【００９７】
これとは別に、又はこれに加えて、装置の向き及び動きは、Ｘ軸、Ｙ軸、Ｚ軸の３つの軸における運動加速度検出、及び絶対配向情報をもたらす、装置のオリエンテーションＡＰＩを通じた入力と見なすことができる。
【００９８】
これとは別に、又はこれに加えて、ＧＰＳ位置は、装置の現在位置及び運動方向、速度、高度、及びナビゲートすべき精密データ及び視覚関連データを本システム及び方法が使用できるようにする、ロケーションサービスＡＰＩからの入力と見なすことができる。
【００９９】
これとは別に、又はこれに加えて、音声入力は、あらゆるソースからの音波を記録できる装置からの入力と見なすことができる。このような入力は、初期録音に埋め込まれた対応する意味を識別するように音声認識アルゴリズムを用いて装置上で処理できる波形デジタルデータで受け取られる。装置上の又は遠隔的なデコード技術を用いて信号を解釈することができる。この結果、本システム及び方法のＮａｖｉｇａｔｉｏｎ、Ｄａｔａ、Ｖｉｓｕａｌｉｚａｔｉｏｎ及び／又はその他の要素にコマンドを対応付けて、（例えば、選択されたチャート内のデータに「ズームイン」するナビゲーションコールを実行する「ズームイン」などの）要求された動作を実行することができる。
【０１００】
これとは別に、又はこれに加えて、視線追跡入力は、ユーザの瞳孔を記録してこれらの動きを識別できる装置からの入力と見なすことができる。三角測量技術を通じて人がどこを見ているかを判断することができ、従って、アイムーブ、アイイン、アイアウト、アイオーバ、アイブリンク、アイダブルブリンク及びアイトリプルブリンクなどのイベントが利用可能になる。
【０１０１】
２つ又は３つ以上の目を追跡する場合、マルチタッチ入力と同様にマルチ入力技術が利用可能になり、スクロール、回転、ピンチイン及びパンなどの目のジェスチャのサポートが可能になる。
【０１０２】
これとは別に、又はこれに加えて、ＡＰＩ入力を考慮することもでき、本システム及び方法は、本文書でサポートされる全ての異なる入力イベントの合成イベントをプログラム的に開始させるＡＰＩを使用することができる。これにより、２つの装置間に接続を確立できることを前提として、１つの装置上で生じた入力イベントを送信して他の（単複の）装置上でこれらを複製する可能性を広げることができる。接続は、１つの装置上の入力イベントが選択された他の装置上のチャートで瞬時に又は短時間でシミュレートされるリアルタイム、或いはユーザがイベント複製によって１つの装置上の一連のイベントを記録し、後でモバイルアプリケーション又はウェブアプリケーションにアクセスできる他のいずれかの装置上でライブラリ統合を用いて同じシーケンスを再生できる非同期のいずれかとすることができる。
【０１０３】
これとは別に、又はこれに加えて、チャート間入力を考慮することもでき、本システム及び方法を使用して、ＡＰＩを通じて他の実施形態のインスタンスと相互作用できるチャートを作成し、結果として生じる状態に応じて１つのチャート上で入力が行われた時に、リンクされたチャートインスタンスに状態更新イベントが送られるようにすることができる。リンクされたインスタンスは、リンクされたチャートインスタンスが受け取った入力イベントに応じて、要求された動作を実行する。
【０１０４】
身体部分の動き入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、ベンダが提供するＡＰＩを用いて、動いている身体部分に関する情報、並びにその初期状態及び結果として生じる状態にアクセスするチャートを作成することもできる。このような入力サポートは、本チャートとのタッチレスな相互作用を可能にする。実際の身体部分を識別するセンサ能力に応じて、規定した通りに反応する専用ライブラリのナビゲーション、視覚化、データ及び他の要素にとっていくつかの新たなイベントが利用可能になる。
【０１０５】
バロメータ入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、クライアントアプリケーションにバロメータデータを提供するＡＰＩを使用するチャートを作成することもできる。この入力を使用してナビゲーション、視覚化又はデータの状態に影響を与えることができ、与えるようになる。
【０１０６】
温度入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、クライアントアプリケーションに温度データを提供するＡＰＩを使用するチャートを作成することもできる。この入力を使用してナビゲーション、視覚化又はデータの状態に影響を与えることができ、与えるようになる。
【０１０７】
電圧入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、クライアントアプリケーションに電圧データを提供するＡＰＩを使用するチャートを作成することもできる。この入力を使用してナビゲーション、視覚化又はデータの状態に影響を与えることができ、与えるようになる。
【０１０８】
脳波入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、クライアントアプリケーションに脳波情報を提供するＡＰＩを使用するチャートを作成することもできる。この入力を使用してナビゲーション、視覚化又はデータの状態に影響を与えることができ、与えるようになる。
【０１０９】
組み合わせ入力。これとは別に、又はこれに加えて、本システム及び方法を使用して、入力イベントが異なるソースから同時に行われるような入力の組み合わせを処理することもできる。キーボードのキーダウンをマウスクリックイベントと組み合わせて、単純なクリックのデフォルト機能を増強することなどができる。
【０１１０】
相互作用データ視覚化の例
これとは別に、又はこれに加えて、データ視覚化は、ソースファイルからデータ点を取り出し、グラフィカルレンダリングを用いて、エンドユーザのコンピュータ装置上にこれらのデータ点を表示させる処理を意味することができる。相互作用データの視覚化は、本明細書で説明する１つの方法例である。このような相互作用例では、異なる人間機械インターフェイスを利用するユーザが、モバイルコンピュータ装置と相互作用して、所与の時点にディスプレイ上でどのデータ点が見えるかに影響を与え、従って最終的なレンダリング結果に影響を与えることができる。ユーザインタラクションの結果、システムは、新たなデータ点のロード／削除／更新を引き起こし、従ってＣａｎｖａｓなどの視覚化ソフトウェア上で見えるようにすることができる。従って、このような相互作用は、データエクスポートに影響を与えることもできる。
【０１１１】
例えば、ユーザがアクティブなチャートと相互作用する際に、システムは、ユーザに見えているデータセットを更新することによってチャートの状態を変化させることができる。可視データの状態は、各チャートに固有の複数のナビゲーションパラメータによって定めることができる。例えば、タイムチャートは、目に見える時間範囲及び表示単位を示すことができる。円グラフでは、これを選択されたスライス及びアクティブな円グラフとすることができる。ファセットチャートでは、これをＸ軸上のオフセット及びアクティブなデータレベルとすることができる。ネットチャートでは、これを目に見えるノード、リンク及び目に見えるサブビューエリアとすることができる。イベントチャートでは、これを目に見える時間範囲、ズームレベル及び垂直スクロールとすることができる。ジオチャートでは、これを目に見えるサブビュー、ズームレベル、選択された地域とすることができる。従って、システムがチャートの状態を変化させることによってユーザインタラクションに応答した時には、可視データの範囲が変化することもある。データがエクスポートされると可視データもエクスポートされ、従ってシステムがユーザ入力に応答してサブビュー状態を変化させると、エクスポートされたデータセットにも影響することがある。
【０１１２】
これとは別に、又はこれに加えて、本ライブラリ及びシステム及び方法は、上述したように、モバイル装置上で使用するように最適化することができる。このような実装は、タッチ、マルチタッチ、ジャイロセンサ入力、ＧＰＳセンサ入力、視線追跡サポート、音声制御などの様々なユーザインタラクションを処理するカスタムな人間機械相互作用インターフェイスの実装を有することができる。これらの入力を用いて、チャート化されたデータを操作し、表示し、相互作用することができる。
【０１１３】
本システム及び方法は、ウェブページ又はモバイルアプリケーション内の他のＪａｖａＳｃｒｉｐｔコンポーネントとプログラム的に一体化するために、幅広いＡＰＩと共に構築することができる。チャートのあらゆる側面は、設定を通じて適切なＡＰＩコールを用いていつでも変更することができる。
【０１１４】
例えば、設定を通じて、データソース、地域設定、シリーズ、値、軸、スタイル方法、フィルタ方法、エクスポート設定、高度な設定、相互作用設定、ツールバー設定、凡例設定、スタック設定、タイトル設定、定位設定、イベント、情報設定、及び本文書で定めるそれ以外のものを変更することができる。これにより、この技術を用いて作成したチャートの挙動及びルックアンドフィールの微調整及び調整を行う多くの機会をソフトウェア開発者に与えることができる。
【０１１５】
１つのこのような例では、指定されたソースからデータ点を検索して受け取り、異なるアルゴリズムを用いてＣａｎｖａｓなどの視覚化ソフトウェアツールにデータ点をレンダリングする複数のレンダリングエンジンと共に専用チャート及びグラフライブラリを使用することができる。このようなチャート及びグラフライブラリは、上述したようにＨＴＭＬ５を用いてＪａｖａＳｃｒｉｐｔで記述することができる。
【０１１６】
なお、エンジン及びライブラリは、これらの実装専用の固有のものである。このような内部アーキテクチャのカスタマイズは、拡張、高速化及び最適化を可能にする。さらに、イベントループも、双方向性処理、ナビゲーション処理、レンダリングエンジンなどの他の内部要素と同様にカスタムである。
【０１１７】
チャートのナビゲーション
これとは別に、又はこれに加えて、いくつかの実施形態例では、システムがユーザに対してディスプレイ上にチャート及び／又はグラフを表示させた時に、ユーザがチャート及び／又はグラフと相互作用することができる。ユーザは、チャート及び／又はグラフの特定のナビゲーションによって特定の方法で情報を表示し、特定のデータ面に関してさらに詳細な情報を学習し、又はビューをカスタマイズすることができる。ユーザは、ナビゲーションを通じて様々な入力動作を用いてビューパラメータを選択することができる。ユーザがモバイル装置を使用している場合、このような動作は様々とすることができる。このような装置は、ジェスチャ認識、及びＧＰＳ入力、モーションキャプチャ、姿勢情報などを相互作用に使用する。
【０１１８】
ナビゲーションジェスチャは、学習曲線を最小化にして動作効率を高めるように、できる限り自然であることが望ましい。ビューパラメータを提供する１つの方法は、例えば検索フィールドの使用によるテキストフォーマットであるが、本システム及び方法は、自然な操作ジェスチャを用いたナビゲーションを実装して、テキスト、ボタン及びメニューベースのインターフェイスを排除することができる。
【０１１９】
いくつかの例では、システムが、同じデータの異なるビューを示すために複数のチャートを作成することができる。このような例では、ユーザが１つのこのようなチャートを見ている間に行うナビゲーションが、他の対応するチャート内のフィルタをトリガすることができる。このようなチャートは、開発者がこのようなフィルタを生成するように構成することも、或いはデータ構造と、各チャートが表示する場合にはどの側面であるかとを分析することによってシステムが自動的に実行することもできる。
【０１２０】
例えば、複数チャートの例では、特定のチャートを表示しているユーザからシステムがナビゲーション入力を受け取った場合、以下の２つの事柄が起こり得る。１．入力に基づいて、チャートのサブビューを変更することができる。２．新たなフィルタを導入し、フィルタを変更し、又はフィルタを取り消すことができる。同時に、バイボックスの統合を通じて、又はこれを伴わずに、新たなフィルタセットに従ってデータを表示するように他のチャートを更新することができる。バイボックスは、複数のデータソースからのチャート間データフィルタリングを可能にするビジネスインテリジェンス要素を意味することができる。
【０１２１】
いくつかのナビゲーション相互作用及び入力の例としては、限定するわけではないが、以下を挙げることができる。
【０１２２】
スクロール。アイテムの線形順序を表すチャートをスクロールすることができる。スクロールの結果、チャートビューが隣接するデータを表示するように変更され、及び／又は他のチャートのフィルタが更新される。
【０１２３】
開始する相互作用の例としては、以下に限定するわけではないが、チャート上のスクロール方向におけるマウスのドラッグ、指のスクロール、スタイラスのスクロールなど、指定スクロール領域におけるクリック及び／又はタップ、及び／又は装置の傾動、及び埋め込みモーションセンサへの作用が挙げられる。
【０１２４】
これとは別に、又はこれに加えて、ズームイン／アウト。タイムチャート上、ジオチャート上などの連続する軸に沿ってデータを視覚化する場合、視覚化されたグラフィックをズームイン及びズームアウトによって表示することができる。ズームは、他のチャートのフィルタも同様に変更して、チャートの現在見えている部分までフィルタリングをスクロールすることができる。ズームは、ボタンのタップ又はクリック、及び／又はタッチ画面上における指、又は親指と指によるピンチによって実行することができる。
【０１２５】
これとは別に、又はこれに加えて、凡例。凡例は、特定のチャート内に表示された様々な線及び記号の説明を示すことができる。凡例アイテムと相互作用することにより、凡例記号が示すカテゴリを隠すことができるフィルタをトリガすることができる。凡例には、複数の動作を結び付けることができる。１つの動作では、相互作用カテゴリの非表示／表示を行うことができる。別の動作では、作用中の１つのカテゴリのみを残して他の全てのカテゴリを非表示にすることができる。
【０１２６】
これとは別に、又はこれに加えて、掘り下げ。集約を使用する場合、クリック、タップ又は同様のものなどのアイテムとの相互作用によって掘り下げ動作をトリガすることができる。さらに、掘り下げによって、集約されたアイテムが表すカテゴリのみを表示するように新たなフィルタをトリガし、掘り下げが行われるチャート内に次の構成された掘り下げレベルを表示することができる。
【０１２７】
これとは別に、又はこれに加えて、掘り上げ。この動作例は、掘り下げの逆と見なすことができる。掘り上げは、掘り下げによって追加されたビュー及びフィルタ変更を元に戻す。通常、掘り上げは、特殊なボタン又は動作エリアとの相互作用によってトリガされる。
【０１２８】
これとは別に、又はこれに加えて、拡張。ノード及びリンクとして表すことができるリンクデータと連動する場合、別のナビゲーション方法は、ノードを拡張して、リンクで直接接続されたノードを表示することである。拡張は、ビュー内に新たなノードを導入することができる。拡張は、フィルタ内でフィルタと共に使用することもできる。例えば、各ノードがカテゴリを表すネットワークチャートでは、全ての可視ノードがいくつかのカテゴリのフィルタを表すことができる。
【０１２９】
これとは別に、又はこれに加えて、選択。選択は、ビューを変更せずにフィルタを導入する代替方法とすることができる。軸上で複数のアイテム又は範囲を選択することにより、選択に対応するフィルタが導入される。選択は、クリック、タップ又は同様のものによって行うことができる。
【０１３０】
スタイリング
いくつかの実施形態例では、視覚グラフィックに深みを与えるために、異なるオプションを用いてチャートアイテムを表示することができる。アイテムは、例えば、データ点、円グラフの楔、線、列などの、チャート及び／又はグラフ内に示されるあらゆるアイテムとすることができる。各チャートは、チャート内に表示されるアイテムのデフォルトスタイルを有することができる。本システム及び方法では、スタイル機能を用いて、アプリケーション開発者が各アイテムの外観を動的に調整することができる。
【０１３１】
さらに、アイテムは、所与のチャート又はグラフ内のアイテム状態を表す様々なフィールドを有することができる。このような状態フィールドは、以下を含む。
−データ−  データベースから受け取られるアイテムデータ
−ホバリング−  アイテムがホバリングされた場合に、何かが表示される
−シリーズ−  アイテムシリーズ
−選択済み−  アイテムが選択された場合、何かが表示される
−フォーカス−  アイテム上のダブルクリック／ダブルタップによってアイテムに焦点が当てられた場合
【０１３２】
スタイル機能は、これらのアイテム状態フィールドを用いてアイテムスタイルフィールドを計算することができる。状態フィールドのうちの１つが変更される度に、スタイル機能を呼び出して最新の視覚スタイルを計算することができる。
【０１３３】
カスタム化の例としては、以下に限定するわけではないが、アイテムの色、アイテムの塗りつぶし色、アイテムの不透明度、アイテムのラベル、アイテムの影、アイテムの色、オフセット及びぼかしなどのスタイルフィールドの選択を挙げることができる。サブアイテムを使用することもできる。
【０１３４】
これにより、開発者がアイテム状態を追跡したり、或いはチャートイベントに反応してスタイルを更新したりする必要なく、単純なスタイル機能の定義が可能になる。
【０１３５】
チャートＡＰＩ
本システム及び方法は、ＡＰＩアクセスを単純にするために、設定機能及びナビゲーション機能のみを使用することができる。公開するオブジェクトモデルは、チャートアイテムのみに限定することができる。他の全ての側面は、単純なＪａｖａＳｃｒｉｐｔオブジェクト（設定）を通じて構成することができ、アプリケーション開発者をチャートの内部構造及び内部状態から切り離すことができる。
【０１３６】
クライアントアプリケーションは、チャートを作成するために、文書化構造に基づいて、設定を含むＪａｖａＳｃｒｉｐｔオブジェクトを構築することができる。オブジェクト内のフィールドのほとんどは任意とすることができ、提供されない場合にはデフォルト値を使用することができる。
【０１３７】
クライアントアプリケーションは、チャートの作成後に、変更したいと望む設定フィールドの新たな値を含む新たな設定オブジェクトを用いてｃｈａｒｔ．ｕｐｄａｔｅＳｅｔｔｉｎｇｓ法を呼び出すことができる。チャートは、新たな値を分析して、チャートを設定に一致するように再構成することができる。ナビゲーション状態は、このルールの明らかな例外であり、ＡＰＩコマンドを通じて設定／読み出しを行うことができる。
【０１３８】
作業スケジューリング
チャート状態の更新は、モバイル装置のプロセッサに重い負担を掛けることがある。また、後でチャートをレンダリングせずに更新を繰り戻すと、リソースが無駄になることがある。これを緩和するのに役立つように、本システム及び方法は、全てのチャート変更を待ち行列に入れ、実際の描画／レンダリング動作が行われる直前まで更新を先送りすることができる。このような例では、同期して行われる唯一の動作が、ナビゲーション状態の追跡である。
【０１３９】
チャート変更は、変更オブジェクトに記憶することができる。変更オブジェクトを用いて、内部的なｎｏｔｉｆｙＣｈａｎｇｅｓコールを発行することができる。複数のｎｏｔｉｆｙＣｈａｎｇｅｓコールが行われる場合、変更オブジェクトを融合させて全ての変更の融合物を形成することができる。１つの値が複数回変更される場合には、最新の値を優先することができる。また、修正したオブジェクトのリストが蓄積した場合には、各ｎｏｔｉｆｙＣｈａｎｇｅｓコールがリストにアイテムを追加して重複を排除する。
【０１４０】
各チャートでは、最初に順序変更が通知されていたにも関わらず正しい最終状態を保証する変更処理順が定められる。
【０１４１】
このようなアーキテクチャの結果、ＡＰＩコールを行う際に必要となる処理が非常に少なくなり、高価な更新コールがタイトなループで行われる際のアプリケーション開発者の潜在的危険が排除される。
【０１４２】
実装例
本明細書に開示したシステム及び方法は、ソフトウェア開発者が自身のウェブアプリケーション及びモバイルアプリケーションに相互作用型チャートを追加できるようにするチャート及びグラフライブラリを利用することができる。いくつかの実施形態例は、いくつかの実施形態では実際のチャートのレンダリングにＣＡＮＶＡＳを使用することを含む新たなチャート化ライブラリのさらなる開発の基礎として、例えばＨＴＭＬ５を利用することができる。他の例は、限定するわけではないが、ＳＶＧ及びＷＭＬなどの他のいずれかの種類のソフトウェア実装を利用することができる。さらに、このようなライブラリは、あらゆる種類のモバイル装置と共に使用することができる。このような例は、タッチ、マルチタッチ、タップ、傾き、ＧＰＳ（全地球測位システム）及びその他の感知データサポートなどの全ての人間機械相互作用の処理を担うライブラリ内のカスタムレイヤを使用することができる。
【０１４３】
本システム及び方法を開発するプログラミング言語としては、ＪａｖａＳｃｒｉｐｔを使用することができるので、このようなライブラリは、ターゲット装置が実際のデータ視覚化のためにＪａｖａＳｃｒｉｐｔコードの実行とＣａｎｖａｓ  ＡＰＩ（アプリケーションプログラムインターフェイス）の両方をサポートしている限り、装置間及びプラットフォーム間の互換性を有することができる。
【０１４４】
図１０に、本明細書で説明した実施形態例の一部又は全部を実装するために使用できるコンピュータ装置例を示す。コンピュータ装置例１０００内には、ユーザインターフェイス１０１４を用いてバス１０１２又はその他のネットワーク通信経路と通信するＣＰＵ１０１０を示す。ユーザインターフェイス１０１４には、ディスプレイ装置１０１８及び入力装置１０１６を示す。これらの装置は、コンピュータ装置１０００に依存して、タッチ入力対応のスマートフォン画面とすることもできる。いくつかの実施形態では、これらの装置を、キーボード、仮想キーボード、マウス、ジェスチャ認識カメラなどとすることができる。ＣＰＵ１０１０と通信するネットワークインターフェイス１０２０も示す。コンピュータ装置１０００は、ネットワークインターフェイスにより、以下に限定するわけではないが、インターネット、セルラーネットワーク、ＷｉＦｉネットワークなどのネットワークを介して通信することができる。コンピュータ装置１０００には、限定するわけではないがアンテナ１０２６などの様々な周辺機器１０２４も示す。この例には、メモリ１０２２も示す。図示のメモリ１０２２は、オペレーティングシステム１０３２と共に、ネットワーク通信モジュール１０３４、命令１０３６、データ送受信１０４０及びグラフ表示１０４２などのアプリケーションを実行する。また、データモジュール１０５０も示しており、ここにはデータテーブル１０６０、トランザクションログ１０６２、ユーザデータ１０６４、グラフデータ１０１７０が記憶される。
【０１４５】
図１０のコンピュータ装置１０００は、サーバ、分散コンピュータ、或いはデータを処理し、データを記憶し、データの記憶又は本明細書で説明した方法を実行するその他の計算機能を引き起こす他のいずれかの種類のコンピュータ装置とすることもできる。
【０１４６】
結論
以上、特定の実施形態を参照しながら説明目的で解説を行った。しかしながら、上記の例示的な説明は、完全であることや、或いは開示した厳密な形に本開示を限定することを意図したものではない。上記の教示に照らして多くの修正及び変形が可能である。これらの実施形態は、本発明の原理及びその実際の応用を最良に説明することにより、他の当業者が検討する特定の用途に適した形で本発明及び様々な実施形態を様々に修正して最も良く利用できるように選択し説明したものである。
【０１４７】
コンピュータは、パーソナルコンピュータ又は他のタイプのワークステーション又は端末装置とすることができる。一般に、このようなコンピュータ装置の構造、プログラミング及び一般的動作、並びに結果としての図面は周知である。このような装置のハードウェア要素、オペレーティングシステム及びプログラミング言語は、本質的に従来のものである。
【０１４８】
ソフトウェアは、以下に限定するわけではないが、有形記憶媒体、搬送波媒体又は物理的伝送媒体を含む多くの形を取ることができる機械可読媒体に記憶される。不揮発性記憶媒体は、例えば、いずれかの（単複の）コンピュータ内の記憶装置などのいずれかのような光又は磁気ディスクを含む。揮発性記憶媒体は、このようなコンピュータプラットフォームのメインメモリなどのダイナミックメモリを含む。有形伝送媒体は、コンピュータシステム内にバスを有するワイヤを含む、同軸ケーブル、銅線及び光ファイバーを含む。搬送波伝送媒体は、無線周波数（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成されるような電気又は電磁信号、或いは音波又は光波の形を取ることができる。
【０１４９】
従って、コンピュータ可読媒体の共通形態としては、例えば、ディスク（例えば、ハード、フロッピー、フレキシブル）又は他のいずれかの磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、又はＤＶＤ−ＲＯＭ、他のいずれかの光媒体、他のいずれかの物理記憶媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のいずれかのメモリチップ、データ又は命令を伝える搬送波、このような搬送波を伝えるケーブル又はリンク、或いはコンピュータがプログラムコード及び／又はデータを読み出すことができる他のいずれかの媒体が挙げられる。これらの形のコンピュータ可読媒体の多くは、１又は２以上の命令の１又は２以上のシーケンスを実行のためにプロセッサに搬送することに関与することができる。
【０１５０】
従って、本明細書及びこれらの実施形態に関連する図は、限定的な意味ではなく例示的な意味で捉えるべきであり、全ての修正は、以下の特許請求の範囲に含まれるように意図される。利点、長所、問題解決手段、及びいずれかの利点、長所又は解決手段を生じさせる、又はより顕著にするいずれかの（単複の）要素を、一部又は全部の請求項の重要な、必要な又は不可欠な特徴又は要素として解釈すべきではない。本発明は、添付の特許請求の範囲のみによって定められ、特許請求の範囲は、本出願の係属中に行われるあらゆる補正、及び発行時におけるこれらの請求項の全ての同等物を含む。
【０１５１】
本明細書の開示は、方法及びこれらの方法を実施する装置の形で具体化することができる。本発明は、フロッピーディスケット、ＣＤ−ＲＯＭ、ハードドライブ又はその他のいずれかの機械可読記憶媒体などの有形媒体に具体化されたプログラムコードの形で具体化することもでき、これらのプログラムコードがコンピュータなどの機械にロードされて実行されると、この機械が本発明を実施する装置になる。本発明は、例えば記憶媒体に記憶されるか、機械にロードされ及び／又は機械によって実行されるか、或いは電気配線又はケーブル、光ファイバー、又は電磁放射線などの何らかの伝送媒体を介して送信されるかに関わらず、プログラムコードの形で具体化することもでき、これらのプログラムコードがコンピュータなどの機械にロードされて実行されると、この機械が本発明を実施する装置になる。プログラムコードセグメントは、汎用プロセッサ上に実装された場合、プロセッサと組み合わさって特定の論理回路と同様に動作する固有の装置を提供する。
【０１５２】
ソフトウェアは、以下に限定するわけではないが、有形記憶媒体、搬送波媒体又は物理的伝送媒体を含む多くの形を取ることができる機械可読媒体に記憶することができる。不揮発性記憶媒体は、例えば、いずれかの（単複の）コンピュータ内の記憶装置などのいずれかのような光又は磁気ディスクを含む。揮発性記憶媒体は、このようなコンピュータプラットフォームのメインメモリなどのダイナミックメモリを含む。有形伝送媒体は、コンピュータシステム内にバスを有するワイヤを含む、同軸ケーブル、銅線及び光ファイバーを含む。搬送波伝送媒体は、無線周波数（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成されるような電気又は電磁信号、或いは音波又は光波の形を取ることができる。従って、コンピュータ可読媒体の共通形態としては、例えば、ディスク（例えば、ハード、フロッピー、フレキシブル）又は他のいずれかの磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、又はＤＶＤ−ＲＯＭ、他のいずれかの光媒体、他のいずれかの物理記憶媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のいずれかのメモリチップ、データ又は命令を伝える搬送波、このような搬送波を伝えるケーブル又はリンク、或いはコンピュータがプログラムコード及び／又はデータを読み出すことができる他のいずれかの媒体を含む。これらの形のコンピュータ可読媒体の多くは、１又は２以上の命令の１又は２以上のシーケンスを実行のためにプロセッサに搬送することに関与することができる。
【図１】
2018514884.tif 000002
【図２】
2018514884.tif 000003
【図３】
2018514884.tif 000004
【図４Ａ】
2018514884.tif 000005
【図４Ｂ】
2018514884.tif 000006
【図４Ｃ】
2018514884.tif 000007
【図４Ｄ】
2018514884.tif 000008
【図４Ｅ】
2018514884.tif 000009
【図５Ａ】
2018514884.tif 000010
【図５Ｂ】
2018514884.tif 000011
【図５Ｃ】
2018514884.tif 000012
【図５Ｄ】
2018514884.tif 000013
【図５Ｅ】
2018514884.tif 000014
【図６Ａ】
2018514884.tif 000015
【図６Ｂ】
2018514884.tif 000016
【図６Ｃ】
2018514884.tif 000017
【図６Ｄ】
2018514884.tif 000018
【図６Ｅ】
2018514884.tif 000019
【図６Ｆ】
2018514884.tif 000020
【図６Ｇ】
2018514884.tif 000021
【図６Ｈ】
2018514884.tif 000022
【図７】
2018514884.tif 000023
【図８Ａ】
2018514884.tif 000024
【図８Ｂ】
2018514884.tif 000025
【図９】
2018514884.tif 000026
【図１０】
2018514884.tif 000027
【国際調査報告】
2018514884.tif 000028