(57)【特許請求の範囲】
【請求項１】
コンピュータ判読可能記憶媒体であって、
データソースから第１組のカテゴリを含むデータセットを検索して取り出す段階と、
該第１組のカテゴリにおける各カテゴリについて連続的にグループ化することによって、前記データセットを再配列する段階と、
前記データセットを表すデータ構造の列挙木を構築する段階と、
カテゴリエントロピーを計算し、カテゴリ網羅率を計算し、そしてカテゴリエントロピーに対して、対応するカテゴリ網羅率の値を乗算した結果を正規化することにより、前記第１組のカテゴリ用の複数のメリット値を計算する段階と、
前記メリット値が、判断基準を満たす第２組のカテゴリを決定する段階と、
前記第２組のカテゴリを返す段階と、
を実行可能な命令が含まれるコンピュータ判読可能記憶媒体。
【請求項２】
請求項１に記載のコンピュータ判読可能記憶媒体であって、カテゴリには、一組の属性が含まれるコンピュータ判読可能記憶媒体。
【請求項３】
請求項１に記載のコンピュータ判読可能記憶媒体であって、
列挙木ノードは、属性ＩＤ、親ノードＩＤ及びノードの属性計数値の内の少なくとも１つから選択された一組の変数を記憶するコンピュータ判読可能記憶媒体。
【請求項４】
請求項３に記載のコンピュータ判読可能記憶媒体であって、前記属性ＩＤとは、前記組のカテゴリの各カテゴリにおける各属性用のＩＤ属性対を記憶する一時的な表を指すコンピュータ判読可能記憶媒体。
【請求項５】
請求項１に記載のコンピュータ判読可能記憶媒体であって、
前記列挙木は、複数の属性の組合せ及び複数の計数値を記憶し、前記複数の計数値における代表的な計数値は、対応する属性が前記データセットに何回発生するか示すコンピュータ判読可能記憶媒体。
【請求項６】
請求項５に記載のコンピュータ判読可能記憶媒体であって、
前記複数の属性の組合せの各属性の組合せは、前記データセットのレコード及び前記データセットの部分的なレコードから選択されるコンピュータ判読可能記憶媒体。
【請求項７】
請求項１に記載のコンピュータ判読可能記憶媒体であって、更に、
フィルタを受け取る段階と、
前記列挙木から一組の適用可能な枝をコピーする段階と、
前記組の適用可能な枝を用いて、新しい列挙木を構築する段階と、
新しい複数のメリット値を計算する段階と、
新しい組のカテゴリを決定する段階であって、前記メリット値が新しい判断基準を満たす前記段階と、
フィルタ処理したデータセットを前記データソースから検索して取り出す段階と、
前記フィルタ処理されたデータセット及び前記新しい組のカテゴリを返す段階と、
を実行可能な命令が含まれるコンピュータ判読可能記憶媒体。
【請求項８】
請求項１に記載のコンピュータ判読可能記憶媒体であって、
前記データセットには、複数のレコードが含まれ、各レコードは、複数の属性を含み、
前記列挙木には、属性及び計数値を含む複数のノードが含まれ、
前記列挙木の前記ノードは、枝状に構成され、
列挙木を構築する前記実行可能な命令には、更に、
各属性を第１レコードから前記第１枝における各ノードにマッピングすることによって、第１枝を前記列挙木に追加する段階と、
前の枝において前記列挙木に追加された前記属性を記憶する段階であって、前記前の枝の属性は、前のレコードからの属性に対応する前記段階と、
実行可能な命令により、更なる枝を前記列挙木に追加する段階であって、前記実行可能な命令は、
前記前のレコードの属性を現レコードの属性と比較する段階と、
前記共通先行属性の属性に対応する各ノードの前記計数値をインクレメントする段階と、
前記現レコードにおける各残りの属性を小枝における新しいノードにマッピングする段階であって、前記小枝は、枝ノードから生じ、前記枝ノードは、前記共通先行属性における前記最後属性に対応する前記段階と、を実行する前記追加する段階と、
を実行可能な命令が含まれるコンピュータ判読可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、同時申請された共同所有の下記米国特許出願、２００６年１０月３１日申請した米国特許出願第１１／５５５，２３４号、「入れ子式パネルを用いてデータをフィルタ処理するための装置及び方法」に関連し、その全体を本明細書に引用・参照する。
【０００２】
発明の分野
本発明は、一般的に、データのフィルタ処理に関する。特に、本発明は、データを効率的にフィルタ処理するフィルタ処理カテゴリの決定に関する。
【背景技術】
【０００３】
多数の関連カテゴリを有する大規模データセットを迅速に移動して見るのは、困難である。場合によっては、或るカテゴリに基づくフィルタ処理は、データセットから１つ又は２つのレコードしか除去しない。従来技術による技法は、一般的に、フィルタ処理の際に基準となるカテゴリ及び属性のリストを提供するが、これは、フィルタが、結果的に生じるデータセットにどのような影響を及ぼすかを示したり判断したりせずに行われる。多くの場合、従来技術は、レコードが索引付けされる所定の階層構造のカテゴリを提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記を考慮すると、どのカテゴリが、データを効率的にフィルタ処理するか判断するための強化技法を提供することは、極めて望ましい。
【課題を解決するための手段】
【０００５】
本発明には、データソースからデータセットを検索して取り出すための実行可能な命令を有するコンピュータ判読可能記憶媒体が含まれ、データセットは、第１組のカテゴリを含む。データセットを表すデータ構造が、構築される。第１組のカテゴリ用の第１組のメリット値が、計算される。第１組のカテゴリは、判断基準に基づき配列される。第１組のカテゴリが返される。
【０００６】
本発明には、更に、データソースからデータセットを検索して取り出すための実行可能な命令を有するコンピュータ判読可能記憶媒体が含まれる。データセットは、第１組のカテゴリ内の各カテゴリに基づき、連続的にグループ化することによって再配列される。列挙木が構築される。第１組のカテゴリ用のメリット値の組を計算する。第２組のカテゴリを決定するが、この場合、メリット値は、判断基準を満たす。第２組のカテゴリを返す。
【０００７】
本発明は、後述の詳細な説明において、以下の添付図面と共に解釈すると更に理解が深まる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に基づき構築されたコンピュータを示す図である。
【図２】本発明の一実施形態に関連する必要な列挙木データ構造を構築するための処理動作を示す図である。
【図３】本発明の一実施形態に基づく列挙木データ構造へのデータセットの変換を示す図である。
【図４】本発明の一般的な実施形態に基づき、一組のカテゴリフィルタ処理オプションを決定するための処理動作を示す図である。
【図５】本発明の特定の実施形態に基づき、一組のカテゴリフィルタ処理オプションを決定するための処理動作を示す図である。
【図６】本発明の一実施形態に基づき構成されたサンプルデータセット及び対応する列挙木データ構造を示す図である。
【図７】供給されたフィルタに基づき再構築した後の図６の列挙木データ構造を示す図である。
【発明を実施するための形態】
【０００９】
同様な参照数字は、幾つかの図面の図における対応部分を指す。
【００１０】
本発明の実施形態を開示する際、以下の用語を用いる。
【００１１】
属性は、データセットにおける任意の非ヌル値である。
【００１２】
属性の組合せは、データセットにおける特定のレコードに関連付けられた属性の組又は下位の組である。
【００１３】
属性計数値は、単一のカテゴリ内に固有の属性が出現する回数である。
【００１４】
属性計数値データ構造は、データセットの全属性用の属性計数値を記憶するデータ構造（例えば、一時的な参照表、リスト、ハッシュ表、又はツリー（木））である。このデータ構造は、内部で記述されたカテゴリフィルタ処理プロセスの任意の構成要素である。
【００１５】
カテゴリは、互いに関連する属性のグループで構成される。カテゴリは、データソースにおける属性の類似の位置によって定義される。例えば、カテゴリは、データベース表又はスプレッドシートの列、ＸＭＬファイル内で同じタグを共有する一組のフィールド、又は階層データソース内において相対的な位置を共有する一組のフィールドである。
【００１６】
共通先行属性は、カテゴリ配列における最初の識別属性の前に来る２つのレコード間で共有される一組の属性である。
【００１７】
エントロピーは、情報理論からの評価基準であり、カテゴリにおける属性が、どのように分散されているか記述する。この公知の評価基準は、属性分布のランダム性に関連する。
【００１８】
列挙木は、ノードがエッジによって接続されたデータ構造である。列挙木は、データセットから得られたデータ及びメタデータでデータセットを表し得る。
【００１９】
フィルタには、同じカテゴリに属する１つ又は複数の属性が含まれるが、これらの属性は、そのカテゴリに対して要求される値（１つ又は複数）として指定されているものである。
【００２０】
メリット値又はメリットは、データをフィルタ処理する際、カテゴリがどれくらい効率的であるかの評価基準である。
【００２１】
ノードの属性計数値は、列挙木ノードに記憶された計数値であり、データセットにおける親ノード属性の先行シーケンス終端に属性が何回出現したかを追跡する。所定の属性に対する全ノードの属性計数値の合計は、関連する属性計数値になる。
【００２２】
図１は、本発明の一実施形態に基づき構成されたコンピュータ１００を示す。コンピュータ１００には、標準的な構成要素、例えば、中央処理装置１０２や入出力装置１０４が含まれ、これらは、バス１０６によって接続されている。入出力装置１０４には、キーボード、マウス、タッチスクリーン、モニタ、プリンタ等を含み得る。更に、ネットワークインターフェイス回路１０８もバス１０６に接続されている。ネットワークインターフェイス回路１０８は、ネットワーク（図示せず）への接続性を提供し、これによって、コンピュータ１００は、ネットワーク環境で動作し得る。
【００２３】
更に、メモリ１１０が、バス１０６に接続されている。メモリ１１０は、本発明の動作を実現するための実行可能な命令を記憶する。一実施形態において、実行可能な命令には、以下のモジュールの１つ又は複数が含まれる。即ち、オペレーティングシステム・モジュール１１２、データアクセス・モジュール１１４、データ構造モジュール１１６、カテゴリ計算モジュール１１８及び任意のグラフィカルユーザーインターフェイス（ＧＵＩ）モジュール１２０の１つ又は複数が含まれる。
【００２４】
オペレーティングシステム・モジュール１１２には、ファイルサービス等の様々なシステムサービスを取り扱ったり、ハードウェア依存のタスクを実施したりするための実行可能な命令が含まれる。
【００２５】
データアクセス・モジュール１１４には、データソースクエリ（例えば、構造化問い合わせ言語（ＳＱＬ）クエリ、多次元表現（ＭＤＸ）クエリ、データマイニング拡張（ＤＭＸ）クエリ）を修正して、指定フィルタを含むための実行可能な命令が含まれる。データアクセス・モジュール１１４は、更に、根底にあるデータソースに生成されたデータソースクエリを適用するための実行可能な命令が含まれるが、これは、コンピュータ１００の一部を形成可能であり、又は、ネットワークインターフェイス回路１０８を介して、別個のネットワーク化されたマシンとしてアクセスし得る。
【００２６】
データ構造モジュール１１６には、列挙木データ構造を構築するための実行可能な命令が含まれる。このモジュールは、更に、本発明の一実施形態に基づき列挙木を解析するための命令を含む。
【００２７】
カテゴリ計算モジュール１１８には、効率的にデータセットをフィルタ処理するカテゴリを決定し、また、カテゴリ情報を整理するための実行可能な命令が含まれる。一実施形態において、カテゴリ情報は、ＧＵＩモジュール１２０に渡される。他の実施形態では、カテゴリ情報は、他のプロセスに渡される。
【００２８】
ＧＵＩモジュール１２０は、任意の構成要素であり、また、ユーザインターフェイスのグラフィカル構成要素、例えば、窓、アイコン、ボタン、メニュー等を生成する標準的な技法に依拠し得る。ＧＵＩモジュール１２０は、ユーザに対して、連続的な組のフィルタ処理カテゴリ、フィルタ処理済みデータセット結果等を表示する。
【００２９】
メモリ１１０に格納された実行可能モジュールは、代表例である。モジュールの機能は、組み合わせられることを認識されたい。更に、モジュールの機能は、単一のマシン上で実施する必要はない。その代わり、望まれる場合、機能は、ネットワーク内に分散し得る。実際、本発明は、クライアント・サーバ環境において共通に実現され、様々な構成要素が、クライアント側及び／又はサーバ側で実現される。重要なことは、本発明の機能であり、それらの実施場所や特定の実施方法ではない。
【００３０】
図２は、データアクセス・モジュール１１４又はデータ構造モジュール１１６からの命令を実行しつつ、コンピュータ１００によって実現し得る列挙木データ構造を構築するための処理動作２００を示す。図２の最初の処理動作において、データアクセス・モジュールは、データソースからデータセットを検索して取り出し（２０２）、オプションとして、それを一時的な表に格納する。
【００３１】
一実施形態において、データ構造モジュール１１６は、次に、オプションとして、固有属性の数の昇順にカテゴリを再配列する（２０６）。一実施形態において、複数のカテゴリは、同数の固有属性を有する場合、元の順番でグループ化される。カテゴリは、物理的に再配列される必要はないことに留意されたい。一実施形態では、カテゴリを物理的に再配列するのが効率的か、又は、データアクセス・モジュール１１４との対話時、それらが再配列されて見えるように番号を付けるのが効率的か、判断する。これは、任意の動作であり、このプロセスでの動作は、この動作２０６に左右されない。
【００３２】
次の処理動作は、属性を降順にグループ化することによってレコードを再配列することである（２０８）。データ構造モジュール１１６は、先頭のカテゴリでのグループ化により、また、上記配列を通って進行することにより始まる。
【００３３】
この再構築が一旦完了すると、データ構造モジュール１１６は、列挙木を構築する（２１０）。データ構造は、木構造であり、単一の木又は複数の木からなり、先頭カテゴリにおける各固有属性に対して、１つの根ノードが存在する。
【００３４】
データ構造モジュール１１６は、第１レコードの先頭カテゴリの属性を選択し、それを根ノード属性として設定することによって始まる。一実施形態において、列挙木のノードは、属性、親ノードのＩＤ、及びノードの属性計数値を含む。レコードの残りは、各属性に１つ、一連のノードとしてツリーに追加され、単一の枝を生成する。データ構造モジュール１１６は、列挙木に追加された最後のレコードを追跡する。このレコード情報は、後続のレコードを列挙木に追加する際に用いられる。
【００３５】
更にレコードを列挙木に追加する場合、データ構造モジュール１１６は、データセット内の次のレコードを選択する。このレコードは、以前追加されたレコードと比較され、共通先行属性の有無をチェックする。全ての共通先行属性は、接頭辞木の場合と非常によく似ているが、同じノードを共有しており、ノードの属性計数値は、幾つのレコードが単一のノードを共有しているか追跡する。レコードの残りの属性は、最後の共通先行属性のノードで始まる小枝として追加される。あるレコードと以前追加されたレコードに対して共通先行属性が存在しない場合、新しい根ノードが生成される。ヌル値は、列挙木に記憶されないことに留意されたい。先頭カテゴリにヌル値を有するレコードは、非ヌル値を有する最初のカテゴリからそれらの根ノード属性を選択する。
【００３６】
図３は、テーブル３００のデータセット例に基づき、本発明の一実施形態において、列挙木を構築するプロセスを示す。まず、テーブル３００の列が、オプションとして、固有属性の数に基づき、再配列される（３０１）。次に、結果的に生じるテーブル３０２のレコードは、属性をグループ化することによって再配列される（３０３）。そして、結果的に生じるテーブル３０４が、列挙木３１５を構築するために用いられる。
【００３７】
データ構造モジュール１１６は、最初の属性３０６を一時的なテーブル３０４の左端の列から選択し、それを根ノード３０９として設定する。列挙木の第１枝が生成され（３０７）、列挙木３０８になる。ヌル値は、列挙木に格納されないことに留意されたい。
【００３８】
そこから、枝が、根ノード３０９の属性ｃ１を左端の列に有する各更なるレコードに対して生成される（３１０）。レコード３０５は、以前追加されたレコードと比較され、共通先行属性が判断される。共通先行属性ノード、ここでは、属性ｃ１及びノード３１１が、共有される。ノードの属性計数値は、上付き文字で示すが（例えば、３１３）、１だけインクレメントされる。そして、図示のように、レコード３０５の残りは、小枝として、列挙木３１２に格納される。
【００３９】
データ構造３１５の残りが、左端の列にある残りの固有属性に対して、このプロセスを繰返すことによって生成される（３１４）。これにより列挙木３１６が完成する。上述したように、全ての共通先行属性は、同じノード、従って、共有ノード３１８を使用する。
【００４０】
図４は、一般的な一実施形態において、データアクセス・モジュール１１４、データ構造モジュール１１６、又はカテゴリ計算モジュール１１８からの命令を実行しつつ、コンピュータ１００によって実現し得る一組のカテゴリフィルタ処理オプションを決定するための処理動作４００を示す。図示するように、本プロセスは、図２の列挙木データ構造構築プロセス２００から継続している。次の動作は、所定の式及びプロセスを用いて、各カテゴリのメリットを計算することである（４０２）。次に、カテゴリが、配列され（４０４）、そして、各カテゴリの属性が、配列される（４０５）。
【００４１】
一実施形態において、カテゴリは、メリットの昇順に配列され、また他の実施形態では、メリットの降順に配列される。一実施形態において、カテゴリは、メリット、及びデータ又は関連するメタデータから導出された他の値によって配列される。一実施形態において、カテゴリ属性は、出現頻度の昇順に配列され、また他の実施形態では、出現頻度の降順に配列される。他の実施形態には、これらに限定するものではないが、カテゴリ属性を、アルファベット順に配列する段階、数字順に配列する段階、ＧＵＩモジュール１２０を介して実行依頼されたユーザ指定に従って配列する段階、又は属性を未配列のままにしておく段階が含まれる。
【００４２】
次に、指定されたフィルタを用いて、データソース４０６に問い合わせ、そして、適用可能なデータセット及びカテゴリを検索して取り出す（４０８）。そして、オプションとして、そのデータセット及びカテゴリを記憶するか、又はそれらを他のプロセス又はＧＵＩモジュール１２０に渡すことができる（４０９）。元の組のカテゴリ内の任意の下位の組のものを渡してよい。この下位組は、データ構造モジュール１１６によって設定される判断基準（例えば、最高メリット、最低メリット、対象値に最も近いメリット）、ＧＵＩモジュール１２０によって指定された同様な判断基準、又はユーザからの要求に基づき得る。
【００４３】
コンピュータ１００は、ユーザ又は他のエージェントがフィルタを選択するのを待つ（４１０）。フィルタが選択された場合（４１０−はい）、カテゴリ計算モジュール１１８は、フィルタを受け取り（４１２）、そして列挙木を再構築する（４１４）。列挙木の再構築では、データ構造モジュール１１６は、現在の列挙木から、関連するカテゴリ内の選択されたフィルタの属性を有する枝をコピーする。そして、動作４０２から４０９を再び繰り返すが、今回は、指定されたフィルタを用いて、動作４０６の実行中、フィルタ処理済みデータセットに対して問い合わせを行う。フィルタが、複数の属性から構成される場合、クエリ内では、“ＯＲ”文を用いる。フィルタが選択されない場合（４１０−いいえ）、プロセスは、フィルタが選択されるまで停止する。
【００４４】
図５は、本発明の特定の一実施形態において、データアクセス・モジュール１１４、データ構造モジュール１１６、又はカテゴリ計算モジュール１１８からの命令を実行しつつ、コンピュータ１００によって実現し得る一組のカテゴリフィルタ処理オプションを決定するための処理動作５００を示す。図５は、他の選択肢としての本発明の実施形態に関連付けられた処理動作を示す。これらの動作の多くは、図４に関連して既に議論した。従って、新しい動作だけを議論する。
【００４５】
メリットを計算する第１の下位動作５０２、即ち、属性計数値の計算は、任意である。一実施形態において、属性計数値を計算する（５０２）場合、データ構造モジュール１１６は、列挙木を解析し、カテゴリ計算モジュール１１８は、各固有ノード属性についてノードの属性計数値を合計する。最初に属性計数値を計算すると、カテゴリ計算モジュール１１８による今後の計算のための合計データ取り込み用のデータ構造（例えば、一時的な参照表、リスト、ハッシュ表、又は木）が提供される。他の実施形態では、この下位動作は、実施されず、カテゴリ計算モジュール１１８は、特定の属性計数値が必要になるたびに、データ構造モジュール１１６が、列挙木を解析し、それを導出することを要求する。
【００４６】
次の下位動作は、カテゴリのエントロピー（Ｅ）を計算することであり（５０４）、次のようなエントロピーの式を用いる。
【数１】
0005612047.tif 000002
上式において、
Ｋは、任意の定数であり、
ｎは、カテゴリにおける固有属性の数であり、
ｌｏｇは、対数関数であり、その底は、個別の実施形態に応じて変わり、また、自然対数、常用対数、２を底とする対数、又は不定対数を含み得る。
ｃａｔｉは、カテゴリにおけるｉ番目の固有属性であり、
ｐ（ｃａｔｉ）は、属性がｃａｔｉである確率であり、これは、ｃａｔｉの出現回数をデータセットにおけるレコード数で除算したものに等しい。ｐ（ｃａｔｉ）を計算するために用いる値は、前の下位動作５０２で構築された属性計数値データ構造から検索して取り出すか、又は要求された時、列挙木から導出する。
【００４７】
次の下位動作は、カテゴリ網羅率を計算することである（５０６）。カテゴリ網羅率は、カテゴリにおける属性の割合によって決定される。一実施形態において、カテゴリ計算モジュール１１８は、属性計数値データ構造から属性計数値を、また、データソースからデータセットにおけるレコード数を検索して取り出す。他の実施形態において、属性計数値は、列挙木から導出される。そして、カテゴリエントロピーに対して、対応するカテゴリ網羅率の値を乗算する（５０８）。
【００４８】
次の下位動作は、前の下位動作からの結果を正規化すること（５１０）である。正規化は、エントロピーと網羅率の積を正規化値ｚで除算することによって実施し得るが、ｚは、カテゴリ内の固有属性の数ｎと相関関係にある。一実施形態では、ｚは、ｎについて単調である。ｚがｎについて単調である一実施形態では、ｚは、ｎについて超線形である。ｚがｎについて超線形である一実施形態では、ｚは、ｎｌｏｇ（ｎ）に等しい。対数の底の例には、２、ｅ（即ち、２．７１８２８１８２８であり、この場合、ｌｏｇｅは、ｌｎで示す）、及び１０が含まれる。ｚがｎについて単調である一実施形態では、ｚはｎについて線形である。ｚがｎに対して線形である一実施形態では、ｚはｎに等しい。ｎの値は、属性計数値データ構造又は列挙木の解析から求められる。
【００４９】
正規化の結果は、メリット値（Ｍ）である。メリット値は、エントロピー及び網羅率に比例し、カテゴリにおける固有属性の数に反比例することに留意されたい。
【００５０】
図６は、図５の処理動作５００の下記例に用いられるサンプルデータセット６００を示す。対応する列挙木６０２は、図２の処理動作２００毎に構築した。
【００５１】
データ構造モジュール１１６が列挙木を構築した後、カテゴリ計算モジュール１１８は、処理を引き継ぎ、データ構造モジュール１１６に対して、列挙木を解析して情報を取得せよという要求を定期的に送る。第１動作５０２は、属性計数値を計算することである。この動作５０２は、任意である。データセット６００に対する属性計数値は、次の通りである。
【表１】
0005612047.tif 000003
【００５２】
そして、エントロピー値は、動作５０４により計算される。
Ｅ（Ｂ）＝−（１）［（４／７）ｌｎ（４／７）＋（３／７）ｌｎ（３／７）］＝０．６８３
Ｅ（Ａ）＝−（１）［（ｌ／７）ｌｎ（ｌ／７）］＝０．２７８
Ｅ（Ｄ）＝−（１）［（２／７）ｌｎ（２／７）＋（２／７）ｌｎ（２／７）＋（２／７）ｌｎ（２／７）＋（ｌ／７）ｌｎ（ｌ／７）］＝１．３５２
Ｅ（Ｅ）＝−（１）［（２／７）ｌｎ（２／７）＋（２／７）ｌｎ（２／７）＋（ｌ／７）ｌｎ（ｌ／７）＋（ｌ／７）ｌｎ（ｌ／７）］＝１．２７２
Ｅ（Ｃ）＝−（１）［（ｌ／７）ｌｎ（ｌ／７）］＝０．２７８
【００５３】
次の動作は、網羅率の値を計算することである（５０６）。
ｃ（Ｂ）＝７／７＝１
ｃ（Ａ）＝１／７＝０．１４３
ｃ（Ｄ）＝７／７＝１
ｃ（Ｅ）＝６／７＝０．８５７
ｃ（Ｃ）＝１／７＝０．１４３
【００５４】
そして、エントロピーと網羅率の値を乗算する（５０８）。
Ｅ（Ｂ）＊ｃ（Ｂ）＝０．６８３＊１＝０．６８３
Ｅ（Ａ）＊ｃ（Ａ）＝０．２７８＊０．１４３＝０．０３９８
（Ｄ）＊ｃ（Ｄ）＝１．３５２＊１＝１．３５２
Ｅ（Ｅ）＊ｃ（Ｅ）＝１．２７２＊０．８５７＝１．０９０
Ｅ（Ｃ）＊ｃ（Ｃ）＝０．２７８＊０．１４３＝０．０３９８
【００５５】
次の動作は、以前の動作の結果を正規化すること（５１０）である。
Ｍ（Ｂ）＝［Ｅ（Ｂ）＊ｃ（Ｂ）］／ｎｌｎ（ｎ）＝０．６８３／（２＊ｌｎ２）＝０．４９３
Ｍ（Ａ）＝［Ｅ（Ａ）＊ｃ（Ａ）］／ｎｌｎ（ｎ）＝０．０３９８／（１＊ｌｎ１）＝ＮａＮ
Ｍ（Ｄ）＝［Ｅ（Ｄ）＊ｃ（Ｄ）］／ｎｌｎ（ｎ）＝１．３５２／（４＊ｌｎ４）＝０．２４４
Ｍ（Ｅ）＝［Ｅ（Ｅ）＊ｃ（Ｅ）］／ｎｌｎ（ｎ）＝１．０９０／（４＊ｌｎ４）＝０．１９６
Ｍ（Ｃ）＝［Ｅ（Ｃ）＊ｃ（Ｃ）］／ｎｌｎ（ｎ）＝０．０３９８／（１＊ｌｎ１）＝ＮａＮ
ここで、ＮａＮは“数値でない”ことを示し、ゼロによる除算に起因する。
【００５６】
次に、カテゴリを配列する（４０４）が、この場合、メリットの降順に行う。
Ｍ（Ｂ）＝０．４９３
Ｍ（Ｄ）＝０．２４４
Ｍ（Ｅ）＝０．１９６
Ｍ（Ａ）＝ＮａＮ
Ｍ（Ｃ）＝ＮａＮ
ＮａＮのメリット値の序列は、他の全ての値の後である。正規化値ｚとしてｎｌｎ（ｎ）を用いる側面は、ただ１つの固有属性を有するカテゴリには、ＮａＮのメリット値があることである。
【００５７】
次の動作は、これは任意であるが、図５の各カテゴリの属性を配列すること（４０５）であり、この場合、出現頻度の降順に配列する。
【表２】
0005612047.tif 000004
【００５８】
次に、データアクセス・モジュール１１４は、データセット６００についてデータソースに問い合わせ（図５の４０６）、そして、適用可能なデータセット及びカテゴリを検索して取り出す（図５の４０８）。そして、オプションとして、データセット及び配列済みカテゴリを記憶するか又はそれらを他のプロセス又はＧＵＩモジュール１２０に送る（図５の４０９）。一実施形態において、ＧＵＩモジュール１２０は、ゼロより大きいメリット値を有するカテゴリをユーザに提供する。例えば、この場合、ＧＵＩモジュール１２０は、カテゴリＢ、Ｄ及びＥを表示する。そして、プロセス５００は、継続する前に、他のフィルタが指定されるのを待つ。
【００５９】
フィルタが選択されると、データ構造モジュール１１６は、そのフィルタを受け取り、適切な枝を新しい列挙木にコピーすることによって、列挙木を再構築する。例えば、選択されたフィルタがＢ＝ｂ２である場合、列挙木（図７の７００）が生成される。
【００６０】
次に、カテゴリ計算モジュール１１８は、一連の処理動作を実施し（図５の４０２）、メリット値が以下のようになる。
Ｍ（Ａ）＝ＮａＮ
Ｍ（Ｄ）＝０．４５９
Ｍ（Ｅ）＝０．３５２
Ｍ（Ｃ）＝ＮａＮ
【００６１】
そして、カテゴリは、配列され（図５の４０４）、この場合、メリットの降順に配列される。
Ｍ（Ｄ）＝０．４５９
Ｍ（Ｅ）＝０．３５２
Ｍ（Ａ）＝ＮａＮ
Ｍ（Ｃ）＝ＮａＮ
【００６２】
そして、カテゴリ属性は、オプションとして、配列され（図５の４０５）、この場合、出現頻度の降順に配列される。
【表３】
0005612047.tif 000005
【００６３】
そして、データアクセス・モジュール１１６は、新しいデータセットについてデータソースに問い合わせ（図５の４０６）、Ｂ＝ｂ２でフィルタ処理を行い、適用可能なデータセット及びカテゴリを検索して取り出す（図５の４０８）。そして、オプションとして、新しい組の配列済みカテゴリ及びフィルタ処理済みデータセットを記憶するか又はそれらを他のプロセス又はＧＵＩモジュール１２０に送る（図５の４０９）。プロセス５００は、継続する前に、他のフィルタが指定されるのを待つ。
【００６４】
カテゴリ及びデータセットは、任意の数の技法に基づき、ＧＵＩモジュール１２０によって表示し得るが、これらの技法には、本明細書にその全体を引用・参照する以下の同時申請・共同所有の特許出願、２００６年１０月３１日に出願した米国特許出願第“＿／＿＿＿，＿＿＿”号、「入れ子式パネルを用いてデータをフィルタ処理するための装置及び方法」に記載されたものが含まれる。
【００６５】
本発明の実施形態には、実行可能な命令を記憶するコンピュータ判読可能記憶媒体が含まれる。コンピュータ判読可能記憶媒体には、データソースからデータセットを検索して取り出す命令が含まれる。データセットには、一組のレコード及び一組のカテゴリが含まれる。命令には、一組のカテゴリの各カテゴリに基づき連続的にグループ化することによって、一組のレコードを再配列する命令が含まれる。命令には、列挙木を構築する命令が含まれる。一実施形態において、コンピュータ判読可能媒体のカテゴリには、一組の属性が含まれる。一実施形態において、コンピュータ判読可能媒体には、更に、実行可能な命令が含まれるが、これらは、一組のカテゴリにおける各カテゴリの固有属性の数を計算し、また、固有属性の数の昇順にカテゴリを再配列する命令である。一実施形態において、コンピュータ判読可能媒体には、更に、実行可能な命令が含まれるが、これらは、フィルタを受け取り、一組の適用可能な枝を列挙木からコピーし、この場合、適用可能な枝の組における適用可能な枝は、フィルタに準拠し、また、その組の適用可能な枝を用いて新しい列挙木を構築する。
【００６６】
本発明の実施形態は、コンピュータ記憶製品に関し、コンピュータ判読可能媒体が、コンピュータにより実行される様々な動作を実施するためのコンピュータコードをそれ上に有する。媒体及びコンピュータコードは、本発明の目的のために特別に設計され構築されたものであってよく、あるいは、コンピュータソフトウェア分野の当業者に公知で利用可能な種類のものであってよい。コンピュータ判読可能媒体の例には、これらに限定するものではないが、次のようなものが含まれる。即ち、ハードディスク、フロッピー（登録商標）ディスク、及び磁気テープ等の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、及びホログラフィー装置等の光学媒体、光磁気媒体、及び特定用途向け集積回路（ＡＳＩＣ）、プログラム可能な論理装置（ＰＬＤ）及びＲＯＭ及びＲＡＭ装置等、プログラムコードを記憶し実行するように特別に構成されたハードウェア装置が含まれる。コンピュータコードの例には、コンパイラによって生成されるマシンコードや、コンピュータがインタプリタを用いて実行する高級なコードを含むファイルが含まれる。例えば本発明の実施形態は、Ｊａｖａ（登録商標）、Ｃ＋＋、又は他のオブジェクト指向プログラミング言語及び開発ツールを用いて、実現し得る。本発明の他の実施形態は、機械実行可能なソフトウェア命令の代わりに又はこれらと組み合わせて、ハードウェア的に組み込まれる回路で実現し得る。
【００６７】
上記の記述では、説明目的で、本発明の完全な理解を提供するために特定の用語を用いた。しかしながら、本発明を実践するために、具体的な細目が必要でないことは、当業者には明らかである。従って、本発明の特定の実施形態についての上記記述は、例示及び説明目的のために提示されている。これらは網羅的であったり、開示された厳密な形態に本発明を限定したりすることを意図するものではなく、明らかに、上述の教示内容に鑑みて、多くの修正や変更が可能である。実施形態については、本発明の原理及びその実用的な用途を最適に説明するために、選択・記述したものであって、それによって、当業者が、本発明と、考案される実用的用途に適応した様々な実施形態と、を最適に利用できるようにするものである。以下の請求項及びそれらの等価物が、本発明の範囲を規定するものである。
【符号の説明】
【００６８】
２００      列挙木データ構造構築のための処理動作
【図１】
0005612047.tif 000006
【図２】
0005612047.tif 000007
【図３】
0005612047.tif 000008
【図４】
0005612047.tif 000009
【図５】
0005612047.tif 000010
【図６】
0005612047.tif 000011
【図７】
0005612047.tif 000012