(57)【要約】  データオブジェクトが投入された多次元特徴空間を検索する前に、特徴空間中の各次元がいくつかの区間に分割される。クエリが受け取られると、クエリが重なる単一の区間が、各次元から選択される。次いで、選択された区間に重なるデータオブジェクトだけを含む、削減されたデータオブジェクト集合が選択される。次いで、特徴空間中のデータオブジェクトの集合全体ではなく、この削減されたデータオブジェクト集合を使用して、クエリに対するマッチが決定される。【特許請求の範囲】
【請求項１】
多次元（ＭＤ）特徴空間中の各次元を複数の区間に区分化すること、
クエリポイントに重なる区間を各次元で識別すること、
前記識別された区間すべてにマッチする、前記ＭＤ特徴空間に結合された１つまたは複数のＭＤデータオブジェクトを見つけること、および、
前記識別された区間すべてにマッチする第１のＭＤデータオブジェクトを評価して、前記第１のＭＤデータオブジェクトが前記クエリポイントに重なるかどうか判定することを備えることを特徴とする方法。
【請求項２】
各ＭＤデータオブジェクトは超矩形を含むことを特徴とする請求項１に記載の方法。
【請求項３】
各ＭＤデータオブジェクトはデータアイテムに関連することを特徴とする請求項１に記載の方法。
【請求項４】
各データアイテムはメディアデータアイテムを含むことを特徴とする請求項３に記載の方法。
【請求項５】
各ＭＤデータオブジェクトは超球を含むことを特徴とする請求項１に記載の方法。
【請求項６】
各超球はデータアイテムに関連することを特徴とする請求項５に記載の方法。
【請求項７】
前記見つける動作は、
各区間につき、前記区間にマッチするＭＤデータオブジェクトを指示する、関連するデータ構造を形成すること、および、
識別された区間に関連する各データ構造を処理してＭＤデータオブジェクトの集合を作成することであって、前記集合の中の各ＭＤデータオブジェクトが、前記識別された区間それぞれにマッチすること
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
各データ構造はビットベクトルインデックスを含むことを特徴とする請求項７に記載の方法。
【請求項９】
各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは単一のＭＤデータオブジェクトに対応することを特徴とする請求項８に記載の方法。
【請求項１０】
超矩形が各ＭＤデータオブジェクトに関連し、ビットベクトルインデックス中の各ビットは、それに対応する前記超矩形が前記対応する区間に重なるかどうかを指示することを特徴とする請求項９に記載の方法。
【請求項１１】
前記処理する動作は、選択されたすべての区間に関連する前記ビットベクトルインデックスの論理積をとることを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
各ＭＤデータオブジェクトは、前記ＭＤ特徴空間に結合された超矩形に関連し、前記見つける動作は、前記クエリポイントを、前記識別された区間すべてに重なる各超矩形と比較することを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
各ＭＤデータオブジェクトは超球を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
多次元（ＭＤ）特徴空間中の複数の次元それぞれを複数の区間に区分化すること、
各区間につき、前記ＭＤ特徴空間に結合された複数のＭＤデータオブジェクトのどれが前記区間にマッチするかを指示する、関連するデータ構造を形成すること、
クエリポイントを受け取り、前記クエリポイントが重なる区間を各次元で選択すること、
選択された区間に関連する各データ構造を処理してＭＤデータオブジェクトの集合を決定すること、および、
前記クエリポイントに重なる、前記ＭＤデータオブジェクトの部分集合を決定することを含む動作を実行するためのものであることを特徴とするコンピュータ可読媒体。
【請求項１５】
各データ構造はビットベクトルインデックスを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記処理する動作は、前記ビットベクトルインデックスすべての論理積をとって前記ＭＤデータオブジェクトの集合を決定することを含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは、前記ＭＤ特徴空間に結合されたＭＤデータオブジェクトに対応することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
各ビットベクトルインデックスは複数のビットを含み、ビットベクトル中の各ビットは、単一の超矩形に対応し、前記対応する超矩形が前記データ構造に関連する区間に重なるかどうかを指示することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記区分化する動作は、各次元を互いに素ないくつかの区間に区分化することを含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２０】
少なくとも１つの区間は２つの区間仕切りを境界とすることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２１】
少なくとも１つの区間は次元に沿った一方向に境界がないことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２２】
前記複数の次元のうちの第１の次元の少なくとも１つの区間は区間仕切りを境界とし、および、前記少なくとも１つの区間仕切りは、ＦｉｒｓｔＩＤｓｊ＝ｊ＊［（２＊｜Ｓ｜）／ｍ］＋ｊに従って選択され、ただし、ＦｉｒｓｔＩＤｓｊは、前記第１の次元に沿った前記少なくとも１つの区間仕切りの位置を表し、ｍは、前記第１の次元に沿った区間仕切りの選択された数であり、１≦ｊ≦（２＊｜Ｓ｜）％ｍであり、｜Ｓ｜は、前記ＭＤ特徴空間に結合された超矩形の数に等しいことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２３】
前記複数の次元のうちの第１の次元の少なくとも１つの区間は区間仕切りを境界とし、および、前記少なくとも１つの区間仕切りは、ＲｅｍａｉｎｉｎｇＩＤｓｊ＝ｊ＊［（２＊｜Ｓ｜）／ｍ］＋（２＊｜Ｓ｜）％ｍに従って選択され、ただし、ＲｅｍａｉｎｉｎｇＩＤｓｊは、前記第１の次元に沿った前記区間仕切りの位置を表し、ｍは、前記第１の次元に沿った区間仕切りの選択された数であり、（２＊｜Ｓ｜）％ｍ＋１≦ｊ≦ｍであり、｜Ｓ｜は、前記ＭＤ特徴空間に結合された超矩形の数に等しいことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２４】
複数のデータアイテムを含むデータストアと、
複数の多次元（ＭＤ）データオブジェクトに結合されたＭＤ特徴空間が定義されたコンピュータ可読媒体であって、各ＭＤデータオブジェクトはデータアイテムに関連するコンピュータ可読媒体と、
検索モジュールとを備えるシステムであって、前記検索モジュールは、
前記ＭＤ特徴空間中の各次元を複数の区間に区分化すること、
クエリポイントに重なる区間を各次元で選択すること、
前記選択された区間すべてにマッチする、前記複数のＭＤデータオブジェクトの部分集合を決定すること、および、
前記クエリポイントと前記決定されたＭＤデータオブジェクトの部分集合とに基づいてデータアイテムを選択することを行うように動作可能であることを特徴とするシステム。
【請求項２５】
前記複数のデータアイテムそれぞれを、前記ＭＤ特徴空間に結合されたＭＤオブジェクトにマッピングするように動作可能なマッピングモジュールをさらに備えることを特徴とする請求項２４に記載のシステム。
【請求項２６】
各ＭＤオブジェクトを、前記ＭＤ特徴空間に結合された超矩形にマッピングするように動作可能な形状近似機構モジュールをさらに備えることを特徴とする請求項２５に記載のシステム。
【請求項２７】
各ＭＤオブジェクトは超球を含むことを特徴とする請求項２５に記載のシステム。
【請求項２８】
少なくとも２つの超球はサイズが同一でないことを特徴とする請求項２７に記載のシステム。
【請求項２９】
少なくとも２つの超矩形はサイズが同一でないことを特徴とする請求項２６に記載のシステム。
【請求項３０】
コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
多次元（ＭＤ）特徴空間中の各次元を複数の区間に区分化することであって、前記特徴空間は複数のＭＤデータオブジェクトに結合され、各ＭＤデータオブジェクトはデータアイテムに関連すること、
クエリポイントを含む区間を各次元で識別すること、
前記識別された区間すべてにマッチする、前記特徴空間に結合された１つまたは複数のＭＤデータオブジェクトを識別すること、および、
前記クエリポイントと前記識別された１つまたは複数のＭＤデータオブジェクトとを使用して、前記クエリポイントにマッチするデータアイテムを識別することを含む動作を実行するためのものであることを特徴とするコンピュータ可読媒体。
【請求項３１】
前記データアイテムを識別する動作は、データアイテムに関連する各ＭＤデータオブジェクトが前記クエリポイントに重なるかどうか判定することを含むことを特徴とする請求項３０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
データベースに記憶されたマルチメディアデータオブジェクトを識別して取り出すために、いくつかの戦略が提案されてきた。これらの各戦略の核心には検索問題があり、検索問題においては、クエリポイントがデータベース中の多次元（ＭＤ）オブジェクトの集合と比較される。例えば、複数の特性（次元）を有する歌のサンプルを、データベースに記憶されたいくつかの歌と比較して、同じ特性または類似する特性を有する１つまたは複数の歌を見つけることができる。検索の結果、データベース中のオブジェクトの集合中で、１つまたは複数のマッチが見つかるか、あるいはマッチが存在しないかのどちらかとなる。これらの検索問題は普通、何らかの形の高次元検索として形作られ、この検索では、データポイントとクエリポイントが、同じ高次元特徴空間にマッピングされる。特定のクエリポイントに対して、マッチと見なされるほど十分にこのクエリポイントに近いデータポイントを特徴空間中で見つけることによって、マッチが見つかる。より具体的には、これらの近似マッチング問題は、普通、何らかのＬｐメトリックを使用するイプシロン距離クエリとして形作られ、使用されるイプシロンは、平均ポイント間距離よりもずっと小さい。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
このような問題を解決するための従来のクエリ処理戦略（例えば最近傍、イプシロン範囲検索）は、高次元性に関連する内在的な困難のせいで、低い性能のものとなる。これらの従来のクエリ処理戦略は、異なるデータポイントに異なるマッチング距離が使用されるときはさらに問題になるが、これは、オーディオフィンガプリンティングなど複雑な高次元検索では非常に重要なケースになる。この結果、このような問題を解決するための最も直接的な手法、すなわち線形走査の方が、通常、より精巧な手法よりも性能が優れていた。残念ながら、単純な線形走査は通常、複雑な高次元検索に関して、より複雑なクエリ処理戦略よりもよい性能を達成するが、線形走査は非常に時間集約的なプロセスである。
【課題を解決するための手段】
【０００３】
本明細書では、ＭＤ特徴空間中のＭＤデータオブジェクトの高速検索を容易にする様々なシステムおよび方法について述べる。一実施形態によれば、検索の前に、ＭＤ特徴空間中の各次元がいくつかの区間に分割される。クエリポイントが受け取られると、このクエリポイントに重なる単一の区間が各次元から選択される。次いで、選択された区間に重なるＭＤデータオブジェクトだけを含む、削減されたＭＤデータオブジェクト集合が選択される。次いで、特徴空間中のＭＤデータオブジェクトの集合全体ではなく、この削減されたＭＤデータオブジェクト集合を使用して、クエリポイントに対するマッチが決定され、それにより、検索プロセスの効率が大きく向上する。
【発明を実施するための最良の形態】
【０００４】
概して、本明細書に述べるシステムおよび方法は、複数の多次元（ＭＤ）データオブジェクトを検索して、どの１つまたは複数のＭＤデータオブジェクトが所与のクエリポイントに重なるかを決定することに関するものであり、あるいはこの決定と連動して使用できるものである。様々な実施形態によれば、ＭＤデータオブジェクトは、特徴空間中の超矩形として表される。検索されるＭＤデータオブジェクトが超矩形でない場合は、ＭＤデータオブジェクトは最初に、特徴空間中の超矩形にマッピングされる。超矩形の高速検索を容易にするために、最初に特徴空間中の各次元がいくつかの所定の区間に分割される。次いで、各次元の各区間につき、ビットベクトルインデックスが作成される。各ビットベクトルインデックスは、特徴空間中の各超矩形が、そのビットベクトルに関連する区間に重なるか否かを指示する。
【０００５】
クエリポイントが受け取られると、このクエリポイントに重なる単一の区間が各次元から選択される。次いで、選択された各区間に関連するビットベクトルインデックスの論理積がとられて、単一の結果ビットベクトルインデックスが形成される。結果ビットベクトルインデックスは、特徴空間内の超矩形の、削減された集合を識別する。次いで、この削減された超矩形集合、すなわち、削減された集合中の超矩形によって近似されるＭＤデータオブジェクトを、線形走査を使用して高速検索して、クエリポイントに対する１つまたは複数のマッチを決定することができる。
【０００６】
ここで図１に目を向けると、図１には、例示的なデータマッピングおよび検索システム１００の一実施形態が示されている。図示のように、検索システム１００は、データストア１０２、マッピングモジュール１０４、検索モジュール１０６、形状近似機構モジュール１０８、およびＭＤ特徴空間１１０を含む。データストア１０２には、いくつかのデータアイテム１１２（Ｄ１からＤｎ）が含まれる。ＭＤ特徴空間１１０には、第１のタイプのいくつかのＭＤデータオブジェクト１１４（Ｓ１からＳｎ）と、第２のタイプのいくつかのデータオブジェクト１１６（Ｒ１からＲｎ）が結合されている。
【０００７】
一実装形態によれば、ＭＤ特徴空間１１０は、コンピューティングシステムまたはコンピュータプロセス中で、ＭＤデータポイントまたはオブジェクトのマッピング、操作、記憶、および／またはアクセスを行うのに使用されるタイプのものである。この実装形態によれば、ＭＤ特徴空間１１０中のＭＤデータポイントは、値のベクトルである。これらのベクトルは、ＭＤ特徴空間中の次元の数と等しい長さを有する。これらのベクトル中の各インデックスの厳密な形および意味は、ＭＤ特徴空間の形に応じて異なる場合がある。この実装形態によれば、ＭＤデータオブジェクト１１４および１１６は、ＭＤデータポイントの集合である。ＭＤデータオブジェクト１１４および１１５は、ＭＤデータポイントが、ＭＤオブジェクトによって定義されるデータポイントの集合のメンバであるかどうかを判定する関数またはアルゴリズムとして定義することができる。本明細書では、ＭＤデータオブジェクトを定義する基礎的な関数またはアルゴリズムがＭＤ特徴空間に対応するタイプのベクトルを扱うとき、このＭＤオブジェクトはＭＤ特徴空間に「結合されている」と言われる。
【０００８】
ＭＤデータポイントおよびオブジェクトを幾何学の観点で記述または定義できることは、当業者なら理解されよう。この幾何学的定義によれば、ＭＤデータポイントベクトルは、高次元空間中の座標と考えられる。ＭＤデータオブジェクトはＭＤデータポイントの集合であり、したがって、この高次元空間中の形状または領域と考えることができる。そのようなものとして、ＭＤデータポイントまたはオブジェクトは、本明細書では、ＭＤ特徴空間の「中」または「内」にあるか、あるいはＭＤ特徴空間に「結合されている」と言われる。ＭＤ特徴空間は、ＭＤデータポイントまたはオブジェクトを「含む」と言われる。
【０００９】
ＭＤ特徴空間１１２中での検索に関して、検索を受けるＭＤデータポイントは、本明細書ではクエリポイントと呼ばれる。クエリポイントが、ＭＤデータオブジェクトを構成するＭＤデータポイントの集合のメンバである場合、ＭＤデータオブジェクトはクエリポイントに重なると言われる。この集合メンバシップは、ＭＤオブジェクトの基礎的な関数またはアルゴリズムをクエリポイントに適用することによって決定することができる。さらに、ＭＤデータオブジェクトがクエリポイントに重なる可能性が高い場合、ＭＤデータオブジェクトはクエリポイントにマッチすると言われる。したがって、マッチングは、重なりの近似である。「特徴空間の検索」という句は、本明細書では、ＭＤ特徴空間に結合されたＭＤデータポイントおよびオブジェクトのマッチング操作および重なり操作を実施することを述べるのに使用される。
【００１０】
概して、検索モジュール１０６は、データストア１０２中のどのデータアイテム１１２が所与のクエリポイント１２２にマッチするかを決定するように動作可能である。しかし、後で詳細に述べるように、検索モジュール１０６は、データストア１０２中のデータアイテム１１２を直接に検索することはしない。そうではなく、データアイテム１１２はまず、マッピングモジュール１０４によって特徴空間１１０中のＭＤデータオブジェクトにマッピングされる。次いで、検索モジュール１０６は、クエリポイントと特徴空間１１０中のＭＤデータオブジェクトとを評価して、どのＭＤデータオブジェクトがクエリポイント１２２にマッチするかを決定する。
【００１１】
一実装形態によれば、マッピングモジュール１０４は、データアイテム１１２を直接に第２のタイプのＭＤデータオブジェクト１１６にマッピングする。次いで検索モジュール１０６は、第２のタイプのＭＤデータオブジェクト１１６について、検索を実施する。別の実装形態によれば、マッピングモジュール１０４は、データアイテム１１２を第１のタイプのＭＤデータオブジェクト１１４にマッピングする。この実施形態では、次いで形状近似機構モジュール１０８が、第１のタイプのＭＤデータオブジェクト１１４を第２のタイプのＭＤデータオブジェクト１１６に変換またはマッピングする。この場合、検索モジュール１０６は、第２のタイプのＭＤデータオブジェクト１１６および／または第１のタイプのＭＤデータオブジェクト１１４について、検索を実施する。
【００１２】
一実施形態によれば、データストア１０２は、コンピュータ可読媒体で構成されるかまたはコンピュータ可読媒体を含む。限定ではないが例えば、一実装形態によれば、データストア１０２は、データオブジェクトが磁気媒体や光媒体などのコンピュータ可読媒体に記憶されたデータベースである。本明細書では、コンピュータ可読媒体は、データおよび／または実行可能命令を記憶することおよび／または具体化することができ、コンピューティングシステムまたはコンピューティングプロセスによってアクセスすることのできる、任意の利用可能な媒体であってよい。限定ではないが、コンピュータ可読媒体には、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方、および非変調データ信号を含めることができる。用語「被変調データ信号」は、信号中の情報が符号化されるようにして１つまたは複数の特性が設定または変更された信号を指す。
【００１３】
一実装形態によれば、データストア１０２中の各データアイテム１１２は、データサンプルまたはファイルである。限定ではないが例えば、一実装形態によれば、各データアイテム１１２は、オーディオまたはビデオのサンプルまたはファイルなど、メディアサンプルまたはファイルである。他の実装形態によれば、データアイテム１１２は、その他のタイプのサンプルまたはファイルであってもよい。
【００１４】
概して、マッピングモジュール１０４は、データストア中のデータアイテム１１２を特徴空間１０８中のＭＤデータオブジェクトにマッピングするように動作可能である。前述のように、データアイテム１１２は、第１のタイプのＭＤデータオブジェクト１１４、または第２のタイプのＭＤデータオブジェクト１１６としてマッピングすることができる。しかし、後でより詳細に述べるように、マッピングモジュール１０４は通常、データアイテム１１２を第１のタイプのＭＤデータオブジェクト１１４にマッピングすることになる。
【００１５】
多くの様々なタイプ（形状）およびサイズのＭＤデータオブジェクトがあることは、当業者なら理解されよう。ＭＤデータオブジェクトの一般的な２つのタイプは、超球および超矩形である。その他のタイプのＭＤデータオブジェクトは、限定ではないが超楕円や多面体である。
【００１６】
後でより詳細に述べるように、本明細書に述べる様々な実施形態によれば、第１のタイプのＭＤデータオブジェクト１１４は超球であり、第２のタイプのＭＤデータオブジェクト１１６は超矩形である。したがって、簡単にするために、第１のタイプのＭＤデータオブジェクト１１４を本明細書では超球と呼び、第２のタイプのＭＤデータオブジェクト１１６を本明細書では超矩形と呼ぶ。しかし、本明細書に述べる様々な方法およびシステムは、第１のタイプのＭＤデータオブジェクトがその他のＭＤデータオブジェクトの変形である場合でも等しく適用可能であってよいことを理解されたい。
【００１７】
超矩形は、各ポイントが特徴空間中の各次元で値を有する、ＭＤ特徴空間中のすべてのポイントの集合として定義することができ、この値は、次元ごとの最小値と最大値の間にある。超球は、各ポイントから固定点までのユークリッド距離がしきい値以下である、ＭＤ特徴空間中のすべてのポイントの集合として定義することができる。固定点は、超球の中心として知られる。
【００１８】
図２に移ると、図２には、いくつかの超矩形２１４〜２２２を含む特徴空間１１０の、一般化された例示的な表現が示されている。提示を簡単にするために、２次元の超矩形を含む２次元の特徴空間が示されている。しかし、特徴空間１１０およびそれに含まれる超矩形は、任意の正の次元数を有することができることを理解されたい。
【００１９】
図２に示すように、特徴空間１１０は、第１の次元（ｄｉｍ１）２１０、および第２の次元（ｄｉｍ２）２１２を有する。前述のように、特徴空間１１０中の各次元は、可能な値の範囲を達成することができる。この可能な値の範囲が、各次元に沿って示されている。図２には、次元２１０および２１２に沿って正の整数値しか示されていないが、各次元は、負の値および浮動小数点の値を含んでもよいことは理解されよう。同様に、図２には、正の整数値の範囲を有する超矩形しか示されていないが、負の値に延びる値範囲を有する超矩形、負の値範囲だけを有する超矩形、または浮動小数点の値範囲を有する超矩形も可能であることを理解されたい。
【００２０】
特徴空間１１０中の超矩形のサイズおよび位置を指定する際に、いくつかの異なる仕様を使用することができる。図２は、特徴空間１１０中の超矩形のサイズおよび位置を指定する際に使用することのできる例示的な仕様の１つを示している。具体的には、特徴空間１１０中の各超矩形は、識別子（Ｒ１，Ｒ２，．．．，等）と、２つの座標対とを含む。図示のように、特徴空間１１０に関して、第１の座標対は、超矩形の左下の隅の位置を特定し、第２の座標対は、超矩形の右上の隅を示す。例えば、特徴空間中で一番左下にある超矩形２１４は、Ｒ１｛１，１｝‐｛４，２｝として示されている。この例で、Ｒ１は超矩形識別子を示し、｛１，１｝は超矩形２１４の左下の隅を示し、｛４，２｝は超矩形２１４の右上の隅を示す。理解されるように、次元１および２に沿った超矩形Ｒ１からＲ５の属性の範囲を、これらの順序付けられた対から決定することができる。
【００２１】
ここで図１に戻るが、一実装形態によれば、検索モジュール１０６、マッピングモジュール１０４、および形状近似機構モジュール１０８はそれぞれ、コンピュータ実行可能命令で構成されるかまたはコンピュータ実行可能命令を含む。一実装形態によれば、これらのコンピュータ実行可能命令は、１つまたは複数のタイプのコンピュータ可読媒体に記憶されるかまたは具体化され、後で図７に関して図示および記述するような１つまたは複数のコンピューティングプロセスまたはデバイスによって実行される。
【００２２】
検索モジュール１０６、マッピングモジュール１０４、および形状近似機構モジュール１０８は、本明細書では、コンピュータ可読媒体に具体化されたコンピュータ実行可能命令で構成されるかまたはコンピュータ実行可能命令を含むものとして述べるが、検索モジュール１０６、マッピングモジュール１０４、形状近似機構モジュール１０８、およびこれらによって実施される機能または操作のいずれかまたはすべては、さらに、コンピューティングデバイス内の相互接続された機械論理回路または回路モジュールとしてそのすべてまたは一部が具体化されてもよいことを理解されたい。言い換えれば、検索モジュール１０６、マッピングモジュール１０４、形状近似機構モジュール１０８、およびこれらの操作および機能は、ハードウェア、ソフトウェア、ファームウェアとして、あるいはハードウェア、ソフトウェア、および／またはファームウェアの様々な組合せとして実現できることが意図されている。
【００２３】
概して、前述のように、形状近似機構モジュール１０８は、特徴空間１１０中で超球１１４を超矩形１１６にマッピングまたは変換するように動作可能である。このマッピングが形状近似機構モジュール１０８によって達成される方式は、マッピングまたは変換される超球１１４のタイプに基づいて異なる場合がある。限定ではないが例えば、一実装形態によれば、各超球１１４は、その超球１１４を完全に囲むサイズを有する超矩形１１６にマッピングされる。例えば、超球１１４が超矩形１１６の中心に配置された場合に超球１１４が完全に超矩形１１６内に含まれることになるような寸法を有する超矩形１１６に、超球１１４をマッピングすることができる。したがって、超矩形の全体的なサイズまたはボリュームは、そのマッピング元である超球の全体的なサイズまたはボリュームに依存することになるのは理解されるであろう。
【００２４】
一実装形態では、各超矩形１１６は、そのマッピング元である超球１１４を完全に囲むことになる最小の可能な超矩形となる。他の実装形態では、誤った負の検索結果が許容される場合、各超矩形１１６は、そのマッピング元である超球１１４を完全に囲むことになる最小の可能な超矩形よりも小さくてよい。
【００２５】
超矩形１１６は、形状近似機構モジュール１０８を使用して特徴空間１１０中の超球からマッピングされるものとして述べてきたが、他の実施形態によれば、特徴空間中の超矩形１１６は、他のモジュールまたはシステムあるいはマッピング技法を使用して、特徴空間１１０中で作成するかまたは特徴空間１１０中にマッピングすることもできることを理解されたい。
【００２６】
概して、検索モジュール１０６は、特徴空間１１０の検索を実施して、所与のクエリポイント１２２に重なる超矩形を識別する。超矩形がＭＤデータオブジェクトである場合、超矩形に重なることおよびマッチすることの定義は前述のとおりである。一実装形態によれば、検索モジュール１０６は、次に述べるように、図３、４、５、および／または６に示す操作を実施する。
【００２７】
最初に図３に目を向けると、図３には、特徴空間１１０を検索する前に検索モジュールによって実施することのできる操作３００を含む例示的な操作フローが示されている。一実装形態によれば、特徴空間１１０に超矩形１１６が投入されると、操作３００が実施される。後でより詳細に述べるように、操作３００は、検索プロセス中に使用されるビットベクトルインデックスの集合を作成する。操作３００は、様々なときに実施することができる。しかし典型的には、操作３００は、各検索操作の前に実施されるのではない。そうではなく、操作３００は通常、多数の超矩形１１６が特徴空間１１０に追加されたとき、または特徴空間１１０から除去されたときに実施されることになる。例えば、操作３００は、ビットベクトルインデックスに関する所与の数の修正が行われた後でのみ実施することができる。
【００２８】
図３に示すように、操作フロー３００の開始時、区分化操作３１０が、特徴空間１１０中の各次元を、互いに素ないくつかの区間に区分化する。例えば、図２に示すように、次元２１０と２１２は両方とも、互いに素な３つの区間に区分化されている。図示のように、次元１  ２１０は、次元１  ２１０中の値４未満の値すべてを含む区間１と、次元１中の値４と８の間の値すべてを含む区間２  ２２６と、次元１中の値８よりも大きい値すべてを含む区間３  ２２８とに区分化されている。特に示されていないが、次元２、および特徴空間１１０中の他のどんな次元も、同様にして区分化されることになる。
【００２９】
区間の開始点と終了点が決定される厳密な方式は、様々である場合があり、超矩形の分布および／または超矩形のサイズなどに依存する場合がある。限定ではないが例えば、一実装形態によれば、ｍ個の区間が望まれるとき、区間と区間の間でｍ−１個の隔壁または区間仕切りが選択される。例えば、図２に示すように、３つの区間ならば２つの区間仕切りを選択する必要がある（３−１＝２）。この実装形態によれば、各次元の最初と最後の区間は、片側には境界がないことになる。例えば、図２に示すように、区間１  ２１０は、片側は値４を境界とするが、その他方の側には境界がないままである。同様に、区間２  ２１２は、片側は値８を境界とするが、その他方の側には境界がないままである。
【００３０】
一実装形態によれば、各区間仕切りの位置は、特徴空間中の超矩形の１つの、値範囲の最初と最後（境界）のどちらかにくるように選択される。例えば、図２に示すように、区間１  ２２４と区間２  ２２６の間の仕切り２３０は、次元１  ２１０に沿ったＲ１  ２１４の値範囲の最後で発生する。同様に、区間２  ２２５と区間３  ２２８の間の仕切り２３２は、次元１  ２１０に沿ったＲ２  ２１６の値範囲の最後で発生する。
【００３１】
一実装形態によれば、区間仕切りの位置は、次のようにして決定される。｜Ｓ｜は特徴空間中の超矩形の数に等しく、ｍは所望の区間数であり、ａ／ｂは、ａをｂで割り整数で切り捨てる除算を表すのに使用され、ａ％ｂは、除算ａ／ｂの剰余を表し、ｋ＝（２＊｜Ｓ｜）％ｍであると仮定する。 
式（１）ＦｉｒｓｔＩＤｓｊ＝ｊ＊［（２＊｜Ｓ｜）／ｍ］＋ｊ  １≦ｊ≦ｋ
式（２）ＲｅｍａｉｎｉｎｇＩＤｓｊ＝ｊ＊［（２＊｜Ｓ｜）／ｍ］＋ｋ  ｋ＋１≦ｊ≦ｍ
【００３２】
式（１）は、最小境界ＩＤに対し、昇順でソートされた、ｍ個の仕切りのうちの第１のｋ［ｊ＝１からｋ］のＩＤをもたらす（ＩＤ＝ｎは、軸に沿ってｎ番目に小さい超矩形境界である）。式（２）は、残りの仕切りのＩＤをもたらす。例えば、ＦｉｒｓｔＩＤｓ１＝５の場合、第１の仕切りは、軸に沿って５番目に小さい超矩形境界にある。この実装形態での考えは、ほぼ等しい数のＭＤデータオブジェクトを各区間に割り振るというものである。というのは、この結果として最終的に、より効率的な検索になるからである。
【００３３】
図２に示す特徴空間および超矩形について式（１）を使用すると、ｋ＝（２＊５）％３＝１であることがわかる。したがって、ＦｉｒｓｔＩＤＳ１＝１＊［（２＊５）／３］＋１＝４である。この場合、第１の隔壁は、４番目の矩形境界にある（境界が昇順でソートされた場合）。図２に示す特徴空間および超矩形について式（２）を使用すると、ＲｅｍａｉｎｉｎｇＩＤｓ２＝２＊［（２＊５）／３］＋１＝７であることがわかる。したがって、第２の隔壁は、７番目の矩形境界にある。４番目および７番目の境界はそれぞれ４および８にあるので、ここが仕切りの位置する場所である。一実施形態によれば、クエリポイント分布に関する予備知識に基づいて、矩形境界の限定的な集合が使用される。この限定的な境界集合も、次いで前述と同一の方式で使用されることになる。
【００３４】
区分化操作３１０に続いて、次いでビットベクトルインデックス構築操作が、各次元の各区間に対応するビットベクトルインデックスを構築する。具体的には、各区間につき、特徴空間１１０中の各超矩形１１６がその区間に重なるか否かを指定するビットベクトルインデックスが作成される。超矩形１１６の値範囲のすべてまたは一部が、次元中の区間によって指定される値範囲内にある場合、超矩形１１６はその区間に重なると言うことができる。例えば図２に関して、超矩形Ｒ１  ２１４、Ｒ４  ２２０、Ｒ５  ２２２はそれぞれ区間１  ２２４に重なり、超矩形Ｒ２  ２１６、Ｒ４  ２２０、Ｒ５  ２２２はそれぞれ区間２  ２２６に重なり、超矩形Ｒ３  ２１８およびＲ５  ２２２はそれぞれ区間３  ２２４に重なる。
【００３５】
一実施形態によれば、各ビットベクトルインデックスは、特徴空間中にある超矩形と同数のビットを含む。さらに、ビットベクトルインデックス中の各ビットは、特徴空間中の超矩形のうちの単一の超矩形に関連する。別の実施形態によれば、ビットベクトルは、超矩形よりも多数のビットを含むことができる。例えば一実施形態では、超矩形が特徴空間から除去されたとき、それに関連するビットは、ビットベクトルインデックスから除去されるのではなく、単に「０」に設定されればよい。
【００３６】
ビットベクトルインデックス中の各ビットは、関連する超矩形が、ビットベクトルインデックスに関連する区間に重なるか否かを指示する。例えば、値「１」を有するビットは、それに関連する超矩形が、ビットベクトルインデックスに関連する区間に重なることを指示することができ、値「０」を有するビットは、それに関連する超矩形が、ビットベクトルインデックスに関連する区間に重ならないことを指示することができる。例えば図２に関して、区間１  ２２４に関連する第１のビットベクトルインデックスは、５つのビットを含むが、これは［１  ０  ０  １  １］と書くことができ、第１のビット（１）は、Ｒ１が区間１に重なることを指示し、第２のビット（０）は、Ｒ２が区間１に重ならないことを指示し、第３のビット（０）は、Ｒ３が区間１に重ならないことを指示し、第４のビット（１）は、Ｒ４が区間１に重なることを指示し、第５のビット（１）は、Ｒ５が区間１に重なることを指示する。この規則を使用すると、区間２  ２２６に関連するビットベクトルインデックスは［０  １  ０  １  １］であり、区間３  ２２８に関連するビットベクトルインデックスは［０  ０  １  ０  １］である。
【００３７】
次に図４に移ると、図４には、特徴空間１１０に関するビットベクトルインデックスを構築するのに使用することのできる操作を含む詳しい例示的な操作フロー４００が示されている。操作フロー４００は、特徴空間１１０中の任意の次元数、および任意の次元区間数の場合の、ビットベクトルインデックスの構築を処理するように動作可能であることは、理解されよう。
【００３８】
図示のように、操作フロー４００の開始時、次元設定操作４１０が、次元変数（ｄｉｍ）を値１に設定または初期化する。次元設定操作４１０に続いて、次元区分化操作４１２が、前述のように次元「ｄｉｍｅｎｓｉｏｎ（ｄｉｍ）」を区間に区分化する。理解されるように、現在、次元変数ｄｉｍは１に設定されているので、次元区分化操作４１２は、所与の特徴空間の第１の次元を区分化することになる。次元区分化操作４１２に続いて、区間設定操作４１４が、区間変数ｉｎｔｖｌを値１に設定または初期化する。次に、超矩形設定操作４１６が、超矩形変数ｒｅｃｔを値１に設定または初期化する。
【００３９】
超矩形設定操作４１６に続いて、ビット設定操作４１８は、超矩形変数ｒｅｃｔで指定された超矩形が、次元変数ｄｉｍで指定された次元の、区間変数ｉｎｔｖｌで指定された区間に重なるかどうか判定する。指定された超矩形が指定された次元の指定区間に重なると判定された場合は、ビット設定操作４１８は、指定された次元の指定区間に関連するビットベクトルインデックス中の、指定された超矩形に関連するビットを１に設定する。しかし、指定された超矩形が指定された次元の指定区間に重ならないと判定された場合は、ビット設定操作４１８は、指定された次元の指定区間に関連するビットベクトルインデックス中の、指定された超矩形に関連するビットを０に設定する。
【００４０】
次に、超矩形インクリメント操作４２０が、超矩形変数ｒｅｃｔをインクリメントする。次いで、矩形数判定操作４２２が、超矩形変数ｒｅｃｔが特徴空間中の超矩形の数＋１に等しいかどうか判定する。超矩形変数ｒｅｃｔが特徴空間中の超矩形の数に等しくない場合は、操作フロー４００はビット設定操作４１８に戻る。しかし、超矩形変数ｒｅｃｔが特徴空間中の超矩形の数＋１に等しい場合は、操作フロー４００は区間インクリメント操作４２４に進み、区間変数ｉｎｔｖｌがインクリメントされる。
【００４１】
区間インクリメント操作４２４に続いて、区間判定操作４２６は、区間変数ｉｎｔｖｌが、次元変数ｄｉｍで指定された次元の区間の数＋１に等しいかどうか判定する。区間変数ｉｎｔｖｌが、次元変数ｄｉｍで指定された次元の区間の数＋１に等しくない場合は、操作フローは超矩形設定操作４１６に戻る。しかし、区間変数ｉｎｔｖｌが、次元変数ｄｉｍで指定された次元の区間の数＋１に等しい場合は、操作フローは次元インクリメント操作４２８に進み、次元変数ｄｉｍがインクリメントされる。
【００４２】
次元インクリメント操作４２８に続いて、次元判定操作４３０が、次元変数ｄｉｍが特徴空間中の次元の数＋１に等しいかどうか判定する。次元変数ｄｉｍが特徴空間中の次元の数＋１に等しくない場合は、操作フロー４００は次元区分化操作４１２に戻る。しかし、次元変数ｄｉｍが特徴空間中の次元の数＋１に等しい場合は、操作フロー４００は終了する。
【００４３】
次に図５に移ると、図５には、特徴空間１１０を検索する際に使用することのできる例示的な操作フロー５００が示されている。より具体的には、操作フロー５００は、前述のように操作フロー３００および／または４００に従って、あるいは他の何らかの操作によって、特徴空間１１０中の各区間につきビットベクトルインデックスが作成された後で、特徴空間１１０を検索する際に使用することができる。図示のように、操作フロー５００の最初に、クエリ受領操作５１４がクエリアイテムを受け取る。次に、クエリマッピング操作５１５が、このクエリアイテムをＭＤ特徴空間中のクエリポイントにマッピングする。
【００４４】
クエリマッピング操作５１５に続いて、区間選択操作５１６が、クエリポイントに重なる区間を各次元から選択する。次元中のクエリポイントの値が、次元中の区間によって指定される値範囲内にある場合、この区間はクエリポイントに重なると言うことができる。次に、論理積操作５１８が、区間選択操作５１６で選択された区間に対応するすべてのビットベクトルインデックスの論理積をとる。この、ビットベクトルインデックスの論理積をとることは、受け取られたクエリポイントにマッチする超矩形の集合を指定する単一の結果ビットベクトルインデックスを生み出す。理解されるように、結果ビットベクトルインデックスによって指定される超矩形の集合は、大抵の場合、特徴空間１１０内にあるすべての超矩形の集合よりもずっと小さいことになる。
【００４５】
論理積操作５１８に続いて、マッチング操作５２０が、受け取られたクエリポイントを、結果ビットベクトルインデックス中で１に索引付けされた各超矩形と比較して、これらの超矩形のうちどれが受け取られたクエリポイントに重なるかを決定する。各超矩形が関連のＭＤデータオブジェクトからマッピングされる場合は、受け取られたクエリポイントを結果ビットベクトルインデックスによって指定された各超矩形と比較するのではなく、受け取られたクエリポイントを直接に、結果ビットベクトルインデックス中で１に索引付けされた超矩形に関連するＭＤデータオブジェクトと比較することができる。
【００４６】
次に図６に移ると、図６には、特徴空間１１０を検索するのに使用することのできる操作を含む、より詳しい別の例示的な操作フロー６００が示されている。操作フローと同様、操作フロー６００は、前述のように操作フロー３００および／または４００に従って、あるいは他の何らかの操作によって、特徴空間１１０中の各区間につきビットベクトルインデックスが作成された後で、実施することができる。図示のように、操作フロー６００の最初に、クエリ受領操作６１０がクエリポイントを受け取る。クエリポイントが受け取られた後、次元設定操作６１２が、次元変数ｄｉｍを１に等しく設定する。次に、区間決定操作６１４が、次元変数ｄｉｍで指定された次元で、クエリポイントを含む区間を決定する。言い換えれば、区間操作６１４は、次元変数ｄｉｍで指定された次元で、クエリポイントに重なる区間を決定する。次いで、ビットベクトルインデックス選択操作６１６が、区間決定操作６１４で決定された区間に対応するビットベクトルインデックスを選択する。
【００４７】
ビットベクトルインデックス選択操作６１６に続いて、次元判定操作６１８が、次元変数ｄｉｍが１に等しいかどうか判定する。次元ｄｉｍが１に等しい場合は、結果ビットベクトルインデックス設定操作６２０が、結果ビットベクトルインデックスを、ビットベクトルインデックス選択操作６１６で選択されたビットベクトルインデックスに等しく設定し、操作フローは次元変数インクリメント操作６２４に進む。しかし、次元判定操作６１８が、次元変数ｄｉｍが１に等しくないと判定した場合は、操作フロー６００は論理積操作６２２に進み、ビットベクトルインデックス選択操作６１６で選択されたビットベクトルインデックスは、結果ビットベクトルとの論理積がとられる。すなわち、論理積がとられて結果ビットベクトルになる。次に、次元変数インクリメント操作６２４が、次元変数ｄｉｍをインクリメントする。
【００４８】
次元変数インクリメント操作６２４に続いて、次元判定操作６２６が、次元変数ｄｉｍが特徴空間中の次元の数に等しいかどうか判定する。次元変数ｄｉｍが特徴空間中の次元の数に等しくない場合は、操作フロー６００は区間決定操作６１４に戻る。しかし、次元変数ｄｉｍが特徴空間中の次元の数に等しい場合は、操作フローは超矩形発見操作６２８に進み、結果ビットベクトル中の各「１」に対応する超矩形が見つけられる。次に、データオブジェクト比較操作６３０が、受け取られたクエリポイントを、超矩形発見操作６２８によって見つけられた超矩形に関連するすべてのＭＤデータオブジェクトと比較する。次いで、データオブジェクト返却操作６３０が、受け取られたクエリポイントにマッチするすべてのＭＤデータオブジェクトを返し、操作フロー６００は終了する。
【００４９】
図７に、本明細書に述べた様々なシステム、方法、およびデータ構造を実施することのできる一動作環境７１０を示す。図７の例示的な動作環境７１０は、コンピュータ７２０の形態の汎用コンピューティングデバイスを含み、コンピュータ７２０は、処理ユニット７２１と、システムメモリ７２２と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット７２１に動作可能に結合するシステムバス７２３とを備える。処理ユニット７２１は１つだけあっても複数あってもよく、したがってコンピュータ７２０のプロセッサは、単一の中央処理装置（ＣＰＵ）で構成されるか、あるいは、並列処理環境と一般に呼ばれる複数の処理ユニットで構成される。コンピュータ７２０は、従来型のコンピュータ、分散コンピュータ、またはその他いずれかのタイプのコンピュータとすることができる。
【００５０】
システムバス７２３は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。システムメモリは単にメモリと呼ばれることもあり、読出し専用メモリ（ＲＯＭ）７２４およびランダムアクセスメモリ（ＲＡＭ）７２５を含む。ＲＯＭ７２４には、起動中などにコンピュータ７２０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）７２６が記憶されている。コンピュータ７２０はさらに、ハードディスク（図示せず）に対して読み書きするためのハードディスクドライブ７２７と、取外し可能な磁気ディスク７２９に対して読取りまたは書込みするための磁気ディスクドライブ７２８と、ＣＤ  ＲＯＭやその他の光媒体など、取外し可能な光ディスク７３１に対して読取りまたは書込みするための光ディスクドライブ７３０とを備える。
【００５１】
ハードディスクドライブ７２７、磁気ディスクドライブ７２８、および光ディスクドライブ７３０は、それぞれハードディスクドライブインタフェース７３２、磁気ディスクドライブインタフェース７３３、および光ディスクドライブインタフェース７３４によって、システムバス７２３に接続される。ドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶域をコンピュータ７２０に提供する。この例示的な動作環境では、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）など、コンピュータによってアクセス可能なデータを記憶することのできる任意のタイプのコンピュータ可読媒体を使用することができることを当業者なら理解されたい。
【００５２】
ハードディスク、磁気ディスク７２９、光ディスク７３１、ＲＯＭ７２４、またはＲＡＭ７２５には、いくつかのプログラムモジュールを記憶することができ、これらにはオペレーティングシステム７３５、１つまたは複数のアプリケーションプログラム７３６、その他のプログラムモジュール７３７、およびプログラム  データ７３８が含まれる。ユーザは、キーボード４０やポインティングデバイス７４２などの入力デバイスを介して、コマンドおよび情報をパーソナルコンピュータ７２０に入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたシリアルポートインタフェース７４６を介して処理ユニット７２１に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、その他のインタフェースで接続されてもよい。モニタ７４７および他のタイプの表示デバイスも、ビデオアダプタ７４８などのインタフェースを介してシステムバス７２３に接続される。モニタに加えて、コンピュータは通常、スピーカやプリンタなど、その他の周辺出力デバイス（図示せず）も備える。
【００５３】
コンピュータ７２０は、リモートコンピュータ７４９など１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。これらの論理接続は、コンピュータ７２０に接続されているかまたはその一部である通信デバイスによって、あるいは他の方式で達成することができる。リモートコンピュータ７４９は、別のコンピュータ、サーバ、ルータ、ネットワークＰＣ、クライアント、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、図７にはメモリ記憶デバイス７５０だけしか示されていないが、通常はコンピュータ７２０に関して上述した要素の多くまたはすべてを備える。図７に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）７５１およびワイドエリアネットワーク（ＷＡＮ）７５２を含む。このようなネットワーキング環境は、オフィスネットワーク、企業全体のコンピュータネットワーク、イントラネット、インターネットでよくみられ、これらはすべてネットワークのタイプである。
【００５４】
ＬＡＮネットワーキング環境で使用されるときは、コンピュータ７２０は、通信デバイスの一種であるネットワークインタフェースまたはアダプタ７５３を介して、ローカルネットワーク７５１に接続される。ＷＡＮネットワーキング環境で使用されるときは、コンピュータ７２０は通常、通信デバイスの一種であるモデム７５４を備えるか、または、ワイドエリアネットワーク７５２を介して通信を確立するための他の任意の種類の通信デバイスを備える。モデム７５４は内蔵でも外付けでもよく、シリアルポートインタフェース７４６を介してシステムバス７２３に接続される。ネットワーク化された環境では、パーソナルコンピュータ７２０に関して示したプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに記憶することができる。図示のネットワーク接続は例であり、コンピュータ間で通信リンクを確立するための他の手段および通信デバイスを使用してもよいことは理解される。
【００５５】
超矩形およびビットベクトルインデックスを使用した様々な検索方法で使用できる、またはこれらの検索方法に関連して使用できる、様々なシステムおよび方法について示した。これらのシステム、方法、およびデータ構造は、添付の特許請求の範囲に記載した様々な要素または操作を組み込むものとして述べた。しかし、以上の記述は、本特許の範囲を限定することを意図したものではないことを理解されたい。そうではなく、発明者らは、特許請求されたシステム、方法、およびデータ構造が他の方法で実施されて、現在または将来の他の技術に関連する、述べた操作または要素に類似する種々の操作または要素、あるいは操作または要素の組合せが含まれてもよいことを意図している。
【図面の簡単な説明】
【００５６】
【図１】例示的なデータマッピングおよび検索システムを示す図である。
【図２】図１のデータマッピングおよび検索システムの例示的な特徴空間を示す図である。
【図３】図２の特徴空間を検索するための準備で実行することのできる様々な操作を示す例示的な操作フロー図である。
【図４】図２の特徴空間を検索するための準備で実行することのできる様々な操作を示す別の例示的な操作フロー図である。
【図５】図２の特徴空間を検索する際に実行することのできる様々な操作を示す例示的な操作フロー図である。
【図６】図２の特徴空間を検索する際に実行することのできる様々な操作を示す別の例示的な操作フロー図である。
【図７】図１のデータマッピングおよび検索システムと図４〜６の操作フローとを実施することのできるコンピューティングシステムの一実施形態を示す図である。
【図１】
2007521565.tif 000002
【図２】
2007521565.tif 000003
【図３】
2007521565.tif 000004
【図４】
2007521565.tif 000005
【図５】
2007521565.tif 000006
【図６】
2007521565.tif 000007
【図７】
2007521565.tif 000008
【国際調査報告】
2007521565.tif 000009
2007521565.tif 000010