(57)【要約】多次元立方体データ構造におけるデータ分析のための方法および装置である。一局面では、データ閲覧のための動的表示生成の許可のために、ユーザインターフェイスが生成され得る。システムは、状態空間での提示のためのデータの１つ以上の視覚表現を動的に生成するための視覚化コンポーネントを含み得る。方法は、データセットを処理して第１の多次元立方体データ構造をもたらすことを含み、データセットは、１つ以上のテーブルを含むテーブル構造を有し、さらに、１つ以上の次元制限を第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造を生成することを含む。装置は、符号化されたコンピュータ実行可能な命令を有するメモリと、メモリに機能的に結合されたプロセッサとを含み、プロセッサは、コンピュータ実行可能な命令により、前記データセットを処理して、１つ以上の次元制限を適用するように構成されている。
2014533402.tif 000002
【特許請求の範囲】
【請求項１】
多次元立方体データ構造におけるデータ分析のための方法であって、
データセットを処理して第１の多次元立方体データ構造をもたらすことを含み、前記データセットは、１つ以上のテーブルを含むテーブル構造を有し、さらに、
１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造を生成することを含む、方法。
【請求項２】
前記１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することは、１つ以上のユーザインターフェイス要素を構成することを含む、請求項１に記載の方法。
【請求項３】
前記１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することは、特定の表示オプションの選択に応答して、次元制限を前記第２の多次元立方体データ構造の選択された次元変数に適用することを含む、請求項１または２に記載の方法。
【請求項４】
前記１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することは、次元制限を適用して、表示中の前記第２の多次元立方体データ構造の第１の特定の部分をもたらすことを含む、請求項１〜３のうちいずれか１項に記載の方法。
【請求項５】
前記１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することは、表示オプションを適用して、表示中の第２の多次元立方体データ構造の第２の特定の部分をもたらすことをさらに含む、請求項４に記載の方法。
【請求項６】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含む、請求項４または５に記載の方法。
【請求項７】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、前記特定の複数の行のそれぞれの値は累算され、所定の値と比較される、請求項４〜６のうちいずれか１項に記載の方法。
【請求項８】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、前記特定の複数の行は大きい順に並べられる、請求項４〜７のうちいずれか１項に記載の方法。
【請求項９】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、前記特定の複数の行は小さい順に並べられる、請求項４〜７のうちいずれか１項に記載の方法。
【請求項１０】
前記第１の特定の部分は、特定の条件を満たす１つ以上の値を含む、請求項４〜７のうちいずれか１項に記載の方法。
【請求項１１】
データセットを処理して前記第１の多次元立方体データ構造をもたらすことは、前記テーブル構造の１つ以上の次元変数について数学関数を算定することを含む、請求項１〜１０のうちいずれか１項に記載の方法。
【請求項１２】
前記第１の特定の部分は、特定の条件を満たさない複数の値を集約することに起因する集約された値を含む、請求項４〜７のうちいずれか１項に記載の方法。
【請求項１３】
前記第１の多次元立方体データ構造は、前記データセットの１つ以上の計算変数について特定の数学関数を算定した結果を含み、前記第１の多次元立方体データ構造は、前記データセットの１つ以上の次元変数のすべての固有値について区分化される、請求項１２に記載の方法。
【請求項１４】
前記データセットを処理して前記第１の多次元立方体データ構造をもたらすことは、前記テーブル構造の１つ以上のテーブルからデータ項目を順次読出すことと、１つ以上のデータ記録を含む中間データ構造を投入することとを含み、前記１つ以上のデータ記録の各々１つは、各次元変数についてのフィールドと、前記特定の数学関数によって暗示される１つ以上の数式についての集約フィールドとを含む、請求項１３に記載の方法。
【請求項１５】
投入するアクションは、前記データ項目について、各次元変数の現在の値を識別することと、データ項目に基づいて前記１つ以上の数式の各々１つを算定することと、各次元変数の現在の値に基づいて、適切な集約フィールドにおける前記算定の結果を集約することとを含む、請求項１４に記載の方法。
【請求項１６】
前記第１の多次元立方体データ構造は、各次元変数のすべての固有値についての集約フィールドの内容に基づいて、前記特定の数学関数を算定することによって生成される、請求項１５に記載の方法。
【請求項１７】
前記第２の多次元立方体データ構造は、前記中間データ構造を全面的に検討することによって生成され、それにより特定の条件を満たさない複数の値を集約することに起因する集約された値を生成する、請求項１６に記載の方法。
【請求項１８】
前記第１の多次元立方体データ構造に基づいて、前記特定の条件を満たさない１つ以上の次元変数の値を識別することをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記中間データ構造を全面的に検討することは、前記特定の条件を満たさない前記１つ以上の次元変数の値に関連付けられた前記集約フィールドの内容を集約し、それにより前記特定の条件を満たさない複数の値を集約するために前記特定の数学関数を算定することを含む、請求項１８に記載の方法。
【請求項２０】
多次元立方体データ構造におけるデータ分析のための装置であって、
コンピュータ実行可能な命令を有するメモリと、
前記メモリに機能的に結合されたプロセッサとを含み、前記プロセッサは、前記コンピュータ実行可能な命令により、
データセットを処理して第１の多次元立方体データ構造をもたらすように構成され、前記データセットは、１つ以上のテーブルを含むテーブル構造を有し、さらに、
１つ以上の次元制限を前記第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造を生成するように構成されている、装置。
【請求項２１】
前記プロセッサはさらに、１つ以上のユーザインターフェイス要素を構成するように構成されている、請求項２０に記載の装置。
【請求項２２】
前記１つ以上の次元制限の各々は、前記第２の多次元立方体データ構造における１つ以上の次元変数の値の表示数を制約する、請求項２０または２１に記載の装置。
【請求項２３】
前記プロセッサはさらに、特定の表示オプションの選択に応答して、次元制限を前記第２の多次元立方体データ構造の選択された次元変数に適用するように構成されている、請求項２０または２１に記載の装置。
【請求項２４】
次元制限を適用して、表示中の前記第２の多次元立方体データ構造の第１の特定の部分をもたらすように構成されている、請求項２０〜２３のうちいずれか１項に記載の装置。
【請求項２５】
前記プロセッサはさらに、表示オプションを適用して、表示中の前記第２の多次元立方体データ構造の第２の特定の部分をもたらすように構成されている、請求項２３または２４に記載の装置。
【請求項２６】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含む、請求項２３または２４に記載の装置。
【請求項２７】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、前記特定の複数の行のそれぞれの値は累算され、所定の値と比較される、請求項２３〜２６のうちいずれか１項に記載の装置。
【請求項２８】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、前記特定の複数の行は大きい順に並べられる、請求項２３〜２７のうちいずれか１項に記載の装置。
【請求項２９】
前記第１の特定の部分は、前記第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、前記特定の複数の行は小さい順に並べられる、請求項２３〜２７のうちいずれか１項に記載の装置。
【請求項３０】
前記第１の特定の部分は、特定の条件を満たす１つ以上の値を含む、請求項２３〜２９のうちいずれか１項に記載の装置。
【請求項３１】
前記プロセッサはさらに、前記データセットの１つ以上の次元変数について数学関数を算定するように構成されている、請求項２３〜２９のうちいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
この発明は、データ分析用の方法および装置に関する。
【背景技術】
【０００２】
先行技術
ＵＳ７０５８６２１は、情報を抽出してユーザに提示するようにデータベースに作用する方法を開示している。データベースは、複数の変数の値を含むデータテーブルを含む。情報は、１つ以上の選択された計算変数に作用する少なくとも１つの数学関数を算定することによって抽出されることになっている。提示される情報は、１つ以上の選択された分類変数に対して区分化されることになっている。この方法は、すべての境界テーブルを識別するステップと、すべての接続テーブルを識別するステップと、前記境界テーブルおよび接続テーブルから開始テーブルを選択するステップと、境界テーブルにおける選択された各変数の値を、開始テーブルにおける１つ以上の接続変数の対応する値にリンクさせる変換構造を構築するステップと、各分類変数のすべての固有値についての数学関数の結果を含む最終データ構造を算定が生み出すように、変換構造を使用することによって、開始テーブルの各データ記録について数学関数を算定するステップとを含む。
【０００３】
ＵＳ２０１０００１７４３６は、情報を抽出するための方法および機器を開示している。情報は、連鎖的な主計算を伴う、コンピュータにより実現される方法を使用して、データベースから抽出され、主計算では、第１の主計算（Ｐ１）は、データベースを表わすデータセット（Ｒ０）に第１の選択項目（Ｓ１）を作用させて第１の結果（Ｒ１）を生成し、第２の主計算（Ｐ２）は、第１の結果（Ｒ１）に第２の選択項目（Ｓ２）を作用させて第２の結果（Ｒ２）を生成する。第１および第２の結果（Ｒ１、Ｒ２）は、この方法のその後の反復で再使用するためにコンピュータメモリ（１０）にキャッシュされ、それにより、情報を抽出するために第１および／または第２の主計算（Ｐ１，Ｐ２）を実行する必要性を減少させる。キャッシングは、少なくとも第１の選択項目（Ｓ１）の関数としての第１の選択識別子値（ＩＤ１）と、少なくとも第２の選択項目（Ｓ２）および第１の結果（Ｒ１）の関数としての第２の選択識別子値（ＩＤ３）とを計算すること、ならびに、第１の選択識別子値（ＩＤ１）および第１の結果（Ｒ１）と、第２の選択識別子値（ＩＤ３）および第２の結果（Ｒ２）とをそれぞれ、データ構造（１２）における関連付けられたオブジェクトとして格納することを伴う。識別子値の各々は、ハッシュ関数（ｆ）によって、統計学的に固有の電子指紋として生成される。再使用は、次の反復中に第１および第２の選択識別子値（ＩＤ１，ＩＤ３）を計算すること、ならびに、場合によっては第１および／または第２の結果（Ｒ１、Ｒ２）を検索するためにデータ構造（１２）にアクセスすることを伴う。
【発明の概要】
【課題を解決するための手段】
【０００４】
発明の概要
一局面では、ユーザのデータベース方法およびシステムとのインタラクションのための方法およびシステムが提供される。一局面では、データを閲覧するための動的表示生成を容易にするために、ユーザインターフェイスが生成されてもよい。システムは、状態空間において提示するためのデータの１つ以上の視覚表現を動的に生成するための視覚化コンポーネントを含んでいてもよい。
【０００５】
一局面では、本開示は、データ分析のための方法に関する。この方法は、データセットを処理して第１の多次元立方体データ構造をもたらすことを含んでいてもよく、データセットは、１つ以上のテーブルを含むテーブル構造を有する。さらにこの方法は、１つ以上の次元制限を第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造を生成することを含んでいてもよい。
【０００６】
別の局面では、本開示はコンピューティング装置に関する。コンピューティング装置は、コンピュータ実行可能な命令を有するメモリと、メモリに機能的に結合されたプロセッサとを含み、プロセッサは、コンピュータ実行可能な命令により、データセットを処理して第１の多次元立方体データ構造をもたらすように構成され、データセットは、１つ以上のテーブルを含むテーブル構造を有し、さらに、１つ以上の次元制限を第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造を生成するように構成されてもよい。
【０００７】
追加の利点が、以下の説明で一部述べられる。または、実践により学習されてもよい。利点は、添付された請求項において特に指摘された要素および組合せによって実現され、得られるであろう。記載されているように、前述の概要および以下の詳細な説明は双方とも単なる例示および説明であり、限定的ではないということが理解されるべきである。
【０００８】
図面の簡単な説明
本明細書において援用され、本明細書の一部を構成する添付図面は、実施例を例示しており、説明とともに方法およびシステムの原理を説明する役割を果たす。
【図面の簡単な説明】
【０００９】
【図１】例示的なテーブル１〜５を示す図である。
【図２】データベースから情報を抽出するための例示的な方法のブロックフローチャートである。
【図３】例示的なテーブル６〜１２を示す図である。
【図４】例示的なテーブル１３〜１６を示す図である。
【図５】例示的なテーブル１７、１８、および２０〜２３を示す図である。
【図６】例示的なテーブル２４〜２９を示す図である。
【図７】例示的な動作環境の図である。
【図８】データサブセットを生成するために、選択がどのように範囲に作用するかを示す図である。
【図９】例示的なユーザインターフェイスを示す図である。
【図１０ａ】別の例示的なユーザインターフェイスを示す図である。
【図１０ｂ】別の例示的なユーザインターフェイスを示す図である。
【図１１ａ】例示的な方法のブロックフローチャートである。
【図１１ｂ】例示的な動作環境の図である。
【図１２ａ】例示的なユーザインターフェイスを示す図である。
【図１２ｂ】別の例示的なユーザインターフェイスを示す図である。
【図１３ａ】例示的な方法のブロックフローチャートである。
【図１３ｂ】例示的な方法の別のブロックフローチャートである。
【図１３ｃ】例示的な方法の別のブロックフローチャートである。
【図１４】例示的なユーザインターフェイスを示す図である。
【図１５】例示的な方法のブロックフローチャートである。
【図１６】例示的なユーザインターフェイスを示す図である。
【図１７ａ】例示的なテーブルを示す図である。
【図１７ｂ】例示的なテーブルを示す図である。
【図１７ｃ】例示的なテーブルを示す図である。
【図１７ｄ】例示的なテーブルを示す図である。
【図１７ｅ】例示的なテーブルを示す図である。
【図１７ｆ】例示的なテーブルを示す図である。
【図１８ａ】追加の例示的なテーブルを示す図である。
【図１８ｂ】追加の例示的なテーブルを示す図である。
【図１８ｃ】追加の例示的なテーブルを示す図である。
【図１９】例示的な方法のブロックフローチャートである。
【図２０】本開示の１つ以上の局面に従ったデータ分析のための例示的な方法を示す図である。
【図２１】本開示の１つ以上の局面に従ったデータ分析のための例示的なコンピューティング装置を示す図である。
【発明を実施するための形態】
【００１０】
詳細な説明
この発明の方法およびシステムを開示し説明する前に、この方法およびシステムは特定の方法、特定の構成要素、または特定の構成に限定されないということが理解されるべきである。また、ここに使用される用語は、特定の実施例を説明することのみを目的としており、限定的であるよう意図されてはいないということも理解されるべきである。
【００１１】
明細書および添付された請求項において使用されているように、文脈が明らかに別に指示していない限り、単数形は複数の対象を含む。範囲はここでは、「およそ」ある特定の値から「およそ」別の特定の値までとして表わされてもよい。そのような範囲が表わされる場合、別の実施例は、その特定の値からその別の特定の値までを含む。同様に、先行詞「およそ」の使用によって値が近似値として表わされる場合、その特定の値は別の実施例を形成することが理解されるであろう。さらに、各範囲の終点は、他方の終点に関連して、および他方の終点とは独立して、有意であるということが理解されるであろう。
【００１２】
「オプションの」または「オプションで」とは、次に説明される事象または状況が発生する場合があり、または発生しない場合があるということ、および、その説明が、前記事象または状況が発生する事例と発生しない事例とを含むことを意味する。
【００１３】
本明細書の説明および請求項全体を通して、「含む」という文言、ならびに「含み」および「含んで」といったこの文言の変化形は、「…を含むがそれに限定されない」ということを意味し、たとえば他の付加物、構成要素、整数またはステップを除外するよう意図されてはいない。「例示的な」とは「…の一例」を意味し、好ましいまたは理想の一実施例の表示を伝えるよう意図されてはいない。「…などの」は限定的な意味で使用されておらず、説明の目的のために使用されている。
【００１４】
開示された方法およびシステムを行なうために使用可能な構成要素が開示される。これらのおよび他の構成要素がここに開示される。これらの構成要素の組合せ、部分集合、相互作用、群などであって、各々を具体的に参照すると、さまざまな個々のおよび集合的な組合せ、ならびにこれらの置換が明示的に開示されていないかもしれないものが開示されている場合、各々はここに、すべての方法およびシステムについて具体的に考慮され説明されている、ということが理解される。これは、開示された方法におけるステップを含むがそれらに限定されない、本願のあらゆる局面に当てはまる。このため、実行可能なさまざまな追加のステップまたはアクションがある場合、これらの追加のステップの各々は、開示された方法の任意の特定の実施例または実施例の組合せで実行可能である、ということが理解される。
【００１５】
ここで、図面の図１〜図６を参照して、この発明およびシステムを例として説明する。図１は、開示された方法に従った、関連するデータテーブルの識別後のデータベースの内容を示し、図２は、本開示の１つ以上の局面に従った方法の一実施例の一連のステップを示し、図３〜図６は例示的なデータテーブルを示している。
【００１６】
データベースは、図１に示すように、複数のデータテーブル（テーブル１〜５）を含む。各データテーブルは、複数のデータ変数のデータ値を含む。たとえば、テーブル１では、各データ記録は、データ変数「製品（Product）」、「価格（Price）」および「部品（Part）」のデータ値を含む。データ記録のフィールドに特定の値がない場合、このフィールドはヌル値（Null-value）を保持すると考えられる。同様に、テーブル２では、各データ記録は、変数「日付（Date）」、「クライアント（Client）」、「製品」、および「個数（Number）」の値を含む。典型的には、データ値は、ＡＳＣＩＩコード化されたストリングの形で格納される。
【００１７】
本開示の１つ以上の局面に従った方法は、たとえば、プロセッサによる実行に応答してコンピュータプログラムによって実現可能である。第１のステップ（ステップ１０１）で、プログラムは、たとえば、データベースのすべてのテーブル、たとえばこの場合テーブル１〜５を選択する選択（SELECT）命令文を使用して、データベースにおけるすべてのデータ記録を読出す。典型的には、データベースは、コンピュータの一次メモリに読込まれる。
【００１８】
算定速度を増加させるには、前記データベースにおける各データ変数の各固有値に、異なる二進コードが割当てられること、および、データ記録は二進コード化された形式で格納されることが好ましい（ステップ１０１）。これは典型的には、プログラムが最初にデータベースからデータ記録を読出す際に行なわれる。各入力テーブルについて、以下のステップが実行される。まず、テーブルの列名、たとえば変数が連続的に読出される。新しいデータ変数が現れるたびに、それのためにデータ構造がインスタンス化される。次に、すべてのデータ記録を二進形式で含むように、内部テーブル構造がインスタンス化され、すると、データ記録は連続的に読出されて二進コード化される。各データ値について、その値に以前に二進コードが割当てられていたかを確かめるために、対応するデータ変数のデータ構造がチェックされる。割り当てられていた場合、その二進コードは、上述のテーブル構造の適正な場所に挿入される。割り当てられていなかった場合、データ値はデータ構造に追加され、新しい二進コード、好ましくは小さい順で次の二進コードが割当てられてからテーブル構造に挿入される。言い換えれば、各データ変数について、固有の二進コードが各固有データ値に割当てられる。
【００１９】
図３のテーブル６〜１２は、図１のデータベースに含まれるいくつかのデータ変数の異なるデータ値に割当てられた二進コードを示す。
【００２０】
データベースにおけるすべてのデータ記録を読出した後、プログラムは、データテーブル間のすべての接続を識別する（ステップ１０２）ためにデータベースを分析する。２つのデータテーブル間の接続とは、これらのデータテーブルが１つの変数を共有していることを意味する。そのような分析を行なうための異なるアルゴリズムは、当該技術分野において公知である。分析後、すべてのデータテーブルは仮想接続される。図１では、そのような仮想接続は両端矢印（ａ）によって示されている。仮想接続されたデータテーブルは、少なくとも１つのいわゆる雪片構造、たとえば、データベースにおける任意の２つのデータテーブル間に唯一の接続経路がある分岐データ構造を形成すべきである。このため、雪片構造はループを全く含まない。仮想接続されたデータテーブル中にループが生じた場合、たとえば２つのテーブルが２つ以上の変数を共有する場合、場合によっては、そのようなループを解消するための、当該技術分野において公知の特殊アルゴリズムによって、雪片構造が依然として形成される場合がある。
【００２１】
この最初の分析後、ユーザはデータベースの調査を開始できる。そうする際、ユーザは数学関数を定義し、それは数式の組合せであってもよい（ステップ１０３）。ユーザが図１のデータベースから年およびクライアント毎の総売上を抽出したいと仮定する。ユーザは対応する数学関数「SUM(x*y)」を定義し、この関数に含まれるべき計算変数「価格」および「個数」を選択する。ユーザはまた、分類変数「クライアント」および「年（Year）」も選択する。
【００２２】
コンピュータプログラムは次に、すべての関連するデータテーブル、たとえば選択された計算変数および分類変数のうちのいずれか１つを含むすべてのデータテーブル（そのようなデータテーブルは境界テーブルと呼ばれる）を識別し（ステップ１０４）、ならびに、雪片構造におけるこれらの境界テーブル間の接続経路にあるすべての中間データテーブル（そのようなデータテーブルは接続テーブルと呼ばれる）を識別する。明確にするために、図１の第１のフレーム（Ａ）には、関連するデータテーブルの群（テーブル１〜３）が含まれている。明らかに、この特定の場合、接続テーブルはない。
【００２３】
この場合、選択された計算変数のすべての値、たとえば頻度データのすべての発生は、数学関数の算定のために含まれなければならない。図１では、そのような頻度データを必要とする選択された変数（「価格」、「個数」）は太い矢印（ｂ）で示され、一方、残りの選択された変数は点線（ｂ′）で示されている。ここで、そのような計算変数を含むすべての境界テーブル（テーブル１〜２）と、雪片構造におけるそのような境界テーブル間の接続テーブルとを含む、部分集合（Ｂ）が定義可能である。なお、ある特定の変数の頻度要件は、それが含まれる数式によって求められる。平均値または中央値を求めることは、頻度情報を必要とする。一般に、これは合計を求めることについても当てはまり、一方、最大値または最小値を求めることは、計算変数の頻度データを必要とはしない。また、分類変数は一般に、頻度データを必要とはしない。
【００２４】
次に、好ましくは部分集合（Ｂ）内のデータテーブルから、最も好ましくはこの部分集合において最も多くのデータ記録を有するデータテーブルから、開始テーブルが選択される（ステップ１０５）。図１では、テーブル２が開始テーブルとして選択される。このため、開始テーブルは、選択された変数（「クライアント」、「個数」）と、接続変数（「日付」、「製品」）とを含む。これらの接続変数は、開始テーブル（テーブル２）を境界テーブル（テーブル１および３）にリンクさせる。
【００２５】
その後、図４のテーブル１３および１４に示すように、変換構造が構築される（ステップ１０６）。この変換構造は、開始テーブル（テーブル２）における各接続変数（「日付」、「製品」）の各値を、境界テーブル（テーブル３および１）における対応する選択された変数（それぞれ「年」、「価格」）の値に変換するために使用される。テーブル１３は、テーブル３のデータ記録を連続的に読出して、接続変数（「日付」）の各固有値と選択された変数（「年」）の対応する値との間にリンクを作成することによって構築される。なお、値４（「日付：１９９９−０１−１２」）からのリンクはない。なぜなら、この値は境界テーブルに含まれていないためである。同様に、テーブル１４は、テーブル１のデータ記録を連続的に読出して、接続変数（「製品」）の各固有値と選択された変数（「価格」）の対応する値との間にリンクを作成することによって構築される。この場合、値２（「製品：練り歯磨き（Toothpaste）」）は、選択された変数の２つの値（「価格：６．５」）にリンクされている。なぜなら、この接続は境界テーブルにおいて２回発生しているためである。こうして、頻度データが変換構造に含まれる。なお、値３（「製品：シャンプー（Shampoo）」）からのリンクもない。
【００２６】
変換構造が構築されると、仮想データ記録が作成される。テーブル１５に示すようなそのような仮想データ記録は、データベースにおけるすべての選択された変数（「クライアント」、「年」、「価格」、「個数」）に適応する。仮想データ記録を構築する際（ステップ１０７〜１０８）、まず、開始テーブル（テーブル２）からあるデータ記録が読出される。次に、開始テーブルの現在のデータ記録における選択された各変数（「クライアント」、「個数」）の値が、仮想データ記録に組込まれる。また、変換構造（テーブル１３〜１４）を使用することにより、開始テーブルの現在のデータ記録における各接続変数（「日付」、「製品」）の各値は、対応する選択された変数（「年」、「価格」）の値に変換され、この値も仮想データ記録に組込まれる。
【００２７】
この段階（ステップ１０９）で、仮想データ記録は、中間データ構造（テーブル１６）を構築するために使用される。中間データ構造の各データ記録は、選択された各分類変数（次元）と、数学関数によって暗示される各数式についての集約フィールドとに適応する。中間データ構造（テーブル１６）は、仮想データ記録における選択された変数の値に基づいて構築される。このため、各数式は、仮想データ記録における１つ以上の関連する計算変数の１つ以上の値に基づいて算定され、結果は、分類変数（「クライアント」、「年」）の現在の値の組合せに基づいて、適切な集約フィールドにおいて集約される。
【００２８】
開始テーブルのすべてのデータ記録について、上述の手順が繰返される（ステップ１１０）。こうして、開始テーブルのデータ記録を連続的に読出すことにより、仮想データ記録における選択された変数の現在の値を組込むことにより、および仮想データ記録の内容に基づいて各数式を算定することにより、中間データ構造が構築される。仮想データ記録における分類変数の値の現在の組合せが新しい場合、算定の結果を保持するために、新しいデータ記録が中間データ構造において作成される。その他の場合、適切なデータ記録が迅速に発見され、算定の結果が集約フィールドにおいて集約される。こうして、開始テーブルが全面的に検討されるにつれて、データ記録が中間データ構造に追加される。好ましくは、中間データ構造は、ＡＶＬまたはハッシュ構造などの効率的な指標システムに関連付けられたデータテーブルである。大抵の場合、集約フィールドは加算レジスタとして実現され、そこで、算定された数式の結果が累算される。場合によっては、たとえば中央値を算定する場合、集約フィールドは代わりに、特定された分類変数の値の固有の組合せについてのすべての個々の結果を保持するように実現される。なお、開始テーブルから中間データ構造を構築する手順では、たった１つの仮想データ記録が必要とされる。このため、開始テーブルの各データ記録について、仮想データ記録の内容が更新される。これは、コンピュータプログラムを実行する際のメモリ要件を最小化するであろう。
【００２９】
中間データ構造を構築する手順を、テーブル１５〜１６を参照してさらに説明する。テーブル１５に示すような第１の仮想データ記録Ｒ１を作り出す際、選択された変数「クライアント」および「個数」の値は、開始テーブル（テーブル２）の第１のデータ記録からそのまま取られる。次に、変換構造（テーブル１３）により、接続変数「日付」の値「１９９９−０１−０２」が、選択された変数「年」の値「１９９９」へと転送される。同様に、変換構造（テーブル１４）により、接続変数「製品」の値「練り歯磨き」が、選択された変数「価格」の値「６．５」へと転送され、それにより仮想データ記録Ｒ１を形成する。次に、図１６に示すように、データ記録が中間データ構造において作成される。この場合、中間データ構造は３つの列を有し、そのうちの２つは選択された分類変数（「クライアント」、「年」）を保持する。第３の列は集約フィールドを保持しており、そこで、選択された計算変数（「個数」、「価格」）に作用する数式（「x*y」）の算定結果が集約される。仮想データ記録Ｒ１を算定する際、分類変数の現在の値（二進コード：０，０）が最初に読出され、中間データ構造のこのデータ記録に組込まれる。次に、計算変数の現在の値（二進コード：２，０）が読出される。数式は、これらの値について算定され、関連付けられた集約フィールドに追加される。
【００３０】
次に、開始テーブルに基づいて、仮想データ記録が更新される。変換構造（テーブル１４）は接続変数「製品」の値「練り歯磨き」について、選択された変数「価格」の値「６．５」の複製を示しているため、更新された仮想データ記録Ｒ２は変わらないままであり、Ｒ１と同一である。次に、仮想データ記録Ｒ２は上述のように算定される。この場合、中間データ構造は、分類変数の現在の値（二進コード：０，０）に対応するデータ記録を含む。このため、数式の算定結果が、関連付けられた集約フィールドで累算される。
【００３１】
次に、開始テーブルの第２のデータ記録に基づいて、仮想データ記録が更新される。この更新された仮想データ記録Ｒ３を算定する際、新しいデータ記録が中間データ構造において作成され、以下同様である。
【００３２】
なお、この例では、ヌル値は−２という二進コードによって表わされる。また、図示された例では、計算変数のうちのいずれか１つのヌル値（−２）を保持する仮想データ記録は、直接排除可能である。なぜなら、ヌル値は数式（「x*y」）において算定できないためである。また、分類変数のすべてのヌル値（−２）は任意の他の有効値として扱われ、中間データ構造に配置される。
【００３３】
開始テーブルを全面的に検討後、中間データ構造は４つのデータ記録を含み、各々、分類変数の値（０，０；１，０；２，０；３，−２）の固有の組合せと、算定された数式の対応する累算結果（４１；３７．５；６０；７５）とを含む。
【００３４】
好ましくは、中間データ構造はまた、１つ以上の分類変数（または次元変数）を排除するために処理される。好ましくは、これは、上述のような中間データ構造を構築するプロセスの最中に行なわれる。仮想データ記録が算定されるたびに、中間データ構造において、追加のデータ記録が作成され、または、それらが既に存在している場合には発見される。これらの追加のデータ記録の各々は、１つ以上の分類変数のすべての値について、数式の算定結果の集約を保持するよう定められている。このため、開始テーブルが全面的に検討されると、中間データ構造は、分類変数の値のすべての固有の組合せについての集約された結果と、関連する各分類変数の排除後の集約された結果との双方を含むであろう。
【００３５】
中間データ構造において次元を排除するこの手順を、テーブル１５および１６を参照してさらに説明する。仮想データ記録Ｒ１が算定され（テーブル１５）、第１のデータ記録（０，０）が中間データ構造において作成されると、追加のデータ記録がこの構造において作成される。そのような追加のデータ記録は、１つ以上の次元が排除されると対応する結果を保持するよう定められている。テーブル１６では、ある分類変数に、この変数のすべての値が算定されることを示すために、中間データ構造において−１の二進コードが割当てられる。この場合、３つの追加のデータ記録が作成され、各々、分類変数の値（−１，０；０，−１；−１．−１）の新しい組合せを保持する。これらの追加のデータ記録の関連付けられた集約フィールドにおいて、算定結果が集約される。これらの追加のデータ記録の１番目の（−１，０）は、分類変数「年」が値「１９９９」を有する場合の分類変数「クライアント」のすべての値についての集約結果を保持するよう定められている。２番目の追加のデータ記録（０，−１）は、分類変数「クライアント」が「Nisse」である場合の分類変数「年」のすべての値についての集約結果を保持するよう定められている。３番目の追加のデータ記録（−１，−１）は、両方の分類変数（「クライアント」および「年」）のすべての値についての集約結果を保持するよう定められている。
【００３６】
仮想データ記録Ｒ２が算定される場合、結果は、分類変数の値（二進コード：０，０）の現在の組合せに関連付けられた集約フィールドにおいて、および、関連する追加のデータ記録（二進コード：−１，０；０，−１；−１，−１）に関連付けられた集約フィールドにおいて集約される。仮想データ記録Ｒ３が算定される場合、結果は、分類変数の値（二進コード：１，０）の現在の組合せに関連付けられた集約フィールドにおいて集約される。結果はまた、中間データ構造の、新しく作成された追加のデータ記録（二進コード：１，−１）の集約フィールドにおいて、および、関連する既存のデータ記録（二進コード：−１，０；−１，−１）に関連付けられた集約フィールドにおいても集約される。
【００３７】
開始テーブルを全面的に検討後、中間データ構造は、テーブル１６に示すように１１種類のデータ記録を含む。好ましくは、中間データ構造が３つ以上の分類変数に適応する場合、中間データ構造は、排除される各分類変数について、残りの分類変数の値の各固有の組合せについて、この分類変数のすべての値にわたって集約された算定結果を含むであろう。
【００３８】
中間データ構造が構築されると、中間データ構造に含まれる数式（「x*y」）の結果に基づいて数学関数（「SUM(x*y)」）を算定することにより、図５のテーブル１７において二進法でない表記で示すような、最終データ構造、たとえば多次元立方体が作成される（ステップ１１１）。そうする際、分類変数の値の各固有の組合せについての集約フィールドにおける結果が組合される。図示された事例では、最終データ構造の作成は、この数学関数の自明な性質により単純明快である。最終データ構造の内容は次に、図５のテーブル１８に示すような二次元テーブルでユーザに提示されてもよい（ステップ１１２）。また、これに代えて、最終データ構造が多くの次元を含む場合、データは、当該技術分野において周知であるような、ユーザがインタラクティブに次元を上下に移動できるピボットテーブルで提示されてもよい。
【００３９】
以下に、開示された方法の第２の例が、図５〜６のテーブル２０〜２９を参照して説明可能である。この説明は単に、この例のある局面、すなわち、接続テーブルからのデータを含む変換構造の構築、およびより複雑な数学関数のための中間データ構造の構築について詳述するであろう。この例では、ユーザは、図５のテーブル２０〜２３に示すデータテーブルを含むデータベースから、クライアント毎の売上データを抽出したがっている。説明を容易にするために、この例では二進コード化は省略される。
【００４０】
ユーザは、クライアント毎に結果を区分化すべき数学関数ａ）「IF(Only(Environment index)='I') THEN Sum(Number*Price)*2, ELSE Sum(Number*Price))」、およびｂ）「Avg(Number*Price)」をすでに特定している。
【００４１】
数学関数（ａ）は、環境指標（Environment index）′Ｉ′を有する製品群に属する製品については売上高を２倍にし、一方、他の製品については実際の売上高を使用すべきであることを特定している。数学関数（ｂ）は参照用に含まれたものである。
【００４２】
この場合、選択された分類変数は「環境指数」および「クライアント」であり、選択された計算変数は「個数」および「価格」である。テーブル２０、２２および２３は境界テーブルとして識別され、一方、テーブル２１は接続テーブルとして識別される。開始テーブルとしてテーブル２０が選択される。このため、開始テーブルは、選択された変数（「個数」、「クライアント」）と、接続変数（「製品」）とを含む。接続変数は、接続テーブル（テーブル２１）を介して、開始テーブル（テーブル２０）を境界テーブル（テーブル２２〜２３）にリンクさせる。
【００４３】
次に、変換構造の形成について、図６のテーブル２４〜２６を参照して説明する。変換構造の第１の部分（テーブル２４）は、第１の境界テーブル（テーブル２３）のデータ記録を連続的に読出して、接続変数（「製品群」）の各固有値と選択された変数（「環境指標」）の対応する値との間にリンクを作成することによって構築される。同様に、変換構造の第２の部分（テーブル２５）は、第２の境界テーブル（テーブル２２）のデータ記録を連続的に読出して、接続変数（「価格群」）の各固有値と選択された変数（「価格」）の対応する値との間にリンクを作成することによって構築される。次に、接続テーブル（テーブル２１）のデータ記録が連続的に読出される。テーブル２１における接続変数（「製品」）の対応する値の代わりに、テーブル２４および２５における接続変数（それぞれ「製品群」および「価格群」）の各値が代入される。結果は、テーブル２６に示すように１つの最終変換構造において合併される。
【００４４】
次に、開始テーブル（テーブル２０）のデータ記録を連続的に読出すことにより、選択された変数（「環境指数」、「クライアント」、「個数」、「価格」）の現在の値を仮想データ記録に組込むために変換構造（テーブル２６）を使用することにより、および仮想データ記録の現在の内容に基づいて各数式を算定することにより、中間データ構造が構築される。
【００４５】
明確にするために、テーブル２７は、開始テーブルの各データ記録についての仮想データ記録の対応する内容を表示している。第１の例に関連して述べたように、たった１つの仮想データ記録が必要とされる。この仮想データ記録の内容は、開始テーブルの各データ記録について更新され、たとえば置換される。
【００４６】
テーブル２８に示すような中間データ構造の各データ記録は、選択された各分類変数（「クライアント」、「環境指標」）の値と、数学関数によって暗示される各数式についての集約フィールドとに適応する。この場合、中間データ構造は２つの集約フィールドを含んでいる。一方の集約フィールドは、選択された計算変数（「個数」、「価格」）を処理する数式（「x*y」）の集約結果と、そのような処理の個数のカウンタとを含む。この集約フィールドのレイアウトは、平均数量を計算すべきである（「Avg(x*y)」）という事実によって与えられる。他方の集約フィールドは、分類変数の値の各組合せについて分類変数「環境指標」の最低値および最高値を保持するように設計されている。
【００４７】
第１の例と同様に、仮想データ記録（テーブル２７の各行）の現在の内容について数式を算定することにより、および分類変数（「クライアント」、「環境指標」）の現在の値の組合せに基づいて適切な集約フィールドにおいて結果を集約することにより、中間データ構造（テーブル２８）が構築される。中間データ構造はまた、分類変数のうちの一方または双方に値「＜ＡＬＬ＞」（全て）が割当てられたデータ記録も含む。対応する集約フィールドは、１つ以上の分類変数（次元）が排除された場合、集約結果を含む。
【００４８】
中間データ構造が構築されると、中間データ構造に含まれる数式の算定結果に基づいて数学関数を算定することにより、最終データ構造、たとえば多次元立方体が作成される。テーブル２９に示すような最終データ構造の各データ記録は、選択された各分類変数（「クライアント」、「環境指標」）の値と、ユーザによって選択された各数学関数についての集約フィールドとに適応する。
【００４９】
最終データ構造は、分類変数の値の各固有の組合せについての中間データ構造の集約フィールドにおける結果に基づいて構築される。テーブル２８のデータ記録を順次読出すことによって関数（ａ）が算定される場合、プログラムはまず、テーブル２８の最後の列の双方の値が′Ｉ′と等しいかどうかをチェックする。等しい場合、テーブル２８の第１の集約フィールドに含まれる関連する結果に２を乗算してテーブル２９に格納する。等しくない場合、テーブル２８の第１の集約フィールドに含まれる関連する結果をそのままテーブル２９に格納する。関数（ｂ）が算定される場合、選択された計算変数（「個数」、「価格」）を処理する数式（「x*y」）の集約結果をそのような処理の個数で除算する。それらは双方とも、テーブル２８の第１の集約フィールドに格納されている。結果は、テーブル２９の第２の集約フィールドに格納される。
【００５０】
本開示により、ユーザは、数学関数を自由に選択してこれらの関数に計算変数を組込むこと、および結果の提示のために分類変数を自由に選択することができる、ということは容易に明らかである。
【００５１】
開始テーブルからの一連のデータ記録に基づいて中間データ構造を構築する図示された手順の代わりに、またはこれに加え、メモリ効率が下がるものの、いわゆる結合テーブルをまず構築することが考えられる。この結合テーブルは、開始テーブルのすべてのデータ記録を全面的に検討し、変換構造の使用により開始テーブルにおける各接続変数の各値を境界テーブルにおける少なくとも１つの対応する選択された変数の値に変換することによって構築される。このため、結合テーブルのデータ記録は、選択された変数の値の発生するすべての組合せを含むであろう。次に、結合テーブルの内容に基づいて、中間データ構造が構築される。結合テーブルの各記録について、各数式が算定され、選択された各分類変数の現在の値に基づいて、結果が適切な集約フィールドにおいて集約される。しかしながら、この代替的な手順は、要求された情報を抽出するためにより多くのコンピュータメモリを必要とする。
【００５２】
数学関数は、頻度データに対して異なった、および相反する要求を有する数式を含む場合があるということが認識されるべきである。この場合、そのような各数式について、ステップ１０４〜１１０（図２）が繰返され、結果が１つの共通の中間データ構造に格納される。また、これに代えて、各数式について１つの最終データ構造、たとえば多次元立方体が構築されてもよく、これらの立方体の内容は、ユーザへの提示中に融合される。
【００５３】
当業者には理解されるように、本方法およびシステムは、完全にハードウェアの実施例、完全にソフトウェアの実施例、またはソフトウェア局面とハードウェア局面とを組合せた実施例の形をとってもよい。また、本方法およびシステムは、コンピュータ読取可能な記憶媒体上にあり、記憶媒体で具現化されるコンピュータ読取可能なプログラム命令（たとえば、コンピュータソフトウェア）を有するコンピュータプログラム製品の形をとってもよい。より特定的には、この方法およびシステムは、ウェブにより実現されるコンピュータソフトウェアの形をとってもよい。ハードディスク、ＣＤ−ＲＯＭ、光学記憶装置、または磁気記憶装置を含む、任意の好適なコンピュータ読取可能な記憶媒体が利用されてもよい。
【００５４】
本方法およびシステムの実施例を、方法、システム、機器、およびコンピュータプログラム製品のブロック図およびフローチャート図を参照して説明する。ブロック図およびフローチャート図の各ブロック、ならびにブロック図およびフローチャート図におけるブロックの組合せはそれぞれ、コンピュータプログラム命令によって実現可能である、ということが理解されるであろう。これらのコンピュータプログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理機器にロードされて、コンピュータまたは他のプログラム可能なデータ処理機器上で実行される命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するための手段を作成するようになっていてもよい。
【００５５】
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能なデータ処理機器にある特定の態様で機能するように命令できるコンピュータ読取可能なメモリに格納されて、コンピュータ読取可能なメモリに格納された命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するためのコンピュータ読取可能な命令を含む製造品を生成するようになっていてもよい。コンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能なデータ処理機器にロードされて、コンピュータにより実現されるプロセスを生成するために一連の動作ステップがコンピュータまたは他のプログラム可能な機器上で行なわれるようにして、コンピュータまたは他のプログラム可能な機器上で実行される命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するためのステップを提供するようになっていてもよい。
【００５６】
したがって、ブロック図およびフローチャート図のブロックは、特定される機能を実行するための手段の組合せ、特定される機能を実行するためのステップの組合せ、および特定される機能を実行するためのプログラム命令手段をサポートする。また、ブロック図およびフローチャート図の各ブロック、ならびにブロック図およびフローチャート図におけるブロックの組合せは、特定される機能またはステップを行なう専用ハードウェアベースのコンピュータシステム、または専用ハードウェアとコンピュータ命令との組合せによって実現可能である。
【００５７】
当業者であれば、機能的説明が提供されること、およびそれぞれの機能はソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組合せによって実行可能であることを理解するであろう。一局面では、本方法およびシステムは、図７に示し以下に説明するようなデータ分析ソフトウェア７０６を含んでいてもよい。例示的な一局面では、本方法およびシステムは、図７に示し以下に説明するようなコンピュータ７０１を含んでいてもよい。
【００５８】
図７は、開示された方法を行なうための例示的な動作環境を示すブロック図である。この例示的な動作環境は、動作環境の単なる一例であり、動作環境アーキテクチャの使用または機能性の範囲について限定を示唆するよう意図されてはいない。また、動作環境は、例示的な動作環境に図示された構成要素のうちのいずれか１つまたはそれらの組合せに関する従属性または要件を有するとして解釈されるべきではない。
【００５９】
この方法およびシステムは、多くの他の汎用または専用コンピューティングシステム環境もしくは構成で動作可能である。本システムおよび方法での使用に好適となり得る周知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ラップトップ装置、およびマルチプロセッサシステムを含むが、それらに限定されない。追加の例は、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたは装置のいずれかを含む分散コンピューティング環境などを含む。
【００６０】
開示された方法およびシステムの処理は、ソフトウェアコンポーネントによって実行可能である。開示されたシステムおよび方法は、プログラムモジュールなどのコンピュータ実行可能な命令が、１つ以上のコンピュータまたは他の装置によって実行されるという一般的状況において説明可能である。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実現する、コンピュータコード、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。開示された方法はまた、通信ネットワークを通してリンクされたリモート処理装置によってタスクが実行される、グリットベースの分散コンピューティング環境で実践可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体の双方に位置していてもよい。
【００６１】
また、当業者であれば、ここに開示されるシステムおよび方法が、コンピュータ７０１の形の汎用コンピューティング装置を介して実現可能であることを理解するであろう。コンピュータ７０１の構成要素は、１つ以上のプロセッサまたは処理部７０３と、システムメモリ７１２と、プロセッサ７０３を含むさまざまなシステムコンポーネントをシステムメモリ７１２に結合するシステムバス７１３とを含んでいてもよいが、それらに限定されない。処理部７０３が複数ある場合、システムは並列コンピューティングを利用してもよい。
【００６２】
システムバス７１３は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、およびさまざまなバスアーキテクチャのいずれかを使用したプロセッサまたはローカルバスを含む、いくつかの可能なタイプのバス構造の１つ以上を表わしている。一例として、そのようなアーキテクチャは、業界標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネル・アーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、改良（Enhanced）ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス規格業界（Video Electronics Standards Association：ＶＥＳＡ）ローカルバス、アクセラレイティッド・グラフィックス・ポート（Accelerated Graphics Port：ＡＧＰ）バス、ペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnects：ＰＣＩ）、ＰＣＩエクスプレスバス、パーソナルコンピュータメモリカード工業会（Personal Computer Memory Card Industry Association：ＰＣＭＣＩＡ）、ユニバーサル・シリアル・バス（Universal Serial Bus：ＵＳＢ）などを含んでいてもよい。バス７１３、およびこの説明で特定されるすべてのバスはまた、有線または無線ネットワーク接続を通して実現されてもよく、プロセッサ７０３、大容量記憶装置７０４、オペレーティングシステム７０５、データ分析ソフトウェア７０６、データ７０７、ネットワークアダプタ７０８、システムメモリ７１２、入出力インターフェイス７１０、ディスプレイアダプタ７０９、表示装置７１１、およびマンマシンインターフェイス７０２を含む、サブシステムの各々は、物理的に別個の場所で１つ以上のリモートコンピューティング装置７１４ａ、７１４ｂ、７１４ｃ内に含まれて、この形のバスを通して接続されてもよく、事実上、完全に分散型のシステムを実現する。
【００６３】
コンピュータ７０１は典型的には、さまざまなコンピュータ読取可能な媒体を含む。例示的な読取可能な媒体は、コンピュータ７０１によってアクセス可能である利用可能なあらゆる媒体であってもよく、たとえば、限定的ではない意味で、揮発性および不揮発性媒体の双方、取外し可能および取外し不能媒体の双方を含む。システムメモリ７１２は、ランダムアクセスメモリ（random access memory ：ＲＡＭ）などの揮発性メモリ、および／または読出専用メモリ（read only memory ：ＲＯＭ）などの不揮発性メモリの形のコンピュータ読取可能な媒体を含む。システムメモリ７１２は典型的には、データ７０７などのデータ、および／またはオペレーティングシステム７０５およびデータ分析ソフトウェア７０６などのプログラムモジュールを含み、それらは処理部７０３にすぐにアクセス可能であり、および／または処理部７０３によって現在処理されている。
【００６４】
別の局面では、コンピュータ７０１は、他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ記憶媒体も含んでいてもよい。一例として、図７は、コンピュータ７０１のためのコンピュータコード、コンピュータ読取可能な命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供可能な大容量記憶装置７０４を示す。たとえば、限定的ではない意味で、大容量記憶装置７０４は、ハードディスク、取外し可能磁気ディスク、取外し可能光ディスク、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ-ＲＯＭ、デジタル多用途ディスク（digital versatile disk：ＤＶＤ）または他の光学記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能読出専用メモリ（electrically erasable programmable read-only memory：ＥＥＰＲＯＭ）などであってもよい。
【００６５】
オプションで、一例としてオペレーティングシステム７０５およびデータ分析ソフトウェア７０６を含む、任意の数のプログラムモジュールが、大容量記憶装置７０４上に格納されてもよい。オペレーティングシステム７０５およびデータ分析ソフトウェア７０６（またはそれらの何らかの組合せ）の各々は、プログラミングおよびデータ分析ソフトウェア７０６の要素を含んでいてもよい。データ７０７も、大容量記憶装置７０４上に格納されてもよい。データ７０７は、当該技術分野において公知の１つ以上のデータベースのいずれかに格納されてもよい。そのようなデータベースの例は、ＤＢ２（登録商標）、マイクロソフト（登録商標）アクセス、マイクロソフト（登録商標）ＳＱＬサーバ、オラクル（登録商標）、ｍｙＳＱＬ、PostgreＳＱＬなどを含む。データベースは、複数のシステムにわたって集中型または分散型であってもよい。
【００６６】
別の局面では、ユーザは、入力装置（図示せず）を介してコマンドおよび情報をコンピュータ７０１に入力してもよい。そのような入力装置の例は、キーボード、ポインティングデバイス（たとえば、「マウス」）、マイク、ジョイスティック、スキャナ、グローブなどの触覚入力装置、および他の身体カバーなどを含むが、それらに限定されない。これらのおよび他の入力装置は、システムバス７１３に結合されたマンマシンインターフェイス７０２を介して処理部７０３に接続されてもよいが、パラレルポート、ゲームポート、ＩＥＥＥ１３９４ポート（ファイアワイヤポートとしても公知）、シリアルポート、またはユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェイスおよびバス構造によって接続されてもよい。
【００６７】
さらに別の局面では、表示装置７１１も、ディスプレイアダプタ７０９などのインターフェイスを介してシステムバス７１３に接続されてもよい。コンピュータ７０１は２つ以上のディスプレイアダプタ７０９を有していてもよく、コンピュータ７０１は２つ以上の表示装置７１１を有していてもよい、ということが考えられる。たとえば、表示装置は、モニタ、ＬＣＤ（Liquid Crystal Display：液晶ディスプレイ）、またはプロジェクタであってもよい。表示装置７１１に加え、他の出力周辺装置は、入出力インターフェイス７１０を介してコンピュータ７０１に接続可能なスピーカ（図示せず）およびプリンタ（図示せず）などの構成要素を含んでいてもよい。本方法のどのステップおよび／または結果も、任意の形で出力装置に出力されてもよい。そのような出力は、テキスト、グラフィカル、アニメーション、音声、触覚などを含むがそれらに限定されない任意の形の視覚表現であってもよい。
【００６８】
コンピュータ７０１は、１つ以上のリモートコンピューティング装置７１４ａ、７１４ｂ、７１４ｃへの論理接続を使用して、ネットワーク化環境において動作可能である。一例として、リモートコンピューティング装置は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置、または他の共通ネットワークノードなどであってもよい。コンピュータ７０１とリモートコンピューティング装置７１４ａ、７１４ｂ、７１４ｃとの論理接続は、ローカルエリアネットワーク（local area network：ＬＡＮ）および一般的なワイドエリアネットワーク（wide area network：ＷＡＮ）を介して行なわれてもよい。そのようなネットワーク接続は、ネットワークアダプタ７０８を通っていてもよい。ネットワークアダプタ７０８は、有線環境および無線環境の双方で実現可能である。そのようなネットワーク環境は、事務所、企業規模のコンピュータネットワーク、イントラネット、およびインターネット７１５において従来からあり、一般的である。
【００６９】
説明のため、オペレーティングシステム７０５などのアプリケーションプログラムおよび他の実行可能なプログラムコンポーネントをここに個別のブロックとして図示するが、そのようなプログラムおよびコンポーネントは、コンピューティング装置７０１の異なる記憶コンポーネントに何度も存在し、コンピュータのデータプロセッサによって実行される、ということが認識される。データ分析ソフトウェア７０６の一実現化例（たとえば、そのようなソフトウェアのコンパイルされたインスタンス）は、図１９〜図２０および関連する説明で提示される例示的な方法などの、本開示の方法の１つ以上を具現化しまたは含んでいてもよく、何らかの形のコンピュータ読取可能な媒体上に格納され、またはそれを通って送信されてもよい。開示された方法のいずれも、システムメモリ７１２または大容量記憶装置７０４などのコンピュータ読取可能な媒体上に具現化されたコンピュータ読取可能および／またはコンピュータ実行可能な命令において具現化され、その実行によって行なわれてもよい。たとえば、データ分析ソフトウェア７０６の実行に応答して、プロセッサ７０３は、ここに説明される方法（たとえば、図１９〜図２０の例示的な方法）および開示されたシステムの１つ以上の少なくとも一部を実現してもよい。コンピュータ読取可能な媒体は、コンピュータまたはコンピューティング装置によってアクセス可能である利用可能なあらゆる媒体であってもよい。一例として、限定的ではない意味で、コンピュータ読取可能な媒体は、「コンピュータ記憶媒体」および「通信媒体」を含んでいてもよい。「コンピュータ記憶媒体」は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のために任意の方法または技術で実現される、揮発性および不揮発性、取外し可能および取外し不能媒体を含む。例示的なコンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、もしくは所望の情報を格納するために使用可能であり、コンピュータによってアクセス可能である他のあらゆる媒体を含むが、それらに限定されない。
【００７０】
本方法およびシステムは、機械学習および反復学習などの人工知能技術を採用してもよい。そのような技術の例は、エキスパートシステム、事例に基づく推論、ベイジアンネットワーク、行動ベースのＡＩ、ニューラルネットワーク、ファジーシステム、進化的計算法（たとえば、遺伝的アルゴリズム）、群れ知能（たとえば、蟻のアルゴリズム）、およびハイブリッド知的システム（たとえば、ニューラルネットワークを通して生成されたエキスパート推論規則、または統計学習からの生成規則）を含むが、それらに限定されない。
【００７１】
上述の方法およびシステムは、リアルタイムの関連データマイニングおよび視覚化を可能にする。一局面では、本方法おびシステムは、分析データセットにおけるあらゆるデータ点がデータセットにおけるあらゆる他のデータ点に関連付けられた、データセット間の関連付けを管理してもよい。データセットは、何千ものフィールドを有する何百ものテーブルであってもよい。
【００７２】
一局面では、ユーザの開示されたデータベース方法およびシステムとのインタラクションのための方法およびシステムが提供される。一局面では、データを閲覧するための動的表示生成を容易にするために、ユーザインターフェイスが生成されてもよい。一例として、ユーザのために生成されたある特定のデータセットまたはデータサブセットのある特定のビューが、状態空間またはセッションと呼ばれてもよい。システムは、状態空間において提示するためのデータの１つ以上の視覚表現を動的に生成するための視覚化コンポーネントを含んでいてもよい。
【００７３】
図８は、データサブセットを生成するために、選択がどのように範囲に作用するかを示す。データサブセットは状態空間を形成可能であり、それは選択によって与えられた選択状態に基づいている。一局面では、選択状態（または「ユーザ状態」）は、ユーザがアプリケーションのユーザインターフェイスにおけるリストボックスまたはグラフをクリックすることによって定義されてもよい。アプリケーションは、データサブセットに対し、１つ以上の次元（分類変数）について、１つ以上の数学関数（「式」とも呼ばれる）を算定する複数のグラフィカルオブジェクト（チャート、テーブルなど）をホストするように設計可能である。この算定の結果は、１つ以上のグラフィカルオブジェクトにおいて視覚化可能な多次元立方体であるチャート結果を作成する。
【００７４】
アプリケーションは、ユーザが、変数を選択するためにグラフィカルオブジェクトをクリックすることにより、異なる選択を行なうことによって、範囲を調査することを可能にし、それはチャート結果の変更をもたらす。調査中のあらゆる時点で、現在の状態空間が存在し、それは、（常に同じままである）範囲に対して作用される現在の選択状態に関連付けられている。
【００７５】
図８に示すように、ユーザが新しい選択を行なうと、推論エンジンがデータサブセットを計算する。また、選択および範囲におけるフィルタに基づいて、選択および範囲用の識別子ＩＤ１が生成可能である。次に、データサブセットの内容を定義するデータサブセット定義、典型的にはビットシーケンスに基づいて、データサブセット用の識別子ＩＤ２が生成される。最後に、ＩＤ１をルックアップ識別子として使用して、ＩＤ２をキャッシュに入れてもよい。同様に、ＩＤ２をルックアップ識別子として使用して、データサブセット定義をキャッシュに入れる。
【００７６】
図８では、チャート計算が同様に行なわれる。ここでは、２つの情報セット、すなわちデータサブセットおよび関連チャートプロパティがある。後者は典型的には、計算変数および分類変数（次元）をともに有する数学関数であるが、それに制限されない。これらの情報セットの双方は、チャート結果を計算するために使用され、これらの情報セットの双方はまた、チャート計算への入力用の識別子ＩＤ３を生成するためにも使用される。ＩＤ２は既に前のステップで生成されており、チャート計算手順ではＩＤ３が第１のステップとして生成される。
【００７７】
識別子ＩＤ３は、ＩＤ２および関連チャートプロパティから形成される。ＩＤ３は、特定のチャート結果を計算するために必要なすべての情報を含む、特定のチャート生成インスタンス用の識別子として見られる。加えて、チャート結果を定義するチャート結果定義、典型的にはビットシーケンスから、チャート結果識別子ＩＤ４が作成される。最後に、ＩＤ３をルックアップ識別子として使用して、ＩＤ４をキャッシュに入れる。同様に、ＩＤ４をルックアップ識別子として使用して、チャート結果定義をキャッシュに入れる。
【００７８】
グラフィカルオブジェクト（または視覚表現）は、グラフ、チャート、ツリー、多次元描写、画像（コンピュータにより生成された、またはデジタルキャプチャ）、データを説明する映像／音声表示、各区域において異なるデータ分析を有する複数の表示区域へと出力がセグメント化されるハイブリッド表現などを含む、実質的にあらゆる表示または出力タイプであってもよい。ユーザは１つ以上のデフォルト視覚表現を選択してもよいが、次の視覚表現は、データにとって最も好適な形のさらなる分析および次の動的選択に基づいて生成されてもよい。図９に示すように、インターフェイスの左側には、いくつかのリストボックスが設けられており、ユーザインターフェイスの右側には、リストボックスにおける選択（または選択しなかったこと）を反映するグラフィカルオブジェクトが表示されている。リストボックスおよびグラフィカルオブジェクトの配置は、設計選択の事項である。一局面では、ユーザはデータ点を選択してもよく、ユーザの選択に基づいて、視覚化コンポーネントが、他のフィールドおよび対応する視覚表現を瞬間的にフィルタリングし、再集約してもよい。一局面では、フィルタリングおよび再集約は、データベースに問合せることなく完了されてもよい。一局面では、視覚表現は、意味があるように施された配色を使用してユーザに提示されてもよい。たとえば、ユーザ選択は緑で強調表示され、選択に関連するデータセットは白で強調表示され、関連のないデータは灰色で強調表示されてもよい。意味があるように配色を施すことは、状態空間において直観的なナビゲーションインターフェイスを提供する。
【００７９】
図１０ａに示すように、いくつかのグラフィカルオブジェクトを含むレイアウトがユーザに提供される。このデータセットは映画データを反映している。たとえば、映画監督、映画の題名、映画俳優、映画の長さ、映画のレーティング、映画公開日などである。図１０ｂに示すように、ユーザが一旦ある監督を選択すると、グラフィカルオブジェクトはリアルタイムで動的に調節される。この例では、ユーザは「エメリック  プレスバーガー（Emeric Pressburger）」監督を選択している。この選択に応答して、グラフィカルオブジェクトのすべては、「エメリック  プレスバーガー」に関連するデータを反映するように調節される。
【００８０】
このように、提供される方法およびシステムにより、ユーザは、生データをすぐに実施可能な分析に変換可能なセッションをインスタンス化することができる。１人のユーザが意味のある視覚表現を生成するためにインターフェイスを操作可能であるが、複数のユーザが同時にまたは実質的に同時にインターフェイスを操作可能な協調セッションを容易にする方法およびシステムも提供される。
【００８１】
一局面では、ユーザは自分のセッションを１人以上の他のユーザと共有してもよい。その結果、ユーザらは、リアルタイムの協調環境において新しい分析を発見し、展開することができる。各ユーザは、すべてのユーザに見える選択を行なってもよい。場合によっては、数人のユーザのみが選択を行なえるように制約が実施されてもよい。さらに別の一例では、あるユーザの一時的なリスト（たとえば、検索、ドロップダウンなど）を他のユーザらから隠してもよい。
【００８２】
一局面では、２人以上のユーザが共通のセッションを共有してもよい。セッションが生成された最初の時点は一次セッションと呼ばれ、一方、参加した次のユーザらは二次セッションと呼ばれる。一局面では、一次セッションだけが他の人を参加するよう招待でき、一方、別の局面では、どのユーザも他の人を参加するよう招待できる。システムは、二次セッションのすべての局面が一次セッションのすべての局面をミラーリングするように構成可能である。一次セッションがセクションアクセス減少を有する場合、これらは二次セッションにおいてミラーリングされる。セクションアクセス減少とは、データセキュリティを提供する機構であってもよい。たとえば、ユーザがリストボックスをクリックすると、そのユーザは、優位のセクションアクセス権を有する別のユーザに対して減少した量のデータを閲覧するよう制限される場合がある。たとえば、あるユーザはすべての映画監督を閲覧できるかもしれないが、一方、別のユーザは映画監督を１人しか見ることができない。一局面では、アクセス権またはデータセキュリティに対する検査が二次セッションに適用されない。
【００８３】
すべてのユーザは、一次でも二次でも、システムとやり取りするユーザインターフェイスとのインタラクション（たとえば、マウスのクリック）を共有できる。クリックしたどのユーザも、そのクリックが選択状態を変更する場合、その状態の変更は他のクライアントの１人以上に送信可能である。ローカルクライアントのみに影響を与え、サーバからのメッセージ／応答を伴わないクリックは、どれも共有されない。２人以上のクライアントが「同時に」クリックした場合、サーバは、１人のクライアントが１回クリックし、次に２回目にクリックして１回目のクリックをキャンセルするのと同様に、各クリックを２つ以上の非同期クリックとして扱ってもよい。
【００８４】
一局面では、一次ユーザは、協調ツールバーアイコンからドロップダウンするパネルを使用して、自分のセッションに参加するよう二次ユーザらを招待してもよい。電子メール招待により、一次ユーザは、電子メールアドレスと、電子メール本文中に配置可能ないくつかの追加テキストとを特定できるようになっていてもよい。「招待」ボタンが押されると、セッションに参加するよう、電子メールが、標準メッセージと、一次ユーザが含めた追加のメッセージと、ＵＲＬととともに、受信者に送信されてもよい。
【００８５】
セッションに参加するようにという招待は、特別にフォーマット化されたＵＲＬを使用して実行可能である。このＵＲＬは、システムおよび特定のインターフェイス作業空間へリンクを張ることができる。加えて、このＵＲＬは、適切なセッションを識別してそれに参加するための１回使用キーである追加のパラメータを提供可能である。このＵＲＬが一旦クリックされると（たとえば、サーバに送信されると）、それは無効化可能であり、そのためそれは一度しか使えず、転送できない。
【００８６】
二次ユーザがセッションに参加すると、一次ユーザに通知されてもよい。この通知は、協調ツールバーアイコンの状態の変化（たとえば、色の変化）、および誰がセッションに参加したかを示す、そのツールバーアイコンに接続されたメッセージであってもよい。二次ユーザが一旦セッションに参加すると、１人以上の他のユーザらは、現在セッションを共有しているユーザらのリストを閲覧してもよく、ある局面ではユーザらを削除してもよい。
【００８７】
別の局面では、一次ユーザは、協調ツールバーアイコンからドロップダウンするパネルを使用して、自分のセッションに参加するよう二次ユーザらを招待してもよい。二次ユーザらを招待するための追加のオプションは、システムにアクセス可能であるユーザディレクトリを検索することによる。一次ユーザは、ディレクトリ検索結果を使用してユーザらを直接招待してもよい。
【００８８】
図１１ａに示す一局面では、１１０１で、第１のユーザのために一次セッションを開始するステップと、１１０２で、第２のユーザからの協調を要求するステップと、１１０３で、第２のユーザのために二次セッションを開始するステップと、１１０４で、第１のユーザおよび第２のユーザに協調リアルタイムデータ分析のための単一の状態空間を提供するステップとを含み、どちらかのユーザによるインタラクションが単一の状態空間において反映される、協調コンピューティングのための方法が提供される。
【００８９】
図１１ｂに示す一局面では、協調セッションは、２つ以上のより高いレベルのＸＭＬトランスフォーマに接続可能な単一の低レベルの共有セッションを含んでいてもよい。ＸＭＬトランスフォーマ同士は、同期論理を介して接続可能である。各ＸＭＬトランスフォーマは、ウェブセッションの終点に接続可能であり、他方の終点はウェブブラウザに接続可能である。このため、ＸＭＬトランスフォーマのいずれかによって行なわれるコマンドおよび選択は、共有される低レベルのセッションに影響を与える場合があり、状態変化は双方のＸＭＬトランスフォーマに送り返されてもよい。コマンドを行なったＸＭＬトランスフォーマは、状態変化をクライアントに戻してもよい。他方のＸＭＬトランスフォーマは、クライアント非同期機構を通して変化した状態を戻してもよい。
【００９０】
さらに別の局面では、タイムシフト協調のための方法およびシステムが提供される。単一の状態空間内で、ユーザらは、その状態空間内に含まれるさまざまなオブジェクトについてのメモを作成し、共有できる。これらのメモは１人以上の他のユーザらと共有でき、これらの他のユーザらは、自身のメモコメントを残すことによって応答できる。各ユーザは、状態空間の「スナップショット」（ブックマーク）およびデータを、各メモを使用して保存できる。メモは、状態空間のメモおよび関連付けられたスナップショットに効率的にアクセスするために、ユーザらによって検索可能であってもよい。
【００９１】
図１２ａは、添付されたメモと、メモの選択後に閲覧可能なメモスレッドとを有するグラフィカルオブジェクトを示す。図１２ｂは、メモに関連付けられた保存された選択状態の選択後の状態空間の変化を示す。
【００９２】
一例として、ユーザは、状態空間に表示されたオブジェクトを右クリックして、コンテキストメニューから「メモ」を選択することによって新しいメモを追加し、既存のメモを閲覧するためのメニューオプションをユーザに提供してもよい。オプションで、既存のメモを有する状態空間内のすべてのオブジェクトは、（たとえば、アイコン、色の変化などにより）識別されてもよい。同様に、各オブジェクトについて添付されたメモの数が表示されてもよい。このため、結果として生じるメモは、オブジェクトおよび選択状態の双方にリンクされてもよい。オブジェクトは、１つ以上のメモと、１つ以上のメモスレッド（メモに基づいた一連のコメント）を有していてもよい。ユーザは、ユーザがデータセットを分析し、それに応じて状態空間を配置した後で、メモを作成してもよい。ユーザは、現在の状態空間のスナップショットをメモに添付するよう選択してもよい。システムは次に、隠されたブックマークを作成してもよく、それをメモに添付する。一局面では、１つの状態空間の複数のスナップショットが１つのメモに関連付けられてもよく、たとえば２つの異なる分析の比較を反映する。
【００９３】
メモおよび関連付けられた状態空間を閲覧するために、ユーザは所望のメモを選択してもよく、メモテキストがユーザに提示されるであろう。ユーザは次に、追加情報をメモスレッドに追加してブックマークを適用することを選択してもよく、メモに関連付けられた状態空間を反映するように現在の状態空間を修正する。別の例では、状態空間は、メモ選択時にメモに関連付けられた状態空間を反映するように自動的に更新されてもよい。
【００９４】
メモについて、さまざまなクラスのユーザらによるメモへのアクセスを制御するよう、許可が調節されてもよい。たとえば、あるクラスのユーザらはメモを閲覧できるもののメモを作成できないかもしれず、一方、別のクラスのユーザらはメモを作成し、編集し、削除してもよい。
【００９５】
タイムシフト協調のための方法は、さまざまな態様で実現可能である。たとえば、メモ（単一のメモまたはメモスレッド）が特定の選択状態にリンクされて、１つの単一の「ブックマーク」に格納されてもよい。このため、１つのブックマークが、各オブジェクトについていくつかのメモを含んでいてもよい。このブックマークを適用することにより、これらのメモは見えるようになる。さらに別の例では、メモはいくつかの選択状態にリンクされていてもよく、各メモは１つの特定の選択状態に対応可能であり、メモスレッドにおける次に続くすべての返信は、同じ選択状態に属していてもよい。ある特定のメモに属する選択状態が、一時的な隠されたブックマークに格納されてもよい。さらに別の一例では、メモは生データまたは入力フィールドにおけるデータにリンクされてもよい。このため、メモはテキスト入力フィールドとして見られる。
【００９６】
図１３ａに示す一局面では、１３０１ａで、選択状態を反映する状態空間を作成するステップと、１３０２ａで、メモを作成するステップと、１３０３ａで、状態空間においてオブジェクトにメモを添付するステップと、１３０４ａで、選択状態を保存するステップと、１３０５ａで、保存された選択状態をメモと関連付けるステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【００９７】
図１３ｂに示すさらに別の局面では、１３０１ｂで、選択状態を反映する状態空間を作成するステップと、１３０２ｂで、メモを作成するステップと、１３０３ｂで、状態空間においてオブジェクトにメモを添付するステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【００９８】
図１３ｃに示すさらに別の局面では、１３０１ｃで、添付されたメモを有する状態空間においてオブジェクトを提示するステップと、１３０２ｃで、メモの選択を受取るステップと、１３０３ｃで、メモを提示し、メモに関連付けられた保存された選択状態を反映するように状態空間を調節するステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【００９９】
一局面では、提供された方法およびシステムにより、ユーザは、単一の空間内に複数の状態を作成し、これらの状態を空間内の特定のオブジェクトに適用することができるようになる。ユーザは、これらのオブジェクトのコピーを作成し、次にそれらのオブジェクトを異なる状態に入れることができる。所与の状態におけるオブジェクトは、他の状態におけるユーザ選択の影響を受けない。提供された方法およびシステムにより、ユーザは、１つのビューに、異なる状態空間（ひいては異なる選択状態）を表わすグラフィカルオブジェクトを生成できるようになる。
【０１００】
代替的な状態の使用は、空間内での複数の選択の同時使用を許可し、単一の視覚表現または別個の視覚表現におけるそれらの選択の比較を可能にする。ユーザは、比較分析のためにデータ項目を選択し、次に、リアルタイムで比較分析に影響を与えるオーバーライド選択を行なってもよい。図１４は、代替的な状態の例示的な実現化例を示す。
【０１０１】
左手のリストボックスは、状態空間Ｘに論理的に関連付けられ、状態空間Ｘコンテナに位置しており、右手のリストボックスは、状態空間Ｙに論理的に関連付けられ、状態空間Ｙコンテナに位置している。この例では、結果グラフ（チャート）は、状態空間Ｘおよび状態空間Ｙ双方において数学関数（数式）を算定した結果を表示している。このため、ユーザは、左手のリストボックスでクリックすることによって状態空間Ｘを定義でき、対応する算定結果を結果グラフに表示させる。同様に、ユーザは、右手のリストボックスでクリックすることによって状態空間Ｙを定義でき、対応する算定結果を結果グラフに表示させる。
【０１０２】
各状態には、システム処理用の状態識別子が割当てられてもよい。一局面では、デフォルト状態および継承状態という、少なくとも２つの状態が利用可能にされてもよい。デフォルト状態は、多くの使用が発生する状態であってもよい。オブジェクトは、シートおよびコンテナなどのより高いレベルのオブジェクトから状態を継承してもよい。これは、状態が、文書−シート−シートオブジェクトなどのように継承されることを意味する。シートおよびシートオブジェクトは、オーバーライドされない限り、常に継承状態にある。一例として、文書はアプリケーション文書であってもよく、シートはそのような文書におけるタブであってもよく、コンテナは１つ以上のオブジェクトを含み得るタブ上の領域であってもよい。オブジェクトは、あらゆるテキストオブジェクトまたはグラフィカルオブジェクト、たとえば、リストボックス、円グラフ、棒グラフなどであってもよい。シートおよびシートオブジェクト（たとえば、コンテナおよびグラフィカルオブジェクト）は常に継承状態にあるが、シートまたはシートオブジェクトを明確な状態空間と関連付けることによって、そのシートまたはシートオブジェクトのための継承状態をオーバーライドすることが、ユーザにとって可能である。
【０１０３】
一局面では、より低いレベルがより高いレベルの状態空間を自動的に継承してもよい。図１４に示すように、シート（たとえば閲覧）にデフォルト状態空間Ｘが割当てられている場合、このシート上のすべてのコンテナおよび個々のオブジェクトも、特段の定めのない限り、この状態空間に関連付けられるであろう。このため、ユーザは要望通り、コンテナ／オブジェクトを状態空間Ｙに関連付けるだけでよい。
【０１０４】
チャートおよび他のオブジェクト式は、式を含むオブジェクトの状態を継承する。チャートおよびオブジェクト式は、代替的な状態を参照してもよい。これは、式がどこで発生しても、その式は、その式を含むオブジェクトとは異なる状態を参照してもよい、ということを意味する。
【０１０５】
本方法およびシステムは、フィールド毎の選択値という観点から状態の定義を採用し、テーブル毎の行のサブセットという観点からセットを定めることにより、チャートおよび集約を計算するために、デフォルト状態を使用してデータのサブセットを駆動してもよい。このデフォルト挙動は、代替的な状態を可能にするために、１．現在の選択とは独立した１セットのデータを定義する；２．合併、交わり、および除外などの数学演算子の使用を通して複数のセットを組合せるという２つの個別の点で、変更されてもよい。
【０１０６】
代替的な状態は、セットを生成可能な選択状態を定義するという第１の部分における役割を果たす。処理する目的のために、デフォルト状態は「＄」によって表わされてもよく、一方、すべてのデータは、状態および選択に係わらず、「１」によって表わされてもよい。代替的な状態は、２つの追加の構文要素を導入する。
【０１０７】
１．ある式は、ある代替状態に基づいていてもよい。
例：
sum({[Group 1]}Sales)は、状態′群１′における選択に基づいた売上を計算する。
【０１０８】
sum({$}Sales)は、デフォルト状態における選択に基づいた売上を計算する。
これらの式は双方とも、単一のチャートに存在していてもよい。これにより、ユーザらは、単一のオブジェクト内で複数の状態を比較することができる。式における状態参照は、オブジェクトの状態をオーバーライドする。図１４は、そのような一実現化例として見られてもよい。状態空間Ｘは（＄によって表わされる）デフォルト状態空間であってもよく、状態空間Ｙは状態空間「群１」であってもよい。このため、結果グラフにおける左手の棒は、数学関数Sum({$}Sales)によって与えられてもよく、一方、結果グラフの右手の棒は、数学関数Sum({[Group 1]}Sales)によって与えられてもよい。これは、式がどこで発生しても、その式は、その式を含むオブジェクトとは異なる状態を参照してもよいという事実の一例である。
【０１０９】
状態空間ＸおよびＹについての算定結果を１つの同じ結果グラフに表示する代わりに、それらを別個のグラフで表示してもよい。そのような一例では、グラフのうちの一方は式Sum({[Group 1]}Sales)に関連付けられ、他方のグラフは式Sum({$}Sales)に関連付けられるであろう。
【０１１０】
２．１つの状態におけるフィールドでの選択は、別の状態における修正子として使用されてもよい。
【０１１１】
例：
sum({[Group 1]<Region=$::Region>}Sales)
この構文は、デフォルト状態からの「領域（Region）」フィールドにおける選択を使用して、それらを用いて状態′群１′を修正する。この効果は、この式のためにデフォルト状態と′群１′との間で領域フィールドを「同期された」ままに保つことである。このため、（たとえば、ユーザが状態空間Ｘに関連付けられたリストボックスにおける値をクリックすることによる）第１の状態空間に関連付けられたオブジェクトにおける選択が、第１の状態空間に加えて（またはその代わりに）第２の状態空間（たとえば、状態空間Ｙ）を修正するために使用可能である。図１４では、これは、ユーザが、状態空間Ｘを修正するように左手側の特定のリストボックスにおいて選択を行なう際に、対応する修正（選択）が自動的に状態空間Ｙに行なわれることを確実にするために、使用され得る。
【０１１２】
状態とともに集合演算子（＋、＊、−、／）を使用することが可能である。以下の式は有効であり、デフォルト状態または状態１のいずれかにおける別個のインボイス番号をカウントするであろう。
【０１１３】
例：
count({$+State 1}DISTINCT[Invoice Number])は、＜default＞(デフォルト)状態および状態１の合併における別個のインボイス番号をカウントする。
【０１１４】
count({1-State 1}DISTINCT[Invoice Number])は、状態１ではない別個のインボイス番号をカウントする。
【０１１５】
count({State 1*State 2}DISTINCT[Invoice Number])は、＜default＞状態および状態１の双方である別個のインボイス番号をカウントする。
【０１１６】
このため、本方法およびシステムは、以下のブール代数から知られた論理演算子の使用により、異なる状態空間におけるデータを論理的に組合せる方法を提供する：
＋＝合併（Ａ＋Ｂは、ＡおよびＢ双方のすべての要素を含む）
＊＝交わり（Ａ＊Ｂは、Ｂにも属するＡのすべての要素を含む）
−＝差（Ａ−Ｂは、Ｂに属さないＡのすべての要素を含む）
／＝ＸＯＲ（Ａ／Ｂは、ＡおよびＢのうちの一方にのみ見られるすべての要素を含む）。
【０１１７】
集合演算子の使用により、２つ以上の状態空間からのデータを、たとえばグラフでの表示用に１つの式に組合せて算定することが可能になる。
【０１１８】
図１５に示す一局面では、１５０１で、第１の状態空間に関連付けられた第１のユーザインターフェイス要素と、第２の状態空間に関連付けられた第２のユーザインターフェイス要素とを提示するステップと、１５０２で、第１および第２のユーザインターフェイス要素において選択を受取るステップと、１５０３で、第１の状態空間の選択状態および第２の状態空間の選択状態を表わす結果グラフを提示するステップとを含む、データ分析のための方法が提供される。一局面では、第１の状態空間および第２の状態空間は、同じデータセットを含んでいてもよく、または異なるデータセットを含んでいてもよい。
【０１１９】
一局面では、次元制限を利用するための方法およびシステムが提供される。次元制限は、さまざまなチャートタイプ用に、または、より一般的にはここに説明されるほとんどのグラフィカルオブジェクト用に設定可能である。所与のチャートまたはグラフィカルオブジェクトにおいて表示される次元値の数を制御するために、「次元制限」というオプションがユーザに提示されてもよい。ユーザは、複数の値、たとえば「最初のＮ個の値」、「最大のＭ個の値」および「最小の…個の値」のうちの１つを選択可能である。ＮおよびＭは、提供される（または戻される）ことが意図される一組の値の濃度を示す自然数である。一局面では、ＮおよびＭは、次元制御「最初のＮ個の値」および「最大のＭ個の値」のオプションとして提供されてもよい。これらの値すなわち次元は、システムが視覚化コンポーネントに戻すことができる値をシステム（たとえば、ここで説明される局面に従ってデータ分析ソフトウェア７０６で符号化された（またはプログラムされたもしくは構成された）コンピュータ７０１）がソートすることができる方法を制御することができる（たとえば、表示装置７１１は、プロセッサ７０３によるデータ分析ソフトウェア７０６の実行に応答して動作するかまたは動作するように構成される）。一局面では、ソーティングは第１の式についてのみ発生する（一次ソートが一次元ソートをオーバーライドし得る場合は、ピボットテーブルを除く）。図１６に示す一局面では、１つ以上の次元制限を適用するために、１つ以上のユーザインターフェイス要素が提示可能である。たとえば、「…のみを表示」という次元制限をユーザが適用できるようにするために、スライディング選択ツールが提示可能である。図１６における例は、次元制限の適用が上位６人の営業担当者のみを表示することを示している。
【０１２０】
次元制限は、チャート（グラフ、テーブルなど）において表示すべきデータを生成するために適用されてもよい。これらの次元制限は、以下の１つ以上を含んでいてもよい。
【０１２１】
「…のみを表示」
このオプションは、ユーザが最初の、最大の、または最小のｘ個の値を表示したい場合に選択可能である。このオプションが５に設定されている場合、５つの値が表示されるであろう。次元が「その他を表示」をイネーブルにした場合、「その他」というセグメントが、５つの表示スロットのうちの１つを占めるであろう。
【０１２２】
「最初の…個の値」というオプションは、プロパティダイアログの「ソート」タブ上で選択されたオプションに基づいて、行を戻すであろう。チャートがストレートテーブルである場合、行は、その時点の一次ソートに基づいて戻されるであろう。言い換えれば、ユーザは、いずれかの列ヘッダでダブルクリックし、その列を一次ソートとすることによって、値の表示を変更可能である。
【０１２３】
「最大の…個の値」というオプションは、チャートにおける第１の式に基づいて、行を大きい順に戻す。ストレートテーブルにおいて使用される場合、図示された次元値は、式をインタラクティブにソートする間、一定のままとなるであろう。式の順序が変更されると、次元値は変わるであろう（変わる場合がある）。
【０１２４】
「最小の…個の値」というオプションは、チャートにおける第１の式に基づいて、行を小さい順に戻す。ストレートテーブルにおいて使用される場合、図示された次元値は、式をインタラクティブにソートする間、一定のままとなるであろう。式の順序が変更されると、次元値は変わるであろう（変わる場合がある）。
【０１２５】
「…である値のみを表示」
このオプションは、ユーザが、このオプションについての特定された条件を満たすすべての次元値を表示したい場合に選択可能である。全体のパーセンテージ、または正確な数量に基づいて、値を表示することを選択する。「全体に対する相対値」というオプションは、プロパティダイアログの「式」タブ上の「相対値」というオプションと同様の相対値モードを可能にする。値は、計算された式として入力されてもよい。
【０１２６】
「累算すると…になる値のみを表示」
このオプションが選択された場合、現在の行までのすべての行が累算され、結果が、このオプションにおいて設定された値と比較される。「全体に対する相対値」というオプションは、プロパティダイアログの「式」タブ上の「相対値」というオプションと同様の相対値モードを可能にし、（最初の値、最大の値または最小の値に基づく）累算値を総計と比較する。値は、計算された式として入力されてもよい。
【０１２７】
以下の１つ以上を含む異なる表示オプションも提供される。
「その他を表示」
このオプションをイネーブルにすると、チャートにおいて「その他」というセグメントが生成されるであろう。表示制約についての比較基準を満たさないすべての次元値は、「その他」というセグメントへとグループ化されるであろう。選択された次元の後に次元がある場合、「内部次元を折畳む」が、次の／内部次元についての個々の値がチャート上に表示されるかどうかを制御するであろう。
【０１２８】
「グローバルグループ化モード」
このオプションは、内部次元にのみ当てはまる。このオプションがイネーブルにされると、選択された次元のみに対して制約が計算されるであろう。すべての以前の次元は無視されるであろう。これがディスエーブルにされると、制約は、すべての先行する次元に基づいて計算される。
【０１２９】
選択されたオプション「その他を表示」とともに次元制限を使用することを、顧客Ａ〜Ｆおよび製品ＸおよびＹについて与えられた、「顧客」、「製品」および「売上」という変数を含む図１７ａに示すデータセットに基づいた簡略化された例に関連して、ここで説明する。
【０１３０】
例１
ユーザが、各「顧客」について売上を視覚化したいと仮定する。これは、次元変数「顧客」について数学関数Sum（Sales）を算定することに対応する。これは、（図１７ｂに示すようなグラフまたはテーブルとして視覚化され得る）以下の多次元立方体をもたらす。
【０１３１】
例２
ここでは、ユーザが、立方体の生成のために「最初の３個の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、図１７ｃに示す立方体をもたらす。図示されているように、売上は顧客ＡおよびＢについて表示されているものの、残りの顧客（Ｃ〜Ｆ）の売上は「その他」の値へと集約されている。
【０１３２】
例３
代わりに、ユーザが、立方体の生成のために「最大の３個の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、図１７ｄに示す立方体をもたらす。図示されているように、売上は顧客ＡおよびＣについて表示されているものの、残りの顧客（ＢおよびＤ〜Ｆ）の売上は「その他」の値へと集約されている。
【０１３３】
例４
代わりに、ユーザが、立方体の生成のために「５０以上の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、図１７ｅに示す立方体をもたらす。図示されているように、売上は顧客Ａ、ＢおよびＣについて表示されているものの、残りの顧客（Ｄ〜Ｆ）の売上は「その他」の値へと集約されている。
【０１３４】
例５
代わりに、ユーザが、立方体の生成のために「累算すると総計の８０％になる最大の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、図１７ｆに示す立方体をもたらす。図示されているように、売上は顧客Ａ、Ｂ、ＣおよびＦについて表示されているものの、残りの顧客（ＤおよびＥ）の売上は「その他」の値へと集約されている。
【０１３５】
これらの例はすべて、ここに前述された計算を利用している。上述の例は次元制限の理解を容易にするために簡略化されているということが理解されるべきである。しかしながら、実際の場合では、多くの異なるテーブルにわたって接続された大量のデータについて、１つ以上の複雑な数学関数が算定される場合がある。
【０１３６】
１つ以上の次元（分類変数）について数学関数を順次算定するために、データは、変換構造を使用することにより、および開始テーブルに基づいて、二進コード化フォーマットで処理されてもよい。これを、図４のテーブル１５および１６を参照して例示する。
【０１３７】
ここで、テーブル１５は、開始テーブルにおける各記録について順次更新される仮想データ記録の使用を示し、テーブル１６は、仮想データ記録の順次更新された内容に基づいて、どのように中間データ構造が投入されるかを示している。中間データ構造は、分類変数の値の既存の各固有の組合せについての数式の算定結果を集約するために使用される集約フィールドを含む。テーブル１６では、中間データ構造は、（０，０）、（１，０）、（２，０）、（３，−２）という「クライアント」と「年」との組合せについての算定結果を集約している。−２という値はヌル値を示す。
【０１３８】
テーブル１６はまた、中間データ構造において次元がどのように「排除され」または「折畳まれる」かについて示しており、それは、１つ以上の分類変数のすべての値について数式が集約されることを意味する。このプロセスでは、折畳まれた次元についての算定結果の集約を保持するために、追加のデータ記録が中間データ構造に追加される。テーブル１６では、中間データ構造は、「クライアント」が折畳まれた場合のデータ記録（−１，０）、（−１，−２）と、「年」が折畳まれた場合のデータ記録（０，−１）、（１，−１）、（２，−１）、（３，−１）と、「クライアント」および「年」の双方が折畳まれた場合の１つのデータ記録（−１，−１）とを含む。ある変数についての−１という値はこのため、変数のすべての値の算定結果が集約されたことを示す。
【０１３９】
中間データ構造におけるデータは次に、図５のテーブル１７に示すような多次元立方体を構築するために使用される。中間データ構造および結果として生じる多次元立方体の若干より進んだ例をそれぞれ、図６のテーブル２８および２９に示す。ここでは、より複雑な数学関数が多次元立方体（テーブル２９）において算定され、中間データ構造（テーブル２８）は、テーブル２８および２９に示す多次元立方体における数学関数の正しい算定のために必要とされるある数式の算定結果を集約する集約フィールドを含む。
【０１４０】
上述の例１〜５に戻ると、全体的な多次元立方体（上述の例１の全テーブルを参照）を生成し、この立方体において、たとえば最初の２人の顧客および彼らの売上データ（例２）、または売上が最大の２人の顧客および彼らの売上データ（例３）などのデータを単純に選択することにより、ある次元制限が適用可能であることが認識されるべきである。
【０１４１】
「その他」の値を算定すべき場合、困難が生じる。なぜなら、この値は、多次元立方体が生成される場合、定義できないためである（なぜなら、その内容は、多次元立方体が一旦生成されて初めて知られるためである）。「その他」の値は、１つ以上の分類変数（上述の例ではある「顧客」）の特定の値についての算定結果の集約に対応している。上述の例では、数学関数は単純な加算であり、「その他」の値についての数学関数の算定結果は、「その他」の値に含まれるべき「顧客」についての（立方体内の）合計を単純に加算することによって得られてもよい。しかしながら、数学関数がより複雑である場合、たとえば、それが平均数量を含む場合（上述のテーブル２８〜２９を参照）、「その他」の値は、立方体内のデータを組合せることによって得ることはできない。
【０１４２】
１つの解決策は、「その他」の値を定義する分類変数の特定の値についての集約フィールドを含む、新しい多次元立方体の計算を開始することである。例２の状況では、この新しい立方体は、顧客Ｃ〜Ｆについての集約された結果を含む「その他」として指定された新しい「顧客」を含むように計算されるであろう。
【０１４３】
データ処理を最小限に抑えるため、本方法およびシステムは、多次元立方体に「その他」の値を投入するために、中間データ構造（たとえば、既存のまたは以前にデータ投入された中間データ構造）を利用できる。前述のように、中間データ構造の集約フィールドは、次元が折畳まれる（排除される）ことを可能にするように定義されている。いくつかの点で、「その他」の値の算定は、中間データ構造における次元の部分的排除として見なされてもよい。
【０１４４】
このため、例２〜４では、次元制限は、立方体に含まれるべき変数「顧客」の値を、対応する売上とともに識別する。立方体の「その他」の値は、中間データ構造を全面的に検討することにより変数「顧客」の残りの値についての売上を集約することによって、投入される。
【０１４５】
例５では、次元制限は、総売上が知られることを必要とする。（次元「顧客」の排除に対応して）中間データ構造が一旦生成されて初めて、総売上データが知られる。「その他」の値を投入するために、中間データ構造は、総売上の少なくとも８０％に達するまで異なる「顧客」についての集約フィールドにおける最大値（売上）を識別し、残りの「顧客」の売上を集約することにより「その他」の値の内容を算定するために、もう一度全面的に検討される。
【０１４６】
中間データ構造に基づいて「その他」の値を正しく算定できないかもしれない状況がある。たとえば、（ＵＳ７０５８６２１で述べられた）算定が頻度データへの特別の注意を必要とする場合などである。一実施例では、本方法およびシステムは、頻度データへの特別の注意についての潜在的必要性を検出する構成要素を含む。そのような潜在的必要性が検出された場合、本方法およびシステムは、「その他」の値を投入することを拒否してもよい。一変形例では、本方法およびシステムは代わりに、（たとえば、中間データ構造に基づいて「その他」の値を算定することにより通常回避される処理集約型の代替例を使用して）「その他」の値を含む新しい多次元立方体の計算を開始してもよい。一例では、多次元立方体の生成中に、１つの仮想データ記録の内容に基づいて中間データ構造における２つ以上のデータ記録が更新されたことを、ソフトウェアが検出した場合にはいつでも、頻度データへの特別の注意についての潜在的必要性はフラグを立てられてもよい。
【０１４７】
グローバルグループ化モードの例
図１８ａに示す多次元立方体を仮定する。ここで、この立方体は、２つの次元（分類変数）である「製品」および「顧客」についての売上を算定するために生成される。ここで、ユーザが、「最大の３個の値のみを表示」という次元制限を「顧客」という変数に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、図１８ｂに示す多次元立方体をもたらすであろう。
【０１４８】
図示されているように、プロセスは、製品Ｘの最大の売上を有する２人の顧客と、製品Ｙの最大の売上を有する２人の顧客とを識別し、製品Ｘについての「その他」の値と製品Ｙについての「その他」の値とを生成する。製品Ｘについての「その他」の値は、顧客Ｃ〜Ｆについての売上を累算し、製品Ｙについての「その他」の値は、顧客ＢおよびＤ〜Ｆについての売上を累算している。「その他」の値は、（たとえば、中間データ構造を全面的に検討することにより）上述と同様に生成される。
【０１４９】
代わりに、ユーザが同じ次元制限を「顧客」という変数について適用し、（「その他を表示」のボックスにチェックマークを付けつつ）「グローバルグループ化モード」のボックスにもチェックマークを付けたと仮定する。これは、図１８ｃに示す多次元立方体をもたらすであろう。
【０１５０】
グローバルグループ化モードにより、プロセスは、すべての製品（たとえば、組合された製品Ｘおよび製品Ｙ）の最大の売上を有する２人の顧客を識別するようになる。立方体は、これら２人の顧客についての製品Ｘについての売上データ、および製品Ｘについての残りの「顧客」（たとえば、顧客ＢおよびＤ〜Ｆ）についての売上を累算した「その他」の値、ならびに、これら２人の顧客についての製品Ｙについての売上データ、および製品Ｙについての残りの「顧客」（たとえば、顧客ＢおよびＤ〜Ｆ）についての売上を累算した「その他」の値を含むように生成される。
【０１５１】
このように、グローバルグループ化モードにより、次元制限は、選択された次元（顧客）にのみ適用されるようになる。
【０１５２】
図１９に示す一局面では、かつ次元制限と関連してここで説明される様々な特徴に鑑みて、２３０１で、データ処理事象をデータセットに対して実行して第１の多次元立方体データ構造をもたらすステップと、２３０２で、１つ以上の次元制限をその多次元立方体データ構造に適用して第２の多次元立方体データ構造をもたらすステップとを含む、データ分析のための方法が提供される。第１のデータ処理事象は、データセットにおける１つ以上の次元変数について数学関数を算定することを含んでいてもよい。１つ以上の次元制限は、「…のみを表示」、「…である値のみを表示」、「累算すると…になる値のみを表示」などを含んでいてもよい。一局面では、第２の多次元立方体データ構造は、「その他を表示」、「グローバルグループ化」などのうちの１つ以上に従って表示されてもよい。
【０１５３】
所与のチャートにおいて表示される次元値の数を制御するために、「次元制限」というオプションがユーザに提示されてもよい。ユーザは、複数の値、たとえば「最初の…個の値」、「最大の…個の値」および「最小の…個の値」のうちの１つを選択可能である。これらの値は、システムが視覚化コンポーネントに戻す値をシステムがソートする方法を制御する。一局面では、ソーティングは第１の式についてのみ発生する（一次ソートが一次元ソートをオーバーライドし得る場合は、ピボットテーブルを除く）。
【０１５４】
図２０は、本開示の１つ以上の局面に従ったデータ分析のための例示的な方法２０００のフローチャートを示す。コンピュータ７０１などのコンピューティング装置、もしくはそれに一体化され、またはそれに機能的に結合された（プロセッサ７０３などの）プロセッサは、例示的な方法２０００の少なくとも一部を実現可能である。２０１０で、データセットが処理され、第１の多次元立方体データ構造をもたらす。データセットは、１つ以上のテーブルを含むテーブル構造を有する。２０１０の実現（たとえば、プロセッサ２１２０またはプロセッサ７０３などのプロセッサによる実行）を処理アクションと称することができる。一局面では、データセットを処理して第１の多次元立方体データ構造をもたらすことは、テーブル構造の１つ以上の次元変数について数学関数を算定することを含む。
【０１５５】
２０２０で、１つ以上の次元制限を第１の多次元立方体データ構造に適用することによって、第２の多次元立方体データ構造が生成される。一局面では、１つ以上の次元制限を第１の多次元立方体データ構造に適用することは、１つ以上のユーザインターフェイス要素を構成することを含む。別の局面では、１つ以上の次元制限を第１の多次元立方体データ構造に適用することは、特定の表示オプションの選択に応答して、次元制限を第２の多次元立方体データ構造の選択された次元変数に適用することを含む。さらに別の局面では、１つ以上の次元制限を第１の多次元立方体データ構造に適用することは、次元制限を適用して、表示中の第２の多次元立方体データ構造の第１の特定の部分をもたらすことを含む。さらに別の局面では、１つ以上の次元制限を第１の多次元立方体データ構造に適用することは、表示オプションを適用して、表示中の第２の多次元立方体データ構造の第２の特定の部分をもたらすことをさらに含む。
【０１５６】
一局面では、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含む。別の局面では、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、特定の複数の行のそれぞれの値は累算され、所定の値と比較される。さらに別の局面では、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、特定の複数の行は大きい順に並べられる。さらに別の局面では、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、特定の複数の行は小さい順に並べられる。追加のまたは代替的な一局面では、第１の特定の部分は、特定の条件を満たす１つ以上の値を含む。
【０１５７】
ある実施例では、第１の特定の部分は、特定の条件を満たさない複数の値を集約することに起因する集約された値を含む。そのような実施例の一局面では、第１の多次元立方体データ構造は、データセットの１つ以上の計算変数について特定の数学関数を算定した結果を含み、第１の多次元立方体データ構造は、データセットの１つ以上の次元変数のすべての固有値について区分化される。
【０１５８】
そのような実施例の追加のまたは代替的な一局面では、データセットを処理して第１の多次元立方体データ構造をもたらすことは、テーブル構造の１つ以上のテーブルからデータ項目を順次読出すことと、１つ以上のデータ記録を含む中間データ構造を投入することとを含み、１つ以上のデータ記録の各々１つは、各次元変数についてのフィールドと、特定の数学関数によって暗示される１つ以上の数式についての集約フィールドとを含む。一局面では、１つ以上のデータ記録を含む中間データ構造を投入することは、データ項目について、各次元変数の現在の値を識別することと、データ項目に基づいて１つ以上の数式の各々１つを算定することと、各次元変数の現在の値に基づいて、適切な集約フィールドにおいて前記算定の結果を集約することとを含む。別の局面では、第１の多次元立方体データ構造は、各次元変数のすべての固有値についての集約フィールドの内容に基づいて、特定の数学関数を算定することによって生成される。さらに別の局面では、第２の多次元立方体データ構造は、中間データ構造を全面的に検討することによって生成され、それにより特定の条件を満たさない複数の値を集約することに起因する集約された値を生成する。
【０１５９】
一実現例では、例示的な方法２０００は、第１の多次元立方体データ構造に基づいて、特定の条件を満たさない１つ以上の次元変数の値を識別することを含んでいてもよい。一局面では、中間データ構造を全面的に検討することは、特定の条件を満たさない１つ以上の次元変数の値に関連付けられた集約フィールドの内容を集約し、それにより特定の条件を満たさない複数の値を集約するために特定の数学関数を算定することを含んでいてもよい。
【０１６０】
図２１は、本開示の方法の１つ以上の少なくとも一部を実現（たとえば、実行）可能な例示的なコンピューティング装置２１００を示す。図示されているように、コンピューティング装置２１００は、バス２１１５を介してメモリ２１２０に機能的に結合されたプロセッサ２１１０を含む。プロセッサ７０３はプロセッサ２１１０を具現化してもよく、または含んでいてもよく、システムメモリ７１２はメモリ２１２０を含んでいてもよく、または具現化してもよく、バス７１３はバス２１１５を含んでいてもよく、または具現化してもよい。一実施例では、データ分析ソフトウェア２１２４に含まれるコンピュータ実行可能な命令は、データセットを処理して第１の多次元立方体データ構造をもたらすようにプロセッサ２１１０を構成可能であり、データセットは１つ以上のテーブルを含むテーブル構造を有する。また、一局面では、そのような命令は、１つ以上の次元制限を第１の多次元立方体データ構造に適用して、第２の多次元立方体データ構造をもたらすようにプロセッサ２１１０を構成可能である。一局面では、１つ以上の次元制限の各々は、第２の多次元立方体データ構造における１つ以上の次元変数の値の表示数を制約する。
【０１６１】
別の局面では、プロセッサ２１１０は、特定の表示オプションの選択に応答して、次元制限を第２の多次元立方体データ構造に適用するように構成可能である。さらに別の局面では、プロセッサ２１１０はさらに、次元制限を適用して、表示中の第２の多次元立方体データ構造の第１の特定の部分をもたらすように構成可能である。第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含んでいてもよい。それに加えてまたはそれに代わって、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、特定の複数の行のそれぞれの値は累算され、所定の値と比較される。さらにまたはそれに代わって、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、特定の複数の行は大きい順に並べられる。あるシナリオでは、第１の特定の部分は、第１の多次元立方体データ構造に含まれるテーブルの第１の特定の複数の行を含み、特定の複数の行は小さい順に並べられる。他のシナリオでは、第１の特定の部分は、特定の条件を満たす１つ以上の値を含んでいてもよい。
【０１６２】
一局面では、プロセッサ２１１０はさらに、１つ以上のユーザインターフェイス要素を構成するように構成可能である。別の局面では、プロセッサは、表示オプションを適用して、表示中の第２の多次元立方体データ構造の第２の特定の部分をもたらすように構成可能である。さらに別の局面では、プロセッサはさらに、データセットの１つ以上の次元変数について数学関数を算定するように構成可能である。
【０１６３】
本開示の方法およびシステムを、好ましい実施例および特定の例に関連して説明してきた。ここの実施例はすべての点で限定的ではなく例示的であるよう意図されているため、範囲は、述べられた特定の実施例に限定されるよう意図されてはいない。
【０１６４】
特に明記しない限り、ここに述べられたどの方法も、そのステップが特定の順序で行なわれることを要するとして解釈されるべきであるとは全く意図されていない。したがって、ある方法クレームがそのステップによって追従されるべき順序を実際に記載していない場合、もしくは、ステップが特定の順序に限定されるべきであるということが請求項または説明において具体的に記載されていない場合、いかなる点でも、順序が推論されるべきであるとは全く意図されていない。これは、ステップまたは動作フローの構成に関する論理の事項、文法構成または句読法から由来する明白な意味、明細書に記載された実施例の数またはタイプを含む、解釈のためのあらゆる可能な非発現基盤について当てはまる。
【０１６５】
さまざまな修正および変更が範囲または精神から逸脱することなくなされ得ることは、当業者には明らかであろう。ここに開示された明細書および実践を検討することから、他の実施例が当業者には明らかであろう。明細書および例は単なる例示として考えられ、真の範囲および精神は請求項によって示されるということが意図されている。
【図９】
2014533402.tif 000003
【図１０ａ】
2014533402.tif 000004
【図１０ｂ】
2014533402.tif 000005
【図１２ａ】
2014533402.tif 000006
【図１２ｂ】
2014533402.tif 000007
【図１６】
2014533402.tif 000008
【図１】
2014533402.tif 000009
【図２】
2014533402.tif 000010
【図３】
2014533402.tif 000011
【図４】
2014533402.tif 000012
【図５】
2014533402.tif 000013
【図６】
2014533402.tif 000014
【図７】
2014533402.tif 000015
【図８】
2014533402.tif 000016
【図１１ａ】
2014533402.tif 000017
【図１１ｂ】
2014533402.tif 000018
【図１３ａ】
2014533402.tif 000019
【図１３ｂ】
2014533402.tif 000020
【図１３ｃ】
2014533402.tif 000021
【図１４】
2014533402.tif 000022
【図１５】
2014533402.tif 000023
【図１７ａ】
2014533402.tif 000024
【図１７ｂ】
2014533402.tif 000025
【図１７ｃ】
2014533402.tif 000026
【図１７ｄ】
2014533402.tif 000027
【図１７ｅ】
2014533402.tif 000028
【図１７ｆ】
2014533402.tif 000029
【図１８ａ】
2014533402.tif 000030
【図１８ｂ】
2014533402.tif 000031
【図１８ｃ】
2014533402.tif 000032
【図１９】
2014533402.tif 000033
【図２０】
2014533402.tif 000034
【図２１】
2014533402.tif 000035
【国際調査報告】
2014533402.tif 000036
2014533402.tif 000037
2014533402.tif 000038