(57)【要約】  本発明は、データ解析分野に関する。一形態では、本発明は、解析データベースにおけるデータの解析に関する。好ましくは、本発明は、複雑な符号化データ、具体的には、階層データの解析に関する。発明の複数の局面が開示されており、複数の局面には、限定することなく、階層データの記憶、階層データのＧＵＩ表現、階層データのコンボリューション及びデボリューション、複雑なデータのクロス集計が含まれ、セグメント・メソッド、オフセット・メソッド、１レベル・メソッド、セグメント・マッチング・メソッド、階層変数を生成するためのグリッド構造生成部が含まれている。
2009512080.tif 000002
【特許請求の範囲】
【請求項１】
調査回答などからの階層データを表すように設定されたデータフォーマットであって、
記号文字列を備え、該記号文字列は、空いている深さ（レベル）の指標を含んでいる
ことを特徴とするデータフォーマット。
【請求項２】
請求項１に記載のデータフォーマットであって、
前記指標は、各レベル毎に設けられている
ことを特徴とするデータフォーマット。
【請求項３】
請求項１または請求項２に記載のデータフォーマットであって、
前記指標は、異なる記号及び／もしくは異なる記号フォーマットで表されている
ことを特徴とするデータフォーマット。
【請求項４】
請求項１に記載のデータフォーマットであって、
さらに、
区切り文字によって、複数回答データを表している
ことを特徴とするデータフォーマット。
【請求項５】
請求項１に記載のデータフォーマットであって、
さらに、
区切り文字によって、付加データを表している
ことを特徴とするデータフォーマット。
【請求項６】
請求項４または請求項５に記載のデータフォーマットであって、
前記区切り文字は、異なる記号及び／もしくは異なる記号フォーマットで表されている
ことを特徴とするデータフォーマット。
【請求項７】
請求項１乃至請求項６のいずれかに記載のデータフォーマットであって、
前記記号文字列は、単一の文字列である
ことを特徴とするデータフォーマット。
【請求項８】
請求項１乃至請求項７のいずれかに従ったフォーマットのデータに基づく解析を行うように構成された解析ツール。
【請求項９】
階層データを表示するためのＧＵＩ表現のデータフォーマットであって、
少なくとも１つの第１フォルダと、
少なくとも１つの第２フォルダであって、該第２フォルダは、前記第１フォルダ内に設けられ、該第２フォルダの各々は、階層の対応するレベルに関連するコードを含んでいる、少なくとも１つの第２フォルダと
を備えていることを特徴とするデータフォーマット。
【請求項１０】
請求項９に記載のデータフォーマットであって、
前記フォルダの順序は、階層構造を表している
ことを特徴とするデータフォーマット。
【請求項１１】
請求項９に記載のデータフォーマットであって、
前記第１フォルダは、変数などの、前記階層のルートを表している
ことを特徴とするデータフォーマット。
【請求項１２】
請求項９に記載のデータフォーマットであって、
前記少なくとも１つの第２フォルダは、レベルを表している、好ましくはレベルを順番に表していることを特徴とするデータフォーマット。
【請求項１３】
請求項１２に記載のデータフォーマットであって、
前記少なくとも１つの第２フォルダは、レベルを順番に表している
ことを特徴とするデータフォーマット。
【請求項１４】
請求項９に記載のデータフォーマットであって、
前記コードは、前記少なくとも１つの第２フォルダの属性である
ことを特徴とするデータフォーマット。
【請求項１５】
階層データ構造を表す方法であって、
該方法は、
変数を表す第１フォルダを設ける工程と、
該第１フォルダ内にあり、各々がレベルを表す、少なくとも１つの第２フォルダを設ける工程と、
前記第２フォルダの各々の中に、前記レベルのコードを設ける工程と
を備えていることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、
さらに、
前記階層構造を表すように前記フォルダを順序付ける工程
を備えていることを特徴とする方法。
【請求項１７】
第１フォーマットで表現されたデータを第２フォーマットで表現されたデータに変換する方法であって、
該方法は、
前記第１フォーマットを前記第２フォーマットに変換する処理においてＳＲＬを使用する工程を備えていることを特徴とする方法。
【請求項１８】
請求項１７に記載の方法であって、
前記ＳＲＬは、ファイルに格納されている
ことを特徴とする方法。
【請求項１９】
ＳＲＬで表現されたクロス集計仕様。
【請求項２０】
クロス集計仕様を表すように設定されたスキーマであって、
変数を表す第１記号と、
コードを表す第２記号と
を備えていることを特徴とするスキーマ。
【請求項２１】
請求項２０に記載のスキーマであって、
さらに、
重み付けを表す第３記号と、
フィルタを表す第４記号と、
階層コードを表す第５記号と、
フラグを表す第６記号と、
基本表現を表す第７記号と
のうちのいずれか１つ、もしくはいずれかの組み合わせを備えている
ことを特徴とするスキーマ。
【請求項２２】
請求項２０または請求項２１に記載のスキーマであって、
該スキーマの各ラインは、（表にされたデータの）行もしくは列を記述している
ことを特徴とするスキーマ。
【請求項２３】
請求項２０または請求項２２に記載のスキーマであって、
該スキーマの各ラインは、ルートに戻るテーブル仕様ノードを記述している
ことを特徴とするスキーマ。
【請求項２４】
仕様表現言語であって、
一般形態が、
【数１】
2009512080.tif 000019
であることを特徴とする仕様表現言語。
【請求項２５】
データを処理する方法であって、
該方法は、
各レベルが共通して少なくとも１つのコードを有する、少なくとも２つのレベルを備える階層を表しているデータを供給する工程を備えていることを特徴とする方法。
【請求項２６】
請求項２５に記載の方法であって、
前記データは、調査データである
ことを特徴とする方法。
【請求項２７】
複雑なデータ構造を有する回答に適用可能なテーブルにおける行もしくは列を決定する方法であって、
前記回答を判定する工程と、
変数の構造を判定する工程と、
前記回答の行もしくは列を決定するために前記変数の構造を等差級数的に処理する工程と
を備えていることを特徴とする方法。
【請求項２８】
請求項２７に記載の方法であって、
前記処理する工程は、
オフセットと、レベルのサイズとを乗算することと、
該オフセットに対して１つ少ない回答コードを加えることと
を備えていることを特徴とする方法。
【請求項２９】
請求項２７または請求項２８に記載の方法であって、
さらに、
最初に前記オフセットをゼロに初期化したのち、前記構造の各レベル毎に処理を行うことを備えていることを特徴とする方法。
【請求項３０】
回答を処理する方法であって、
該方法は、
レベルを決定する工程と、
該レベルのセグメントのみを処理する工程と
を備えていることを特徴とする方法。
【請求項３１】
請求項３０に記載の方法であって、
前記処理する工程は、請求項２７乃至請求項２９のいずれかに従っている
ことを特徴とする方法。
【請求項３２】
請求項３０に記載の方法であって、
さらに、
そのレベルのセグメントと等価なセグメントを供給することで変数を受け入れる工程を備えていることを特徴とする方法。
【請求項３３】
請求項３２に記載の方法であって、
前記変数は、フィルタ、上部、側部、重み付けである
ことを特徴とする方法。
【請求項３４】
請求項３２に記載の方法であって、
前記セグメントは、追加的なセグメントである
ことを特徴とする方法。
【請求項３５】
請求項３２に記載の方法であって、
前記セグメントは、折り畳まれている
ことを特徴とする方法。
【請求項３６】
グリッド配置に変数を配置する方法であって、
該方法は、
前記変数を選択する工程と、
グリッド構造を供給する工程と、
前記変数を前記グリッド構造の所望の位置に組み込む工程と
を備えていることを特徴とする方法。
【請求項３７】
階層データの構造を表すように構成された装置であって、
該装置は、
予め決められた命令セットに従って動作するように構成された処理手段を備え、
前記装置は、
前記命令セットに連動して、請求項１５、１７、２５、２７、３０、３２、３６のいずれかに記載の方法を実行するように構成されている
ことを特徴とする装置。
【請求項３８】
コンピュータが利用可能な媒体であって、データ処理システムと協働するために前記媒体上で具現化された、コンピュータが読み取り可能なプログラムコードとコンピュータが読み取り可能なシステムコードとを有する、コンピュータが利用可能な媒体を備え、
該コンピュータが利用可能な媒体内の、コンピュータが読み取り可能なコードは、請求項１５、１７、２５、２７、３０、３２、３６のいずれかにおける方法を実行するように設定されている
ことを特徴とするコンピュータプログラム製品。
【請求項３９】
ここに開示されている方法。
【請求項４０】
ここに開示されている装置及び／もしくは機器。
【請求項４１】
ここに開示されている仕様。
【請求項４２】
ここに開示されているスキーマ。
【請求項４３】
ここに開示されているデータフォーマット。
【請求項４４】
ここに開示されている仕様表現言語。
【請求項４５】
ここに開示されている解析ツール。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
[発明の分野]
本発明は、データ解析分野に関する。
一形態では、本発明は、解析データベースにおけるデータの解析に関する。好ましくは、本発明は、調査結果に多く見受けられるような、複雑な符号化データ、具体的には、階層データの解析に関する。
【０００２】
便宜上、以下では、本発明を階層データに関連させて説明するが、当然のことながら、本発明は、階層データにのみ使用されるものと限定されるものではない。
[背景技術]
本明細書全体の考察は、本願発明者の理解及び／もしくは特定の従来技術にある問題の特定によってなされている。
【０００３】
本願発明者は、例えば、より現実の状況を示すデータが比較的複雑になり得ることに気づいた。既存の従来技術は、より複雑なデータを解析することが困難である。予め定義されたカテゴリーに対して数値コードを割り当てることに使用されて、集計処理をコードの数をカウントすることに変換することが可能な複数の技術がある。さらに、集計を解析ツールとして使用するために、フィルタリングと重み付けとが用いられている。単純データは、比較的良好に処理されるものの、複数回答データ、及び／もしくは付加データ、及び／もしくは具体的には階層データといった、複雑なデータを処理することは、非常に困難となっている。
【０００４】
本願発明者は、このような困難の１つの原因がデータ自体の性質であることに気づいた。今までに種々の技術が使用されてきているものの、種々の技術は、データの複雑性における根本的な問題に対処できていない。
【０００５】
データの複雑性は、例えば単純データ、複数回答データ、付加データ、階層データを参照して論じられ得る。
＜単純データ＞
カテゴリーが相互排他的である、例えばＧｅｎｄｅｒ（性別）やＲｅｇｉｏｎ（地域）などのデータにとって、クロス集計のための処理要求は、比較的単純である。クロス集計には、与えられた事例に関して、各Ｇｅｎｄｅｒコード（１＝Ｆｅｍａｌｅｓ（女性）、２＝Ｍａｌｅｓ（男性）など）と、各Ｒｅｇｉｏｎコード（１＝ＮＥ、２＝ＮＷ、３＝ＳＥ、４＝ＳＷなど）とが発生した回数のカウントが必要である。
＜複数回答データ＞
しかしながら、天気事象（ｗｅａｔｈｅｒ  ｅｖｅｎｔ）に関するデータは、以下のように符号化され得る。
【０００６】
ｃ１＝雨（ｒａｉｎ）
ｃ２＝雹（ｈａｉｌ）
ｃ３＝雪（ｓｎｏｗ）
ｃ４＝風（ｗｉｎｄ）
ｃ５＝暑さ（ｈｅａｔ）
都市（ｔｏｗｎ）によっては、これらの事象が存在しなかったり、これら事象が全て存在し得るので、ある都市の記録は、空白であり、別の都市の記録は、上記コードに基づいて、１；２；３；４となり得る。また、今までに１日において雹が複数回降ったことがある別の都市は、上記コードに基づいて、２；２；４；２を記録し得る。
【０００７】
クロス集計複数回答データは、対となる可能性がある全ての組み合わせ全体を反復する必要がある。
＜付加データ＞
各事象は、降雨量や風速のような、各事象に関連する付加データもしくは値を有し得る。各事象は、３０ｍｍの雨や時速５５キロ（５５ｋｐｈ）を意味するように、上述の表１を使用して、１*３０；４*５５として記録されてもよい。集計されたときに、デフォルトの付加データである１に代えて、そのコードの事例のための特定の付加データが集合体に加えられる。
＜階層データ＞
複雑なデータの組は、多くの場合、自然な階層を有している可能性がある。多くの例としては、
・医師／患者／処方箋
・部門／コンピュータ／インストールされたソフトウェア
・製薬研究室の現場試験／試験＃／試験の種類／結果
・ブランド属性評価の市場調査
・その他
がある。
【０００８】
この種のデータは、解析することが困難であることで知られている。上述の例に関して、研究者が答えたらよいと思われる、明確な種類の疑問点としては、
・どれだけの処方箋を各医師が発行するのか。患者数の割合としてか。２人以上の医者がいる患者は何人か。発行された全ての処方箋のうち、鎮痛薬、抗生物質の割合はどれだけか。
・コンピュータの数と、インストールされたアプリケーションの数との比率はどれだけか。どの部門が最も多くの集計表を有しているのか。所定のＯＳ上でどれだけの数のアプリケーションがインストールされているのか、など。
・どの研究室が特定の試験を常にパス（ｐａｓｓ）しているのか。どの研究室が特定の試験を常にパスしていないのか。どの試験が最も高い頻度でパスされているのか。１つの試験の結果は、他の試験の結果と実質的にもしくは著しく異なっているのか。
・ブランドのついた、所定の組の製品と、１組の属性とでは、各ブランドはどのように評価されているのか。ブランドの一部ではどうか。１つの属性は、他の属性よりも全てのブランドにおいてより人気がある／より人気がないか。
【０００９】
階層データは、複数レベルにて情報を含んでいる。複数の都市における天気事象の重大性（ｓｅｖｅｒｉｔｙ）を記録する場合は、例えば、３段階の符号化を含んでいる。事象コードに加え、都市は、１，２，３などとして符号化され、天気の重大性も、１，２，３などとして符号化され得る。この階層データは、図１に図示されているような１つのツリーもしくは複数のツリーの組み合わせとして描写されることが多い。
【００１０】
２０個の都市と、５つの事象と、１０段階の重大性基準とでは、毎日記録されるデータ項目は、１０００個の異なるデータ項目となる可能性があるものと推定され得る。さらに、階層構造の各レベルにおけるデータは、それ自体が、複数回答データの量、及び／もしくは付加データの量、及び／もしくは単純な暗号化されていないデータの量となり得る。同一種類の複数の事象を許容すると、通常は、２０００，３０００，５０００といった可能性の増加を伴うとともに、十分な複数の事象を許容することと、データ記憶領域上の空間を過度に浪費しないこととの間に対立が生じる。
【００１１】
一事例の階層データは、本質的には、あらゆる深さ（ｄｅｐｔｈ）及びあらゆる複雑性からなるＮノードのツリーである。この階層データを経済的に格納できそうなシステムはほとんどないものと考えられる。ＲＤＢ（リレーショナル・データベース）は、複数のリンクされたテーブルを使用することができ、カードイメージや他のフラット・フォームは、たとえほとんど使用される可能性がなくとも、考えられ得るブランチの組み合わせの各々のための空間を提供しなければならない。
【００１２】
別の問題は、一般的に‘ツリー（ｔｒｅｅｓ）’として称されるが、実際に必要とされるのは、ツリーの集まりである‘フォレスト（ｆｏｒｅｓｔ）’であるということである。調査データでは、ルートノードは、概念であることが多く、それ自体が変数を有している。市場分析における一般的な例は、ブランド（ｂｒａｎｄ）／属性（ａｔｔｒｉｂｕｔｅ）／評価（ｒａｔｉｎｇ）である。例えば：
Ｑ１２ａ．各ブランドに関する以下の記述の各々を１〜１０段階で評価してください。但し、‘１’は、‘賛成しない’を意味し、‘１０’は、‘大いに賛成する’ことを意味します。
【００１３】
【表１】
2009512080.tif 000003
一回答者においては、グリッドは以下のように記入され得る。
【００１４】
【表２】
2009512080.tif 000004
図２には、概念ルートを含んでいるツリー表現が図示されている。このようなツリーを読み込むために十分に確立されたアルゴリズムが数多く存在するが、クロス集計のために十分に満足できると考えられるアルゴリズムは存在しない。
＜クロス集計＞
本願発明者によって特定された一般的な問題は、上述の問題に対処する、特に階層全体にわたって対処する、クロス集計アルゴリズムが比較的遅くて、ぎこちなく、非効率的で、全体的に不十分であると考えられる。クロス集計では、横断速度が重要な要因である。ディスクもしくはＲＡＭにおいて、各ノードを子ノードに対応づけるアドレスポインタからなる従来技術の方法を使用すると、ＣＰＵに負担がかかる可能性があり、その結果、診断目的及び検証目的のためにツリーを通じたデータのつながりを手作業で辿ることが煩雑且つ困難となる。
【００１５】
リレーショナル・データベース（ＲＤＢＭ）・システムは、具体的には、考えられる全てのあらゆる割合を可能な限り計算することが非常に困難である。調査作業の慣習に由来するシステムは、一般的に、階層データの処理が幾分得意であるものの、複雑なデータとともに使用されるときに、性能上の深刻な損失を被るものと考えられている。
【００１６】
従来技術において、クロス集計による解析のための階層データを準備することは、通常、３つの方法のうちの１つによって対処される。
１．データを複数のパラレル変数に分割し、変数の合計数を論理的階層における各レベルでのカテゴリーの数の製品と一致させる。この技術の問題点は、数百もしくは数千もの変数が存在する可能性があり、これら変数は、通常、まばらにしか存在せず、各変数毎に個別のクロス集計が必要となり、全てのデータに関するクエリーの仕様では、確実に達成することが物理的に困難である特定の方法で引用される各変数が必要となる。
【００１７】
２．全ての考えられ得るコードの組み合わせの各々を新たな変数の固有のコードに位置付けることで階層を平坦化する。これにより、必要な新たなコードの数は、論理的階層における各レベルでのカテゴリーの数の製品となる。このことは、問題点を、数多くの変数を必要とすることから、空間もしくは時間の浪費をほとんど改善することなく数多くのコードを必要とすることにシフトさせたに過ぎないものと考えられる。
【００１８】
３．クロス集計時間でコードが階層全体と適切に組み合わさるように、階層の各レベルを、特定の方法で区切った単一の変数として格納する。このことは、空間及び時間の浪費を削減するものの、（各レベルは、その隣の構造を複製しなければならないので）不必要な複製を必要とし、論理的に全体の一部であり、リンクされていないレベルを残すことになるものと考えられる。このことは、ユーザ側である程度の簿記の労力を要し、誤った配置もしくは意味のない配置を行ってしまう虞を生じさせる。
【００１９】
本願発明者が特定した別の問題点は、それ自体もしくは別の変数に対してクロス集計され、容易且つ迅速に取得可能であるべきであり、処理するのに長い時間を要する可能性があり、多くの手作業による検査を必要とする階層全体にわたる解析出力が、特定し難く（ＲＤＢＭの世界におけるＳＱＬの多くページを要することになり得る）、解釈し難いことが多いことである。
＜階層データの表現＞
変数をフォルダとし、この変数のコードをこのフォルダの下に子として示すツリー表示において、ユーザに通常の変数を表すことが一般的になされている。階層データは、当該階層データを表現する従来の方法がないという、本願発明者によって特定された別の問題点をもたらす。データツリーを通じる、考えられる全ての経路を解明することは、組み合わせの激増（組み合わせ的爆発：ｃｏｍｂｉｎａｔｏｒｉａｌ  ｅｘｐｌｏｓｉｏｎ）につながり得る。
＜階層データのコンボリューション及びデボリューション＞
本願発明者は、テーブルを通常のデータで特定することにおいて、仕様におけるコードと、行及び列との間に直接的な関係があることも発見した。つまり、各最上位のコードが、テーブルにおいて１つの列をなし、各端部のコードが、テーブルにおいて１つの行をなす。階層変数は、仕様のためのツリー構造を最良に表現するものであるが、行もしくは列の数は、コードの数と単純に関連しているわけではないので、問題をもたらす。２つのコードと、２つのコードと、５つのコードとをそれぞれのレベルで有する３つのレベルを伴う変数は、２×２×５＝２０個の行もしくは列を生成することになる。この変数は、図３に図示されている。
【００２０】
あらゆる変数の親の無制限なつながりとして出現可能なフィルタ表現や重み付け表現によって、問題はさらに複雑になる。さらに、コードフレームは、順守する必要がある基本表現と、どのコードが基本であるのかを示すフラグとを有し得る。また、この情報は、行／列ネスティングと、仕様ツリーとの双方を再構築できるように、保存されたテーブルとしてファイルに格納される必要がある。
＜階層変数を生成するためのグリッド構造生成部＞
階層変数を使用することは、データを解析するのに良好な方法であるものと考えられるものの、多くのデータ収集システムは、階層変数を使用することができないということに本願発明者は気づいた。通常、データは、‘細分化’されている。２０個の都市における５つの天気事象のクラスを１０個の重大性レベルで示した記録のデータは、２０×５＝１００個の異なる変数となる可能性があり、１００個の異なる変数はそれぞれ、１〜１０個のコードフレーム、もしくは最悪の場合、１０００個の異なるバイナリ変数を有することになる可能性がある。従来技術の構成技術でこのようなデータを構成し、表すことは可能であるが、このようなデータを構成し、表すことは時間を浪費する上、困難であるものと考えられる。
【００２１】
本明細書に記載された、書類や装置、行為、知識のあらゆる考察は、本発明の背景を説明するのに含まれる。ここにおける開示及び請求項の優先日以前における、従来技術の基礎部分を構成するあらゆる資料や、オーストラリア内外における関連技術の一般的知識は、認定（ａｄｍｉｓｓｉｏｎ）とみなされるべきではない。
【００２２】
本発明の目的は、従来技術に関連する、少なくとも１つの不都合を緩和することである。
本発明の別の目的は、データを、比較的透過にできること、及び／もしくは比較的容易にエンドユーザに提示できることである。
【００２３】
本発明のさらに別の目的は、階層データの直接的なクロス集計を、可能にすること、及び／もしくは比較的迅速にすること、及び／もしくは比較的簡素化すること、及び／もしくは比較的信頼性の高いものにすることである。
＜発明の概要＞
本発明は、発明の一局面において、調査回答などからの階層データを表す、データフォーマット及び／もしくは方法であって、記号文字列を備えており、該記号文字列が、ツリーの深さ（レベル）の指標を含んでいる、データフォーマット及び／もしくは方法を提供する。
【００２４】
本発明は、発明の第２局面において、ここで開示されているようなフォーマットのデータに基づく解析を行うように構成された解析ツールを提供する。
本発明は、発明の第３局面において、階層データを表示する、ＧＵＩ表示可能なデータフォーマット及び／もしくは方法であって、少なくとも１つの第１のフォルダと、少なくとも１つの第２のフォルダとを備えており、該第２のフォルダが、第１のフォルダ内に設けられ、各第２のフォルダが、階層の対応するレベルに関連するコードを含んでいる、データフォーマット及び／もしくは方法を提供する。
【００２５】
本発明は、発明の第４局面において、階層データの構造を表す、データ構造表現及び／もしくは方法であって、変数を表す第１のフォルダを提供する工程と、第１のフォルダ内にあり、各々がレベルを表す、少なくとも１つの第２のフォルダを提供する工程と、各第２のフォルダ内に、そのレベルのコードを提供する工程とを備えている、データ構造表現及び／もしくは方法を提供する。
【００２６】
本発明は、発明の第５局面において、第１のフォーマットで表されたデータを第２のフォーマットで表されたデータに変換する、データ表現及び／もしくは方法であって、第１のフォーマットを第２のフォーマットに変換する処理にてＳＲＬを使用する工程を備えている、データ表現及び／もしくは方法を提供する。
【００２７】
本発明は、発明の第６局面において、ＳＲＬで表されたクロス集計仕様を提供する。
本発明は、発明の第７局面において、クロス集計仕様を表すように設定されたスキーマであって、変数を表す第１の指標と、コードを表す第２の指標とを備えているスキーマを提供する。
【００２８】
本発明は、発明の第８局面において、ここで開示された仕様表現言語を提供する。
本発明は、発明の第９局面において、データ処理方法であって、各レベルが少なくとも１つのコードを含む、少なくとも２つのレベルを有する階層を表すデータを提供する工程と、単一のユニット（セグメント）として各レベルのデータを処理する工程とを備えているデータ処理方法を提供する。
【００２９】
本発明は、発明の第１０局面において、複雑なデータ構造を有する所定の回答に適用可能なテーブルにある行もしくは列を決定する方法であって、回答を判定する工程と、変数の構造を判定する工程と、回答のための行もしくは列を決定するために等差級数的に変数の構造を処理する工程とを備えている方法を提供する。
【００３０】
本発明は、発明の第１１局面において、回答を処理する方法であって、レベルを判定する工程と、そのレベルにおけるセグメントのみを処理する工程とを備えている方法を提供する。
【００３１】
本発明は、発明の第１２局面において、そのレベルにおけるセグメントと等価なセグメントを提供することで変数を受け入れる方法を提供する。
本発明は、発明の第１３局面において、テーブル構成に変数を配置する方法であって、変数を選択する工程と、グリッド構造を提供する工程と、グリッドの所望の位置に変数を組み込む工程とを備えている方法。
【００３２】
別の局面及び好ましい局面は、本明細書に開示され、及び／もしくは添付の請求項にて定義され、本発明の説明の一部を構成している。
要するに、本発明は、発明の以下の局面に関するものである。
１．階層データの格納
・高い空間効率を有し、迅速な処理を促進する、複雑なデータの格納方法を提供する。インデックスリンクを有する多くのファイルに格納される他のものは、１ラインにつき一事例となる単一のファイルに格納される。複数回答は、セミコロンによって分離される。付加は、アスタリスクの後ろに置かれる。階層ツリー構造は、レベル毎にアルファベットで示される。
２．階層データのＧＵＩ表現
・構造の直感的な理解をもたらしつつ、可能性の組み合わせの激増を回避する、階層データの表現方法を提供する。階層構造は、階層構造でなければリンクされたテーブルもしくは別の装置によって推測され、解釈するのにある程度の労力を要すると思われるものであり、子ブランチが下位にそのコードを伴うようなレベルを有するツリーとして示される。
３．階層データのコンボリューション及びデボリューション
・階層変数の直感的なＧＵＩ表現と、得られたテーブル上の行及び列の組み合わせの激増と、ファイル内へのこの情報の格納及び検索との間に効果的に介在する仕様表現言語を用いる方法を提供する。
４．複雑なデータのクロス集計
ａ）セグメント・メソッド
・複雑なデータの処理を促進するデータのユニットを定義する方法を提供する。単一のコードがユニットとみなされるのではなく、セグメントが、効果的にはデータツリーの１つのノードである１つのレベル位置における全ての回答であり、セグメントは、単に１つのコードであってもよいが、各々が付加データを伴う複数のコードにもなり得る。データへのアプローチは、速度及び単純性の利益をもたらす異なる観点からである。例えば、データの大きなユニットを使用することで、複数回答データ及び付加データの複雑性は分離され、比較的処理し易くなることが分かっている。
ｂ）オフセット・メソッド
・あらゆるレベルの複数回答を許容しつつ、階層データの要素にインデックスを付ける非常に迅速な算術方法を提供する。オフセット・メソッドは、テーブル全体のリンクを辿ったり、他の記憶技術を要する他の装置よりもはるかに迅速であり、全てのレベルからのデータが一平面に格納されることで実現可能である。
ｃ）１レベル・メソッド
・‘処理レベル’を設けつつ、あらゆる別のレベルのデータを無視することで、階層データを処理する効率を高める方法を提供する。
ｄ）セグメント・マッチング・メソッド
・迅速な処理を促進するために、異なる変数からの回答を準備する方法を提供する。処理の最中、変数は、テーブル仕様の上部要素、側部要素、フィルタ要素、重み付け要素の一因となってもよい。特定の事例の回答を処理する比較的迅速な方法は、全ての要素が同じ数のセグメントを有している場合である。このような準備は、４つの要素が全て階層的であり、全てが異なるレベルにある場合であっても行われる。この方法によって、１つのレベルにおけるセグメントの展開及び折り畳みが可能となり、別のレベルにおけるセグメントの数が実質的に一致する。この結果は、各レベルにおける、ツリーナビゲーションではなく、並列インデックスによって関連付けされたデータを伴う、実質的に同一の長さからなる配列である。効果的には、セグメント・マッチング・メソッドは、１つのレベルにおけるフィルタ結果及び／もしくは重み付け結果を、実際の回答文字列に潜在するツリー構造を参照することで、別のレベルにおける等価な結果に変換する。
５．階層変数を生成するためのグリッド構造生成部
・構造化された階層変数を論理的に形成する単純変数の組み合わせの激増を組み合わせる方法を提供する。具体的には、複数の単純変数から単一の階層変数を構築する直感的で視角的な方法である。
【００３３】
本発明は、例えば以下のような複数の利点をもたらすことが分かっている。
・フィルタ及び／もしくは重み付け条件がなくても、コンピュータ的に高い効率の方法で、あらゆる種類のデータが混合された階層構造をほとんどの場合において、集計及びクロス集計することができる。
・１つもしくは複数もしくは全ての階層レベルのあらゆる組み合わせに関する全ての論理的出力を、別のあらゆる変数によって、階層自体内、もしくは完全な階層のクロス集計内、もしくは階層レベルのいずれか１つから容易に取得することができる点を機能的に達成していると考えられるクロス集計を生成する。
・多くの、数千もの表を１つに削減することができることを意味する‘迅速なアンループ’が可能である。
・多くの、数千もの変数を格納することが多い階層データが、低減された数やたった１つで格納され得る。
・（フィルタリング、重み付け、基準条件を含む）仕様を拡張可能である。
・処理速度が増大。
・ここに開示されているような種々の独創的な方法により、従来は非常に煩雑であった、階層テーブル全体を生成し、テーブルを迅速に処理することが合理的になる。
・記憶領域及び仕様の節約が改善される。
・データは、処理及び解釈するのに比較的より単純化される。
・本発明を使用するのに知識を要することなく、より大きな生産性が達成される。
・本発明を利用するのにコンピュータ資源をほとんど必要とすることなく、比較的複雑なデータを処理することが可能である。
・複数の要素変数から安全且つ容易に階層変数を構築することができる。
【００３４】
本発明のさらなる適用範囲は、以下にある詳細な説明から明らかになるであろう。しかしながら、詳細な説明及び特定の例は、本発明の好ましい実施形態を示すものの、図示のためだけに示されるものであると理解されるべきである。その理由は、発明の精神及び発明の範囲内における種々の変更及び改良が、当業者にとっては、詳細な説明から明らかになると思われるからである。
【００３５】
付随する図面と併用される、好ましい実施形態についての以下の説明を参照することで、当業者は、本願のさらなる、開示、目的、利点、局面をより一層理解できるであろう。尚、図面は、図示のためだけに示されるのであって、本発明の範囲を限定するものではない。
＜詳細な説明＞
概して、発明の複数の局面が開示されており、少なくとも開示されているのは、
１．階層データの格納；
２．階層データのＧＵＩ表現；
３．階層データのコンボリューション及びデボリューション；
４．複雑なデータのクロス集計
ａ）セグメント・メソッド；
ｂ）オフセット・メソッド；
ｃ）１レベル・メソッド；
ｄ）セグメント・マッチング・メソッド；
５．階層変数を生成するためのグリッド構造生成部
＜１．階層データの格納＞
図１に図示されたデータツリーは、３つの個別のツリーを有しており、天気データベースには、個別のツリーが１日につき１つある。図２は、単一の質問のブランチとして、３つのツリー（各ブランド毎に１つ）を有する、類似の調査データを示している。発明のこのような局面に従って、ツリーの深さの指標は、概して、Ｎノードツリーのフォレストを一列に格納するのに使用される。アルファベットを使用するのが便利であるが、あらゆる記号及び／もしくはあらゆるフォーマットが使用されてもよい。２７レベル以上が必要である場合には、最大５２レベルまでは、大文字と小文字との区別を用いることが可能である。５３レベル以上が必要である場合には、（１６ビット文字の）ワイド文字列が使用され得る。無制限のレベルが必要である場合には、例えば、｛１｝．．．｛２｝．．．｛３｝．．．｛４｝．．．などといった特定の方式によって、深さが示され得る。
【００３６】
このように、図１に図示されているような情報は、単一の文字列として格納され得る。即ち、
【００３７】
【数２】
2009512080.tif 000005
評価データの項目は、（上記のように）太字で示されてもよい。最上位レベルにおける３つのブランドは、ａ１．．．．ａ２．．．．ａ３で示されている。各ブランドの中では、第２レベルにおける４つの記述がａ１ｂ１．．．ｂ２．．．ｂ３．．．ｂ４．．．ａ２．．．．．．として示されている。各記述の中では、第３レベルにおける実際の評価が以下のように示されている。
【００３８】
【数３】
2009512080.tif 000006
このようなデータ表現によって、ツリー全体を単一のパスで左から右へと横断できる。
【００３９】
図１における天気データは、以下のように記録もしくは格納されてもよい。
【００４０】
【数４】
2009512080.tif 000007
複数回答データは、セミコロン区切り文字（もしくは他のあらゆる記号）を使用することで、容易に受け入れられる。例えば、
【００４１】
【数５】
2009512080.tif 000008
文字列４は、都市１において、重大性３及び５からなる２つの事象２が過去にあったことを示している。
【００４２】
付加データもしくは値データは、アスタリスク（もしくは他のあらゆる記号）を前に置くことで容易に受け入れられる。即ち、
【００４３】
【数６】
2009512080.tif 000009
このように、文字列５は、都市１において、天気事象２が過去にあり、この天気事象２には、詳細３及び５が関連する測定値である５５及び７３とともに付随していたことを表している。例えば、文字列５は、都市１において、嵐（レベルｂでコード２）が５５ｍｍの雨（但し、雨は、レベルｃでコード３）と時速７３キロメートル（７３ｋｐｈ）の風（但し、風は、レベルｃでコード５）とを伴っていたことを表している。
＜２．階層データの表現＞
例えば、図３に示されたツリーのように（但し、例示目的のみ）ツリーを表現することには、上述したような問題点がある。
【００４４】
発明のこのような局面に従って、以下のように表現している。
・ツリーは、そのルートフォルダが変数を表している。
・サブフォルダは、レベルを順番に表している。
・サブフォルダの中身は、そのレベルのコードである。
【００４５】
図５は、上記のことを表し、図５では、階層変数が、各レベル毎に、兄弟となるサブフォルダを有するフォルダとして示されており、これらサブフォルダはそれぞれ、子としてのそれ自体のコードを有している。つまり、階層データのツリーモデルが反映され、各レベルを独立した通常の変数として扱うことが可能であることが意味されており、データ構造を理解するのに役立っている。
【００４６】
図４におけるＧＵＩ表現は、図３におけるツリーを十分に描写しているものと考えられている。さらに、図４における表現は、仕様のために、変数全体（ルート）と、３つの各レベル（．Ｂｒａｎｄ、．Ａｔｔｒｉｂｕｔｅ、．Ｒａｔｉｎｇ）と、２×２×５＝２０の可能なパスの各々へのアクセスをもたらす。このような表現の利点は、複数のレベルの各々が１０個のコードを有し、１０００個の可能なパスを形成する場合でも、ユーザが選択するために表示される必要があるのは３０個のリーフノードのみということである。発明のこのような局面に従って表現することで冗長性がゼロとなる。例えば、図３では、属性（Ａｔｔｒｉｂｕｔｅ）１が図に２度現れなければならず、この場合は冗長であると見なされる。最下位レベルでは、ｒ１が４回現れている。ツリーがより深く、ブランチがより多いと、冗長性はさらに悪化する。
【００４７】
このような局面に従った表現は、‘クロス集計仕様’とも称される。
＜３．階層データのコンボリューション及びデボリューション＞
上記に加えて、クロス集計仕様は、仕様表現言語（ＳＲＬ）の形式で表現されてもよい。ＳＲＬは、変数／レベル／コードの‘クロス集計仕様’形式の表示と、行／列からなる‘テーブル’形式の表示との間でデータを相互に関連付けるのに使用され得る。
【００４８】
図５は、発明の局面に従ってＳＲＬがどのように使用されるのかを図示している。‘コンボリューション（ｃｏｎｖｏｌｕｔｉｏｎ）’という処理を経ることで、クロス集計仕様５１をテーブルとして表現でき、‘デボリューション（ｄｅｖｏｌｕｔｉｏｎ）’という処理を経ることで、テーブル５２をクロス集計仕様５１として表現することが可能である。コンボリューション及びデボリューションは、ＳＲＬ５３を通じて可能であり、ＳＲＬ５３は、例えば、ファイルとして保存、もしくはメモリ内に保存される。
【００４９】
図６は、この局面のさらなる図示を提供している。各々が２つのコード、２つのコード、５つのコードを有する３つのレベルを伴った（例えば図４，５に示されているような）変数は、２×２×５＝２０の行もしくは列を有するテーブルをコンボリューションすることで生成されるようになる。テーブルを再度確定するために、２０個の行は分解されて、ツリー構造が再構築されなければならない。これを‘デボリューション’と称する。
【００５０】
図７は、ＳＲＬを図示している。ＳＲＬは、各行／列毎のブランチ全体をテキスト表現するものとして提供され、‘再帰（ｒｅｃｕｒｓｉｖｅ）デボリューション’アルゴリズムでツリーを再構築するのに使用され得る。図７は、フィルタ、重み付け、変数、コード、ベース、統計を有するツリーとして表現された仕様を左側に図示している。尚、統計には、割合を伴うもの（内部に％を有する丸印）と、割合を伴わないもの（別の丸印）とがある。
【００５１】
ＳＲＬは、テーブル内における行／列のベクトルを、テーブル仕様におけるツリー表現からのブランチ情報も保持するように実質的に描写しているテキスト文字列である。
ラインの一般形態は、以下のとおりである。
【００５２】
【数７】
2009512080.tif 000010
ラインの例は、以下のとおりである。
【００５３】
【数８】
2009512080.tif 000011
各ラインは、仕様ツリーにおいて、あらゆるリーフノードに至るブランチパスを読み取ることで、手作業で構築され得る。フィルタは、｛｝括弧内に書き込まれ、重み付けは、［］括弧内に書き込まれる。フィルタ及び重み付けは、仕様における初期のノードであり、変数／コードの情報が検出される前の修飾プリフィックスを表している。
【００５４】
例えば、｛Ｇｅｎｄｅｒ（１）｝［ＷｅｉｇｈｔＲｅｇｉｏｎ２５（）］というプリフィックスは、ツリーのルートにおけるこのパスの最初のノードがＧｅｎｄｅｒ（１）というフィルタであり、このフィルタの下位がＷｅｉｇｈｔＲｅｇｉｏｎ２５（）という重み付けノードであったことを意味している。プリフィックスは、あらゆる順序でいくつも存在し得る。
【００５５】
ラインにおける括弧で囲まれていない要素だけが、修飾プリフィックスの直後に続く変数の参照である。この要素は、単純変数であってもよく、階層変数と区別するために、ここでは、単にコードフレームと称する。もしくはこの要素は、階層変数であってもよい。
【００５６】
単純変数のコードは、一般的にコード番号であるが、合計を表す‘ｔｏｔ’、平均を表す‘ａｖｇ’、重み付け及びフィルタされた場合のベースカウントを表す‘ｃｗｆ’のような２４個のあらゆる記憶符号にもなり得る。
【００５７】
階層変数のコードは、同一の要素（コード番号もしくは記憶符号）であるが、ここでは、変数の各レベルのうちの１つがコロンによって分離されている。
図７では、右上にあるのがＳＲＬであり、ＳＲＬは、ファイルに格納されているので、ここでは、このツリーのコンボリューションされた形式のテキスト表現として示されている。導入フィルタは、｛｝内にあり、導入重み付けは、［］内にある。ベース表現は、変数名の直後の［］内にある。階層コードは、コロン分離記号構文で示されている。ベースとされるフラグ表示コードは、コードの括弧内の最初のものとしてａ％となっている。全ての行は、他の全てのものの親である重み付けコードを意味する［ＷｅｉｇｈｔＲｅｇｉｏｎ２５（）］で始まる。最後の６個の行は、全てのＧｅｎＭａｒノードの親となるフィルタノードを意味する｛Ｌｏｃａｔｉｏｎ（２）｝で続いている。最初の６個の行は、ベースとしてｃｗｆを使用するコードフレーム（この場合、単純変数）を意味するＯｃｃｕｐａｔｉｏｎ［ｃｗｆ］で続いている。このＳＲＬでは、特定の記号及び／もしくは特定のフォーマットが使用されているわけではないが、単なる一例として、このＳＲＬが使用されている。尚、ＳＲＬは、発明のこのような局面から逸脱することなく、あらゆる記号及び／もしくはあらゆるフォーマットを使用してもよい。
【００５８】
したがって、図７に図示された例では、
[WeightRegion25()]Occupation[cwf](cwf)         ＝  ｃｗｆコードを割合以外で表示する。
【００５９】
[WeightRegion25()]Occupation[cwf](%1)          ＝  コード１を割合で表示する。
[WeightRegion25()][Location(2)]GenMar(%1:1)は、Gender(1)=Male及びMarried(1)=Yesを意味する、階層ノード１：１を示している。
【００６０】
[WeightRegion25()][Location(2)]GenMar(1:avg)は、Female Averageを意味する、階層ノード２：ａｖｇを示している。
この例から、ＳＲＬの各ラインがテーブル内の一行の記述を表し、その記述が、図３のようなツリー表現におけるルートからリーフへのパスを記述しているものでもあることが分かる。さらに、ＳＲＬラインの集合は、図４にあるようなデータツリーの仕様バージョンを生成するために‘デボリューション’され得る。
【００６１】
ＳＲＬは、コンボリューション処理及び／もしくはデボリューション処理において、必要に応じて格納及び使用され得る。
図７では、右下において、階層変数が展開された、コンボリューションされたツリー構造として、この情報をスクリーン上で見ることができる。
【００６２】
仕様ツリーは、機能表現も含むことができる。機能表現は、＠という導入記号とともに格納され、独立させたり、コードフレーム下に置くことができる。
【００６３】
【数９】
2009512080.tif 000012
発明のこのような局面により、図７に示すような、テーブル軸仕様ツリーとテーブルの行／列のベクトルリストとの間の変換が可能になる。この記述のためのベクトルの重要な部分は、行／列のベクトルを実質的に完全に描写し、ファイルへ保存するのに使用される仕様表現言語のラインである。コンボリューション／デボリューション・メソッドは、ツリー歩行アルゴリズム及びツリー生成アルゴリズムに組み込まれている。
＜仕様ツリーからのベクトルの生成＞
順方向の処理では、仕様ツリーが取得され、テーブルの行もしくは列であるベクトルが生成される。ベクトルはそれぞれ、ＳＲＬラインによって完全に描写される。
【００６４】
基本駆動関数であるＧｅｎｅｒａｔｅＶｅｃｔｏｒｓ（）は、再帰的ルーチンであり、この再帰的ルーチンは、ツリーの最上位から始まって、ベクトルの生成を引き起こす特定のノードに到達するまでノードを収集したのち、この特定のノードの親に戻るルーチンである。
【００６５】
途中で収集されるノードは、フィルタノード及び重み付けノードである。フィルタノード及び重み付けノードは、ツリーの初期のブランチであり、その後ろにベクトル生成ノードが続く。ベクトル生成ノードに到達したときに、フィルタ／重み付けノードの集合は、ＳＲＬラインにおけるフィルタ／重み付けプリフィックスを表している。
【００６６】
ベクトルを生成するノードとしては、
関数−この関数のための単一のベクトルを生成する。
コードフレーム−コードフレームの各子ノードのためのベクトルを生成する。
【００６７】
変数−階層レベルのコンボリューションを生成する。
がある。
これらノードの最後は、別の再帰関数であるＧｅｎｅｒａｔｅＶａｒｉａｂｌｅＶｅｃｔｏｒｓ（）であり、この再帰関数は、階層データのツリー表現を下って、考えられ得る全ての組み合わせを展開する。この再帰関数は、コンボリューションのアルゴリズムを実行する。
＜ベクトルからの仕様ツリーの生成＞
逆方向の処理では、ファイルからすでにロードされ得る、もしくは表示されたテーブルからすでに送られ得るＳＲＬラインが取得され、仕様ツリーが再構築される。
【００６８】
基本駆動関数であるＲｅａｄＶｅｃｔｏｒＢｌｏｃｋ（）は、再帰的ルーチンであり、この再帰的ルーチンは、供給されたベクトルからのＳＲＬラインの列に沿って進み、共通のプリフィックスを検索するルーチンである。共通のプリフィックスを有する、あらゆる連続したベクトルの組は、ブロックとして識別され、次の共通の連続したプリフィックスをこのブロック内で検索するために、このルーチンが再度呼び出される。各ブロックは、当然ながら、仕様ツリーにおける初期のノードを表している。ブロック内にある、ブロックの識別子は、このルーチンに不可欠であり、各ブロックは、仕様ツリー上に１つの中間ノードを生成する。
【００６９】
ＳＲＬラインの末尾にあるのは、ツリーにおけるリーフノードとなるコード及び関数である。関数及び単純コードは、容易に処理され、各々が１つのリーフノードを生成するものの、（３：２：４）のように記録された階層変数ノードは、複数の拡張されたラインから階層データのツリー表現を生成する別の再帰関数によって処理されるために収集される。この再帰関数は、デボリューション・メソッドを実行する。
＜コンボリューション・メソッド＞
コンボリューション・メソッドは、階層データのツリー表現を取得し、増加された可能性の各々のためのベクトルを生成する。コンボリューション・メソッドは、特定のレベルを１番目のレベルから検索し、下位で探し出したコードラインを処理する。下位で探し出したコードラインは、そのレベルにて取得可能な全てのコードもしくは一部のコードとなることがあり、合計及び平均もしくはベースのような統計を表す疑似コードを含むこともある。図８ａを参照すると、発明の局面に係るコンボリューション・メソッドの一例が図示されている。コードの処理において、コンボリューション・メソッドが最下位レベルで機能していない場合には、そのルーチンが再度呼び出され、次の下位レベルから開始される。このように、各コードは、次の下位レベルにおける各コードと組み合わされ、組み合わされたコードは、最下位レベルに達するまで、無限に繰り返し、次の下位レベルにおける各コードと組み合わされる。コンボリューション・メソッドは、最下位レベルのコードを処理しているときに、各々のベクトルを生成し、そして、処理のサイクルが前のレベルにおける次のコードから再開されるように戻る。
【００７０】
コードが処理される度に、コードの値は、ＳＲＬラインを構築するベクトル生成ルーチンで使用される配列の正しい位置に配置される。コードのプリフィックスは、すでに構築されており、最後の工程は、（３：２：４）の形式で配列内に現在存在するコードを書き込んで、ＳＲＬを完成させることである。
＜デボリューション・アルゴリズム＞
図８ｂは、発明の局面に係るデボリューション・メソッドの一例を図示している。デボリューション・メソッドは、１組のＳＲＬラインを取得し、階層データのツリー表現を生成する。取得したラインは、階層データのポイントまでツリーを生成するようにすでに処理されており、このアルゴリズムに供給されるラインのブロックは全て、（３：２：４）のようなコードリファレンスで終端されている。
【００７１】
生成されたツリーが、変数の導入親ノードを有するようになり、導入親ノードの下位が各レベルの子ノードとなることは理解される。本メソッドは、どのコードノードがレベルノードの子として追加されるのかを決定する。
【００７２】
本メソッドは、まず、親ノード及び子レベルノードである変数の骨組みを構築したのち、各レベルのコードを順番に構築する。そして、メソッドは、特定レベルのコードだけを調べながら、終端のコードリファレンスの組を検査する。多くの場合、ここでは、複製が存在するようになり、メソッドは、どのコードが全て現れるのかを単に把握したのち、コードの各々について、コードが最初に検出された順に、コードツリーのノードを生成する。
＜４．複雑なデータのクロス集計＞
ａ）セグメント・メソッド
ｂ）オフセット・メソッド
ｃ）１レベル・メソッド
ｄ）セグメント・マッチング・メソッド
クロス集計は、上部変数と側部変数とを有し、フィルタもしくは重み付けもされ得る。例えば、Ｔｏｗｎ（都市）／Ｅｖｅｎｔ（事象）のテーブルは、特定のＳｅｖｅｒｉｔｙ（重大性）に対してフィルタされてもよく、Ａｇｅ（年齢）／Ｃｏｎｓｕｍｐｔｉｏｎ（消費）のテーブルは、特定のＹｅａｒ（年）に対してフィルタされるとともに、Ｇｅｎｄｅｒ（性別）によって重み付けされ、回答者のバランスを確保してもよい。
【００７３】
ここで、複雑なデータの処理では、複数の問題点がもたらされる。つまり、仕様における４つの要素（上部、側部、フィルタ、重み付け）が、階層変数からの異なるレベルにあったり、そして、複数回答データ及び／もしくは付加データであったりするということである。本発明は、データにおけるこのような全ての変化に対処することを可能にする、複数の協調メソッドを含んでいる。
ａ）セグメント・メソッド
別の従来技術システムは、通常、基本データとして、１つのコード応答を処理する。発明のこのような局面の手法では、ａ１；２ｂ３；４ｃ５；６は、セグメントと称される３つのデータ項目として処理される。１番目のセグメントはａ１；２であり、２番目のセグメントはｂ３；４であり、３番目のセグメントはｃ５；６である。また、これらセグメントは付加データを含むことができるので、Ｃ３*３０；４*５５も単一のセグメントである。付加データのないデータは、階層を示すためにデータツリーとして体系化されると以下のとおりである。
【００７４】
【表３】
2009512080.tif 000013
セグメントをデータツリーのノードとして考えることもできる。
【００７５】
この装置により、効率的なクロス集計が達成可能となるとともに、複雑性にかかわらずこの種のデータを別処理することも達成可能となる。
ｂ）オフセット・メソッド
図９は、発明の局面に係るオフセット・メソッドを図示している。クロス集計における基本的な処理は、テーブルにおけるどのセルが現在の事例のデータを格納することになるのかを決定することである。交差した変数における回答は、コード４（列インデックス３）であり、側部変数は、コード６（行インデックス５）となり得る。側部回答が６；８；１１のように複数回答である場合には、３つの行が含まれる。このことは単純データの場合であるが、当然のことながら、階層データの場合には問題がより複雑になる。
【００７６】
インデックス（ＩＮＤＥＸ）について述べると、人間が好むような数え方（１，２，３，４．．．）とコンピュータが好むような数え方（０，１，２，３．．．）との間には常に対立がある。好ましい実施形態では、インデックスとは、ゼロを基準とした体系を意味している。１番目の行は、配列においてインデックス０となり、４番目の行は、インデックス３となる。このため、例において、ａ４というコードは、計算上、３に変換される。算出されたオフセットもインデックスであり、４からなるオフセットは、５番目の行を意味する。
【００７７】
階層データ全体が取得されたとき、速度が重要であるため、オフセット・メソッドは、より複雑となる。その理由は、オフセット・メソッドが、ツリー構造を含んでいる２つの計算の流れを処理するからである。
【００７８】
核心は、階層ブランチからオフセット自体を算出することである。例えば、４番目の主要ブロックの５番目のブロックにおける６番目のラインを意味するａ４ｂ５ｃ６という回答のオフセットは、（（（３×Ｎｂ）＋４）×Ｎｃ）＋５として、等差級数的に算出され得る。但し、Ｎｂ及びＮｃは、レベルｂ及びレベルｃにおけるコードの数である。
【００７９】
このアルゴリズムは、迅速且つレベルを制限しないように、これらの計算を構築する。
主な工夫は、括弧の各層を以下の２つの工程において事前に構築しておくことである。
オフセットをこのレベルのサイズで乗算する。
【００８０】
このレベルに回答コード−１を付加する。
ゼロから始まって、層は、以下のように構築される。
【００８１】
【数１０】
2009512080.tif 000014
あらゆるレベルにおいて複数回答が許容されているので、単一の回答は、複数のオフセットを生成し得る。速度に関して、複数回答は全て、並行に構築され、計算の第２の流れを表すのにオフセットが機能している経過を追っている。‘ファン（ｆａｎ）’という用語、及び‘ブロック（ｂｌｏｃｋ）’という用語をここで用いる。
＜ファン及びブロック＞
ａ１；２ｂ３；４；５ｃ６；７；８という回答の例では、各々のセグメントが複数回答であり、この組み合わせは、２×３×３のオフセットを生成することになる。
【００８２】
１８個のオフセットは、特定の順序に配置され、このアルゴリズムで使用された用語を生成する。１番目のオフセットは、ａ１、ｂ３、ｃ６などのためのものである。
【００８３】
【表４】
2009512080.tif 000015
２番目のセグメントにおける２番目のコードであるｂ４を検討する。ｂ４が現れたとき、ｂ４は、３つのオフセットからなる‘ファン’内にあり、次に現れるのは、９個のオフセットの後の‘ブロック’である。
【００８４】
各レベルのファン及びブロックの数字は、以下のとおりである。
【００８５】
【表５】
2009512080.tif 000016
これらの数字は、１から始まる各レベルでコードの数を順次乗算することで明らかに生成される。１つのセグメントのファンのサイズは、次のブロックのサイズである。
【００８６】
このアルゴリズムでは、これらの数字がまず生成されて、配列に格納されることで、迅速な処理を促してる。
アルゴリズムの残りは、各セグメント、各コード、各ファン、各ブロック毎のループのネストである。全てのオフセットは、並行に順次構築される。セグメント（レベル）及びコードは、“レベルの倍数のサイズ＋このレベルにおけるコードインデックス”を使用する計算の第１の流れの一因となる。ファン番号及びブロック番号は、オフセットが更新されていく経過を辿る、計算の第２の流れの一因となる。
ｃ）１レベル・メソッド
Ｔｏｗｎ、Ｅｖｅｎｔ、Ｓｅｖｅｒｉｔｙという３つのレベルを有する階層変数は、ａ４ｂ２ｃ４ｂ３ｃ５ｃ６ａ１；２ｂ３；４ｃ８ｃ５；６ｂ７ｃ９ａ３ｂ２ｃ１ｃ５ｃ７として格納された回答を有し得る。クロス集計を生成するために、この階層変数を処理する際、Ｔｏｗｎだけ、もしくはＥｖｅｎｔだけ、もしくはＳｅｖｅｒｉｔｙだけ、もしくは（全ての詳細がＳｅｖｅｒｉｔｙに至る）変数全体といった上部変数もしくは側部変数が存在し得る。
【００８７】
データを格納するオフセット（行／列）を決定する際、文字列におけるデータの各セグメントが考慮されてもよい。その理由は、ａ４ｂ２ｃ４は、ａ５ｂ２ｃ４とは異なる行を参照しているからである。別の協調メソッドにより、多くの場合、文字列におけるデータの各セグメントを考慮する必要はない。
【００８８】
所要レベルのオフセット・ルーチンのセグメントへ送る必要があるだけである。所要レベルにない全てのセグメントを無視することができる。
例えば、階層変数全体が使用されるとき、オフセット・ルーチンは、リーフノードを必要とするだけである。その理由は、オフセット・ルーチン自体がルートに戻ってブランチを生成し、生成したブランチをオフセットを算出するのに使用するからである。このことは、図１０ａに図示されている。
【００８９】
ａ４ｂ２ｃ４ｂ３ｃ５ｃ６ａ１；２ｂ３；４ｃ８ｃ５；６ｂ７ｃ９ａ３ｂ２ｃ１ｃ５ｃ７という回答は、ａ４  ｂ２  ｃ４  ｂ３  ｃ５  ｃ６  ａ１；２  ｂ３；４  ｃ８  ｃ５；６  ｂ７  ｃ９  ａ３  ｂ２  ｃ１  ｃ５  ｃ７という１７個のセグメント（特定の複数回答）に分割された処理関数に達する。
【００９０】
１レベル・メソッドは、これらセグメントを単に走査して、所要レベルのセグメントのみをオフセット・ルーチンに送る。図１０ｂは、このことを図示している。
ｄ）セグメント・マッチング・メソッド
クロス集計は、テーブルにおけるどのセルが現在の事例のデータを格納するのかを決定することによって進行する。このことは、単純データにとっては論理的であるが、多くのセグメントを有し得る複雑なデータでは、仕様の４つの要素（上部、側部、フィルタ、重み付け）におけるセグメント間の相互作用を管理する必要がある。
【００９１】
例えば、図１に示されたデータでは、テーブルがＴｏｗｎ／Ｅｖｅｎｔであれば、Ｔｏｗｎは、ａ１．．．ａ２．．．ａ３という３つのセグメントを有し、Ｅｖｅｎｔは、．．．ｂ２．．．ｂ４．．．ｂ４．．．ｂ３．．．ｂ１という５つのセグメントを有している。実際、図１が示すように、ａ１ノードは、ｂ２．．．ｂ４という最初の２つのノードと組み合わさっているが、．．．ａ３という最後のノードは、．．．ｂ１という最後の１つのノードとのみ組み合わさっている。しかし、このことは、個別の文字列から全く明白ではない。
【００９２】
発明のこのような局面に係り、図１１ａ，１１ｂ，１１ｃに図示されているようなセグメント・マッチング・メソッドは、４つの要素の各々が、複数のデータを有し、その複数のデータが全て、同数のセグメントを伴うように、セグメントを展開したり、折り畳む一事例のデータを処理する際の準備工程である。そして、（上部セグメント及び側部セグメントがオフセット・ルーチンに送られて、どのセルにデータを格納するのか決定する）処理は、一斉に４つの全ての要素におけるセグメントを通過する処理である。
【００９３】
上述の‘ａ’というセグメントと、‘ｂ’というセグメントとを組み合わせることは、双方の文字列が５つのセグメントを有するように‘ａ’というセグメントを展開することを意味し得る。
【００９４】
【表６】
2009512080.tif 000017
このような準備は、比較的複雑な工程であるが、この準備に要する時間は、それに続く処理工程にて削減された時間に比べて比較的短い。さらに、このような準備は、ツリーナビゲーションにおける別の層の処理工程を軽減し、そのルーチンの速度を速めるだけでなく、そのルーチンを設計し易くする。
【００９５】
唯一の単純データは、１つのセグメントを有しており、複数回答データもしくは付加データでも１つのセグメントを有している。その理由は、単純変数は、１つのレベルのみを有しているからである。階層データは、複数のセグメントを有することができるので、階層データが上部、側部、フィルタ、重み付けのいずれかに現れたときには、セグメントは、意味を持たせるために所要レベルで組み合わせられなければならない。
【００９６】
単純変数は、常に、あらゆるものと組み合わさり、単一のセグメントは、複数セグメントの回答を検出するために必要な分だけ複製される。
ｉ）処理レベル
準備における１番目の工程は、４つの要素（上部、側部、フィルタ、重み付け）が整列されるようになる１つのレベルを決定することである。
【００９７】
上部変数及び側部変数は、単純変数（レベルａ）であってもよいし、階層データからの単一のレベルであってもよい。変数全体が処理された場合、変数全体は、最深レベルにあるものとみなされる。処理レベルは、最小限の上部レベル及び側部レベルである。例えば、Ｔｏｗｎ／Ｓｅｖｅｒｉｔｙは、レベルａで処理され、Ｅｖｅｎｔ／Ｓｅｖｅｒｉｔｙは、レベルｂで処理され、Ｅｖｅｎｔ／Ｔｏｗｎは、レベルａで処理される。
【００９８】
上部要素及び側部要素を整列させることは、単に、処理レベルのセグメントが上部回答及び側部回答で始まるということではない。意味を持つべきデータでは、上部及び側部で同数のセグメントがあるはずである。フィルタ要素及び重み付け要素を整列させることには、さらなる検討が含まれる。
ｉｉ）異なるレベルでのフィルタリング
フィルタレベルが処理レベルよりも深い場合、フィルタレベルのあらゆる子ノードがフィルタ試験をパスするのであれば、セグメントは、フィルタ試験をパスするであろう。例えば、図１２ａに図示されたデータからは、処理レベルがレベルｂ（Ｅｖｅｎｔ）である場合に、Ｅｖｅｎｔレベルのどのセグメントがテーブルの一因となるのか興味がある。テーブルが、‘Ｓｅｖｅｒｉｔｙが３であったＥｖｅｎｔのみを示す’という意味のＳｅｖｅｒｉｔｙ（３）というフィルタを有している場合、子として３を有する事象のみがパスするようになる。
【００９９】
１番目の事象セグメント（２）は、重大性が３である１つの子ノードを有しているので、試験をパスする。２番目の事象セグメント（４）は、２つの子ノードを有し、２つの子ノードのうちの一方が、３であるため、このセグメントも試験をパスする。最後の事象セグメント（１）は２つの子ノードを有しているが、２つの子ノードはどちらも３ではないため、試験をパスできずに、‘除去された’と言われる。
【０１００】
フィルタレベルが処理レベルよりも浅い場合、試験をパスしたフィルタノードのうちの全ての子ノードは、テーブルの一因となり、パスできなかったフィルタノードのうちの全ての子ノードは、‘除去’されるようになり、テーブルには表れない。例えば、図１２ｂに図示されたデータからは、処理レベルがｃ（Ｓｅｖｅｒｉｔｙ）である場合に、重大性セグメントのいずれがテーブルに現れるようになるのか興味がある。テーブルがＥｖｅｎｔ（４）というフィルタを有している場合、‘種類４の事象の重大性のみが示される’ことを意味している。
【０１０１】
１番目の事象セグメント（２）はフィルタをパスできないので、このセグメントの唯一の子である３という重大性は無視される。２番目の事象セグメント（４）は、フィルタをパスし、このセグメントの子である双方の重大性ノードはテーブルの一因となることになる。
【０１０２】
このことを達成するメソッドは、図１１ａ，１１ｂ，１１ｃにおけるフローチャートとして示されている。このメソッドのアルゴリズムへの入力は、処理レベル、フィルタレベル、元の回答（上述の例では、ａ１ｂ２ｃ３ｂ４ｃ５ｃ３ａ２ｂ４ｃ４ｂ３ｃ３ａ３ｂ１ｃ１ｃ４）、そのフィルタレベルでのフィルタ結果（例えば、１番目の例では、ＴＦＴＦＴＦＦ）である。出力は、処理レベルと組み合わせられたフィルタ結果（１番目の例では、ＴＴＦＴＦ）である。効果的には、このメソッドは、１レベルにおけるフィルタ結果を実際の回答の文字列に潜在するツリー構造を参照することで、別のレベルにおける等価な結果に変換する。
【０１０３】
このメソッドは、単純変数が１つだけのセグメントを有し、このセグメントを複製して、処理レベルにおけるセグメントと組み合わせるという単純な事例を検討することで始まる。フィルタレベルと処理レベルとが同一であれば、これらのレベルはすでに組み合わされているということになる。そして、このメソッドは、より深いフィルタ及びより浅いフィルタのために、より入り組んだルーチンへと分岐する。
【０１０４】
同様のメソッドが、異なるレベルにおける重み付け値の折り畳み／展開に用いられている。
５．階層変数を生成するためのグリッド構造生成部
発明のこのような局面は、個別の変数を単一のグリッドもしくは階層変数に組み立てる視覚的方法を提供する。発明のこのような局面は、多少反復的な、比較的単純なデータを階層データに変換するのに使用されてもよい。
【０１０５】
図１３を参照すると、Ｓｔａｃｋと称される階層変数が、１８個の単純変数をグリッドに放り込む（ドロップする）ことによって、これら変数から構成されている。このグリッドは、これらの単純変数のいくつかを、フォームの上部における編集領域に放り込むことによって、大きさやラベルが設定される。‘Ｇｅｎｅｒａｔｅ’をクリックすると、３×６×６＝１０８組の構成ラインが生成される。これら構成ラインは、実行時に、階層スタック変数を構築する。
【０１０６】
【表７】
2009512080.tif 000018
時間及び労力の削減と、タスクを直感的にする視覚的な手段とにおいて利益がある。
【０１０７】
構成スクリプトは、非常に一般的な手段であり、各ラインは、“〜の左側のコードを出力する＝データが右側のフィルタ条件を満たすときはいつでも”ということを意味している。通常、コードは、単なる１つの数字であるものと推測されるが、ここでは、コードは明らかに階層的である。
【０１０８】
実際上、グリッドについての２つの好ましい解釈がある。以下では、手段の視覚的、直感的性質を明らかにする目的で、それぞれの解釈を達成するのに取られる処理を示している。解釈の意味が明らかになれば、生成は、非常に標準的である。
【０１０９】
第１の解釈は、第３レベル編集領域に何もないことを特徴としている。このような信号は、供給された上部変数もしくは側部変数を使用して、フィルタ表現を生成することをプログラムに命令している。第２の解釈は、第３レベル編集領域に変数を有していることを特徴としている。このような信号は、セル内の変数からフィルタ表現を生成することをプログラムに命令している。
【０１１０】
双方の解釈では、生成された変数のレベルのためのラベルが、要素変数から自動的に取得され（内容に応じて、そのレベルの説明のラベルもしくはそのレベルのコードのラベル）、時間と労力とが大幅に削減される。
【０１１１】
要するに、この手段は、複雑性、反復性、完全な主要部が疲労や誤りを起こし得る手作業の労力を大幅に削減する。また、視覚的性質は、複数のテキストラインからなるコマンドを維持する認識試練を、容易に理解可能な視覚的メタファーと置き換えるものである。
５ａ．１行１変数もしくは１列１変数
図１４は、Ｑ１０〜Ｑ１３と称される４つの変数を示しており、４つの変数の各々は、Ｓｔｒｏｎｇｌｙ  Ａｐｐｒｏｖｅ〜Ｓｔｒｏｎｇｌｙ  Ｄｉｓａｐｐｒｏｖｅまでの５つの項目からなる同一のコードフレームを伴っている。要望は、１番目のレベルがＰａｒｔｙ、２番目のレベルがＡｐｐｒｏｖａｌである１つの階層変数である。
【０１１２】
図１５を参照すると、まず、Ｑ１０を上部レベルのコードフレーム（ダークブルー）内にドラッグする。これにより、Ｑ１０のコードフレームからのラベルが上部セルに書き込まれ、上部セルが５に設定される。必要なのはコードフレームだけであるから、実際には、Ｑ１０〜１３はいずれも役に立つであろう。
【０１１３】
次に、側部セルを４まで増加させ（淡いブルーの円）、Ｑ１０〜１３の各々を側部セル内に入れる。
Ａｐｐｒｏｖａｌ及びＰａｒｔｙというように、そこに何があるのかを適切に描写するように、レベル名（Ｌｅｖｅｌ  Ｎａｍｅ）を変更する。
【０１１４】
‘Ｇｅｎｅｒａｔｅ’をクリックすることで、図１６に示されたスクリプトが生成される。
例えば、これが逆であると判断された場合、Ｐａｒｔｙは、１番目のレベル、Ａｐｐｒｏｖａｌは、２番目のレベルとされたのち、‘Ｇｒｉｄ’を再度クリックして、図１７に図示されたように、それに続くものを組み合わせる。図１７は、テーブルの配置を適切なものに確保することができることを示している。
【０１１５】
Ｇｅｎｅｒａｔｅをクリックすることで、図１８がもたらされる。但し、フィルタ表現は、側部変数から構築される。このスクリプトが実行されるとき、生成されるデータは、図１９に示されている。上部パネルは、コンパクトな形態で各事例毎のデータを示し、下部パネルは、ツリー構造として表現された１番目の事例を示している。
５ｂ．各セルは、１変数
複数回答を格納することができない、非常に細分化された分野のシステムでは、各セルが分離された変数として格納されているというグリッド問題が生じる。
【０１１６】
図２０に示された例では、Ｑ４１〜４６は、ブランド（ｂｒａｎｄ）１がどのくらい魅力的（ａｔｔｒａｃｔｉｖｅ）であるかなどといった、３つの文に対する２つのブランドに関して、回答者から得た評価点を保持している。
【０１１７】
図２１を参照すると、まず（ダークブルー）、側部コードフレーム領域にドラッグされたＱ４０Ａｔｔｒｉｂｕｔｅｓという変数が、テーブルの側部（階層変数が生成されている２番目のレベル）のためのラベルを提供し、セルコードフレーム領域にドラッグされたＱ４１という変数が、３番目のレベルのためのラベルを提供する。次に（ライトブルー）、上部レベルに２というコードを設定して、テーブルのサイズを確定し、変数Ｑ４１〜４６を図示したようにセル内にドラッグする。これらによって、生成される構成ラインのフィルタ表現の名称が提供される。続いて（マゼンタ）、上部セル内にドラッグされた２つの変数が、テーブルの上部（階層変数の１番目のレベル）のラベルを提供する。
【０１１８】
図２２は、結果として生じる構成スクリプトを示している。但し、フィルタ表現は、セル内の変数からである。図２３では、生成された変数からのデータがコンパクトな形式で示され、１番目の事例がツリー構造として示されている。
【０１１９】
本発明は、本発明の特定の実施形態に関連して説明されてきたが、さらなる改良が可能であることは理解されよう。本願は、概して本発明の原理に従いつつ、本発明が含まれる技術分野内の周知の実務もしくは慣習的な実務に含まれるような本開示内容からの逸脱と、上記の本質的特徴に適用され得るような本開示内容からの逸脱とを含む、本発明のあらゆる変形、使用、適用を保護することを意図している。
【０１２０】
本発明は、本発明の本質的な特徴の精神から逸脱しないで種々の形態で実現可能であるため、上述の実施形態は、特別の定めがない限り、本発明を限定するものではないものと理解されるべきであり、むしろ、添付の請求項に定義されているような本発明の精神及び範囲内で広く解釈されるべきである。種々の改良、及び等価な装置は、上述のように、本発明の精神及び範囲内に含まれることを意味している。このため、特定の実施形態は、本発明の原理を実施可能なあらゆる方法の実例として理解されるものである。上述の請求項において、ミーンズ・プラス・ファンクション節は、定義された機能を発揮する構造を保護するとともに、構造的等価物だけでなく、等価構造も保護することを意味している。例えば、木製部品を一体に固定するために、釘が円筒状の表面を採用している一方で、ネジが螺旋状の表面を採用している点で、釘及びネジは、構造的等価物ではないかもしれないが、木製部品を固定するという状況においては、釘及びネジは、等価構造である。
【０１２１】
“備える（comprise）／備えている（comprising）”という文言は、本明細書で使用されるとき、記載された特徴、もしくは記載された整数値、もしくは記載された工程、もしくは記載された要素の存在を特定しているものの、少なくとも１つの他の特徴、もしくは少なくとも１つの他の整数値、もしくは少なくとも１つの他の工程、もしくは少なくとも１つの他の要素、もしくはこれらの群を除外していないと解釈される。このように、説明及び特許請求の範囲を通じて、文脈が別のことを明確に必要とする場合を除き、‘備える’、‘備えている’などの文言は、排他的な意味もしくは網羅的な意味の反対である包含的な意味、つまり、“限定される（limited to）”ではなく、“含んでいる（including）”という意味で解釈されることになる。
【図面の簡単な説明】
【０１２２】
【図１】データ表現を図示している。
【図２】市場分析調査回答のツリー表現を図示している。
【図３】データツリーを図示している。
【図４】発明の局面に従った階層ツリー表現を図示している。
【図５−７】発明の局面に従ってＳＲＬがどのように使用されるのかを図示している。
【図８ａ】発明の局面に係るコンボリューションの処理を図示している。
【図８ｂ】発明の局面に係るデボリューションの処理を図示している。
【図９】発明の局面に係るオフセット・メソッドを図示している。
【図１０ａ−１０ｂ】発明の局面に係る１レベル・メソッドを図示している。
【図１１ａ−１１ｃ】発明の局面に係るセグメント・マッチングを図示している。
【図１２ａ−１２ｂ】発明の局面に係る、異なるレベルにおけるフィルタリングを図示している。
【図１３】発明の局面に係るグリッド構造の一例を図示している。
【図１４−１９】各行もしくは各列が１つの変数であるグリッド構造を図示している。
【図２０−２３】各セルが１つの変数であるグリッド構造を図示している。
【図１】
2009512080.tif 000020
【図２】
2009512080.tif 000021
【図３】
2009512080.tif 000022
【図４】
2009512080.tif 000023
【図５】
2009512080.tif 000024
【図６】
2009512080.tif 000025
【図７】
2009512080.tif 000026
【図８ａ】
2009512080.tif 000027
【図８ｂ】
2009512080.tif 000028
【図９】
2009512080.tif 000029
【図１０ａ】
2009512080.tif 000030
【図１０ｂ】
2009512080.tif 000031
【図１１ａ】
2009512080.tif 000032
【図１１ｂ】
2009512080.tif 000033
【図１１ｃ】
2009512080.tif 000034
【図１２ａ】
2009512080.tif 000035
【図１２ｂ】
2009512080.tif 000036
【図１３】
2009512080.tif 000037
【図１４】
2009512080.tif 000038
【図１５】
2009512080.tif 000039
【図１６】
2009512080.tif 000040
【図１７】
2009512080.tif 000041
【図１８】
2009512080.tif 000042
【図１９】
2009512080.tif 000043
【図２０】
2009512080.tif 000044
【図２１】
2009512080.tif 000045
【図２２】
2009512080.tif 000046
【図２３】
2009512080.tif 000047
【国際調査報告】
2009512080.tif 000048
2009512080.tif 000049
2009512080.tif 000050
2009512080.tif 000051