(57)【要約】  連想マトリックス圧縮方法、システム、コンピュータプログラム製品およびデータ構造は、属性の対の中で関連を示すカウントを含む連想マトリックスを圧縮する。圧縮を可能にするために、少なくとも１つのカウントを有する連想マトリックスのそれらの選択されたセグメントの選択的ビット平面表現が行われる。さらに具体的には、それぞれが属性の対の１より大きい部分集合を定義するセグメントの集合が生成される。少なくとも１つのカウントを有するそれらのセグメントの選択的識別情報が格納される。それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントもまた、少なくとも１つのビット平面表現として格納される。少なくとも１つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも１つの関連付けられたカウントの値を識別する。
2009503732.tif 000002
【特許請求の範囲】
【請求項１】
属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する方法であって、
それぞれが属性の複数対の１より大きい部分集合を定義するセグメントの集合を生成するステップと、
それらのセグメントの選択された識別情報を格納するステップであって、前記それらのセグメントは該それらのセグメントに関連付けられる少なくとも１つのカウントを有する、ステップと、
それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントを少なくとも１つのビット平面表現として格納するステップとを含み、少なくとも１つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも１つの関連付けられたカウントの値を識別する連想マトリックスの圧縮方法。
【請求項２】
それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントを少なくとも１つのビット平面表現として格納するステップは、
それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントを複数のビット平面に分割するステップと、
ビット平面の少なくとも１つを識別するステップであって、前記ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する、ステップと、
前記非ゼロのビット平面データを有する少なくとも１つのビット平面において、非ゼロのビット平面データの位置を識別するマップを生成するステップと、
識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも１つの表現を生成するステップと、
非ゼロのビット平面データのマップおよび少なくとも１つの表現を格納するステップとを含む、請求項１に記載の方法。
【請求項３】
選択された識別情報を格納するステップと、少なくとも１つのカウントを格納するステップとの間において、
前記関連付けられる少なくとも１つのカウントを有するこれらのセグメントの選択された識別情報を連続範囲に再編成するステップを実行し、
少なくとも１つのカウントを格納するステップは、少なくとも１つのビット平面表現として連続範囲のそれぞれのセグメントに関連付けられる少なくとも１つのカウントを格納するステップを含み、少なくとも１つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも１つの関連付けられたカウントの値を識別する、請求項１に記載の方法。
【請求項４】
少なくとも１つのビット平面表現として連続範囲のそれぞれのセグメントに関連付けられる少なくとも１つのカウントを格納するステップは、
連続範囲のそれぞれの範囲に関連付けられる少なくとも１つのカウントを複数のビット平面に分割するステップと、
ビット平面の少なくとも１つを識別するステップであって、前記ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する、ステップと、
前記関連付けられる非ゼロのビット平面データを有する少なくとも１つのビット平面において、非ゼロのビット平面データの位置を識別するマップを生成するステップと、
識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも１つの表現を生成するステップと、
非ゼロのビット平面データのマップおよび少なくとも１つの表現を格納するステップとを含む、請求項３に記載の方法。
【請求項５】
請求項１に記載の方法を行うように構成されるシステム。
【請求項６】
請求項２に記載の方法を行うように構成されるシステム。
【請求項７】
請求項１に記載の方法を行うように構成されるコンピュータプログラム製品。
【請求項８】
請求項２に記載の方法を行うように構成されるコンピュータプログラム製品。
【請求項９】
請求項１に記載の選択された識別情報および少なくとも１つのビット平面表現を含む連想マトリックスを圧縮するデータ構造。
【請求項１０】
請求項２に記載の選択された識別情報、非ゼロのビット平面データのマップおよび少なくとも１つの表現を含む連想マトリックスを圧縮するデータ構造。
【請求項１１】
属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する方法であって、
連想マトリックスのそれらのセグメントを選択的にビット平面化するステップであって、該ビット平面化は選択的にビット平面化されたセグメントの識別情報を伴い、前記それらのセグメントは該それらのセグメントに関連付けられる少なくとも１つのカウントを有する、ステップを含む連想マトリックスの圧縮方法。
【請求項１２】
選択的にビット平面化するステップは、
それらのビット平面を選択的に表現するステップであって、該ビット平面表現は選択されたビット平面の識別情報を伴い、前記それらのビット平面は該それらのビット平面に関連付けられる非ゼロのビット平面データを有する、ステップを含む、請求項１１に記載の方法。
【請求項１３】
請求項１１に記載の方法を行うように構成されるシステム。
【請求項１４】
請求項１２に記載の方法を行うように構成されるシステム。
【請求項１５】
請求項１１に記載の方法を行うように構成されるコンピュータプログラム製品。
【請求項１６】
請求項１２に記載の方法を行うように構成されるコンピュータプログラム製品。
【請求項１７】
請求項１１に記載のセグメントの識別情報およびビット平面化されたセグメントを含む連想マトリックスを圧縮するデータ構造。
【請求項１８】
請求項１２に記載のセグメントの識別情報、記載の非ゼロのビット平面データを有するそれらのビット平面のマップおよび表現を含む連想マトリックスを圧縮するデータ構造。
【請求項１９】
属性の複数対の間の関連を表す複数のカウントを含む圧縮された連想マトリックスにおいて観察される属性の間の関連を観察する方法であって、
圧縮された連想マトリックスが、連想マトリックスのセグメントの識別情報であって前記セグメントは該セグメントに関連付けられる少なくとも１つのカウントを有するセグメントの識別情報と、それぞれの識別されたセグメントに関連付けられる前記少なくとも１つのカウントの少なくとも１つのビット平面表現とを含み、
前記少なくとも１つのビット平面表現は、関連付けられたビット平面に対応する前記カウントのビット位置に関して、前記少なくとも１つの関連付けられたカウントの値を識別し、
観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、前記観察される属性に対応する少なくとも１つのビット平面表現に、観察される属性間の関連を追加し、
観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも１つのビット平面表現を作成する、方法。
【請求項２０】
属性の複数対の間の関連を表す複数のカウントを含む圧縮された連想マトリックスの選択された属性の間の関連を画像化する方法であって、圧縮された連想マトリックスが、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報と、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントの少なくとも１つのビット平面表現とを含み、前記少なくとも１つのビット平面表現は、前記関連付けられたビット平面に対応するカウントのビット位置に関して、前記少なくとも１つの関連付けられたカウントの値を識別し、
前記圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも１つのビット平面表現を取得し、
取得された前記少なくとも１つのビット平面表現を、選択された属性の間の関連を識別するカウントに変換する、画像化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、知識管理システム、方法およびコンピュータプログラム製品に関し、さらに詳細には、連想メモリシステム、方法およびコンピュータプログラム製品に関する。
【背景技術】
【０００２】
連想メモリはまた、内容アドレス可能メモリとも呼ばれ、パターン整合およびパターン認識、エキスパートシステムおよび人工知能の分野に広く用いられている。広く用いられている連想メモリは、ホップフィールド型人工ニューラルネットワークである。ホップフィールド型人工ニューラルネットワークは、例えば、ホップフィールド（Ｈｏｐｆｉｅｌｄ）に付与された「Ｅｌｅｃｔｒｏｎｉｃ  Ｎｅｔｗｏｒｋ  ｆｏｒ  Ｃｏｌｌｅｃｔｉｖｅ  Ｄｅｃｉｓｉｏｎ  Ｂａｓｅｄ  ｏｎ  Ｌａｒｇｅ  Ｎｕｍｂｅｒ  ｏｆ  Ｃｏｎｎｅｃｔｉｏｎｓ  Ｂｅｔｗｅｅｎ  Ｓｉｇｎａｌｓ」という名称の米国特許第４，６６０，１６６号に記載されている。
【０００３】
連想メモリは、従来の逆伝搬ネットワークにおける問題を回避する可能性があるが、連想メモリは、スケーリングおよび偽記憶の問題を生じる可能性がある。連想メモリにおける最近の改良により、これらの問題および他の問題を解決しようとしている。例えば、共同発明者であるＡｐａｒｉｃｉｏ、ＩＶ  ｅｔ  ａｌ．に付与された「Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  Ｉｎｃｌｕｄｉｎｇ  Ｂｏｏｌｅａｎ−Ｃｏｍｐｌｅｔｅ  Ｃｏｍｐａｒｔｍｅｎｔｓ」という名称の米国特許第６，０５２，６７９号は、複数の人工ニューロンと、それぞれが人工ニューロンのそれぞれの対を連結する複数のブーリアンコンプリートコンパートメント（Ｂｏｏｌｅａｎ−ｃｏｍｐｌｅｔｅ  ｃｏｍｐａｒｔｍｅｎｔ）を提供する。ブーリアンコンプリートコンパートメントを提供することによって、偽相補記憶は回避されることができる。
【０００４】
残念なことに、実世界の問題を克服するために、連想メモリの使用を制限し得る基本的なスケーリング問題がある場合がある。特に、多くの連想メモリは、入力数の関数として幾何的にスケーリングをする。この幾何的なスケーリングはそのような技術を保証する複雑さのスケールにおいてアプリケーションをサポートすることは不合理的である可能性がある。
【０００５】
連想メモリにおけるスケーリングは、共同発明者であるＡｐａｒｉｃｉｏ、ＩＶ  ｅｔ  ａｌ．に付与された「Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒｏｎｓ  Ｉｎｃｌｕｄｉｎｇ  Ｐｏｗｅｒ  Ｓｅｒｉｅｓ  ｏｆ  Ｗｅｉｇｈｔｓ  ａｎｄ  Ｃｏｕｎｔｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｐｒｉｏｒ  ａｎｄ  Ｎｅｘｔ  Ａｓｓｏｃｉａｔｉｏｎｓ」という名称の米国特許第６，５８１，０４９号において検討されている。本特許は、本発明の譲受人に譲渡され、この結果、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。米国特許第６，５８１，０４９号において記載されたように、人工ニューロンは、複数の入力と、それぞれが複数の入力のそれぞれに関連付けられる複数の樹状突起を含む。各樹状突起は、重みのべき級数を含み、べき級数の各重みは、関連付けされたべき級数に対する関連付けされたカウントを含む。重みをべき級数として表すことによって、リソースの消費が削減されることができる。大きな数の入力は、実世界システムを用いて処理されることができ、それによって実世界へ適用について解決することができる。また、Ｃａｂａｎａ  ｅｔ  ａｌ．に付与された「Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒｏｎｓ  Ｉｎｃｌｕｄｉｎｇ  Ｗｅｉｇｈｔｓ  Ｔｈａｔ  Ｄｅｆｉｎｅ  Ｍａｘｉｍａｌ  Ｐｒｏｊｅｃｔｉｏｎｓ」という名称で２００３年２月１３日に出願された米国特許出願第２００３／００３３２６５Ａ１号も参照のこと。この特許出願は、本発明の譲受人に譲渡され、この結果、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。
【０００６】
米国特許第６，５８１，０４９号および米国特許出願第２００３／００３３２６５Ａ１号に記載された技術にもかかわらず、大規模な連想マトリックスのロスのない圧縮を可能にすると同時に、新たな関連のランダムアクセス観察（書き込み）および格納された関連からのランダムアクセス画像化（読み出し）を依然として可能にする連想メモリシステム、方法およびコンピュータプログラム製品を提供する需要が引き続きある。
【発明の開示】
【０００７】
本発明の例示の実施形態による連想マトリックスの方法、システム、コンピュータプログラム製品およびデータ構造は、属性の複数対の間の関連を表す複数のカウントを含む連想マトリックスを圧縮する。本発明の一部の実施形態によれば、圧縮を可能にするために、関連付けられる少なくとも１つのカウントを有する連想マトリックスの選択されたセグメントの選択的ビット平面表現が実行される。さらに具体的に言えば、本発明の一部の実施形態によれば、それぞれが属性の複数対の１より大きい部分集合を定義するセグメントの集合が生成される。関連付けられる少なくとも１つのカウントを有するそれらのセグメントの選択された識別情報が格納される。それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントもまた、少なくとも１つのビット平面表現として格納される。少なくとも１つのビット平面表現は、関連付けられたビット平面に対応するカウントのビット位置に関して、少なくとも１つの関連カウントの値を識別する。
【０００８】
本発明の他の実施形態によれば、少なくとも１つのビット平面表現としてそれぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントの格納は、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントを複数のビット平面に分割することによって行われてもよい。ビット平面の少なくとも１つが識別され、該ビット平面は該ビット平面に関連付けられる非ゼロのビット平面データを有する。関連付けられる非ゼロのビット平面データを有する少なくとも１つのビット平面における非ゼロのビット平面データの位置を識別するマップが生成される。識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも１つの表現が生成される。次に、非ゼロのビット平面データのマップおよび少なくとも１つの表現が格納される。
【０００９】
本発明の他の実施形態によれば、関連付けられる少なくとも１つのカウントを有するこれらのセグメントの選択された識別情報を連続範囲に再編成することによって、さらなる圧縮が行われてもよい。次に、連続範囲のそれぞれのセグメントに関連付けられる少なくとも１つのカウントが、上述したように、少なくとも１つのビット平面表現として格納される。上述した実施形態によれば、少なくとも１つのカウントが格納されてもよい。
【００１０】
本発明の例示の実施形態によれば、観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、観察される属性に対応する少なくともビット平面表現に観察される属性の間の関連を追加することによって、関連は、連想マトリックスの中で観察され得る。観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも１つのビット平面表現が作成される。
【００１１】
さらに、本発明の例示の実施形態によれば、圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも１つのビット平面表現を取得し、選択された属性の間の関連を識別するカウントを取得した少なくとも１つのビット平面表現を変換することによって、関連は、連想マトリックスから画像化されることができる。
【００１２】
本発明の実施形態が主に方法の実施形態に関して上述したことは、理解される。しかし、類似のシステムの実施形態および／または類似のコンピュータプログラム製品の実施形態もまた、提供され得る。連想マトリックスに関する類似のデータ構造もまた、提供され得る。
【発明を実施するための最良の形態】
【００１３】
ここで、本発明は、添付図面を参照して以下にさらに十分に記載され、添付図面では本発明の説明のための実施形態が示される。しかし、本発明は種々の異なる形態で具体化されてもよく、本明細書に記載される実施形態に限定されるものと捉えるべきではない。正確に言えば、これらの実施形態は、本開示が綿密かつ完全であり、当業者に本発明の範囲を十分に知らせるように提供される。
【００１４】
要素が別の要素に「連結される」「接続される」または「応答する」と言及される場合には、要素が他の要素に直接的に連結、接続または応答されることができるか、または介在する要素もまた存在してもよいことは理解される。対照的に、要素が別の要素に「直接連結される」「直接接続される」または「直接応答する」と言及される場合には、介在する要素は存在しない。同様の参照符号は、全体を通じて同様の要素を示す。本明細書で用いられるとき、用語「および／または」は、関連して列挙される品目の１つまたは複数のいずれかおよびすべての組み合わせを含む。この用語「および／または」は、「／」という表記によって省略表記される場合もある。
【００１５】
また、「第１の」「第２の」などの用語が種々の要素を記述するために本明細書において用いられ得るが、これらの要素はこれらの用語によって制限されるべきではないことも理解される。これらの用語は、別の要素からある要素を区別するために用いられるに過ぎない。
【００１６】
本明細書において用いられる専門用語は、特定の実施形態を記述するために過ぎず、本発明の限定と見なすべきではない。本明細書で用いられるとき、特に文脈が明確に示さない限り、単数形の「ａ」、「ａｎ」および「ｔｈｅ」は、複数形も含むと見なすべきである。さらに、用語「備える（ｃｏｍｐｒｉｓｅｓ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｅｓ）」および／または「含む（ｉｎｃｌｕｄｉｎｇ）」は、本明細書で用いられるとき、記述した特徴、ステップ、演算、要素および／または構成要素の存在を明示しているが、１つまたは複数の他の特徴、ステップ、演算、要素、構成要素および／またはその群の存在または追加を除外しているわけではないことも理解される。
【００１７】
特に定義しない限り、本明細書に用いられるすべての用語（技術用語および科学用語を含む）は、本発明が属する当業者によって一般的に理解されている意味と同一の意味を有する。さらに、一般に用いられる辞書に定義されている語などの用語は、関連分野に照らしてそれらの意味と一致する意味を有するものと解釈すべきであり、本明細書に特に定義しない限り、理想化された意味または過度に形式化された意味に解釈しないと理解される。
【００１８】
本発明は、本発明の実施形態による方法、システムおよびコンピュータプログラム製品のブロック図およびフローチャートを参照して部分的に以下に記載される。ブロック図またはフローチャートの１つのブロックおよびブロック図またはフローチャートにおけるブロックの組み合わせが、少なくとも部分的にはコンピュータプログラム命令によって実行され得ることは理解される。これらのコンピュータプログラム命令は、１つまたは複数の企業、アプリケーション、個人、普及したコンピュータシステムおよび／または埋め込み式コンピュータシステムに提供されてもよく、その結果、コンピュータシステムを介して実行する命令は、ブロック図のブロックで指定された機能／作用を実現するための手段、モジュール、デバイスまたは方法を作成する。他の実施形態において、汎用コンピュータシステムおよび／または特殊目的のハードウェアの組み合わせもまた、用いられ得る。
【００１９】
これらのコンピュータプログラム命令はまた、特定の様式で機能するようにコンピュータシステムを向けることができるコンピュータシステムのメモリに格納されてもよく、その結果、メモリに格納された命令は、ブロックで指定された機能／作用を実現するコンピュータ読み出し可能プログラムコードを含む製品を作成する。コンピュータプログラム命令はまた、コンピュータシステムにロードされ、コンピュータシステムによって行われることになっている一連の演算ステップによって、コンピュータ実行プロセスを作成させて、その結果、プロセッサ上で実行する命令が、ブロックで指定された機能／作用を実現するためのステップを提供してもよい。したがって、ブロック図および／またはフローチャートの所与のブロックは、方法、コンピュータプログラム製品および／またはシステム（構造的および／または手段プラス機能）向けのサポートを提供する。
【００２０】
一部の代替的な実施において、フローチャートに言及された機能／作用は、フローチャートに言及された順序以外で生じることもまた、留意すべきである。例えば、連続的に示された２つのブロックは、必要とされる機能性／作用に応じて、実際には同時に実行されてもよく、またはブロックは逆の順序で実行されてもよい。１つまたは複数のブロックの機能性は、分離されてもよく、および／または他のブロックの機能性と結合されてもよい。
【００２１】
本発明の種々の実施形態による連想マトリックス圧縮方法、システム、データ構造およびコンピュータプログラム製品は、有線および／または無線ネットワークによって接続され得る１つまたは複数の企業、アプリケーション、個人、普及したコンピュータシステムおよび／または埋め込み式コンピュータシステムにおいて具体化され得ることも理解される。システム、方法、データ構造および／またはコンピュータプログラム製品はまた、もう１つの格納されたプログラムを実行する１つまたは複数の汎用データプロセッサ、特殊プロセッサおよび／または特殊目的のハードウェアもまた、含み得る。さらに、連想マトリックスデータ構造は、１つまたは複数の汎用メモリデバイスおよび／または特殊目的のメモリデバイスに格納されてもよい。これらのメモリデバイスは、本発明の実施形態を実行するために用いられるソフトウェアおよび／またはデータを含むメモリデバイスの全体的階層を表し得る。メモリは、以下のタイプのデバイス、すなわち、キャッシュ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＳＲＡＭおよび／またはＤＲＡＭを含むことができるが、これらに限定されるわけではない。
【００２２】
本発明の完全な説明を行うために、図１〜図３は、本発明の例示の実施形態の高レベル概略図を提供する。次に、図４〜図２１は、多数の説明のための実施例を含む中間レベルの説明を提供する。最後に、図２２〜図３２は、本発明の例示の実施形態による詳細の演算を記載するフローチャートを提供する。
【００２３】
図１は、本発明の例示の実施形態による連想マトリックスを圧縮するために実行され得る演算のフローチャートのほか、これらの演算の簡略化した実施例である。
【００２４】
図１を参照すると、連想マトリックスを圧縮するための演算が示されている。ブロック１０２に示されているように、連想マトリックスは、属性の複数対の間で関連付けを示す複数のカウントを含む。連想マトリックスはまた、関連付けマトリックス、連想メモリまたは内容アドレス可能メモリと呼ばれ得る。
【００２５】
ブロック１１０を参照すると、それぞれが属性の複数対の１より大きい部分集合を定義するセグメントの集合が生成される。セグメントの一例が、ブロック１１２に示されている。一部の実施形態において、セグメントは、連想マトリックス１０２の行に対応してもよい。しかし、他の実施形態において、セグメントは、行の一部、２行以上の行に対応してもよく、および／または列に基づいていてもよい。セグメントは、同一のサイズである必要はない。さらに、全体的な連想マトリックスは、２つ以上の属性対のセグメントに分割される必要はない。特に、連想マトリックスのいくつかの部分はセグメントに分割される必要はなく、いくつかのセグメントは単独の属性対に対応してもよい。
【００２６】
次に、ブロック１２０で、それらのセグメントの識別情報が格納される。それらのセグメントは該セグメントに関連付けられる少なくとも１つのカウントを有する。これらの識別情報は、ブロック１２２でアスタリスクによって示される。したがって、ブロック１２２において示されているように、第１のセグメントおよび第３のセグメントのみがそれに関連付けられるカウントを有する場合には、第１のセグメントおよび第３のセグメントのみが識別されてもよい。
【００２７】
最後に、ブロック１３０で、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントが、少なくとも１つのビット平面表現として格納される。したがって、ブロック１３２で示されているように、カウントを有するそれらのセグメントに関して、カウントは、１つまたは複数のビット平面提示として格納する。ビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して、少なくとも１つの関連カウントの値を識別する。例えば、所与のカウントはゼロビット平面において値を有する場合には、その値がゼロビット平面における適切なビット位置に格納される。ブロック１３２において示されているように、ビット平面の数は、各セグメントに関して同一である必要はなく、セグメントに関連付けられる少なくとも１つのカウントの値に基づいて可変であってもよい。
【００２８】
したがって、図１はまた、選択的にビット平面化されたセグメントの識別情報に加えて、関連付けられる少なくとも１つのカウントを有する連想マトリックスのそれらのセグメントを選択的にビット平面化することによって、本発明の例示の実施形態による連想マトリックスの圧縮を示す。本発明の例示の実施形態によれば、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの識別情報を格納することによって、およびビット平面表現における少なくとも１つのカウントを格納することによって、大規模な連想マトリックスが圧縮形態で格納されてもよい。ロスの多い圧縮が行われる必要はないため、連想マトリックスの圧縮格納にもかかわらず、カウント値は正確に観察され、画像化することができる、
【００２９】
図２は、カウントをビット平面として格納するための本発明の例示の実施形態のフローチャートであり、図１のブロック１３０に対応し得る。簡略化された実施例もまた提供される。
【００３０】
さらに具体的に言えば、ブロック２１０で、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントは、複数のビット平面に分割される。ビット平面への識別されたセグメント（アスタリスクによって示される）の分割は、ブロック２１２で示される。次に、ブロック２２０で、ビット平面の少なくとも１つが、ブロック２２２で第２のビット平面に関してアスタリスクによって示されているように識別される。前記少なくとも一つのビット平面は、該ビット平面に関連付けられる非ゼロのビット平面データを有する。
【００３１】
次に、ブロック２３０で、関連付けられる非ゼロのビット平面データを有する少なくとも１つのビット平面における非ゼロのビット平面データの位置を識別するマップが生成される。例えば、ブロック２３２で示されているように、マップは、ブロック２３２のマップにおいてアスタリスクによって示されている非ゼロのビット平面データを含むものとして第２の位置を識別する。ブロック２４０で、識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも１つの表現が、ブロック２４２に示されているように生成される。最後に、ブロック２５０で、非ゼロのビット平面データのマップおよび少なくとも１つの表現が格納される。したがって、カウントが存在する場合には、ビット平面は、効率的な格納を可能にするように作成される。
【００３２】
図１に示された本発明の実施形態は、連想マトリックス１０２がマトリックス（本明細書では「大規模マトリックス」と呼ばれる）にわたって広く分散される比較的多数のカウントを含む場合に用いられ得る。本発明の他の実施形態において、比較的少数のカウント（本明細書では「小規模マトリックス」と呼ばれる）である場合には、圧縮のさらによい効率を可能にするために、図３の実施形態が用いられ得る。図３の実施形態はまた、いずれの種類のカウント配置に用いられてもよく、図１の実施形態と組み合わせてもよいことは理解される。
【００３３】
したがって、図３を参照すると、図１のブロック１１０および１２０の演算が行われる。ブロック４１０で、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの識別情報が、連続範囲に再編成される。連続範囲は、ブロック４１２で、互いに隣接して配置されている２つのアスタリスクが付けられたセグメントによって示される。次に、ブロック１３０に類似の演算が、連続範囲のそれぞれの範囲に関連付けられる少なくとも１つのカウントを少なくとも１つのビット平面表現として格納することによって、ブロック４３０で行われてもよい。ブロック４３０の詳細な演算は、ブロック１３０に関連して図２に既に説明されたものとして具体化されてもよい。
【００３４】
ここで、本発明の中間レベルの説明が、代表例と共に、図４〜図２１に提供される。図４は、本発明の例示の実施形態による文脈がどのように構成され得るかを示している。本明細書で用いられるとき、「文脈」とは、連想マトリックスにおいて格納（観察）されることになっている文書または他の入力データにおける属性間の関係を意味する。さらに、本明細書で用いられるとき、「属性」は、連想マトリックスにおいて格納（観察）されることになっている文書または他の入力データにおける任意のデータ項および／または概念である。属性は、人、場所、物、動詞および／または潜在的に関心のある他のデータ項および／または概念を含んでもよい。図４に示されているように、実施例の入力データ「Ｊｏｈｎ  ａｎｄ  Ｍａｒｙ  ｗｅｎｔ  ｔｏ  Ｎｅｗ  Ｙｏｒｋ」の場合には、文脈は、属性「Ｐｅｒｓｏｎ」：Ｊｏｈｎ、属性「Ｐｅｒｓｏｎ」：Ｍａｒｙ、属性「Ｃｉｔｙ」：Ｎｅｗ  Ｙｏｒｋによって生成される。図４の実施形態において、属性は、属性キー（Ｐｅｒｓｏｎ、Ｃｉｔｙなど）および属性値（Ｊｏｈｎ、ＭａｒｙおよびＮｅｗ  Ｙｏｒｋなど）に関して表現される。
【００３５】
ここで図５Ａを参照すると、属性が同一の文脈内の他のすべての属性に共に関連付けられる場合には、文脈は、連想マトリックス５００（図１および／または図３の連想マトリックス１０２に対応し得る）で観察される。図５Ｂは、入力データ「Ｊｏｈｎ  ａｎｄ  Ｍａｒｙ  ｗｅｎｔ  ｔｏ  Ｓｅａｔｔｌｅ」に基づいて、同一の連想マトリックス５００で観察される別の文脈を示している。
【００３６】
図６は、属性(Attribute)がどのように内部表現に変換されることができるかを示している。図５Ａおよび図５Ｂの実施例からの外部属性は、ブロック６１０に示されている。ブロック６２０は、各属性キー(Attribute Key)または属性値(Attribute Value)が数表現にどのように割り当てられることができるかを示す。ブロック６３０は、１６ビットに対応する４桁の１６進数によって各キー：値を表すために、これらの数値表現が次にどのような用いられることができるかを示す。他の表現もまた、用いられることができる。
【００３７】
ここで図７を参照すると、ブロック６３０の内部属性などの内部属性が、大規模連想マトリックス７００で次に観察される。本明細書で用いられるとき、大規模連想マトリックスは、２N×２Nマトリックスを定義し、指数はＮビットの内部属性である。指数として内部属性を用いることによって、関連カウントの自然順序が提供されることができる。図７は、Ｎビットの内部属性に関する連想マトリックス７００の一般化された実施例を示す。図８は、２16×２16セルを有する大規模連想マトリックス８００を示し、図６の実施例はカウントとしてマトリックス８００で観察されている。したがって、図８において、（Ｐｅｒｓｏｎ：Ｊｏｈｎ、Ｐｅｒｓｏｎ：Ｍａｒｙ、Ｃｉｔｙ：Ｎｅｗ  Ｙｏｒｋ）および（Ｐｅｒｓｏｎ：Ｊｏｈｎ、Ｐｅｒｓｏｎ：Ｍａｒｙ、Ｃｉｔｙ：Ｓｅａｔｔｌｅ）の実施例の文脈が、マトリックス８００で観察されている。したがって、図８は、属性（図８では２16個の属性）の複数対間の関連を示す複数のカウント（図８の実施例では、０、１および２によって示される）を含む連想マトリックス８００を示し、これは、図１および／または図３のブロック１０２に対応し得る。
【００３８】
図９は、図１および／または図３のブロック１１０に対応し得るそれぞれが属性の複数対の１より大きい部分集合を定義するセグメントの集合を生成する実施例を示す。図９に示されているように、ブロック９１０で、それぞれが属性の複数対の１より大きい部分集合を定義するセグメントの順序付けされた集合、Ｓｅｇｍｅｎｔ  １、．．．、Ｓｅｇｍｅｎｔ  Ｎが生成される。図９において、セグメントは、連想マトリックスからＮ×Ｍカウントに対応し、Ｎはマップビットの数であり、Ｍは平面データにおけるビットの数である。したがって、ブロック９１０は、図１および／または図３のブロック１１２に対応し得る。また、より大規模なセグメントおよび／またはより小規模なセグメントを用いてもよく、すべてのセグメントが同一サイズである必要はなく、マトリックスの一部はセグメント化される必要はなく、または１つのセグメントサイズを用いてもよいことは理解される。
【００３９】
さらに、図９を参照すると、ブロック９２０は、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの選択された識別情報の格納を示し、これは、図１および／または図３のブロック１２０および／または１２２に対応し得る。ブロック９２０に示されているように、データが関連セグメントに存在する場合に、ビット平面が唯一存在し得るため、図９の実施例では、Ｓｅｇｍｅｎｔ  ２のみが識別される。ブロック９２０はまた、少なくとも１つのビット平面表現としてそれぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントの格納を示し、少なくとも１つのビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して少なくとも１つの関連カウントの値を識別する。これは、図１および／または図３のブロック１３０および／または１３２に対応し得る。ブロック９２０に示されているように、この実施例では、３２ビット平面が作成され得る。各ビット平面は、関連ビット平面に対応するカウントのビット位置に関して少なくとも１つの関連カウントの値、例えば第０のビット、第１のビット、．．．、第３２のビットを識別する。
【００４０】
さらに、図９を参照すると、ブロック９３０は、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントがどのように少なくとも１つのビット平面表現９３０として格納され得るかを示し、図２の全体的な演算に対応し得る。ブロック９２０に示されているように、カウントは、ビット平面に分割され、これは図２のブロック２１０および／または２１２に対応し得る。さらに、ブロック９３０に示されているように、関連付けられる非ゼロのビット平面データを有するそれらのビット平面９３４のみが識別され、これは図２のブロック２２０および／または２２２に対応し得る。さらに、非ゼロのビット平面データを有する少なくとも１つのビット平面における非ゼロのビット平面データの位置を識別するマップ９３２が、生成され、これは、図２のブロック２３０および／または２３２に対応し得る。したがって、図２のブロック２４０および／または２４２に対応し得る非ゼロのビット平面データのマップ９３０および表現９３４が格納されて、圧縮形態で関連マトリックを格納してもよく、これは図２のブロック２５０に対応し得る。
【００４１】
図１０は、図９のブロック９２０のビット平面の特定の実施例を提供することによって、図９のブロック９２０を詳述する。図１０に示されているように、ビット平面は、平面の部分セグメントのアレイと見なされてもよく、カウントに関する２進数表現がその所与のビットに関して１を有する場合には、各平面の部分セグメント構造はデータを含む。一部の実施形態においては、そのセグメントに関する最高のカウントまでの平面の部分セグメントを含むだけである。したがって、図１０に示されているように、セグメントに関する最高のカウント５である場合には、ビット平面は、第０の平面、第１の平面および第２の平面に関して平面の部分セグメントを有する。第３の平面から第３１の平面に関しては平面の部分セグメントを有さない。さらに具体的に言えば、５のカウントは、０１０１の２進数に対応し、これは第０のビット平面には非ゼロのデータがあり、第１のビット平面にはゼロのデータがあり、第２のビット平面には非ゼロのデータがあり、それより高いビット平面にはゼロのデータがあることを意味している。
【００４２】
図１１は、図１０の平面の部分セグメント構造のさらに詳細な実施例を提供し、これは図９のブロック９３０にも対応し得る。本発明の一部の実施形態において、平面の部分セグメント構造は、１ビットマスクされたルックアップマップ１１１２および１つまたは複数の平面データ１１１４を含む。対応する関連カウントがその平面に関して１を含む場合には、平面データ１１１４が情報を含む。そのデータに関する実際の表現は、非ゼロの値を含む平面データを列挙することができるだけである。一部の実施形態において、ブロック１１２０に示されているように、マップ１１１２は、所与の平面において、第０の位置に格納され、平面の次の最下位ビットが実際の次の平面データに対応する。したがって、図１１は、それに関連付けられる非ゼロのビット平面データを有するビット平面の少なくとも１つの識別（図２のブロック２２０に対応し得る）の例、非ゼロのビット平面データを有する少なくとも１つのビット平面における非ゼロのビット平面データの位置を識別するマップの生成（図２のブロック２３０に対応し得る）および識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面データの少なくとも１つの表現の生成（図２のブロック２４０に対応し得る）の実施例を示す。最後に、図１１は、図２のブロック２５０に対応し得るブロック１１２０における非ゼロのビット平面データのマップおよび少なくとも１つの表現の格納を示す。
【００４３】
図１２は、大規模連想マトリックスをセグメントに区分または分割するさらに別の実施例を提供し、これは、図１および／または図３のブロック１１０および／または１１２に対応し得る。実施例は、図８の大規模連想マトリックスに対応する。図１２に示されているように、大規模連想マトリックスは、データのストリームとして表記される。データは、１６カウントのセグメントにセグメント化される（この場合には、マップビットの数が４であり、平面データビットの数が４である）。この実施例において、全体的な２16×２16連想マトリックスは、図１２に示される１６カウントの２６８、４３５、４５６のセグメントに分かれる。
【００４４】
図１３は、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの選択された識別情報の格納を示し、これは図１および／または図３のブロック１２０および／または１２２に対応し得る。特に、図１３に示されているように、平面のセグメント構造は、非ゼロのデータを含むそれらのセグメントを追跡しさえすればよいため、図１２の連想マトリックスは、図１３に示されるセグメントに分割され得る。
【００４５】
図１４は、図１３のセグメント１，０５６，７８４に関してカウントがビット平面としてどのように格納され得るか（図１および／または図３のブロック１３０および／または１３２に対応し得る）を示す。また示されているように、このセグメントに関する平面データは、Null値であるビット平面０と、２のカウントを示すために第３のビット位置に１を有するビット平面１とに分割される。Null値の第０のビット平面は格納される必要はない。第１の部分セグメントにデータがあることを示すマップ（１０００）（すなわち、非ゼロのビット平面データの位置）を生成し、データ自体（００１０）を格納することによって、第３の位置に１（２のカウントを示す）の値を有する第１のビット平面が、格納される。したがって、セグメント１，０５６，７８４に関して示される実際のデータ提示として、ｐｌａｎｅ  ０がNull値であり、ｐｌａｎｅ  １がデータ１０００，００１０を有する。
【００４６】
図１５は、図１３のセグメント１，０５６，８３２に関する平面の構造の別の実施例を示す。この実施例において、０ビット平面のみがデータを有し、データはビット平面表現の第２の部分セグメントで見つかるため、マップは０１００であり、データは０１１０である。実際のデータ表現もまた、示される。
【００４７】
図１６は、図１３の実施例に関する完全な平面のセグメント構造を示す。したがって、図１６に示されているように、ブロック１６１０で、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの選択された識別情報が、格納される。さらに、ブロック１６２０で、それぞれの識別されたセグメントに関連付けられる少なくとも１つのカウントが、少なくとも１つのビット平面表現として格納され、ビット平面表現は、関連ビット平面に対応するカウントのビット位置に関して少なくとも１つの関連カウントの値を識別する。また、図１６に示されるように、一部の実施形態において、ビット平面表現は、関連付けられる非ゼロのビット平面データを有する少なくとも１つのビット平面における非ゼロのビット平面データの位置のマップと、識別された少なくとも１つのビット平面に関連付けられる非ゼロのビット平面の少なくとも１つの表現とによって提供される。
【００４８】
図１７は、本発明の例示の実施形態による平面のセグメント構造がどのように格納され得るかを示す。図１７に示されているように、セグメントの順序付けされた集合（ブロック１６１０）は、図１７では仮想ストア１と記された仮想ストア１７１０に格納され得る。セグメントは、ブロック１７２０で示されているように、それ自体がデータベースまたはファイルシステムに格納され得るビット平面データに対する参照を含み得る。ビット平面データは、データのブロックとして格納され得る。しかし、本発明の種々の実施形態によれば、記憶装置の１つまたは複数の階層レベルを用いて、その他の多くの格納技術が提供され得ることは理解される。
【００４９】
図１８は、本発明の他の実施形態による小規模連想マトリックスの生成の実施例を示す。小規模連想マトリックスは、上述した大規模連想マトリックスと同様に、内部属性に関する関連カウントを格納する。大規模連想マトリックスにおいて、同一行に共にカテゴリーメンバーを配置することによって、同時局在性が得られ得る。小規模連想マトリックスにおいて、データを小さなメモリ設置面積に圧縮することにさらに重点が置かれてもよく、照会（読み出し）時間に対してあまり重点を置かなくてもよい。本発明の一部の実施形態によれば、小規模連想マトリックスは、セグメント（連想マトリックスの行など）の指数の再付与または再編成によって、同時局在性を実現し得る。他の実施形態において、また、対称な連想マトリックスの半分のみが格納されてもよい。したがって、図１８の実施形態は、関連付けられる少なくとも１つのカウントを有するそれらのセグメントの識別情報がどのように連続範囲に再編成されることができるかを示す。図１８は（Ｐｅｒｓｏｎ：Ｊｏｈｎ、Ｐｅｒｓｏｎ：Ｍａｒｙ、Ｃｉｔｙ：Ｎｅｗ  Ｙｏｒｋ）および（Ｐｅｒｓｏｎ：Ｊｏｈｎ、Ｐｅｒｓｏｎ：Ｍａｒｙ、Ｃｉｔｙ：Ｓｅａｔｔｌｅ）の文脈に関する前の実施例を用いる。図１８の実施例において、内部属性は、１６ビットの数字として定義される。図１８は、再編成前の内部属性の生成を示しているため、この時点で図１８は図６のブロック６３０に類似している。
【００５０】
ここで図１９を参照すると、セグメント（ここでは行）は、データを含む行および列を追跡するだけで済むように再編成される。これは、図１９に示される中間ステップによって提供されてもよく、内部属性１９１０をブロック１９２０で示される新たな行／列の指数にマッピングする。また、マトリックスが対称であるために、マトリックスの下半分のみが追跡されてもよい。したがって、図１９に示されているように、内部属性２５８、２５９、１０２９、１０３０は、０、１、２および３の内部属性を有する小規模マトリックスにマッピングされる。図１９の演算は、図３のブロック４１０および／または４１２に対応し得る。
【００５１】
次に、図２０に示されているように、小規模連想マトリックスが、セグメントに区分される。図２０において、ブロック１９２０の小規模連想マトリックスは、データのストリームとして表記される。データは、１６カウントのセグメントにセグメント化され、マップビットの数が４であり、平面データビットの数が４である。したがって、図２０の実施例において、小規模連想マトリックスのデータは、１６カウントの１つのセグメントに分かれる。次に、図２１に示されているように、小規模連想マトリックスは、大規模連想マトリックスと同一の機構を用いて平面のセグメント構造として格納され、これは図３のブロック４３０および／または１３２に対応し得る。したがって、図２１に示されているように、ｐｌａｎｅ  ０およびｐｌａｎｅ  １のみが、実際のカウント値を有し、ｐｌａｎｅ  ０の部分セグメントおよびｐｌａｎｅ  １の部分セグメントが、上述したように、大規模マトリックスのマップおよび表現と類似のマップおよび表現を用いて格納される。実際のデータ表現は、ブロック２１００で示される。
【００５２】
図２２〜図３２は、本発明の例示の実施形態による詳細の演算を示すフローチャートである。これらのフローチャートは、本発明の例示の実施形態によれば、外部文脈を内部表現に変換する詳細な説明を提供し、観察がどのように行われることができるかを示し、画像化がどのように行われることができるかを示すために用いられる。
【００５３】
図２２は、例えば、図６に一般的に示したように、外部文脈を内部文脈に変換するために用いられ得る演算のフローチャートである。概して、新たな関連を観察するために、観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在する場合には、観察される属性の間の関連が、観察される属性に対応する少なくとも１つのビット平面表現に追加される。さらに、観察される属性が、関連付けられる少なくとも１つのカウントを有する連想マトリックスのセグメントの識別情報に存在しない場合には、観察される属性に関する少なくとも１つのビット表現が作成される。
【００５４】
特に、図２２に示されているように、演算は、文脈を構成するためにブロック２２１０から始まる。ブロック２２２０で、例えば、図６のブロック６１０で示されたように、属性が文脈から取得される。ブロック２２３０で、内部キー／値が既に存在するかどうかについて試験が行われる。存在しない場合には、ブロック２２４０で、新たなアトム（すなわち、図６のブロック６２０におけるアトムテーブルにおけるエントリ）が作成される。ブロック２２３０で内部キー／値が既に存在する場合には、ブロック２２５０で既存の内部アトムが用いられる。ブロック２２６０で、例えば、図６のブロック６３０で示されたように、内部キーおよび値が内部属性を作成するために連結される。ブロック２２７０でさらに多くの属性がある場合には、演算は続行される。さらに多くの属性がない場合には、演算は終了する。
【００５５】
図２３は、連想マトリックスの中で内部属性を観察するために行われ得る演算のフローチャートである。最初に、ブロック２３１０で小規模マトリックスが存在するかどうかについて試験が行われる。存在する場合には、ブロック２３２０で、第１の内部属性および第２の内部属性の相互関連が取得される。ブロック２２３２および２２３４で、内部属性(IAttr1，IAttr2)がいずれも存在する場合には、ブロック２２３６で関連が追加される。マトリックスデータの下半分のみが格納されてもよいため、それらは連想マトリックスに一度限り追加され得ることを留意されたい。関連が存在しない場合には、ブロック２２３８および２２４２で作成する。最後に、ブロック２２４４でさらに多くの相互関連がある場合には、演算は続行される。ブロック２３１０に戻ると、大規模マトリックスが存在する場合には、ブロック２２５０で、２つの属性の相互関連が内部文脈から取得され、ブロック２２５２および２２５４で新たな関連が追加される。大規模マトリックスの両半分が格納されるため、新たな関連は二度追加されることを留意されたい。さらに多くの相互関連がある場合には、ブロック２２５６で演算は続行される。
【００５６】
図２４は、２つの引数Ａｒｇｕｍｅｎｔ  １、Ａｒｇｕｍｅｎｔ  ２についてセグメント数およびオフセットを計算するために用いられ得る演算のフローチャートである。これらの演算は、以下に記載されるように、次のフローチャートで用いられる。
【００５７】
図２４を参照すると、ブロック２４１０で小規模マトリックスが存在するかどうかについて最初の試験が行われる。存在する場合には、ブロック２４２０で行が設定され、ブロック２４２２で列が設定される。最後に、ブロック２４２４で、大域オフセットが設定される。あるいは、大規模マトリックスが存在する場合には、ブロック２４３２およびブロック２４３４で大域オフセットが設定される。次に、ブロック２４４２でセグメント数が設定され、ブロック２４４４でオフセットが設定される。セグメント数およびオフセットは、次にブロック２４４６で返される。
【００５８】
図２５は、図２３のブロック２２３６、２２５２および２２５４に対応し得る関連を追加するために行われ得る演算のフローチャートである。一般化のために、包括的な表現としてＡｒｇｌ、Ａｒｇ２が用いられる。
【００５９】
図２５を参照すると、図２４に関連して既に述べたように、ブロック２５１０でセグメント数およびオフセットが計算される。ブロック２４４６で返されたセグメント数が、ブロック２５１２で検索され、ブロック２５１４で現在のビット平面がＰｌａｎｅ０に設定される。ブロック２５１６でビット平面が存在しない場合には、ブロック２５１８でビット平面が作成され、ブロック２５２２でマップが作成される。他方、ブロック２５１６でビット平面が存在するが、ブロック２５２４でそのオフセットに関する部分セグメントが存在しない場合には、ブロック２５２６で部分セグメントが作成され、ブロック２５２８でマップにおけるそのビットがオンにされる。
【００６０】
次に、演算は図２６に進む。図２６において、ブロック２６１０で第１の部分セグメントにおけるオフセットに関するビットがあるかどうかについての決定が行われる。存在しない場合には、ブロック２６１２でビットに関する部分セグメントが１に設定される。あるいは、存在する場合には、ブロック２６１４でオフセットに関する部分セグメントビットが０に設定される。次に、ブロック２６１６で、部分セグメントにおけるすべてのビットが０であるかどうかについての試験が行われる。すべてのビットが０である場合には、ブロック２６１８で部分セグメントが除去され、ブロック２６２２で部分セグメントマップにおけるビットがオフにされる。他方、ブロック２６１６で、部分セグメントにおけるすべてのビットが０でない場合には、ブロック２６２４で、部分セグメントマップにおけるすべてのビットが０であるかどうかについての試験が行われる。すべてのビットが０である場合には、ブロック２６２６で部分セグメントマップが除去され、ブロック２６２８でビット平面が除去される。次いで、ブロック２６３２で、現在のビット平面が次のビット平面に設定され、演算は、図２５のブロック２５１６に戻る。したがって、図２６の演算は、ビット平面にわたってビット平面データの「キャリー（桁上げ）」を明らかにし得る。
【００６１】
図２７は、本発明の実施形態による画像化に関する全体的な演算のフローチャートである。概して、圧縮された連想マトリックスにおいて選択された属性に対応する少なくとも１つのビット平面表現を取得し、取得した少なくとも１つのビット平面表現を選択された属性の間での関連を識別するカウントに変換することによって、画像化が実行され得る。
【００６２】
一部の実施形態において、２つのタイプの画像化、すなわち点画像化(point imagine)および走査画像化(scan imagine)が行われ得る。点画像化演算において、２つの属性に関連付けられるカウントが取得される。走査画像化演算において、属性対の大きな集合にわたるカウントが取得される。
【００６３】
ここで図２７を参照すると、点画像化を行うための演算がここで示される。ブロック２７１０で、小規模マトリックスが存在するかどうかに関する決定が行われる。小規模マトリックスが存在する場合には、ブロック２７１２で第１の属性に関する指数が取得され、ブロック２７１４で第２の属性に関する指数が取得される。次に、図２８に関して以下に詳細に示されるように、ブロック２７１６で適切な値が取得される。他方、ブロック２７１０で大規模マトリックスが存在する場合には、図２８に関して以下に記載されるように、ブロック２７１８で値がまた取得される。
【００６４】
図２８は、図２７のブロック２７１６または２７１８に対応し得る指数または属性における値を取得するために行われ得る演算のフローチャートである。一般化のため、指数および／または属性に関して「引数」（Ａｒｇ）が用いられる。図２８に示されているように、ブロック２５１０で行われたように、セグメント数およびオフセットが計算される。ブロック２８１０でセグメントが検索され、ブロック２８１２で現在のビット平面がＰｌａｎｅ０に設定される。ブロック２８１４でビット平面が存在する場合には、ブロック２８１６でビットがオフセットマップに関する部分セグメントマップから取得される。ブロック２８１８で部分セグメントビットが１であり、ブロック２８２２において部分セグメントにおけるオフセットに関するビットが１に等しい場合には、ブロック２８２４で、値は現在の値＋２bit#plane##として設定される。それ以外の場合には、ブロック２８２６で現在のビット平面は、次のビット平面に設定され、ブロック２８２８でビット平面が存在しなくなるまで、ブロック２８１４における演算が続行される。次に、値が返される。
【００６５】
図２９は、走査画像化、すなわち一連のキー：値：カウントの結果を提供する画像化を行うために行われ得る演算のフローチャートである。例えば、連想マトリックスの行に関するカウントが返されてもよい。ブロック２９１０で、小規模マトリックスが存在するかどうかに関する試験が行われる。小規模マトリックスが存在する場合には、ブロック２９１２でＡｔｔｒ１に関する指数が取得され、ブロック２９１４で属性キーを有するすべての指数が指数マップから取得される。ブロック２９１６で次の指数がＩｎｄｅｘ２に設定され、図２８に関して既に示したように、値が取得される。次に、ブロック２９２２でＩｎｄｅｘ２が指数マップを介してＡｔｔｒ２に変換され、ブロック２９２４でＡｔｔｒ２および値が結果リストに追加される。ブロック２９２６で指数がなくなるまで、これらの演算は続行され、その後で、ブロック２９２８で結果リストが返される。
【００６６】
図２９を再び参照すると、ブロック２９１０で大規模マトリックスが存在する場合には、ブロック２９３２で、第１の非ゼロのセグメントが検索され、ブロック２９３４で、セグメント数が最大値を有するキーのセグメント数未満であるかどうかに関する試験が行われる。セグメント数が最大値を有するキーのセグメント数未満である場合には、図３０で演算が続行される。したがって、ブロック２９３２および２９３４は、走査画像化演算に関する基本的な開始／停止制御を提供する。
【００６７】
図３０にブロック３０１０で示されているように、Ｎは０に設定される。尚、Ｎは部分セグメントマップへのオフセットである。ブロック３０１２でビットＮが部分セグメントマップの最大値より大きいかどうかについての試験が行われる。大きい場合には、演算は、図２９のブロック２９３６に戻る。大きくない場合には、ブロック３０１４で現在のビット平面は、Ｐｌａｎｅ０に設定され、ブロック３０１６でビット平面が存在し、ブロック３０１８で現在の平面の部分セグメントマップビットが１である場合には、演算は、図３１に続く。図３１に続かず、ブロック３０２２でより多くのビット平面が存在する場合には、ブロック３０２４で現在のビット平面が次のビット平面に設定され、演算は続行される。ブロック３０２２でこれ以上ビット平面がない場合には、ブロック３０２６でＮはＮ＋１に設定され、演算は続行される。
【００６８】
ここで図３１を参照すると、ブロック３１１０で開始ビット平面が現在のビット平面に設定され、Ｍが０に設定される。Ｍは、ブロック３１１２の部分セグメントへのオフセットである。ブロック３１１４で、Ｍが部分セグメントの最大値より大きいかどうかについての試験が行われる。大きい場合には、演算は、Ｆを経て図３０のブロック２２０６に続く。大きくない場合には、演算は、Ｈを経て図３２に続く。
【００６９】
ここで図３２を参照すると、ブロック３２１０で第１の部分セグメントにおけるオフセットＭに関するビットが存在するかについての試験が行われ、存在する場合には、ブロック３２１２で値が設定される。したがって、ブロック３２１２は、すべての値に関する数を構成することができる。存在しない場合には、ブロック３２１４で現在のビット平面は次の平面に設定され、ブロック３２１６でビット平面が存在するかどうかについての試験が行われる。存在して、ブロック３２１８で、現在の平面の部分セグメントが１に等しい場合には、演算は、ブロック３２１０に戻る。それ以外の場合には、ブロック３２２２でさらに多くのビット平面があるかどうかについての試験が行われ、ない場合には、ブロック２２２４でＡｔｔｒ２が計算され、ブロック３２２６でＡｔｔｒ２の値が結果リストに追加される。
【００７０】
ここで、本発明の種々の例示の実施形態に関するさらなる説明が提供される。ロスのないメモリを提供するために、本発明の実施形態によるアーキテクチャに基づくメモリは、抽象化の原理から圧縮の原理へ移行し得る。従来の人工知能は、論理的であるか統計的であるかに関係なく、知的機能の複雑さに関して「次元数の呪い」に嘆くことが多い。したがって、経験則および統計的技法に基づく規則は一般にロスが多いモデルに基づく抽象化である。抽象化は、情報および精度を失う可能性がある。例えば、規則は、規則の例外も網羅する際に問題を生じる可能性があり、市場細分化は、各顧客に関する予測において極めて不正確である可能性がある。一方、連想メモリは、経験を記録する際に完全なメモリであることを求めるが、そのような連想メモリは十分にスケーリングされない。
【００７１】
本発明の実施形態は、メモリをより小さく構成することができる。より小さなメモリは空間が少なくて済み、抽象化および削減に対する手段を講じるまでにより多くの情報を保持する。本発明の実施形態は、ロスのない圧縮を提供することができる。本発明の一部の実施形態は、画像化に用いられ得る従来の圧縮方法とは対照的であってもよいが、連想メモリの場合には十分に機能しない可能性がある。一般的な圧縮もまた、ロスがない場合であっても、一般に連想メモリの場合には十分に機能しない可能性がある。例えば、算術符号化のような圧縮の埋め込みは一般に、探索可能な圧縮を提供することはない。さらに、連想メモリは、単に探索可能であることにとどまらず、一般に、ランダムアクセスを可能にすべきである。問題は、一般に悪名高く困難である極めて大きなデータチューブの圧縮に類推されることができる。さらに、増加する学習のために、圧縮は新たなデータ更新を可能にすべきであり、これは、たとえランダムにアクセス可能であっても、データキューブの圧縮は提供し得ない。要約すると、連想メモリの圧縮は、ロスのない圧縮、ランダムアクセスおよび増大する書き込みを可能にすべきである。
【００７２】
本発明の実施形態は、属性：値、またはキー：値、ベクトルとして定義される「スナップショット」に外部世界の状況を変形することができる。例えば、トランザクションレコードは、フィールド名およびフィールド値のベクトルとして定義される。構造化されていないソースの場合には、本発明の実施形態は、例えば、各文における人、場所および物を定義するために、エンティティ抽出装置を用いることができる。これらの「エンティティ」は、周囲のキーワードと共に、文脈、すなわち各エンティティが周囲のエンティティおよびキーワードにどのように関連付けられるかを記述する。認知的構文として、各エンティティは、個別の連想メモリとしてモデル化されてもよいが、一部の実施形態において、レコードまたは文の属性値は、１つのマトリックスで観察されるべき１つの文脈として扱われてもよい。エンティティ連想メモリは、本発明の譲受人に譲渡された「Ｎｅｔｗｏｒｋｓ  Ｏｆ  Ｎｅｔｗｏｒｋｓ  Ｏｆ  Ａｓｓｏｃｉａｔｉｖｅ  Ｍｅｍｏｒｙ  Ｎｅｔｗｏｒｋｓ  Ｆｏｒ  Ｋｎｏｗｌｅｄｇｅ  Ｍａｎａｇｅｍｅｎｔ」という名称の２００４年１１月３日出願の米国特許出願第１０／９８０、５２０号に詳細に記載され、その開示は、本明細書に完全に記載されているように、参照によりその全体を本明細書に組み込まれる。
【００７３】
さらに多くの文脈が観察されると、関連のリストは増大する。所与の関連が何度も観察されると、図４〜図５Ｂに関連して上述したように、関連カウントもまた、増大する。関連のリストを閲覧するための別の方式は、マトリックス形態にあり、キー：値の対がマトリックスの指数である。このマトリックスは、連想マトリックスと呼ばれ、図７〜図８に関連して上述したように、同時発生マトリックスとしても既知である。連想マトリックスの次元は、Ｏ（Ｎ2）の速度で成長する可能性があり、Ｎはキー：値対の数である。カウント自体は、Ｏ（ｌｏｇＯ）速度で成長する可能性があり、Ｏは観察の数である。本発明の実施形態は、Ｎ2の成長を削減または最低限に抑えることができ、ｌｏｇＯの成長を利用することができる。
【００７４】
外部キー：値情報は、内部表現に変更される。これは、データのより簡単な操作を可能にする。各「キー」および「値」に関するすべての値は、図６に関連して記載したように、数値数（「アトム」とも呼ぶ）にマッピングされることができる。「キー」アトムおよび「値」アトムは、キー：値対の内部表現を作成するために連結される。キー：値対の連結は、１つのＭビットの数値（内部属性とも呼ぶ）を介して表現される。内部属性の第１のＭ／２ビットはキーアトムであり、第２のＭ／２ビットは値アトムである。この実施例は、同一のマップでキーアトムおよび値アトムを追跡したことを留意されたい。キーアトムおよび値アトムが個別のマップで追跡される場合には、Ｍビットの内部属性の分割は、値アトムに多少のビットを与え得る。
【００７５】
Ｍビットの内部属性の実世界の実装は、Ｍを６４（キーアトムに対して３２ビット、値アトムに対して３２ビット）に設定してもよい。この案は、簡単であり、より遅い効率に関する特性を提供することができる。値のすべては、高いビットキーの範囲内の低いビット変動であってもよい。したがって、キー内の値に関する内部属性のすべては、内部属性の距離の中で、同じ場所に位置付けられることができる。用いられる連想マトリックスのタイプに応じて、この同位置配置特性は、連想マトリックスの質問に答え、物理的区分内で互いに近くにある可能な答えのすべての実行を行う際に役立つ可能性がある。
【００７６】
内部属性および関連カウントは、連想マトリックスに表記される。上述したように、それぞれは潜在的に長所および短所を有してもよい２つのタイプの連想マトリックスがあり得る。Ｍビットの内部属性が指数である場合（図７および図８）には、大規模連想マトリックスは、２M×２Mマトリックスであってもよい。指数として内部属性を用いることにより、記載したようにキーによって自然順序付けを可能にすることができる（例えば、すべての人が一緒であってもよい）。この順序は、属性およびキーを与えられたすべての関連属性を要求する問い合わせにおいて用いられることができる（例えば、すべての人が、Ｎｅｗ  Ｙｏｒｋの都市に関連付けられる）。大規模連想マトリックスは通常、極めて大きく、疎に記入されたマトリックスである。本発明の実施形態による圧縮は、データを有するマトリックスに領域を集中させることができると同時に、データのない領域を無視することもできる。一部の実施形態において、そのようなマトリックスは、１万〜１０００万の属性を自動的に関連付けることができ、極めて疎に構成される。
【００７７】
大規模連想マトリックスは、以下の長所および短所を有し得る。
【００７８】
長所：第一に、キー：値は、マトリックス指数に直接的にマッピングされる。これは、変換表によってマトリックス指数を再度マッピングする必要なく、指数の高速かつ直接計算を行うことができる。第二に、キー：値対は、当然のことながら、線形なシーケンスで共にグループ化されることができ、所与のキーに関する質問に答える場合などのマトリックスの高速走査を可能にすることができる。最後に、大規模マトリックスは、完全なマトリックスであってもよく、たとえ対称であっても、関連は、キー：値１→キー：値２およびキー：値２→キー：値１として２度格納される。これは一般に冗長な情報であるが、これは、所与のキー：値のすべてが連続的なキー：値の答えからなるそれ自体の「行」を有することを可能にし、マトリックスが線形化され、セグメント化されるときにこれを用いることができる。
【００７９】
短所：大規模マトリックスはまた、大きな設置面積を有する可能性がある。セグメント化およびビット平面分割を用いた場合であっても、ビットは疎であり、維持するのに費用が嵩む可能性がある。他方、そのような極めて大規模なマトリックスの場合には、圧縮は可能な限り強力に構成されることができるが、本質的には圧縮のための同位置配置だけではなく、所与のキー内の問い合わせに迅速に答えるために、ビットの同位置配置に依然として焦点を置くことができる。
【００８０】
認知的構文として、大規模連想マトリックスは、例えば、大規模連想ディレクトリとして最適な役割を果たし得る。ルータに類推され得る実施例において、そのようなメモリは、他のより小さなメモリに対する指数であってもよいキー：値を検索することができる。そのような大規模マトリックスはまた、数においても少数である傾向があり、大きな画像を表現し得るが、より小規模なメモリは詳細を捕捉し得る。
【００８１】
それぞれのより小規模なマトリックスは、小規模連想マトリックスとも呼ばれ、内部属性間の関連カウントを格納してもよい。しかし、小規模連想マトリックスは、本質的に小さなメモリ設置面積に圧縮することにより重点を置き、空間が大規模マトリックスにおける場合のように極めて大きくなる場合には、高速の照会（読み出し）時間にはあまり重点を置かない場合がある。
【００８２】
小規模連想マトリックスの行は、データを含むマトリックスの行／列を追跡するだけで済むように再編成されることができる。図１９に示されているように、これは、中間ステップによって実現されることができ、変換表１９１０は、内部属性を新たな連続する行／列の指数にマッピングする。変換表１９１０はまた、より大きな同位置配置を可能にするために分類されてもよい。また、連想マトリックスが対称であり、圧縮に重点が置かれるために、マトリックスの下半分のみが追跡される。小規模マトリックスは、下の三角形であってもよい。
【００８３】
小規模連想マトリックスもまた、潜在的な長所および短所を有し得る。
【００８４】
長所：設置面積が極めて小さくてもよい。関連付けカウントは、はるかに疎ではなく、完全なマトリックスの半分のみが表現されれば良い。任意の２つの内部属性が与えられる場合には、関連付けカウントは、より大きな行およびより小さな列に含まれる。
【００８５】
短所：変換表は潜在的に計算および格納に関するコストを増加させる。また、ここで、属性は、任意に位置決めされてもよいため、走査のために同位置に配置された値を含み得る大規模マトリックスとは異なり、分配される関連付けカウントにはより多くのランダムアクセスが必要である可能性がある。
【００８６】
他方、小規模マトリックスは、ＲＡＭに含まれ得る可能性が高く、効率的なランダムアクセスを可能にすることができるのに対し、大規模マトリックスは、ＲＡＭに適合しない可能性がある。入出力のボトルネックが顕著になる可能性があるため、属性の同位置配置がより望ましくなる可能性がある。要約すると、用いられるこれらのマトリックスタイプは、圧縮アルゴリズムにのみ基づいているのではなく、唯一のそのようなマトリックスのサイズおよび演算に基づいていてもよい。脳全体のスケールにさらに近づけ、本発明の例示の実施形態は、数百万のそのようなマトリックスを構成することができ、一部の実施形態において、大きさに関しては、いくつかの大規模な企業スケールのアプリケーションを有し、大部分は小規模に構成することができる。そのようなアプリケーションでは、入出力は顕著なボトルネックである可能性があるため、これらのマトリックスは、２つの異なる規則に関する２つの異なる戦略に対して設計されてもよい。すなわち、極めて大規模である場合には、キャッシュとストアとの間の唯一の部分に送信するように同位置配置および区分を行い、小規模である場合には、キャッシュとストアとの間にマトリックス全体（但しより小規模である）を送信するように圧縮する。
【００８７】
連想マトリックスタイプのいずれかのうちからのデータは、カウントの長いリストとして閲覧されてもよい。一部の実施形態において、カウントのリストは、サイズＬ×Ｋの部分集合に区分される。Ｌはマップビットの数であり、Ｋは平面データにおけるビットの数である。現実的な実装は、ＬおよびＫを６４ビットに設定してもよいが、簡単にするため、ＬおよびＫは４ビットに設定され得る。したがって、連想マトリックスの線形表現は、１６カウントのより小さなセグメントに区分され得る。０のカウントのみを含むセグメントは、無視される。このセグメント構造は、非ゼロのデータを含むセグメントを追跡しさえすればよい。
【００８８】
小規模連想マトリックスはまた、下側の三角形マトリックスの線形化によって定義されるデータのストリームとして表記され得る。例えば、２次元マップを線形化して、同位置に配置するために、複数の形状を満たす曲線が可能である。マトリックスはまた、分類の２次元マップであり、下側の三角形マトリックスによって行ごとの簡素な線−曲線が、最適な空間を満たす特性および照会性能を有し得る。
【００８９】
本発明の例示の実施形態によれば、各セグメントは、ビット平面の集合として表現され得る。ビット平面の分離は、画像用のＪＰＥＧの中で用いられているものなど、圧縮に関して既知である。例えば、２５６ビットの画像では、２の級数のべきにおける２５６「平面」のそれぞれが、特定の平面内で、ＯＮの指定ビットを有するすべての画素に関するすべてのビットからなる。この表現は、すべての画素値が２進数で表現され、画像全体がその側面になると考えられてもよい。次に、各平面は、べき級数のおける各レベルのビットをすべて表現する。
【００９０】
ビット平面が画像圧縮の一部として用いられてもよいのに対し、連想マトリックス圧縮の場合にはビット平面は特に有用である場合がある。画像において、完全に画像および画素の符号化によって、ビットは任意の平面において任意に見つけられることができる。この意味で、任意の平面におけるビットは、（一般に）任意の他の平面における任意の他のビットと同等の確率がある。しかし、連想マトリックスは一般に、機械学習システムにおいて用いられる。この場合には、観察負荷が増大すると、より高いカウントのみが生成されるという点で、より低いカウントは、より高いカウントより確率が高い。観察がもう１つの平面によって平面の数を単に増大させるために、現在の観察より２倍多い観察が行われなければならないという点で、この要求は一般に対数である。本発明の例示の実施形態によれば、十分に活用されない（または溢れる）固定のカウンタサイズを割り当てるのではなく、ビット平面は、必要に応じてのみ生成される。負荷の小さいマトリックスは、少数のビット平面のみを用いることができるが、より多くのリソースは、より負荷の大きいより大規模なマトリックスにゆだねられてもよい。したがって、本発明の一部の実施形態において、ビット平面は、最大カウントの必要に基づく連想マトリックス全体ではなく、所与のセグメントによって必要とされるように、局所的であってもよい。
【００９１】
さらに、画像がビット平面に分割される間、本発明の例示の実施形態による連想マトリックスの線形化およびセグメントの分割は、ビット平面の要求に基づく成長を、マトリックス平面全体ではなく、各セグメントの最大カウントを超えないようにすることが可能である。２次元画像における同位置配置は、四分木またはＲツリーなどの圧縮方法をもたらすことができる。しかし、本発明の例示の実施形態によれば、関連のキー−値の同時局在性は、さらに線形であり、したがって、線形セグメントに編成されてもよい。いずれの場合でも、マトリックス全体は、そのセグメントおよびビット平面に関して側面から閲覧されることができる。カウントが大きい場合には、セグメントはより多くのビットを用いることができるのに対し、マトリックスの他の領域はより少数のビットを用いることができるに過ぎない。
【００９２】
何度も、カウントを３２ビットの数で、０に初期化されると仮定する。観察される各関連に関する増分は、関連が極めて重い負荷でない限り、上位ビットを用いることは滅多にない。しかし、連想マトリックスが疎である（多くのゼロ値を含む）傾向がある場合と同様に、ビット平面方向においても疎である傾向があり、より低い値となる。したがって、本発明の例示の実施形態によるビット平面の使用は、カウントを格納するために用いられる物理的メモリの量を削減することができる。
【００９３】
ビット平面内に格納されるデータは、部分セグメントと呼ばれ得る。部分セグメント構造は、ビットでマスクされたルックアップマップのアレイおよび１つまたは複数のデータ要素を含むことができる。その平面において対応する関連カウントが「１」を含む場合には、データ要素は情報を含むことができる。データの実際の表現は、非ゼロの値を含むデータを列挙するだけでよい。マップは、所与の平面における第０の位置に格納されることができ、マップの次の最下位ビットは次のデータに対応することができる。
【００９４】
大規模マトリックス構造の場合には、セグメントの数は極めて大きくなり得る。総メモリ要件は、システムの総メモリより大きい場合がある。したがって、大規模構造を所望によりメモリからロードして除去することができる多くのより小規模のブロックに分割することができる仮想ストアキャッシュシステムと共に、この構造は用いられてもよい。
【００９５】
そのようなブロック指向設計は、標準的な階層持続案を用いることができるが、極めて大規模なスケールの連想メモリアプリケーションは一般に、単独のマトリックス埋め込み型システムとは異なる。ハードウェア処理またはソフトウェア処理のいずれであるかに関係なく、メモリ集中アプリケーションの問題は、データ集中アプリケーションの問題に似ている可能性がある。圧縮および区分の解決策を用いて、多数のそのようなマトリックスを格納することができ、常に常駐している必要性はほとんどなく、新たな関連によって更新するため、または関連を読み出して広範囲の数の問い合わせをサポートするために、全体または部分的に高速でフェッチする必要があり得る。
【００９６】
本発明の例示の実施形態は実際には、完全に一致するマトリックスから始めて、例えば、セグメント化およびビット平面化のステップを完了する必要はない。正確に言えば、そのような表現が動的に構成され維持される増分学習が提供され得る。新たな文脈が観察されると、新たなキー−値が符号化され、場合によって変換されて、新たなセグメントが作成されてもよく、および／または新たなビット平面が形成されてもよい。
【００９７】
図面および明細書において、本発明の実施形態が開示され、特定の用語が用いられるが、それらは、総括的かつ記述的意味でのみ用いられ、制限のためではなく、本発明の範囲は、以下の特許請求の範囲に記載される。
【図面の簡単な説明】
【００９８】
【図１】その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。
【図２】その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。
【図３】その実施例に加えて、本発明の例示の実施形態による連想マトリックスを圧縮するために行われ得る演算のフローチャートである。
【図４】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図５】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図６】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図７】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図８】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図９】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１０】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１１】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１２】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１３】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１４】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１５】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１６】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１７】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１８】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図１９】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図２０】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図２１】その実施例に加えて、中間レベルの記述を提供する本発明の例示の実施形態のブロック図である。
【図２２】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２３】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２４】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２５】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２６】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２７】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２８】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図２９】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図３０】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図３１】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図３２】本発明の例示の実施形態によって行われ得る詳細な演算のフローチャートである。
【図１】
2009503732.tif 000003
【図２】
2009503732.tif 000004
【図３】
2009503732.tif 000005
【図４】
2009503732.tif 000006
【図５】
2009503732.tif 000007
【図６】
2009503732.tif 000008
【図７】
2009503732.tif 000009
【図８】
2009503732.tif 000010
【図９】
2009503732.tif 000011
【図１０】
2009503732.tif 000012
【図１１】
2009503732.tif 000013
【図１２】
2009503732.tif 000014
【図１３】
2009503732.tif 000015
【図１４】
2009503732.tif 000016
【図１５】
2009503732.tif 000017
【図１６】
2009503732.tif 000018
【図１７】
2009503732.tif 000019
【図１８】
2009503732.tif 000020
【図１９−２０】
2009503732.tif 000021
【図２１】
2009503732.tif 000022
【図２２】
2009503732.tif 000023
【図２３】
2009503732.tif 000024
【図２４】
2009503732.tif 000025
【図２５】
2009503732.tif 000026
【図２６】
2009503732.tif 000027
【図２７】
2009503732.tif 000028
【図２８】
2009503732.tif 000029
【図２９】
2009503732.tif 000030
【図３０】
2009503732.tif 000031
【図３１】
2009503732.tif 000032
【図３２】
2009503732.tif 000033
【国際調査報告】
2009503732.tif 000034
2009503732.tif 000035