(58)【調査した分野】(Int.Cl.,DB名)
前記1つ以上の次元制限を前記第1の多次元立方体データ構造に適用することは、1つ以上のユーザインターフェイス要素を構成することを含む、請求項1に記載の方法。
前記1つ以上の次元制限を前記第1の多次元立方体データ構造に適用することは、特定の表示オプションの選択に応答して、次元制限を前記第2の多次元立方体データ構造の選択された次元変数に適用することを含む、請求項1または2に記載の方法。
前記1つ以上の次元制限を前記第1の多次元立方体データ構造に適用することは、表示オプションを適用して、表示中の第2の多次元立方体データ構造の第2の特定の部分をもたらすことをさらに含む、請求項1に記載の方法。
前記第1の特定の部分は、前記第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、前記特定の複数の行のそれぞれの値は累算され、所定の値と比較される、請求項1〜5のうちいずれか1項に記載の方法。
データセットを処理して前記第1の多次元立方体データ構造をもたらすことは、前記テーブル構造の1つ以上の次元変数について数学関数を算定することを含む、請求項1〜9のうちいずれか1項に記載の方法。
投入するアクションは、前記データ項目について、各次元変数の現在の値を識別することと、データ項目に基づいて前記1つ以上の数式の各々1つを算定することと、各次元変数の現在の値に基づいて、適切な集約フィールドにおける前記算定の結果を集約することとを含む、請求項1〜10のいずれか1項に記載の方法。
前記第1の多次元立方体データ構造は、各次元変数のすべての固有値についての集約フィールドの内容に基づいて、前記特定の数学関数を算定することによって生成される、請求項11に記載の方法。
前記中間データ構造を全面的に検討することは、前記特定の条件を満たさない前記1つ以上の次元変数の値に関連付けられた前記集約フィールドの内容を集約し、それにより前記特定の条件を満たさない複数の値を集約するために前記特定の数学関数を算定することを含む、請求項1〜13のいずれか1項に記載の方法。
前記プロセッサはさらに、特定の表示オプションの選択に応答して、次元制限を前記第2の多次元立方体データ構造の選択された次元変数に適用するように構成されている、請求項15または16に記載の装置。
前記第1の特定の部分は、前記第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、前記特定の複数の行のそれぞれの値は累算され、所定の値と比較される、請求項15〜20のうちいずれか1項に記載の装置。
【発明を実施するための形態】
【0010】
詳細な説明
この発明の方法およびシステムを開示し説明する前に、この方法およびシステムは特定の方法、特定の構成要素、または特定の構成に限定されないということが理解されるべきである。また、ここに使用される用語は、特定の実施例を説明することのみを目的としており、限定的であるよう意図されてはいないということも理解されるべきである。
【0011】
明細書および添付された請求項において使用されているように、文脈が明らかに別に指示していない限り、単数形は複数の対象を含む。範囲はここでは、「およそ」ある特定の値から「およそ」別の特定の値までとして表わされてもよい。そのような範囲が表わされる場合、別の実施例は、その特定の値からその別の特定の値までを含む。同様に、先行詞「およそ」の使用によって値が近似値として表わされる場合、その特定の値は別の実施例を形成することが理解されるであろう。さらに、各範囲の終点は、他方の終点に関連して、および他方の終点とは独立して、有意であるということが理解されるであろう。
【0012】
「オプションの」または「オプションで」とは、次に説明される事象または状況が発生する場合があり、または発生しない場合があるということ、および、その説明が、前記事象または状況が発生する事例と発生しない事例とを含むことを意味する。
【0013】
本明細書の説明および請求項全体を通して、「含む」という文言、ならびに「含み」および「含んで」といったこの文言の変化形は、「…を含むがそれに限定されない」ということを意味し、たとえば他の付加物、構成要素、整数またはステップを除外するよう意図されてはいない。「例示的な」とは「…の一例」を意味し、好ましいまたは理想の一実施例の表示を伝えるよう意図されてはいない。「…などの」は限定的な意味で使用されておらず、説明の目的のために使用されている。
【0014】
開示された方法およびシステムを行なうために使用可能な構成要素が開示される。これらのおよび他の構成要素がここに開示される。これらの構成要素の組合せ、部分集合、相互作用、群などであって、各々を具体的に参照すると、さまざまな個々のおよび集合的な組合せ、ならびにこれらの置換が明示的に開示されていないかもしれないものが開示されている場合、各々はここに、すべての方法およびシステムについて具体的に考慮され説明されている、ということが理解される。これは、開示された方法におけるステップを含むがそれらに限定されない、本願のあらゆる局面に当てはまる。このため、実行可能なさまざまな追加のステップまたはアクションがある場合、これらの追加のステップの各々は、開示された方法の任意の特定の実施例または実施例の組合せで実行可能である、ということが理解される。
【0015】
ここで、図面の
図1〜
図6を参照して、この発明およびシステムを例として説明する。
図1は、開示された方法に従った、関連するデータテーブルの識別後のデータベースの内容を示し、
図2は、本開示の1つ以上の局面に従った方法の一実施例の一連のステップを示し、
図3〜
図6は例示的なデータテーブルを示している。
【0016】
データベースは、
図1に示すように、複数のデータテーブル(テーブル1〜5)を含む。各データテーブルは、複数のデータ変数のデータ値を含む。たとえば、テーブル1では、各データ記録は、データ変数「製品(Product)」、「価格(Price)」および「部品(Part)」のデータ値を含む。データ記録のフィールドに特定の値がない場合、このフィールドはヌル値(Null-value)を保持すると考えられる。同様に、テーブル2では、各データ記録は、変数「日付(Date)」、「クライアント(Client)」、「製品」、および「個数(Number)」の値を含む。典型的には、データ値は、ASCIIコード化されたストリングの形で格納される。
【0017】
本開示の1つ以上の局面に従った方法は、たとえば、プロセッサによる実行に応答してコンピュータプログラムによって実現可能である。第1のステップ(ステップ101)で、プログラムは、たとえば、データベースのすべてのテーブル、たとえばこの場合テーブル1〜5を選択する選択(SELECT)命令文を使用して、データベースにおけるすべてのデータ記録を読出す。典型的には、データベースは、コンピュータの一次メモリに読込まれる。
【0018】
算定速度を増加させるには、前記データベースにおける各データ変数の各固有値に、異なる二進コードが割当てられること、および、データ記録は二進コード化された形式で格納されることが好ましい(ステップ101)。これは典型的には、プログラムが最初にデータベースからデータ記録を読出す際に行なわれる。各入力テーブルについて、以下のステップが実行される。まず、テーブルの列名、たとえば変数が連続的に読出される。新しいデータ変数が現れるたびに、それのためにデータ構造がインスタンス化される。次に、すべてのデータ記録を二進形式で含むように、内部テーブル構造がインスタンス化され、すると、データ記録は連続的に読出されて二進コード化される。各データ値について、その値に以前に二進コードが割当てられていたかを確かめるために、対応するデータ変数のデータ構造がチェックされる。割り当てられていた場合、その二進コードは、上述のテーブル構造の適正な場所に挿入される。割り当てられていなかった場合、データ値はデータ構造に追加され、新しい二進コード、好ましくは小さい順で次の二進コードが割当てられてからテーブル構造に挿入される。言い換えれば、各データ変数について、固有の二進コードが各固有データ値に割当てられる。
【0019】
図3のテーブル6〜12は、
図1のデータベースに含まれるいくつかのデータ変数の異なるデータ値に割当てられた二進コードを示す。
【0020】
データベースにおけるすべてのデータ記録を読出した後、プログラムは、データテーブル間のすべての接続を識別する(ステップ102)ためにデータベースを分析する。2つのデータテーブル間の接続とは、これらのデータテーブルが1つの変数を共有していることを意味する。そのような分析を行なうための異なるアルゴリズムは、当該技術分野において公知である。分析後、すべてのデータテーブルは仮想接続される。
図1では、そのような仮想接続は両端矢印(a)によって示されている。仮想接続されたデータテーブルは、少なくとも1つのいわゆる雪片構造、たとえば、データベースにおける任意の2つのデータテーブル間に唯一の接続経路がある分岐データ構造を形成すべきである。このため、雪片構造はループを全く含まない。仮想接続されたデータテーブル中にループが生じた場合、たとえば2つのテーブルが2つ以上の変数を共有する場合、場合によっては、そのようなループを解消するための、当該技術分野において公知の特殊アルゴリズムによって、雪片構造が依然として形成される場合がある。
【0021】
この最初の分析後、ユーザはデータベースの調査を開始できる。そうする際、ユーザは数学関数を定義し、それは数式の組合せであってもよい(ステップ103)。ユーザが
図1のデータベースから年およびクライアント毎の総売上を抽出したいと仮定する。ユーザは対応する数学関数「SUM(x
*y)」を定義し、この関数に含まれるべき計算変数「価格」および「個数」を選択する。ユーザはまた、分類変数「クライアント」および「年(Year)」も選択する。
【0022】
コンピュータプログラムは次に、すべての関連するデータテーブル、たとえば選択された計算変数および分類変数のうちのいずれか1つを含むすべてのデータテーブル(そのようなデータテーブルは境界テーブルと呼ばれる)を識別し(ステップ104)、ならびに、雪片構造におけるこれらの境界テーブル間の接続経路にあるすべての中間データテーブル(そのようなデータテーブルは接続テーブルと呼ばれる)を識別する。明確にするために、
図1の第1のフレーム(A)には、関連するデータテーブルの群(テーブル1〜3)が含まれている。明らかに、この特定の場合、接続テーブルはない。
【0023】
この場合、選択された計算変数のすべての値、たとえば頻度データのすべての発生は、数学関数の算定のために含まれなければならない。
図1では、そのような頻度データを必要とする選択された変数(「価格」、「個数」)は太い矢印(b)で示され、一方、残りの選択された変数は点線(b′)で示されている。ここで、そのような計算変数を含むすべての境界テーブル(テーブル1〜2)と、雪片構造におけるそのような境界テーブル間の接続テーブルとを含む、部分集合(B)が定義可能である。なお、ある特定の変数の頻度要件は、それが含まれる数式によって求められる。平均値または中央値を求めることは、頻度情報を必要とする。一般に、これは合計を求めることについても当てはまり、一方、最大値または最小値を求めることは、計算変数の頻度データを必要とはしない。また、分類変数は一般に、頻度データを必要とはしない。
【0024】
次に、好ましくは部分集合(B)内のデータテーブルから、最も好ましくはこの部分集合において最も多くのデータ記録を有するデータテーブルから、開始テーブルが選択される(ステップ105)。
図1では、テーブル2が開始テーブルとして選択される。このため、開始テーブルは、選択された変数(「クライアント」、「個数」)と、接続変数(「日付」、「製品」)とを含む。これらの接続変数は、開始テーブル(テーブル2)を境界テーブル(テーブル1および3)にリンクさせる。
【0025】
その後、
図4のテーブル13および14に示すように、変換構造が構築される(ステップ106)。この変換構造は、開始テーブル(テーブル2)における各接続変数(「日付」、「製品」)の各値を、境界テーブル(テーブル3および1)における対応する選択された変数(それぞれ「年」、「価格」)の値に変換するために使用される。テーブル13は、テーブル3のデータ記録を連続的に読出して、接続変数(「日付」)の各固有値と選択された変数(「年」)の対応する値との間にリンクを作成することによって構築される。なお、値4(「日付:1999−01−12」)からのリンクはない。なぜなら、この値は境界テーブルに含まれていないためである。同様に、テーブル14は、テーブル1のデータ記録を連続的に読出して、接続変数(「製品」)の各固有値と選択された変数(「価格」)の対応する値との間にリンクを作成することによって構築される。この場合、値2(「製品:練り歯磨き(Toothpaste)」)は、選択された変数の2つの値(「価格:6.5」)にリンクされている。なぜなら、この接続は境界テーブルにおいて2回発生しているためである。こうして、頻度データが変換構造に含まれる。なお、値3(「製品:シャンプー(Shampoo)」)からのリンクもない。
【0026】
変換構造が構築されると、仮想データ記録が作成される。テーブル15に示すようなそのような仮想データ記録は、データベースにおけるすべての選択された変数(「クライアント」、「年」、「価格」、「個数」)に適応する。仮想データ記録を構築する際(ステップ107〜108)、まず、開始テーブル(テーブル2)からあるデータ記録が読出される。次に、開始テーブルの現在のデータ記録における選択された各変数(「クライアント」、「個数」)の値が、仮想データ記録に組込まれる。また、変換構造(テーブル13〜14)を使用することにより、開始テーブルの現在のデータ記録における各接続変数(「日付」、「製品」)の各値は、対応する選択された変数(「年」、「価格」)の値に変換され、この値も仮想データ記録に組込まれる。
【0027】
この段階(ステップ109)で、仮想データ記録は、中間データ構造(テーブル16)を構築するために使用される。中間データ構造の各データ記録は、選択された各分類変数(次元)と、数学関数によって暗示される各数式についての集約フィールドとに適応する。中間データ構造(テーブル16)は、仮想データ記録における選択された変数の値に基づいて構築される。このため、各数式は、仮想データ記録における1つ以上の関連する計算変数の1つ以上の値に基づいて算定され、結果は、分類変数(「クライアント」、「年」)の現在の値の組合せに基づいて、適切な集約フィールドにおいて集約される。
【0028】
開始テーブルのすべてのデータ記録について、上述の手順が繰返される(ステップ110)。こうして、開始テーブルのデータ記録を連続的に読出すことにより、仮想データ記録における選択された変数の現在の値を組込むことにより、および仮想データ記録の内容に基づいて各数式を算定することにより、中間データ構造が構築される。仮想データ記録における分類変数の値の現在の組合せが新しい場合、算定の結果を保持するために、新しいデータ記録が中間データ構造において作成される。その他の場合、適切なデータ記録が迅速に発見され、算定の結果が集約フィールドにおいて集約される。こうして、開始テーブルが全面的に検討されるにつれて、データ記録が中間データ構造に追加される。好ましくは、中間データ構造は、AVLまたはハッシュ構造などの効率的な指標システムに関連付けられたデータテーブルである。大抵の場合、集約フィールドは加算レジスタとして実現され、そこで、算定された数式の結果が累算される。場合によっては、たとえば中央値を算定する場合、集約フィールドは代わりに、特定された分類変数の値の固有の組合せについてのすべての個々の結果を保持するように実現される。なお、開始テーブルから中間データ構造を構築する手順では、たった1つの仮想データ記録が必要とされる。このため、開始テーブルの各データ記録について、仮想データ記録の内容が更新される。これは、コンピュータプログラムを実行する際のメモリ要件を最小化するであろう。
【0029】
中間データ構造を構築する手順を、テーブル15〜16を参照してさらに説明する。テーブル15に示すような第1の仮想データ記録R1を作り出す際、選択された変数「クライアント」および「個数」の値は、開始テーブル(テーブル2)の第1のデータ記録からそのまま取られる。次に、変換構造(テーブル13)により、接続変数「日付」の値「1999−01−02」が、選択された変数「年」の値「1999」へと転送される。同様に、変換構造(テーブル14)により、接続変数「製品」の値「練り歯磨き」が、選択された変数「価格」の値「6.5」へと転送され、それにより仮想データ記録R1を形成する。次に、
図16に示すように、データ記録が中間データ構造において作成される。この場合、中間データ構造は3つの列を有し、そのうちの2つは選択された分類変数(「クライアント」、「年」)を保持する。第3の列は集約フィールドを保持しており、そこで、選択された計算変数(「個数」、「価格」)に作用する数式(「x
*y」)の算定結果が集約される。仮想データ記録R1を算定する際、分類変数の現在の値(二進コード:0,0)が最初に読出され、中間データ構造のこのデータ記録に組込まれる。次に、計算変数の現在の値(二進コード:2,0)が読出される。数式は、これらの値について算定され、関連付けられた集約フィールドに追加される。
【0030】
次に、開始テーブルに基づいて、仮想データ記録が更新される。変換構造(テーブル14)は接続変数「製品」の値「練り歯磨き」について、選択された変数「価格」の値「6.5」の複製を示しているため、更新された仮想データ記録R2は変わらないままであり、R1と同一である。次に、仮想データ記録R2は上述のように算定される。この場合、中間データ構造は、分類変数の現在の値(二進コード:0,0)に対応するデータ記録を含む。このため、数式の算定結果が、関連付けられた集約フィールドで累算される。
【0031】
次に、開始テーブルの第2のデータ記録に基づいて、仮想データ記録が更新される。この更新された仮想データ記録R3を算定する際、新しいデータ記録が中間データ構造において作成され、以下同様である。
【0032】
なお、この例では、ヌル値は−2という二進コードによって表わされる。また、図示された例では、計算変数のうちのいずれか1つのヌル値(−2)を保持する仮想データ記録は、直接排除可能である。なぜなら、ヌル値は数式(「x
*y」)において算定できないためである。また、分類変数のすべてのヌル値(−2)は任意の他の有効値として扱われ、中間データ構造に配置される。
【0033】
開始テーブルを全面的に検討後、中間データ構造は4つのデータ記録を含み、各々、分類変数の値(0,0;1,0;2,0;3,−2)の固有の組合せと、算定された数式の対応する累算結果(41;37.5;60;75)とを含む。
【0034】
好ましくは、中間データ構造はまた、1つ以上の分類変数(または次元変数)を排除するために処理される。好ましくは、これは、上述のような中間データ構造を構築するプロセスの最中に行なわれる。仮想データ記録が算定されるたびに、中間データ構造において、追加のデータ記録が作成され、または、それらが既に存在している場合には発見される。これらの追加のデータ記録の各々は、1つ以上の分類変数のすべての値について、数式の算定結果の集約を保持するよう定められている。このため、開始テーブルが全面的に検討されると、中間データ構造は、分類変数の値のすべての固有の組合せについての集約された結果と、関連する各分類変数の排除後の集約された結果との双方を含むであろう。
【0035】
中間データ構造において次元を排除するこの手順を、テーブル15および16を参照してさらに説明する。仮想データ記録R1が算定され(テーブル15)、第1のデータ記録(0,0)が中間データ構造において作成されると、追加のデータ記録がこの構造において作成される。そのような追加のデータ記録は、1つ以上の次元が排除されると対応する結果を保持するよう定められている。テーブル16では、ある分類変数に、この変数のすべての値が算定されることを示すために、中間データ構造において−1の二進コードが割当てられる。この場合、3つの追加のデータ記録が作成され、各々、分類変数の値(−1,0;0,−1;−1.−1)の新しい組合せを保持する。これらの追加のデータ記録の関連付けられた集約フィールドにおいて、算定結果が集約される。これらの追加のデータ記録の1番目の(−1,0)は、分類変数「年」が値「1999」を有する場合の分類変数「クライアント」のすべての値についての集約結果を保持するよう定められている。2番目の追加のデータ記録(0,−1)は、分類変数「クライアント」が「Nisse」である場合の分類変数「年」のすべての値についての集約結果を保持するよう定められている。3番目の追加のデータ記録(−1,−1)は、両方の分類変数(「クライアント」および「年」)のすべての値についての集約結果を保持するよう定められている。
【0036】
仮想データ記録R2が算定される場合、結果は、分類変数の値(二進コード:0,0)の現在の組合せに関連付けられた集約フィールドにおいて、および、関連する追加のデータ記録(二進コード:−1,0;0,−1;−1,−1)に関連付けられた集約フィールドにおいて集約される。仮想データ記録R3が算定される場合、結果は、分類変数の値(二進コード:1,0)の現在の組合せに関連付けられた集約フィールドにおいて集約される。結果はまた、中間データ構造の、新しく作成された追加のデータ記録(二進コード:1,−1)の集約フィールドにおいて、および、関連する既存のデータ記録(二進コード:−1,0;−1,−1)に関連付けられた集約フィールドにおいても集約される。
【0037】
開始テーブルを全面的に検討後、中間データ構造は、テーブル16に示すように11種類のデータ記録を含む。好ましくは、中間データ構造が3つ以上の分類変数に適応する場合、中間データ構造は、排除される各分類変数について、残りの分類変数の値の各固有の組合せについて、この分類変数のすべての値にわたって集約された算定結果を含むであろう。
【0038】
中間データ構造が構築されると、中間データ構造に含まれる数式(「x
*y」)の結果に基づいて数学関数(「SUM(x
*y)」)を算定することにより、
図5のテーブル17において二進法でない表記で示すような、最終データ構造、たとえば多次元立方体が作成される(ステップ111)。そうする際、分類変数の値の各固有の組合せについての集約フィールドにおける結果が組合される。図示された事例では、最終データ構造の作成は、この数学関数の自明な性質により単純明快である。最終データ構造の内容は次に、
図5のテーブル18に示すような二次元テーブルでユーザに提示されてもよい(ステップ112)。また、これに代えて、最終データ構造が多くの次元を含む場合、データは、当該技術分野において周知であるような、ユーザがインタラクティブに次元を上下に移動できるピボットテーブルで提示されてもよい。
【0039】
以下に、開示された方法の第2の例が、
図5〜6のテーブル20〜29を参照して説明可能である。この説明は単に、この例のある局面、すなわち、接続テーブルからのデータを含む変換構造の構築、およびより複雑な数学関数のための中間データ構造の構築について詳述するであろう。この例では、ユーザは、
図5のテーブル20〜23に示すデータテーブルを含むデータベースから、クライアント毎の売上データを抽出したがっている。説明を容易にするために、この例では二進コード化は省略される。
【0040】
ユーザは、クライアント毎に結果を区分化すべき数学関数a)「IF(Only(Environment index)='I') THEN Sum(Number
*Price)
*2, ELSE Sum(Number
*Price))」、およびb)「Avg(Number
*Price)」をすでに特定している。
【0041】
数学関数(a)は、環境指標(Environment index)′I′を有する製品群に属する製品については売上高を2倍にし、一方、他の製品については実際の売上高を使用すべきであることを特定している。数学関数(b)は参照用に含まれたものである。
【0042】
この場合、選択された分類変数は「環境指数」および「クライアント」であり、選択された計算変数は「個数」および「価格」である。テーブル20、22および23は境界テーブルとして識別され、一方、テーブル21は接続テーブルとして識別される。開始テーブルとしてテーブル20が選択される。このため、開始テーブルは、選択された変数(「個数」、「クライアント」)と、接続変数(「製品」)とを含む。接続変数は、接続テーブル(テーブル21)を介して、開始テーブル(テーブル20)を境界テーブル(テーブル22〜23)にリンクさせる。
【0043】
次に、変換構造の形成について、
図6のテーブル24〜26を参照して説明する。変換構造の第1の部分(テーブル24)は、第1の境界テーブル(テーブル23)のデータ記録を連続的に読出して、接続変数(「製品群」)の各固有値と選択された変数(「環境指標」)の対応する値との間にリンクを作成することによって構築される。同様に、変換構造の第2の部分(テーブル25)は、第2の境界テーブル(テーブル22)のデータ記録を連続的に読出して、接続変数(「価格群」)の各固有値と選択された変数(「価格」)の対応する値との間にリンクを作成することによって構築される。次に、接続テーブル(テーブル21)のデータ記録が連続的に読出される。テーブル21における接続変数(「製品」)の対応する値の代わりに、テーブル24および25における接続変数(それぞれ「製品群」および「価格群」)の各値が代入される。結果は、テーブル26に示すように1つの最終変換構造において合併される。
【0044】
次に、開始テーブル(テーブル20)のデータ記録を連続的に読出すことにより、選択された変数(「環境指数」、「クライアント」、「個数」、「価格」)の現在の値を仮想データ記録に組込むために変換構造(テーブル26)を使用することにより、および仮想データ記録の現在の内容に基づいて各数式を算定することにより、中間データ構造が構築される。
【0045】
明確にするために、テーブル27は、開始テーブルの各データ記録についての仮想データ記録の対応する内容を表示している。第1の例に関連して述べたように、たった1つの仮想データ記録が必要とされる。この仮想データ記録の内容は、開始テーブルの各データ記録について更新され、たとえば置換される。
【0046】
テーブル28に示すような中間データ構造の各データ記録は、選択された各分類変数(「クライアント」、「環境指標」)の値と、数学関数によって暗示される各数式についての集約フィールドとに適応する。この場合、中間データ構造は2つの集約フィールドを含んでいる。一方の集約フィールドは、選択された計算変数(「個数」、「価格」)を処理する数式(「x
*y」)の集約結果と、そのような処理の個数のカウンタとを含む。この集約フィールドのレイアウトは、平均数量を計算すべきである(「Avg(x
*y)」)という事実によって与えられる。他方の集約フィールドは、分類変数の値の各組合せについて分類変数「環境指標」の最低値および最高値を保持するように設計されている。
【0047】
第1の例と同様に、仮想データ記録(テーブル27の各行)の現在の内容について数式を算定することにより、および分類変数(「クライアント」、「環境指標」)の現在の値の組合せに基づいて適切な集約フィールドにおいて結果を集約することにより、中間データ構造(テーブル28)が構築される。中間データ構造はまた、分類変数のうちの一方または双方に値「<ALL>」(全て)が割当てられたデータ記録も含む。対応する集約フィールドは、1つ以上の分類変数(次元)が排除された場合、集約結果を含む。
【0048】
中間データ構造が構築されると、中間データ構造に含まれる数式の算定結果に基づいて数学関数を算定することにより、最終データ構造、たとえば多次元立方体が作成される。テーブル29に示すような最終データ構造の各データ記録は、選択された各分類変数(「クライアント」、「環境指標」)の値と、ユーザによって選択された各数学関数についての集約フィールドとに適応する。
【0049】
最終データ構造は、分類変数の値の各固有の組合せについての中間データ構造の集約フィールドにおける結果に基づいて構築される。テーブル28のデータ記録を順次読出すことによって関数(a)が算定される場合、プログラムはまず、テーブル28の最後の列の双方の値が′I′と等しいかどうかをチェックする。等しい場合、テーブル28の第1の集約フィールドに含まれる関連する結果に2を乗算してテーブル29に格納する。等しくない場合、テーブル28の第1の集約フィールドに含まれる関連する結果をそのままテーブル29に格納する。関数(b)が算定される場合、選択された計算変数(「個数」、「価格」)を処理する数式(「x
*y」)の集約結果をそのような処理の個数で除算する。それらは双方とも、テーブル28の第1の集約フィールドに格納されている。結果は、テーブル29の第2の集約フィールドに格納される。
【0050】
本開示により、ユーザは、数学関数を自由に選択してこれらの関数に計算変数を組込むこと、および結果の提示のために分類変数を自由に選択することができる、ということは容易に明らかである。
【0051】
開始テーブルからの一連のデータ記録に基づいて中間データ構造を構築する図示された手順の代わりに、またはこれに加え、メモリ効率が下がるものの、いわゆる結合テーブルをまず構築することが考えられる。この結合テーブルは、開始テーブルのすべてのデータ記録を全面的に検討し、変換構造の使用により開始テーブルにおける各接続変数の各値を境界テーブルにおける少なくとも1つの対応する選択された変数の値に変換することによって構築される。このため、結合テーブルのデータ記録は、選択された変数の値の発生するすべての組合せを含むであろう。次に、結合テーブルの内容に基づいて、中間データ構造が構築される。結合テーブルの各記録について、各数式が算定され、選択された各分類変数の現在の値に基づいて、結果が適切な集約フィールドにおいて集約される。しかしながら、この代替的な手順は、要求された情報を抽出するためにより多くのコンピュータメモリを必要とする。
【0052】
数学関数は、頻度データに対して異なった、および相反する要求を有する数式を含む場合があるということが認識されるべきである。この場合、そのような各数式について、ステップ104〜110(
図2)が繰返され、結果が1つの共通の中間データ構造に格納される。また、これに代えて、各数式について1つの最終データ構造、たとえば多次元立方体が構築されてもよく、これらの立方体の内容は、ユーザへの提示中に融合される。
【0053】
当業者には理解されるように、本方法およびシステムは、完全にハードウェアの実施例、完全にソフトウェアの実施例、またはソフトウェア局面とハードウェア局面とを組合せた実施例の形をとってもよい。また、本方法およびシステムは、コンピュータ読取可能な記憶媒体上にあり、記憶媒体で具現化されるコンピュータ読取可能なプログラム命令(たとえば、コンピュータソフトウェア)を有するコンピュータプログラム製品の形をとってもよい。より特定的には、この方法およびシステムは、ウェブにより実現されるコンピュータソフトウェアの形をとってもよい。ハードディスク、CD−ROM、光学記憶装置、または磁気記憶装置を含む、任意の好適なコンピュータ読取可能な記憶媒体が利用されてもよい。
【0054】
本方法およびシステムの実施例を、方法、システム、機器、およびコンピュータプログラム製品のブロック図およびフローチャート図を参照して説明する。ブロック図およびフローチャート図の各ブロック、ならびにブロック図およびフローチャート図におけるブロックの組合せはそれぞれ、コンピュータプログラム命令によって実現可能である、ということが理解されるであろう。これらのコンピュータプログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理機器にロードされて、コンピュータまたは他のプログラム可能なデータ処理機器上で実行される命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するための手段を作成するようになっていてもよい。
【0055】
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能なデータ処理機器にある特定の態様で機能するように命令できるコンピュータ読取可能なメモリに格納されて、コンピュータ読取可能なメモリに格納された命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するためのコンピュータ読取可能な命令を含む製造品を生成するようになっていてもよい。コンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能なデータ処理機器にロードされて、コンピュータにより実現されるプロセスを生成するために一連の動作ステップがコンピュータまたは他のプログラム可能な機器上で行なわれるようにして、コンピュータまたは他のプログラム可能な機器上で実行される命令が、フローチャートのブロックまたは複数のブロックにおいて特定される機能を実現するためのステップを提供するようになっていてもよい。
【0056】
したがって、ブロック図およびフローチャート図のブロックは、特定される機能を実行するための手段の組合せ、特定される機能を実行するためのステップの組合せ、および特定される機能を実行するためのプログラム命令手段をサポートする。また、ブロック図およびフローチャート図の各ブロック、ならびにブロック図およびフローチャート図におけるブロックの組合せは、特定される機能またはステップを行なう専用ハードウェアベースのコンピュータシステム、または専用ハードウェアとコンピュータ命令との組合せによって実現可能である。
【0057】
当業者であれば、機能的説明が提供されること、およびそれぞれの機能はソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組合せによって実行可能であることを理解するであろう。一局面では、本方法およびシステムは、
図7に示し以下に説明するようなデータ分析ソフトウェア706を含んでいてもよい。例示的な一局面では、本方法およびシステムは、
図7に示し以下に説明するようなコンピュータ701を含んでいてもよい。
【0058】
図7は、開示された方法を行なうための例示的な動作環境を示すブロック図である。この例示的な動作環境は、動作環境の単なる一例であり、動作環境アーキテクチャの使用または機能性の範囲について限定を示唆するよう意図されてはいない。また、動作環境は、例示的な動作環境に図示された構成要素のうちのいずれか1つまたはそれらの組合せに関する従属性または要件を有するとして解釈されるべきではない。
【0059】
この方法およびシステムは、多くの他の汎用または専用コンピューティングシステム環境もしくは構成で動作可能である。本システムおよび方法での使用に好適となり得る周知のコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ラップトップ装置、およびマルチプロセッサシステムを含むが、それらに限定されない。追加の例は、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたは装置のいずれかを含む分散コンピューティング環境などを含む。
【0060】
開示された方法およびシステムの処理は、ソフトウェアコンポーネントによって実行可能である。開示されたシステムおよび方法は、プログラムモジュールなどのコンピュータ実行可能な命令が、1つ以上のコンピュータまたは他の装置によって実行されるという一般的状況において説明可能である。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実現する、コンピュータコード、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。開示された方法はまた、通信ネットワークを通してリンクされたリモート処理装置によってタスクが実行される、グリットベースの分散コンピューティング環境で実践可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体の双方に位置していてもよい。
【0061】
また、当業者であれば、ここに開示されるシステムおよび方法が、コンピュータ701の形の汎用コンピューティング装置を介して実現可能であることを理解するであろう。コンピュータ701の構成要素は、1つ以上のプロセッサまたは処理部703と、システムメモリ712と、プロセッサ703を含むさまざまなシステムコンポーネントをシステムメモリ712に結合するシステムバス713とを含んでいてもよいが、それらに限定されない。処理部703が複数ある場合、システムは並列コンピューティングを利用してもよい。
【0062】
システムバス713は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、およびさまざまなバスアーキテクチャのいずれかを使用したプロセッサまたはローカルバスを含む、いくつかの可能なタイプのバス構造の1つ以上を表わしている。一例として、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネル・アーキテクチャ(Micro Channel Architecture:MCA)バス、改良(Enhanced)ISA(EISA)バス、ビデオエレクトロニクス規格業界(Video Electronics Standards Association:VESA)ローカルバス、アクセラレイティッド・グラフィックス・ポート(Accelerated Graphics Port:AGP)バス、ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnects:PCI)、PCIエクスプレスバス、パーソナルコンピュータメモリカード工業会(Personal Computer Memory Card Industry Association:PCMCIA)、ユニバーサル・シリアル・バス(Universal Serial Bus:USB)などを含んでいてもよい。バス713、およびこの説明で特定されるすべてのバスはまた、有線または無線ネットワーク接続を通して実現されてもよく、プロセッサ703、大容量記憶装置704、オペレーティングシステム705、データ分析ソフトウェア706、データ707、ネットワークアダプタ708、システムメモリ712、入出力インターフェイス710、ディスプレイアダプタ709、表示装置711、およびマンマシンインターフェイス702を含む、サブシステムの各々は、物理的に別個の場所で1つ以上のリモートコンピューティング装置714a、714b、714c内に含まれて、この形のバスを通して接続されてもよく、事実上、完全に分散型のシステムを実現する。
【0063】
コンピュータ701は典型的には、さまざまなコンピュータ読取可能な媒体を含む。例示的な読取可能な媒体は、コンピュータ701によってアクセス可能である利用可能なあらゆる媒体であってもよく、たとえば、限定的ではない意味で、揮発性および不揮発性媒体の双方、取外し可能および取外し不能媒体の双方を含む。システムメモリ712は、ランダムアクセスメモリ(random access memory :RAM)などの揮発性メモリ、および/または読出専用メモリ(read only memory :ROM)などの不揮発性メモリの形のコンピュータ読取可能な媒体を含む。システムメモリ712は典型的には、データ707などのデータ、および/またはオペレーティングシステム705およびデータ分析ソフトウェア706などのプログラムモジュールを含み、それらは処理部703にすぐにアクセス可能であり、および/または処理部703によって現在処理されている。
【0064】
別の局面では、コンピュータ701は、他の取外し可能/取外し不能、揮発性/不揮発性コンピュータ記憶媒体も含んでいてもよい。一例として、
図7は、コンピュータ701のためのコンピュータコード、コンピュータ読取可能な命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供可能な大容量記憶装置704を示す。たとえば、限定的ではない意味で、大容量記憶装置704は、ハードディスク、取外し可能磁気ディスク、取外し可能光ディスク、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD-ROM、デジタル多用途ディスク(digital versatile disk:DVD)または他の光学記憶装置、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、電気的消去可能プログラム可能読出専用メモリ(electrically erasable programmable read-only memory:EEPROM)などであってもよい。
【0065】
オプションで、一例としてオペレーティングシステム705およびデータ分析ソフトウェア706を含む、任意の数のプログラムモジュールが、大容量記憶装置704上に格納されてもよい。オペレーティングシステム705およびデータ分析ソフトウェア706(またはそれらの何らかの組合せ)の各々は、プログラミングおよびデータ分析ソフトウェア706の要素を含んでいてもよい。データ707も、大容量記憶装置704上に格納されてもよい。データ707は、当該技術分野において公知の1つ以上のデータベースのいずれかに格納されてもよい。そのようなデータベースの例は、DB2(登録商標)、マイクロソフト(登録商標)アクセス、マイクロソフト(登録商標)SQLサーバ、オラクル(登録商標)、mySQL、PostgreSQLなどを含む。データベースは、複数のシステムにわたって集中型または分散型であってもよい。
【0066】
別の局面では、ユーザは、入力装置(図示せず)を介してコマンドおよび情報をコンピュータ701に入力してもよい。そのような入力装置の例は、キーボード、ポインティングデバイス(たとえば、「マウス」)、マイク、ジョイスティック、スキャナ、グローブなどの触覚入力装置、および他の身体カバーなどを含むが、それらに限定されない。これらのおよび他の入力装置は、システムバス713に結合されたマンマシンインターフェイス702を介して処理部703に接続されてもよいが、パラレルポート、ゲームポート、IEEE1394ポート(ファイアワイヤポートとしても公知)、シリアルポート、またはユニバーサル・シリアル・バス(USB)などの他のインターフェイスおよびバス構造によって接続されてもよい。
【0067】
さらに別の局面では、表示装置711も、ディスプレイアダプタ709などのインターフェイスを介してシステムバス713に接続されてもよい。コンピュータ701は2つ以上のディスプレイアダプタ709を有していてもよく、コンピュータ701は2つ以上の表示装置711を有していてもよい、ということが考えられる。たとえば、表示装置は、モニタ、LCD(Liquid Crystal Display:液晶ディスプレイ)、またはプロジェクタであってもよい。表示装置711に加え、他の出力周辺装置は、入出力インターフェイス710を介してコンピュータ701に接続可能なスピーカ(図示せず)およびプリンタ(図示せず)などの構成要素を含んでいてもよい。本方法のどのステップおよび/または結果も、任意の形で出力装置に出力されてもよい。そのような出力は、テキスト、グラフィカル、アニメーション、音声、触覚などを含むがそれらに限定されない任意の形の視覚表現であってもよい。
【0068】
コンピュータ701は、1つ以上のリモートコンピューティング装置714a、714b、714cへの論理接続を使用して、ネットワーク化環境において動作可能である。一例として、リモートコンピューティング装置は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置、または他の共通ネットワークノードなどであってもよい。コンピュータ701とリモートコンピューティング装置714a、714b、714cとの論理接続は、ローカルエリアネットワーク(local area network:LAN)および一般的なワイドエリアネットワーク(wide area network:WAN)を介して行なわれてもよい。そのようなネットワーク接続は、ネットワークアダプタ708を通っていてもよい。ネットワークアダプタ708は、有線環境および無線環境の双方で実現可能である。そのようなネットワーク環境は、事務所、企業規模のコンピュータネットワーク、イントラネット、およびインターネット715において従来からあり、一般的である。
【0069】
説明のため、オペレーティングシステム705などのアプリケーションプログラムおよび他の実行可能なプログラムコンポーネントをここに個別のブロックとして図示するが、そのようなプログラムおよびコンポーネントは、コンピューティング装置701の異なる記憶コンポーネントに何度も存在し、コンピュータのデータプロセッサによって実行される、ということが認識される。データ分析ソフトウェア706の一実現化例(たとえば、そのようなソフトウェアのコンパイルされたインスタンス)は、
図19〜
図20および関連する説明で提示される例示的な方法などの、本開示の方法の1つ以上を具現化しまたは含んでいてもよく、何らかの形のコンピュータ読取可能な媒体上に格納され、またはそれを通って送信されてもよい。開示された方法のいずれも、システムメモリ712または大容量記憶装置704などのコンピュータ読取可能な媒体上に具現化されたコンピュータ読取可能および/またはコンピュータ実行可能な命令において具現化され、その実行によって行なわれてもよい。たとえば、データ分析ソフトウェア706の実行に応答して、プロセッサ703は、ここに説明される方法(たとえば、
図19〜
図20の例示的な方法)および開示されたシステムの1つ以上の少なくとも一部を実現してもよい。コンピュータ読取可能な媒体は、コンピュータまたはコンピューティング装置によってアクセス可能である利用可能なあらゆる媒体であってもよい。一例として、限定的ではない意味で、コンピュータ読取可能な媒体は、「コンピュータ記憶媒体」および「通信媒体」を含んでいてもよい。「コンピュータ記憶媒体」は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のために任意の方法または技術で実現される、揮発性および不揮発性、取外し可能および取外し不能媒体を含む。例示的なコンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、もしくは所望の情報を格納するために使用可能であり、コンピュータによってアクセス可能である他のあらゆる媒体を含むが、それらに限定されない。
【0070】
本方法およびシステムは、機械学習および反復学習などの人工知能技術を採用してもよい。そのような技術の例は、エキスパートシステム、事例に基づく推論、ベイジアンネットワーク、行動ベースのAI、ニューラルネットワーク、ファジーシステム、進化的計算法(たとえば、遺伝的アルゴリズム)、群れ知能(たとえば、蟻のアルゴリズム)、およびハイブリッド知的システム(たとえば、ニューラルネットワークを通して生成されたエキスパート推論規則、または統計学習からの生成規則)を含むが、それらに限定されない。
【0071】
上述の方法およびシステムは、リアルタイムの関連データマイニングおよび視覚化を可能にする。一局面では、本方法おびシステムは、分析データセットにおけるあらゆるデータ点がデータセットにおけるあらゆる他のデータ点に関連付けられた、データセット間の関連付けを管理してもよい。データセットは、何千ものフィールドを有する何百ものテーブルであってもよい。
【0072】
一局面では、ユーザの開示されたデータベース方法およびシステムとのインタラクションのための方法およびシステムが提供される。一局面では、データを閲覧するための動的表示生成を容易にするために、ユーザインターフェイスが生成されてもよい。一例として、ユーザのために生成されたある特定のデータセットまたはデータサブセットのある特定のビューが、状態空間またはセッションと呼ばれてもよい。システムは、状態空間において提示するためのデータの1つ以上の視覚表現を動的に生成するための視覚化コンポーネントを含んでいてもよい。
【0073】
図8は、データサブセットを生成するために、選択がどのように範囲に作用するかを示す。データサブセットは状態空間を形成可能であり、それは選択によって与えられた選択状態に基づいている。一局面では、選択状態(または「ユーザ状態」)は、ユーザがアプリケーションのユーザインターフェイスにおけるリストボックスまたはグラフをクリックすることによって定義されてもよい。アプリケーションは、データサブセットに対し、1つ以上の次元(分類変数)について、1つ以上の数学関数(「式」とも呼ばれる)を算定する複数のグラフィカルオブジェクト(チャート、テーブルなど)をホストするように設計可能である。この算定の結果は、1つ以上のグラフィカルオブジェクトにおいて視覚化可能な多次元立方体であるチャート結果を作成する。
【0074】
アプリケーションは、ユーザが、変数を選択するためにグラフィカルオブジェクトをクリックすることにより、異なる選択を行なうことによって、範囲を調査することを可能にし、それはチャート結果の変更をもたらす。調査中のあらゆる時点で、現在の状態空間が存在し、それは、(常に同じままである)範囲に対して作用される現在の選択状態に関連付けられている。
【0075】
図8に示すように、ユーザが新しい選択を行なうと、推論エンジンがデータサブセットを計算する。また、選択および範囲におけるフィルタに基づいて、選択および範囲用の識別子ID1が生成可能である。次に、データサブセットの内容を定義するデータサブセット定義、典型的にはビットシーケンスに基づいて、データサブセット用の識別子ID2が生成される。最後に、ID1をルックアップ識別子として使用して、ID2をキャッシュに入れてもよい。同様に、ID2をルックアップ識別子として使用して、データサブセット定義をキャッシュに入れる。
【0076】
図8では、チャート計算が同様に行なわれる。ここでは、2つの情報セット、すなわちデータサブセットおよび関連チャートプロパティがある。後者は典型的には、計算変数および分類変数(次元)をともに有する数学関数であるが、それに制限されない。これらの情報セットの双方は、チャート結果を計算するために使用され、これらの情報セットの双方はまた、チャート計算への入力用の識別子ID3を生成するためにも使用される。ID2は既に前のステップで生成されており、チャート計算手順ではID3が第1のステップとして生成される。
【0077】
識別子ID3は、ID2および関連チャートプロパティから形成される。ID3は、特定のチャート結果を計算するために必要なすべての情報を含む、特定のチャート生成インスタンス用の識別子として見られる。加えて、チャート結果を定義するチャート結果定義、典型的にはビットシーケンスから、チャート結果識別子ID4が作成される。最後に、ID3をルックアップ識別子として使用して、ID4をキャッシュに入れる。同様に、ID4をルックアップ識別子として使用して、チャート結果定義をキャッシュに入れる。
【0078】
グラフィカルオブジェクト(または視覚表現)は、グラフ、チャート、ツリー、多次元描写、画像(コンピュータにより生成された、またはデジタルキャプチャ)、データを説明する映像/音声表示、各区域において異なるデータ分析を有する複数の表示区域へと出力がセグメント化されるハイブリッド表現などを含む、実質的にあらゆる表示または出力タイプであってもよい。ユーザは1つ以上のデフォルト視覚表現を選択してもよいが、次の視覚表現は、データにとって最も好適な形のさらなる分析および次の動的選択に基づいて生成されてもよい。
図9に示すように、インターフェイスの左側には、いくつかのリストボックスが設けられており、ユーザインターフェイスの右側には、リストボックスにおける選択(または選択しなかったこと)を反映するグラフィカルオブジェクトが表示されている。リストボックスおよびグラフィカルオブジェクトの配置は、設計選択の事項である。一局面では、ユーザはデータ点を選択してもよく、ユーザの選択に基づいて、視覚化コンポーネントが、他のフィールドおよび対応する視覚表現を瞬間的にフィルタリングし、再集約してもよい。一局面では、フィルタリングおよび再集約は、データベースに問合せることなく完了されてもよい。一局面では、視覚表現は、意味があるように施された配色を使用してユーザに提示されてもよい。たとえば、ユーザ選択は緑で強調表示され、選択に関連するデータセットは白で強調表示され、関連のないデータは灰色で強調表示されてもよい。意味があるように配色を施すことは、状態空間において直観的なナビゲーションインターフェイスを提供する。
【0079】
図10aに示すように、いくつかのグラフィカルオブジェクトを含むレイアウトがユーザに提供される。このデータセットは映画データを反映している。たとえば、映画監督、映画の題名、映画俳優、映画の長さ、映画のレーティング、映画公開日などである。
図10bに示すように、ユーザが一旦ある監督を選択すると、グラフィカルオブジェクトはリアルタイムで動的に調節される。この例では、ユーザは「エメリック プレスバーガー(Emeric Pressburger)」監督を選択している。この選択に応答して、グラフィカルオブジェクトのすべては、「エメリック プレスバーガー」に関連するデータを反映するように調節される。
【0080】
このように、提供される方法およびシステムにより、ユーザは、生データをすぐに実施可能な分析に変換可能なセッションをインスタンス化することができる。1人のユーザが意味のある視覚表現を生成するためにインターフェイスを操作可能であるが、複数のユーザが同時にまたは実質的に同時にインターフェイスを操作可能な協調セッションを容易にする方法およびシステムも提供される。
【0081】
一局面では、ユーザは自分のセッションを1人以上の他のユーザと共有してもよい。その結果、ユーザらは、リアルタイムの協調環境において新しい分析を発見し、展開することができる。各ユーザは、すべてのユーザに見える選択を行なってもよい。場合によっては、数人のユーザのみが選択を行なえるように制約が実施されてもよい。さらに別の一例では、あるユーザの一時的なリスト(たとえば、検索、ドロップダウンなど)を他のユーザらから隠してもよい。
【0082】
一局面では、2人以上のユーザが共通のセッションを共有してもよい。セッションが生成された最初の時点は一次セッションと呼ばれ、一方、参加した次のユーザらは二次セッションと呼ばれる。一局面では、一次セッションだけが他の人を参加するよう招待でき、一方、別の局面では、どのユーザも他の人を参加するよう招待できる。システムは、二次セッションのすべての局面が一次セッションのすべての局面をミラーリングするように構成可能である。一次セッションがセクションアクセス減少を有する場合、これらは二次セッションにおいてミラーリングされる。セクションアクセス減少とは、データセキュリティを提供する機構であってもよい。たとえば、ユーザがリストボックスをクリックすると、そのユーザは、優位のセクションアクセス権を有する別のユーザに対して減少した量のデータを閲覧するよう制限される場合がある。たとえば、あるユーザはすべての映画監督を閲覧できるかもしれないが、一方、別のユーザは映画監督を1人しか見ることができない。一局面では、アクセス権またはデータセキュリティに対する検査が二次セッションに適用されない。
【0083】
すべてのユーザは、一次でも二次でも、システムとやり取りするユーザインターフェイスとのインタラクション(たとえば、マウスのクリック)を共有できる。クリックしたどのユーザも、そのクリックが選択状態を変更する場合、その状態の変更は他のクライアントの1人以上に送信可能である。ローカルクライアントのみに影響を与え、サーバからのメッセージ/応答を伴わないクリックは、どれも共有されない。2人以上のクライアントが「同時に」クリックした場合、サーバは、1人のクライアントが1回クリックし、次に2回目にクリックして1回目のクリックをキャンセルするのと同様に、各クリックを2つ以上の非同期クリックとして扱ってもよい。
【0084】
一局面では、一次ユーザは、協調ツールバーアイコンからドロップダウンするパネルを使用して、自分のセッションに参加するよう二次ユーザらを招待してもよい。電子メール招待により、一次ユーザは、電子メールアドレスと、電子メール本文中に配置可能ないくつかの追加テキストとを特定できるようになっていてもよい。「招待」ボタンが押されると、セッションに参加するよう、電子メールが、標準メッセージと、一次ユーザが含めた追加のメッセージと、URLととともに、受信者に送信されてもよい。
【0085】
セッションに参加するようにという招待は、特別にフォーマット化されたURLを使用して実行可能である。このURLは、システムおよび特定のインターフェイス作業空間へリンクを張ることができる。加えて、このURLは、適切なセッションを識別してそれに参加するための1回使用キーである追加のパラメータを提供可能である。このURLが一旦クリックされると(たとえば、サーバに送信されると)、それは無効化可能であり、そのためそれは一度しか使えず、転送できない。
【0086】
二次ユーザがセッションに参加すると、一次ユーザに通知されてもよい。この通知は、協調ツールバーアイコンの状態の変化(たとえば、色の変化)、および誰がセッションに参加したかを示す、そのツールバーアイコンに接続されたメッセージであってもよい。二次ユーザが一旦セッションに参加すると、1人以上の他のユーザらは、現在セッションを共有しているユーザらのリストを閲覧してもよく、ある局面ではユーザらを削除してもよい。
【0087】
別の局面では、一次ユーザは、協調ツールバーアイコンからドロップダウンするパネルを使用して、自分のセッションに参加するよう二次ユーザらを招待してもよい。二次ユーザらを招待するための追加のオプションは、システムにアクセス可能であるユーザディレクトリを検索することによる。一次ユーザは、ディレクトリ検索結果を使用してユーザらを直接招待してもよい。
【0088】
図11aに示す一局面では、1101で、第1のユーザのために一次セッションを開始するステップと、1102で、第2のユーザからの協調を要求するステップと、1103で、第2のユーザのために二次セッションを開始するステップと、1104で、第1のユーザおよび第2のユーザに協調リアルタイムデータ分析のための単一の状態空間を提供するステップとを含み、どちらかのユーザによるインタラクションが単一の状態空間において反映される、協調コンピューティングのための方法が提供される。
【0089】
図11bに示す一局面では、協調セッションは、2つ以上のより高いレベルのXMLトランスフォーマに接続可能な単一の低レベルの共有セッションを含んでいてもよい。XMLトランスフォーマ同士は、同期論理を介して接続可能である。各XMLトランスフォーマは、ウェブセッションの終点に接続可能であり、他方の終点はウェブブラウザに接続可能である。このため、XMLトランスフォーマのいずれかによって行なわれるコマンドおよび選択は、共有される低レベルのセッションに影響を与える場合があり、状態変化は双方のXMLトランスフォーマに送り返されてもよい。コマンドを行なったXMLトランスフォーマは、状態変化をクライアントに戻してもよい。他方のXMLトランスフォーマは、クライアント非同期機構を通して変化した状態を戻してもよい。
【0090】
さらに別の局面では、タイムシフト協調のための方法およびシステムが提供される。単一の状態空間内で、ユーザらは、その状態空間内に含まれるさまざまなオブジェクトについてのメモを作成し、共有できる。これらのメモは1人以上の他のユーザらと共有でき、これらの他のユーザらは、自身のメモコメントを残すことによって応答できる。各ユーザは、状態空間の「スナップショット」(ブックマーク)およびデータを、各メモを使用して保存できる。メモは、状態空間のメモおよび関連付けられたスナップショットに効率的にアクセスするために、ユーザらによって検索可能であってもよい。
【0091】
図12aは、添付されたメモと、メモの選択後に閲覧可能なメモスレッドとを有するグラフィカルオブジェクトを示す。
図12bは、メモに関連付けられた保存された選択状態の選択後の状態空間の変化を示す。
【0092】
一例として、ユーザは、状態空間に表示されたオブジェクトを右クリックして、コンテキストメニューから「メモ」を選択することによって新しいメモを追加し、既存のメモを閲覧するためのメニューオプションをユーザに提供してもよい。オプションで、既存のメモを有する状態空間内のすべてのオブジェクトは、(たとえば、アイコン、色の変化などにより)識別されてもよい。同様に、各オブジェクトについて添付されたメモの数が表示されてもよい。このため、結果として生じるメモは、オブジェクトおよび選択状態の双方にリンクされてもよい。オブジェクトは、1つ以上のメモと、1つ以上のメモスレッド(メモに基づいた一連のコメント)を有していてもよい。ユーザは、ユーザがデータセットを分析し、それに応じて状態空間を配置した後で、メモを作成してもよい。ユーザは、現在の状態空間のスナップショットをメモに添付するよう選択してもよい。システムは次に、隠されたブックマークを作成してもよく、それをメモに添付する。一局面では、1つの状態空間の複数のスナップショットが1つのメモに関連付けられてもよく、たとえば2つの異なる分析の比較を反映する。
【0093】
メモおよび関連付けられた状態空間を閲覧するために、ユーザは所望のメモを選択してもよく、メモテキストがユーザに提示されるであろう。ユーザは次に、追加情報をメモスレッドに追加してブックマークを適用することを選択してもよく、メモに関連付けられた状態空間を反映するように現在の状態空間を修正する。別の例では、状態空間は、メモ選択時にメモに関連付けられた状態空間を反映するように自動的に更新されてもよい。
【0094】
メモについて、さまざまなクラスのユーザらによるメモへのアクセスを制御するよう、許可が調節されてもよい。たとえば、あるクラスのユーザらはメモを閲覧できるもののメモを作成できないかもしれず、一方、別のクラスのユーザらはメモを作成し、編集し、削除してもよい。
【0095】
タイムシフト協調のための方法は、さまざまな態様で実現可能である。たとえば、メモ(単一のメモまたはメモスレッド)が特定の選択状態にリンクされて、1つの単一の「ブックマーク」に格納されてもよい。このため、1つのブックマークが、各オブジェクトについていくつかのメモを含んでいてもよい。このブックマークを適用することにより、これらのメモは見えるようになる。さらに別の例では、メモはいくつかの選択状態にリンクされていてもよく、各メモは1つの特定の選択状態に対応可能であり、メモスレッドにおける次に続くすべての返信は、同じ選択状態に属していてもよい。ある特定のメモに属する選択状態が、一時的な隠されたブックマークに格納されてもよい。さらに別の一例では、メモは生データまたは入力フィールドにおけるデータにリンクされてもよい。このため、メモはテキスト入力フィールドとして見られる。
【0096】
図13aに示す一局面では、1301aで、選択状態を反映する状態空間を作成するステップと、1302aで、メモを作成するステップと、1303aで、状態空間においてオブジェクトにメモを添付するステップと、1304aで、選択状態を保存するステップと、1305aで、保存された選択状態をメモと関連付けるステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【0097】
図13bに示すさらに別の局面では、1301bで、選択状態を反映する状態空間を作成するステップと、1302bで、メモを作成するステップと、1303bで、状態空間においてオブジェクトにメモを添付するステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【0098】
図13cに示すさらに別の局面では、1301cで、添付されたメモを有する状態空間においてオブジェクトを提示するステップと、1302cで、メモの選択を受取るステップと、1303cで、メモを提示し、メモに関連付けられた保存された選択状態を反映するように状態空間を調節するステップとを含む、タイムシフト協調分析のための方法およびシステムが提供される。
【0099】
一局面では、提供された方法およびシステムにより、ユーザは、単一の空間内に複数の状態を作成し、これらの状態を空間内の特定のオブジェクトに適用することができるようになる。ユーザは、これらのオブジェクトのコピーを作成し、次にそれらのオブジェクトを異なる状態に入れることができる。所与の状態におけるオブジェクトは、他の状態におけるユーザ選択の影響を受けない。提供された方法およびシステムにより、ユーザは、1つのビューに、異なる状態空間(ひいては異なる選択状態)を表わすグラフィカルオブジェクトを生成できるようになる。
【0100】
代替的な状態の使用は、空間内での複数の選択の同時使用を許可し、単一の視覚表現または別個の視覚表現におけるそれらの選択の比較を可能にする。ユーザは、比較分析のためにデータ項目を選択し、次に、リアルタイムで比較分析に影響を与えるオーバーライド選択を行なってもよい。
図14は、代替的な状態の例示的な実現化例を示す。
【0101】
左手のリストボックスは、状態空間Xに論理的に関連付けられ、状態空間Xコンテナに位置しており、右手のリストボックスは、状態空間Yに論理的に関連付けられ、状態空間Yコンテナに位置している。この例では、結果グラフ(チャート)は、状態空間Xおよび状態空間Y双方において数学関数(数式)を算定した結果を表示している。このため、ユーザは、左手のリストボックスでクリックすることによって状態空間Xを定義でき、対応する算定結果を結果グラフに表示させる。同様に、ユーザは、右手のリストボックスでクリックすることによって状態空間Yを定義でき、対応する算定結果を結果グラフに表示させる。
【0102】
各状態には、システム処理用の状態識別子が割当てられてもよい。一局面では、デフォルト状態および継承状態という、少なくとも2つの状態が利用可能にされてもよい。デフォルト状態は、多くの使用が発生する状態であってもよい。オブジェクトは、シートおよびコンテナなどのより高いレベルのオブジェクトから状態を継承してもよい。これは、状態が、文書−シート−シートオブジェクトなどのように継承されることを意味する。シートおよびシートオブジェクトは、オーバーライドされない限り、常に継承状態にある。一例として、文書はアプリケーション文書であってもよく、シートはそのような文書におけるタブであってもよく、コンテナは1つ以上のオブジェクトを含み得るタブ上の領域であってもよい。オブジェクトは、あらゆるテキストオブジェクトまたはグラフィカルオブジェクト、たとえば、リストボックス、円グラフ、棒グラフなどであってもよい。シートおよびシートオブジェクト(たとえば、コンテナおよびグラフィカルオブジェクト)は常に継承状態にあるが、シートまたはシートオブジェクトを明確な状態空間と関連付けることによって、そのシートまたはシートオブジェクトのための継承状態をオーバーライドすることが、ユーザにとって可能である。
【0103】
一局面では、より低いレベルがより高いレベルの状態空間を自動的に継承してもよい。
図14に示すように、シート(たとえば閲覧)にデフォルト状態空間Xが割当てられている場合、このシート上のすべてのコンテナおよび個々のオブジェクトも、特段の定めのない限り、この状態空間に関連付けられるであろう。このため、ユーザは要望通り、コンテナ/オブジェクトを状態空間Yに関連付けるだけでよい。
【0104】
チャートおよび他のオブジェクト式は、式を含むオブジェクトの状態を継承する。チャートおよびオブジェクト式は、代替的な状態を参照してもよい。これは、式がどこで発生しても、その式は、その式を含むオブジェクトとは異なる状態を参照してもよい、ということを意味する。
【0105】
本方法およびシステムは、フィールド毎の選択値という観点から状態の定義を採用し、テーブル毎の行のサブセットという観点からセットを定めることにより、チャートおよび集約を計算するために、デフォルト状態を使用してデータのサブセットを駆動してもよい。このデフォルト挙動は、代替的な状態を可能にするために、1.現在の選択とは独立した1セットのデータを定義する;2.合併、交わり、および除外などの数学演算子の使用を通して複数のセットを組合せるという2つの個別の点で、変更されてもよい。
【0106】
代替的な状態は、セットを生成可能な選択状態を定義するという第1の部分における役割を果たす。処理する目的のために、デフォルト状態は「$」によって表わされてもよく、一方、すべてのデータは、状態および選択に係わらず、「1」によって表わされてもよい。代替的な状態は、2つの追加の構文要素を導入する。
【0107】
1.ある式は、ある代替状態に基づいていてもよい。
例:
sum({[Group 1]}Sales)は、状態′群1′における選択に基づいた売上を計算する。
【0108】
sum({$}Sales)は、デフォルト状態における選択に基づいた売上を計算する。
これらの式は双方とも、単一のチャートに存在していてもよい。これにより、ユーザらは、単一のオブジェクト内で複数の状態を比較することができる。式における状態参照は、オブジェクトの状態をオーバーライドする。
図14は、そのような一実現化例として見られてもよい。状態空間Xは($によって表わされる)デフォルト状態空間であってもよく、状態空間Yは状態空間「群1」であってもよい。このため、結果グラフにおける左手の棒は、数学関数Sum({$}Sales)によって与えられてもよく、一方、結果グラフの右手の棒は、数学関数Sum({[Group 1]}Sales)によって与えられてもよい。これは、式がどこで発生しても、その式は、その式を含むオブジェクトとは異なる状態を参照してもよいという事実の一例である。
【0109】
状態空間XおよびYについての算定結果を1つの同じ結果グラフに表示する代わりに、それらを別個のグラフで表示してもよい。そのような一例では、グラフのうちの一方は式Sum({[Group 1]}Sales)に関連付けられ、他方のグラフは式Sum({$}Sales)に関連付けられるであろう。
【0110】
2.1つの状態におけるフィールドでの選択は、別の状態における修正子として使用されてもよい。
【0111】
例:
sum({[Group 1]<Region=$::Region>}Sales)
この構文は、デフォルト状態からの「領域(Region)」フィールドにおける選択を使用して、それらを用いて状態′群1′を修正する。この効果は、この式のためにデフォルト状態と′群1′との間で領域フィールドを「同期された」ままに保つことである。このため、(たとえば、ユーザが状態空間Xに関連付けられたリストボックスにおける値をクリックすることによる)第1の状態空間に関連付けられたオブジェクトにおける選択が、第1の状態空間に加えて(またはその代わりに)第2の状態空間(たとえば、状態空間Y)を修正するために使用可能である。
図14では、これは、ユーザが、状態空間Xを修正するように左手側の特定のリストボックスにおいて選択を行なう際に、対応する修正(選択)が自動的に状態空間Yに行なわれることを確実にするために、使用され得る。
【0112】
状態とともに集合演算子(+、
*、−、/)を使用することが可能である。以下の式は有効であり、デフォルト状態または状態1のいずれかにおける別個のインボイス番号をカウントするであろう。
【0113】
例:
count({$+State 1}DISTINCT[Invoice Number])は、<default>(デフォルト)状態および状態1の合併における別個のインボイス番号をカウントする。
【0114】
count({1-State 1}DISTINCT[Invoice Number])は、状態1ではない別個のインボイス番号をカウントする。
【0115】
count({State 1
*State 2}DISTINCT[Invoice Number])は、<default>状態および状態1の双方である別個のインボイス番号をカウントする。
【0116】
このため、本方法およびシステムは、以下のブール代数から知られた論理演算子の使用により、異なる状態空間におけるデータを論理的に組合せる方法を提供する:
+=合併(A+Bは、AおよびB双方のすべての要素を含む)
*=交わり(A
*Bは、Bにも属するAのすべての要素を含む)
−=差(A−Bは、Bに属さないAのすべての要素を含む)
/=XOR(A/Bは、AおよびBのうちの一方にのみ見られるすべての要素を含む)。
【0117】
集合演算子の使用により、2つ以上の状態空間からのデータを、たとえばグラフでの表示用に1つの式に組合せて算定することが可能になる。
【0118】
図15に示す一局面では、1501で、第1の状態空間に関連付けられた第1のユーザインターフェイス要素と、第2の状態空間に関連付けられた第2のユーザインターフェイス要素とを提示するステップと、1502で、第1および第2のユーザインターフェイス要素において選択を受取るステップと、1503で、第1の状態空間の選択状態および第2の状態空間の選択状態を表わす結果グラフを提示するステップとを含む、データ分析のための方法が提供される。一局面では、第1の状態空間および第2の状態空間は、同じデータセットを含んでいてもよく、または異なるデータセットを含んでいてもよい。
【0119】
一局面では、次元制限を利用するための方法およびシステムが提供される。次元制限は、さまざまなチャートタイプ用に、または、より一般的にはここに説明されるほとんどのグラフィカルオブジェクト用に設定可能である。所与のチャートまたはグラフィカルオブジェクトにおいて表示される次元値の数を制御するために、「次元制限」というオプションがユーザに提示されてもよい。ユーザは、複数の値、たとえば「最初のN個の値」、「最大のM個の値」および「最小の…個の値」のうちの1つを選択可能である。NおよびMは、提供される(または戻される)ことが意図される一組の値の濃度を示す自然数である。一局面では、NおよびMは、次元制御「最初のN個の値」および「最大のM個の値」のオプションとして提供されてもよい。これらの値すなわち次元は、システムが視覚化コンポーネントに戻すことができる値をシステム(たとえば、ここで説明される局面に従ってデータ分析ソフトウェア706で符号化された(またはプログラムされたもしくは構成された)コンピュータ701)がソートすることができる方法を制御することができる(たとえば、表示装置711は、プロセッサ703によるデータ分析ソフトウェア706の実行に応答して動作するかまたは動作するように構成される)。一局面では、ソーティングは第1の式についてのみ発生する(一次ソートが一次元ソートをオーバーライドし得る場合は、ピボットテーブルを除く)。
図16に示す一局面では、1つ以上の次元制限を適用するために、1つ以上のユーザインターフェイス要素が提示可能である。たとえば、「…のみを表示」という次元制限をユーザが適用できるようにするために、スライディング選択ツールが提示可能である。
図16における例は、次元制限の適用が上位6人の営業担当者のみを表示することを示している。
【0120】
次元制限は、チャート(グラフ、テーブルなど)において表示すべきデータを生成するために適用されてもよい。これらの次元制限は、以下の1つ以上を含んでいてもよい。
【0121】
「…のみを表示」
このオプションは、ユーザが最初の、最大の、または最小のx個の値を表示したい場合に選択可能である。このオプションが5に設定されている場合、5つの値が表示されるであろう。次元が「その他を表示」をイネーブルにした場合、「その他」というセグメントが、5つの表示スロットのうちの1つを占めるであろう。
【0122】
「最初の…個の値」というオプションは、プロパティダイアログの「ソート」タブ上で選択されたオプションに基づいて、行を戻すであろう。チャートがストレートテーブルである場合、行は、その時点の一次ソートに基づいて戻されるであろう。言い換えれば、ユーザは、いずれかの列ヘッダでダブルクリックし、その列を一次ソートとすることによって、値の表示を変更可能である。
【0123】
「最大の…個の値」というオプションは、チャートにおける第1の式に基づいて、行を大きい順に戻す。ストレートテーブルにおいて使用される場合、図示された次元値は、式をインタラクティブにソートする間、一定のままとなるであろう。式の順序が変更されると、次元値は変わるであろう(変わる場合がある)。
【0124】
「最小の…個の値」というオプションは、チャートにおける第1の式に基づいて、行を小さい順に戻す。ストレートテーブルにおいて使用される場合、図示された次元値は、式をインタラクティブにソートする間、一定のままとなるであろう。式の順序が変更されると、次元値は変わるであろう(変わる場合がある)。
【0125】
「…である値のみを表示」
このオプションは、ユーザが、このオプションについての特定された条件を満たすすべての次元値を表示したい場合に選択可能である。全体のパーセンテージ、または正確な数量に基づいて、値を表示することを選択する。「全体に対する相対値」というオプションは、プロパティダイアログの「式」タブ上の「相対値」というオプションと同様の相対値モードを可能にする。値は、計算された式として入力されてもよい。
【0126】
「累算すると…になる値のみを表示」
このオプションが選択された場合、現在の行までのすべての行が累算され、結果が、このオプションにおいて設定された値と比較される。「全体に対する相対値」というオプションは、プロパティダイアログの「式」タブ上の「相対値」というオプションと同様の相対値モードを可能にし、(最初の値、最大の値または最小の値に基づく)累算値を総計と比較する。値は、計算された式として入力されてもよい。
【0127】
以下の1つ以上を含む異なる表示オプションも提供される。
「その他を表示」
このオプションをイネーブルにすると、チャートにおいて「その他」というセグメントが生成されるであろう。表示制約についての比較基準を満たさないすべての次元値は、「その他」というセグメントへとグループ化されるであろう。選択された次元の後に次元がある場合、「内部次元を折畳む」が、次の/内部次元についての個々の値がチャート上に表示されるかどうかを制御するであろう。
【0128】
「グローバルグループ化モード」
このオプションは、内部次元にのみ当てはまる。このオプションがイネーブルにされると、選択された次元のみに対して制約が計算されるであろう。すべての以前の次元は無視されるであろう。これがディスエーブルにされると、制約は、すべての先行する次元に基づいて計算される。
【0129】
選択されたオプション「その他を表示」とともに次元制限を使用することを、顧客A〜Fおよび製品XおよびYについて与えられた、「顧客」、「製品」および「売上」という変数を含む
図17aに示すデータセットに基づいた簡略化された例に関連して、ここで説明する。
【0130】
例1
ユーザが、各「顧客」について売上を視覚化したいと仮定する。これは、次元変数「顧客」について数学関数Sum(Sales)を算定することに対応する。これは、(
図17bに示すようなグラフまたはテーブルとして視覚化され得る)以下の多次元立方体をもたらす。
【0131】
例2
ここでは、ユーザが、立方体の生成のために「最初の3個の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、
図17cに示す立方体をもたらす。図示されているように、売上は顧客AおよびBについて表示されているものの、残りの顧客(C〜F)の売上は「その他」の値へと集約されている。
【0132】
例3
代わりに、ユーザが、立方体の生成のために「最大の3個の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、
図17dに示す立方体をもたらす。図示されているように、売上は顧客AおよびCについて表示されているものの、残りの顧客(BおよびD〜F)の売上は「その他」の値へと集約されている。
【0133】
例4
代わりに、ユーザが、立方体の生成のために「50以上の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、
図17eに示す立方体をもたらす。図示されているように、売上は顧客A、BおよびCについて表示されているものの、残りの顧客(D〜F)の売上は「その他」の値へと集約されている。
【0134】
例5
代わりに、ユーザが、立方体の生成のために「累算すると総計の80%になる最大の値のみを表示」という次元制限を「顧客」という次元に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、
図17fに示す立方体をもたらす。図示されているように、売上は顧客A、B、CおよびFについて表示されているものの、残りの顧客(DおよびE)の売上は「その他」の値へと集約されている。
【0135】
これらの例はすべて、ここに前述された計算を利用している。上述の例は次元制限の理解を容易にするために簡略化されているということが理解されるべきである。しかしながら、実際の場合では、多くの異なるテーブルにわたって接続された大量のデータについて、1つ以上の複雑な数学関数が算定される場合がある。
【0136】
1つ以上の次元(分類変数)について数学関数を順次算定するために、データは、変換構造を使用することにより、および開始テーブルに基づいて、二進コード化フォーマットで処理されてもよい。これを、
図4のテーブル15および16を参照して例示する。
【0137】
ここで、テーブル15は、開始テーブルにおける各記録について順次更新される仮想データ記録の使用を示し、テーブル16は、仮想データ記録の順次更新された内容に基づいて、どのように中間データ構造が投入されるかを示している。中間データ構造は、分類変数の値の既存の各固有の組合せについての数式の算定結果を集約するために使用される集約フィールドを含む。テーブル16では、中間データ構造は、(0,0)、(1,0)、(2,0)、(3,−2)という「クライアント」と「年」との組合せについての算定結果を集約している。−2という値はヌル値を示す。
【0138】
テーブル16はまた、中間データ構造において次元がどのように「排除され」または「折畳まれる」かについて示しており、それは、1つ以上の分類変数のすべての値について数式が集約されることを意味する。このプロセスでは、折畳まれた次元についての算定結果の集約を保持するために、追加のデータ記録が中間データ構造に追加される。テーブル16では、中間データ構造は、「クライアント」が折畳まれた場合のデータ記録(−1,0)、(−1,−2)と、「年」が折畳まれた場合のデータ記録(0,−1)、(1,−1)、(2,−1)、(3,−1)と、「クライアント」および「年」の双方が折畳まれた場合の1つのデータ記録(−1,−1)とを含む。ある変数についての−1という値はこのため、変数のすべての値の算定結果が集約されたことを示す。
【0139】
中間データ構造におけるデータは次に、
図5のテーブル17に示すような多次元立方体を構築するために使用される。中間データ構造および結果として生じる多次元立方体の若干より進んだ例をそれぞれ、
図6のテーブル28および29に示す。ここでは、より複雑な数学関数が多次元立方体(テーブル29)において算定され、中間データ構造(テーブル28)は、テーブル28および29に示す多次元立方体における数学関数の正しい算定のために必要とされるある数式の算定結果を集約する集約フィールドを含む。
【0140】
上述の例1〜5に戻ると、全体的な多次元立方体(上述の例1の全テーブルを参照)を生成し、この立方体において、たとえば最初の2人の顧客および彼らの売上データ(例2)、または売上が最大の2人の顧客および彼らの売上データ(例3)などのデータを単純に選択することにより、ある次元制限が適用可能であることが認識されるべきである。
【0141】
「その他」の値を算定すべき場合、困難が生じる。なぜなら、この値は、多次元立方体が生成される場合、定義できないためである(なぜなら、その内容は、多次元立方体が一旦生成されて初めて知られるためである)。「その他」の値は、1つ以上の分類変数(上述の例ではある「顧客」)の特定の値についての算定結果の集約に対応している。上述の例では、数学関数は単純な加算であり、「その他」の値についての数学関数の算定結果は、「その他」の値に含まれるべき「顧客」についての(立方体内の)合計を単純に加算することによって得られてもよい。しかしながら、数学関数がより複雑である場合、たとえば、それが平均数量を含む場合(上述のテーブル28〜29を参照)、「その他」の値は、立方体内のデータを組合せることによって得ることはできない。
【0142】
1つの解決策は、「その他」の値を定義する分類変数の特定の値についての集約フィールドを含む、新しい多次元立方体の計算を開始することである。例2の状況では、この新しい立方体は、顧客C〜Fについての集約された結果を含む「その他」として指定された新しい「顧客」を含むように計算されるであろう。
【0143】
データ処理を最小限に抑えるため、本方法およびシステムは、多次元立方体に「その他」の値を投入するために、中間データ構造(たとえば、既存のまたは以前にデータ投入された中間データ構造)を利用できる。前述のように、中間データ構造の集約フィールドは、次元が折畳まれる(排除される)ことを可能にするように定義されている。いくつかの点で、「その他」の値の算定は、中間データ構造における次元の部分的排除として見なされてもよい。
【0144】
このため、例2〜4では、次元制限は、立方体に含まれるべき変数「顧客」の値を、対応する売上とともに識別する。立方体の「その他」の値は、中間データ構造を全面的に検討することにより変数「顧客」の残りの値についての売上を集約することによって、投入される。
【0145】
例5では、次元制限は、総売上が知られることを必要とする。(次元「顧客」の排除に対応して)中間データ構造が一旦生成されて初めて、総売上データが知られる。「その他」の値を投入するために、中間データ構造は、総売上の少なくとも80%に達するまで異なる「顧客」についての集約フィールドにおける最大値(売上)を識別し、残りの「顧客」の売上を集約することにより「その他」の値の内容を算定するために、もう一度全面的に検討される。
【0146】
中間データ構造に基づいて「その他」の値を正しく算定できないかもしれない状況がある。たとえば、(US7058621で述べられた)算定が頻度データへの特別の注意を必要とする場合などである。一実施例では、本方法およびシステムは、頻度データへの特別の注意についての潜在的必要性を検出する構成要素を含む。そのような潜在的必要性が検出された場合、本方法およびシステムは、「その他」の値を投入することを拒否してもよい。一変形例では、本方法およびシステムは代わりに、(たとえば、中間データ構造に基づいて「その他」の値を算定することにより通常回避される処理集約型の代替例を使用して)「その他」の値を含む新しい多次元立方体の計算を開始してもよい。一例では、多次元立方体の生成中に、1つの仮想データ記録の内容に基づいて中間データ構造における2つ以上のデータ記録が更新されたことを、ソフトウェアが検出した場合にはいつでも、頻度データへの特別の注意についての潜在的必要性はフラグを立てられてもよい。
【0147】
グローバルグループ化モードの例
図18aに示す多次元立方体を仮定する。ここで、この立方体は、2つの次元(分類変数)である「製品」および「顧客」についての売上を算定するために生成される。ここで、ユーザが、「最大の3個の値のみを表示」という次元制限を「顧客」という変数に適用しつつ、「その他を表示」のボックスにもチェックマークを付けたと仮定する。これは、
図18bに示す多次元立方体をもたらすであろう。
【0148】
図示されているように、プロセスは、製品Xの最大の売上を有する2人の顧客と、製品Yの最大の売上を有する2人の顧客とを識別し、製品Xについての「その他」の値と製品Yについての「その他」の値とを生成する。製品Xについての「その他」の値は、顧客C〜Fについての売上を累算し、製品Yについての「その他」の値は、顧客BおよびD〜Fについての売上を累算している。「その他」の値は、(たとえば、中間データ構造を全面的に検討することにより)上述と同様に生成される。
【0149】
代わりに、ユーザが同じ次元制限を「顧客」という変数について適用し、(「その他を表示」のボックスにチェックマークを付けつつ)「グローバルグループ化モード」のボックスにもチェックマークを付けたと仮定する。これは、
図18cに示す多次元立方体をもたらすであろう。
【0150】
グローバルグループ化モードにより、プロセスは、すべての製品(たとえば、組合された製品Xおよび製品Y)の最大の売上を有する2人の顧客を識別するようになる。立方体は、これら2人の顧客についての製品Xについての売上データ、および製品Xについての残りの「顧客」(たとえば、顧客BおよびD〜F)についての売上を累算した「その他」の値、ならびに、これら2人の顧客についての製品Yについての売上データ、および製品Yについての残りの「顧客」(たとえば、顧客BおよびD〜F)についての売上を累算した「その他」の値を含むように生成される。
【0151】
このように、グローバルグループ化モードにより、次元制限は、選択された次元(顧客)にのみ適用されるようになる。
【0152】
図19に示す一局面では、かつ次元制限と関連してここで説明される様々な特徴に鑑みて、2301で、データ処理事象をデータセットに対して実行して第1の多次元立方体データ構造をもたらすステップと、2302で、1つ以上の次元制限をその多次元立方体データ構造に適用して第2の多次元立方体データ構造をもたらすステップとを含む、データ分析のための方法が提供される。第1のデータ処理事象は、データセットにおける1つ以上の次元変数について数学関数を算定することを含んでいてもよい。1つ以上の次元制限は、「…のみを表示」、「…である値のみを表示」、「累算すると…になる値のみを表示」などを含んでいてもよい。一局面では、第2の多次元立方体データ構造は、「その他を表示」、「グローバルグループ化」などのうちの1つ以上に従って表示されてもよい。
【0153】
所与のチャートにおいて表示される次元値の数を制御するために、「次元制限」というオプションがユーザに提示されてもよい。ユーザは、複数の値、たとえば「最初の…個の値」、「最大の…個の値」および「最小の…個の値」のうちの1つを選択可能である。これらの値は、システムが視覚化コンポーネントに戻す値をシステムがソートする方法を制御する。一局面では、ソーティングは第1の式についてのみ発生する(一次ソートが一次元ソートをオーバーライドし得る場合は、ピボットテーブルを除く)。
【0154】
図20は、本開示の1つ以上の局面に従ったデータ分析のための例示的な方法2000のフローチャートを示す。コンピュータ701などのコンピューティング装置、もしくはそれに一体化され、またはそれに機能的に結合された(プロセッサ703などの)プロセッサは、例示的な方法2000の少なくとも一部を実現可能である。2010で、データセットが処理され、第1の多次元立方体データ構造をもたらす。データセットは、1つ以上のテーブルを含むテーブル構造を有する。2010の実現(たとえば、プロセッサ2120またはプロセッサ703などのプロセッサによる実行)を処理アクションと称することができる。一局面では、データセットを処理して第1の多次元立方体データ構造をもたらすことは、テーブル構造の1つ以上の次元変数について数学関数を算定することを含む。
【0155】
2020で、1つ以上の次元制限を第1の多次元立方体データ構造に適用することによって、第2の多次元立方体データ構造が生成される。一局面では、1つ以上の次元制限を第1の多次元立方体データ構造に適用することは、1つ以上のユーザインターフェイス要素を構成することを含む。別の局面では、1つ以上の次元制限を第1の多次元立方体データ構造に適用することは、特定の表示オプションの選択に応答して、次元制限を第2の多次元立方体データ構造の選択された次元変数に適用することを含む。さらに別の局面では、1つ以上の次元制限を第1の多次元立方体データ構造に適用することは、次元制限を適用して、表示中の第2の多次元立方体データ構造の第1の特定の部分をもたらすことを含む。さらに別の局面では、1つ以上の次元制限を第1の多次元立方体データ構造に適用することは、表示オプションを適用して、表示中の第2の多次元立方体データ構造の第2の特定の部分をもたらすことをさらに含む。
【0156】
一局面では、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含む。別の局面では、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、特定の複数の行のそれぞれの値は累算され、所定の値と比較される。さらに別の局面では、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの第1の特定の複数の行を含み、特定の複数の行は大きい順に並べられる。さらに別の局面では、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの第1の特定の複数の行を含み、特定の複数の行は小さい順に並べられる。追加のまたは代替的な一局面では、第1の特定の部分は、特定の条件を満たす1つ以上の値を含む。
【0157】
ある実施例では、第1の特定の部分は、特定の条件を満たさない複数の値を集約することに起因する集約された値を含む。そのような実施例の一局面では、第1の多次元立方体データ構造は、データセットの1つ以上の計算変数について特定の数学関数を算定した結果を含み、第1の多次元立方体データ構造は、データセットの1つ以上の次元変数のすべての固有値について区分化される。
【0158】
そのような実施例の追加のまたは代替的な一局面では、データセットを処理して第1の多次元立方体データ構造をもたらすことは、テーブル構造の1つ以上のテーブルからデータ項目を順次読出すことと、1つ以上のデータ記録を含む中間データ構造を投入することとを含み、1つ以上のデータ記録の各々1つは、各次元変数についてのフィールドと、特定の数学関数によって暗示される1つ以上の数式についての集約フィールドとを含む。一局面では、1つ以上のデータ記録を含む中間データ構造を投入することは、データ項目について、各次元変数の現在の値を識別することと、データ項目に基づいて1つ以上の数式の各々1つを算定することと、各次元変数の現在の値に基づいて、適切な集約フィールドにおいて前記算定の結果を集約することとを含む。別の局面では、第1の多次元立方体データ構造は、各次元変数のすべての固有値についての集約フィールドの内容に基づいて、特定の数学関数を算定することによって生成される。さらに別の局面では、第2の多次元立方体データ構造は、中間データ構造を全面的に検討することによって生成され、それにより特定の条件を満たさない複数の値を集約することに起因する集約された値を生成する。
【0159】
一実現例では、例示的な方法2000は、第1の多次元立方体データ構造に基づいて、特定の条件を満たさない1つ以上の次元変数の値を識別することを含んでいてもよい。一局面では、中間データ構造を全面的に検討することは、特定の条件を満たさない1つ以上の次元変数の値に関連付けられた集約フィールドの内容を集約し、それにより特定の条件を満たさない複数の値を集約するために特定の数学関数を算定することを含んでいてもよい。
【0160】
図21は、本開示の方法の1つ以上の少なくとも一部を実現(たとえば、実行)可能な例示的なコンピューティング装置2100を示す。図示されているように、コンピューティング装置2100は、バス2115を介してメモリ2120に機能的に結合されたプロセッサ2110を含む。プロセッサ703はプロセッサ2110を具現化してもよく、または含んでいてもよく、システムメモリ712はメモリ2120を含んでいてもよく、または具現化してもよく、バス713はバス2115を含んでいてもよく、または具現化してもよい。一実施例では、データ分析ソフトウェア2124に含まれるコンピュータ実行可能な命令は、データセットを処理して第1の多次元立方体データ構造をもたらすようにプロセッサ2110を構成可能であり、データセットは1つ以上のテーブルを含むテーブル構造を有する。また、一局面では、そのような命令は、1つ以上の次元制限を第1の多次元立方体データ構造に適用して、第2の多次元立方体データ構造をもたらすようにプロセッサ2110を構成可能である。一局面では、1つ以上の次元制限の各々は、第2の多次元立方体データ構造における1つ以上の次元変数の値の表示数を制約する。
【0161】
別の局面では、プロセッサ2110は、特定の表示オプションの選択に応答して、次元制限を第2の多次元立方体データ構造に適用するように構成可能である。さらに別の局面では、プロセッサ2110はさらに、次元制限を適用して、表示中の第2の多次元立方体データ構造の第1の特定の部分をもたらすように構成可能である。第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含んでいてもよい。それに加えてまたはそれに代わって、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの特定の複数の行を含み、特定の複数の行のそれぞれの値は累算され、所定の値と比較される。さらにまたはそれに代わって、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの第1の特定の複数の行を含み、特定の複数の行は大きい順に並べられる。あるシナリオでは、第1の特定の部分は、第1の多次元立方体データ構造に含まれるテーブルの第1の特定の複数の行を含み、特定の複数の行は小さい順に並べられる。他のシナリオでは、第1の特定の部分は、特定の条件を満たす1つ以上の値を含んでいてもよい。
【0162】
一局面では、プロセッサ2110はさらに、1つ以上のユーザインターフェイス要素を構成するように構成可能である。別の局面では、プロセッサは、表示オプションを適用して、表示中の第2の多次元立方体データ構造の第2の特定の部分をもたらすように構成可能である。さらに別の局面では、プロセッサはさらに、データセットの1つ以上の次元変数について数学関数を算定するように構成可能である。
【0163】
本開示の方法およびシステムを、好ましい実施例および特定の例に関連して説明してきた。ここの実施例はすべての点で限定的ではなく例示的であるよう意図されているため、範囲は、述べられた特定の実施例に限定されるよう意図されてはいない。
【0164】
特に明記しない限り、ここに述べられたどの方法も、そのステップが特定の順序で行なわれることを要するとして解釈されるべきであるとは全く意図されていない。したがって、ある方法クレームがそのステップによって追従されるべき順序を実際に記載していない場合、もしくは、ステップが特定の順序に限定されるべきであるということが請求項または説明において具体的に記載されていない場合、いかなる点でも、順序が推論されるべきであるとは全く意図されていない。これは、ステップまたは動作フローの構成に関する論理の事項、文法構成または句読法から由来する明白な意味、明細書に記載された実施例の数またはタイプを含む、解釈のためのあらゆる可能な非発現基盤について当てはまる。
【0165】
さまざまな修正および変更が範囲または精神から逸脱することなくなされ得ることは、当業者には明らかであろう。ここに開示された明細書および実践を検討することから、他の実施例が当業者には明らかであろう。明細書および例は単なる例示として考えられ、真の範囲および精神は請求項によって示されるということが意図されている。