(57)【特許請求の範囲】
【請求項１】
データベースから情報を抽出するための方法であって、そのデータベースは複数のデータレコードを有し、それぞれのデータレコードは、少なくとも２つのデータ要素を有し、それぞれのデータ要素はデータ要素の型式とデータ要素の値とにより定義される、方法であって、
−前記データベースの前記データレコードをコンピュータの主メモリに読み込むステップと；
−それぞれのデータ要素の型式のそれぞれ異なるデータ要素の値に対して、異なるバイナリ・コードを割り当てて、前記データレコードをバイナリ・コード化された状態で格納するステップと；
−少なくともひとつのデータ要素の値がユーザにより選択されたことを検出するステップと；
−前記ユーザによる選択の対象となるすべてのデータ要素の値を得るために、前記バイナリ・コード化されたデータレコードを検査するステップと；
−前記ユーザによる選択の対象となるすべてのデータ要素の値を、状態セットに記録するステップと；
を備えるとともに、
前記ユーザによる選択によって除外されていないすべてのデータ要素の値が最初は状態セットに含まれており、
前記データレコードを検査するステップは、
データ要素の値がすべて前記状態セットに属しているようなすべてのデータレコードを見つけるステップと、
前記データレコードを見つけるステップにおいて見つけられたいずれのデータレコードにも現れないデータ要素の値を前記状態セットから除外するステップと、
を備え、
前記データベースの前記データレコードは２またはそれ以上の表で構成されており、前記データレコードを検査するステップでは、前記表の前記データレコードは、前記状態セットの要素が変化しなくなるまで繰り返して検査されるとともに、
前の選択の対象になったデータ要素の値のうちの少なくともいずれかがユーザにより新たに選択されたことをさらに検出するたびに、前記バイナリ・コード化されたデータレコードを検査するステップと、前記選択の対象となるすべてのデータ要素の値を状態セットに記録するステップとを繰り返すことを特徴とする方法。
【請求項２】
少なくとも前記選択の対象となる前記データ要素の値を人間が読みとれる型式でユーザに提示するステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項３】
前記状態セットは、それぞれのデータ要素の型式についての状態ベクトルを備え、
それぞれの状態ベクトルは、対応するデータ要素の型式のそれぞれのデータ要素の値について１つの要素を有し、
前記データレコードを検査するステップは、前記選択の対象となるデータ要素の値に対応する前記状態ベクトルのそれぞれの要素を第１の値に設定し、前記選択の対象となるデータ要素の値に含まれていないデータ要素の値に対応する状態ベクトルのそれぞれの要素を第２の値に設定することを特徴とする請求項１または２に記載の方法。
【請求項４】
それぞれのデータ要素の型式について頻度ベクトルを供給するステップをさらに備え、
それぞれの頻度ベクトルは、対応するデータ要素の型式のそれぞれのデータ要素の値について１つの要素を有しており、
前記データレコードを検査するステップは、すべてのデータ要素の値が前記状態セットに属しているようなデータレコードのデータ要素の値に対応する頻度ベクトルの要素を、１だけ増加させるステップを備えることを特徴とする請求項１〜３のいずれかに記載の方法。
【請求項５】
すべてのデータレコードの検査が終了した時にゼロの頻度カウントを有する頻度ベクトルの要素に対応するそれぞれのデータ要素の値を、前記状態セットから除外するステップをさらに備えたことを特徴とする請求項４記載の方法。
【請求項６】
第１のデータ要素の型式のデータ要素の値が論理ＡＮＤによって関係づけられていることを検出するステップを備え、
前記少なくともひとつのデータ要素の値がユーザにより選択されたことを検出する前記ステップは、前記第１のデータ要素の型式のｎ個のデータ要素の値が選択されたことを検出し、
前記データレコードを検査するステップは、頻度ベクトル要素の値としてｎを有する第２のデータ要素の型式のデータ要素の値を得るステップを備えたことを特徴とする請求項４または５に記載の方法。
【請求項７】
得られた前記第２のデータ要素の型式のデータ要素の値を、前記第１のデータ要素の型式のｎ個のデータ要素の値の前記選択によって除外される前記第１のデータ要素の型式のデータ要素の値を得るための選択として利用することを特徴とする請求項６記載の方法。
【請求項８】
前記コンピュータの主メモリに読み込まれた前記複数のデータレコードは複数のリストの形態によって前記コンピュータのディスプレイ上に提示され、
それぞれのリストは異なるデータ要素の型式のデータ要素の値を有し、
それぞれのデータ要素の値はそれぞれのリストに一度だけ現れ、
前記選択の対象となるデータ要素の値は第１の方法によって示され、
前記選択の対象とならないデータ要素の値は第２の方法によって示されることを特徴とする請求項１〜７のいずれかに記載の方法。
【請求項９】
データベースから情報を抽出するための装置であって、そのデータベースは複数のデータレコードを有し、それぞれのデータレコードは、少なくとも２つのデータ要素を有し、それぞれのデータ要素はデータ要素の型式とデータ要素の値とにより定義される、装置であって、
−前記データベースの前記データレコードをコンピュータの主メモリに読み込む手段と；
−それぞれのデータ要素の型式についてそれぞれ異なるデータ要素の値に対して異なるバイナリ・コードを割り当てて、前記データレコードをバイナリ・コード化された状態で格納する手段と；
−少なくともひとつのデータ要素の値がユーザにより選択されたことを検出する手段と；
−前記ユーザによる選択の対象となるすべてのデータ要素の値を得るために、前記バイナリ・コード化されたデータレコードを検査する手段と；
−前記ユーザによる選択の対象となるすべてのデータ要素の値を、状態セットに記録する手段と；
を備えるとともに、
前記ユーザによる選択によって除外されていないすべてのデータ要素の値が最初は状態セットに含まれており、
前記データレコードを検査する手段は、
データ要素の値がすべて前記状態セットに属しているようなすべてのデータレコードを見つける手段と、
前記見つける手段において見つけられたいずれのデータレコードにも現れないデータ要素の値を前記状態セットから除外する手段と、
を備え、
前記データベースの前記データレコードは２またはそれ以上の表で構成されており、前記データレコードを検査する手段では、前記表の前記データレコードは、前記状態セットの要素が変化しなくなるまで繰り返して検査されるとともに、
前の選択の対象になったデータ要素の値のうちの少なくともいずれかがユーザにより新たに選択されたことをさらに検出するたびに、前記データレコードを検査する手段による、前記バイナリ・コード化されたデータレコードの検査と、前記データ要素の値を前記状態セットに記録する手段による、その選択の対象となるすべてのデータ要素の値の記録とを繰り返し行う手段をさらに備えることを特徴とする装置。
【発明の詳細な説明】
技術分野
本発明は、複数のデータレコード（ｄａｔａ  ｒｅｃｏｒｄｓ）を備えたデータベースから情報を抽出するための方法及び装置に関し、ここで、それぞれのデータレコードは少なくとも２つのデータ要素を備え、それぞれのデータ要素は、データ要素の形式と、データ要素の値とにより定義される。
本発明の背景
データベースに関して抽出するするための周知な方法は、ＳＱＬ（Ｓｔｒｕｃｔｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を用いるものである。データベースから情報を抽出するために、そのデータベースに対して、選択命令文（ＳＥＬＥＣＴ  ｓｔａｔｅｍｅｎｔｓ）が質問される。基本的には、その選択命令文に対する回答は、表（ｔａｂｌｅ）を構成しているデータレコードの数である。
ＳＱＬのひとつの欠点は、ＳＱＬにおいてはデータベースの表構造について知っていることが前提とされていることである。より具体的には、ユーザは、情報を表にしている選択命令文において、検索される形式で命令をすることが必要とされる。例えば、データベースが衣服に関するものであり、情報が２つの表に格納されている場合を想定すると、それらの表のうちの第１の表は衣服の形やそのサイズを格納し、第２の表は衣服の形と価格とを格納することができる。所定のサイズと所定の価格とを有するすべて形の衣服を抽出するためには、２つの表の名前と、衣服の形、価格及びサイズを含むテーブルのフィールドの名前と、所定の価格と、所定サイズとを特定した複雑な選択命令文を用いなければならなかった。
さらに、検索されるべき情報が、データ要素に索引の付けられていない（ｎｏｔ  ｉｎｄｅｘｅｄ）カラム（ｃｏｌｕｍｎ）にある場合には、そのカラムはリニア（ｌｉｎｅａｒｌｙ）に検索しなければならず、そのカラムがたくさんのデータ要素値を有する場合には、応答時間が長くなる。これは、特に、そのデータベースが商用のものであり、ユーザがそのデータベースに接続している時間に対して料金を支払うような場合に、深刻な欠点となる。
本発明の要約
従って、本発明の目的は、前述したような欠点を軽減し、データ・ベースから情報を抽出する新規な方法であって、ユーザがそのデータ・ベースの表構造に関してなんら前もって知識を有することが必要とされずにデータ・ベースから迅速に情報を得ることができる方法を提供することである。
この目的は、請求項１と請求項１３とに列挙されている特徴を有する方法及び装置によりそれぞれ達成される。それらの望ましい実施の形態は、従属項に列挙されている。
本発明によれば、データをオフ・ライン（ｏｆｆ−ｌｉｎｅ）で処理するために、データ・ベースのデータレコードは、コンピュータの主メモリに読み込まれる。データ・ベースは２次メモリに格納されるか、またはコンピュータがモデムによって接続されているデータ・ベースに遠隔的に格納されても良い。例えば、このように主メモリに読み込まれるデータ・ベースは、もっと大きいデータ・ベース或いは２またはそれ以上の複数のデータ・ベースの組み合わせ、のうちの選択された一部でもよい。
さらに、それぞれのデータ要素の型式のそれぞれの異なるデータ要素の値にはバイナリ・コードが割り当てられ、データレコードはバイナリ・コード化された形式で格納される。バイナリ・コード化することにより、きわめて迅速なサーチを表について実行することができる。さらに、冗長な情報を除去することが可能となり、その結果としてデータ量を減少することができる。
データ・ベースの中の少なくとも一つのデータ要素が選択されたことが認識された時、すなわち、例えばユーザがそのデータ要素を「クリック」した時には、その選択の対象とするすべてのデータ要素の値を見つけるためにバイナリ・コード化されたデータレコードが検査され、そして、これらのデータ要素の値は状態セット（ｓｔａｔｕｓ  ｓｅｔ）に記録される。すなわち、本発明による方法では、１またはそれ以上のデータ要素の値の選択の対象がどのデータレコードであるかではなく、その選択の対象はどのデータ要素の値であるかが記録され、それによって選択の結果がきわめて明瞭かつコンパクトな方法でユーザに提示される。
この方法の結果として得られたデータ要素の値はユーザに直接、提示してもよく、または提示する前にさらに処理されても良く、または例えば別のプログラムに対する入力として利用するように内部的に利用しても良い。
結果の提示は、その選択の対象とされるすべてのデータ要素の値のリストの形式をとることもできるし、または、選択の対象とされる値が第１の方法で示され、その選択により除外された値は第２の方法或いはその他の適当な形式により示されるようにした、すべてのデータ要素の値のリストとすることもできる。
データ・ベースからデータを抽出するための本発明の方法は、きわめて速い。応答時間は、データ・ベースのデータの量に線形に依存する。データ要素の選択の対象とされるデータレコードのすべてのデータ要素の値が示されるので、ユーザは次になしうるあらゆる選択を容易に把握することができ、このことによってデータ・ベースからの情報について継続的にサーチすることが容易になる。
【図面の簡単な説明】
本発明の実施の形態は、補遺Ａの表および図面を参照しつつ、以下に例示によって説明され、ここで、
図１は、本発明による方法の一般的な概略を提供するダイアグラム図であり、
図２は、本発明による方法のＯＲモードにおける表の検索を例示したダイアグラム図であり、
図３は、本発明による方法のＡＮＤモードにおける表の検索を例示したダイアグラム図である。
発明の実施の形態
図１及び図２、及び、本発明の特定の実施例に関する補遺Ａの表１−３９を参照しつつ、以下に、本発明の基本的なモードとＯＲモードとについて説明する。表１及び表２は、様々な衣服に関する情報を含んだデータベースの一例を表すものである。表１は、データ要素の型式として、「衣服」、「色」、「サイズ」及び「科目番号（ＡｒｔＮｏ）」を含んでいる。表２は、データ要素の型式として、「科目番号」と「価格」とを含んでいる。これらの表から分かるように、「衣服」の型式で定義されているデータ要素の型式には、データの値「シャツ」と、データの値「ジーンズ」とがある。同様に、「色」の型式のデータ要素には、データの値として「青」と「赤」とがあり、また、「サイズ」の型式のデータ要素にはデータの値として「３２」、「３５」、「３９」或いは「４０」があり、また、「科目番号」の型式のデータ要素にはデータの値として「１００１」、「１００３」或いは「２１００」があり、また、「価格」の型式のデータ要素にはデータの値として「１８０」と「２２０」とがある。
通常は、これらのデータ要素の値は、アスキー・コードによる文字列（ＡＳＣＩＩ−ｃｏｄｅｄ  ｓｔｒｉｎｇｓ）の型式で格納されている。
本発明による方法は、コンピュータ・プログラムにより実行される。本発明による方法の第１のステップ（図１の枠１０１を参照のこと。）においては、例えば、データベースのすべての表、すなわちこの場合には表１及び表２を選択するような選択命令文を用いることによって、プログラムは、データベースのすべてのデータレコードを読み込む。
次に、入力されたそれぞれの表について、次のステップ（枠１０２を参照のこと。）が実行される。第１に、その表のカラム名、すなわちデータ要素の型式が連続的に読み見込まれる。新しいデータ要素の型式が現れる度に、データ構造は、そのデータのために例示（ｉｎｓｔａｎｔｉａｔｅｄ）される。次に、すべてのデータレコードをバイナリ型式で含むために、内部表構造（ｉｎｔｅｒｎａｌ  ｔａｂｌｅ  ｓｔｒｕｃｔｕｒｅ）が例示され、これにより、データレコードは、連続的に読み出され、バイナリ・コード化される。読み出されたそれぞれのデータ要素の値について、対応するデータ要素の型式のデータ構造がチェックされ、その値が前に割り当てられたバイナリ・コードであるか否が確認される。そうである場合には、バイナリ・コードは、上述した表構造の中の適当な場所に挿入される。そうでない場合には、データ構造に挿入される前に、新しいバイナリ・コード、望ましくは、昇順で次のコードが割り当てられ、そのデータ要素の値は、データ構造に追加される。換言すれば、それぞれのデータ要素の型式に関して、異なるデータ要素の値ごとに異なるバイナリ・コードが割り当てられる。
表３−７は、表１及び表２を構成しているデータベースの中の異なるデータ要素の値に対して割り当てられたバイナリ・コードを表す。表８及び表９（枠１０４を参照のこと。）は、表１及び表２のすべてのデータレコードをそれぞれバイナリ型式で格納している。すなわち、表８及び表９は、図１の表１及び表２を非常に圧縮したものとされており、表中のデータを極めて速くリニア検索することができる。読み出しを容易にするために、表３−９のバイナリ・コードは、それぞれ１０進数によって表現されている。
入力された表のすべてのデータレコードが読み込まれて、バイナリ・コード化されたら、前述した内部表構造（ｉｎｔｅｒｎａｌ  ｔａｂｌｅ  ｓｔｒｕｃｔｕｒｅ）のバイナリレコードがソート（ｓｏｒｔ）され、重複したデータレコードはソートされた表から取り除かれる。
前述したような、バイナリ化されソートされた表を作るステップは、適当なアルゴリズムによって、Ｎ２ｌｏｇＮ回行うことができ、ここで、Ｎは表の中のデータの数である。
本発明による方法の次のステップにおいては、それぞれのデータ要素の型式に対して、異なるデータ要素の値のそれぞれについてひとつの位置（ｐｏｓｉｔｉｏｎ）を有する頻度ベクトルが生成される。さらに、それぞれのデータ要素の型式について、それぞれ異なるデータ要素の値についてひとつの位置を有する２つのブール文字列（Ｂｏｏｌｅａｎ  ｓｔｒｉｎｇｓ）が生成される。それぞれのデータ要素の値に対する第１のブール文字列は、ユーザがした選択を表すために用いられる。以下の説明では、この第１のブール文字列は、ユーザ選択ベクトル（ｕｓｅｒ  ｓｅｌｅｃｔｉｏｎ  ｖｅｃｔｏｒ）と称する。第２のブール文字列は、データ要素の値の状態を表すために用いられる。以下の説明では、この第２のプール文字列は、状態ベクトル（ｓｔａｔｕｓ  ｖｅｃｔｏｒ）と称する。
以上の説明に関連して、状態ベクトルは、厳密な意味では、ベクトルでなくても良いことも説明する必要がある。すなわち、それは、特定の状態を有するようなすべてのデータ要素の値のリスト、例えば、ユーザの選択によって含まれまたは除外されるようなもの、または、データ要素の値の状態を記録するための他のいかなる適当な状態のセット、であっても良い。しかし、状態ベクトルを前述のように利用することによって、状態のセットを簡単に表現することができる。
上述したステップは、一度だけ実行される。そして、このステップが完了すると、バイナリ化された表において、繰り返し検索が実行されることもある。
本発明による方法の次のステップ（枠１０３を参照のこと。）では、データベースの内容が、コンピュータのディスプレイ上でユーザに示され、この時に、望ましくは、表１０−１４のような型式がとられ、ここで、それぞれのデータ要素の型式についてのデータ要素の値は、それぞれ別の縦書きのリストに示されている。それぞれのリストは、そのデータ要素の型式についての見出しを有する。互いに異なるそれぞれの値は、このリストにおいては、一度しか現れない。もちろん、この表示モードは、本発明による方法以外の方法について用いることもできる。
これで、ユーザがディスプレイ上のリストの中の１またはそれ以上のデータ要素の値を選択することにより、データベースの中の情報を調べることができるようになる。その選択は、例えば、選択する１またはそれ以上のデータ要素の値をクリックするか触ることにより、することができる。または、そのような選択は、キーボードによって入力することもできる。
ユーザにより選択がされたことが検知されると、次のステップが実行される（枠１０５−１０８を参照のこと）。第１に、データ要素の値が選択されたリスト（またはデータ要素の型式）に対応するユーザ選択ベクトルの中の、このデータ要素の値に対応する位置に、１（または、真（ＴＲＵＥ））が挿入される。このユーザ選択ベクトルのその他のすべての位置と、その他のユーザ選択ベクトルのその他のすべての位置には、０（または、偽（ＦＡＬＳＥ））が挿入される。これらのステップの結果は、表１５−１９に示されている。
第２に、データ要素の値が選択されたリストに対応するユーザ選択ベクトルが、対応する状態ベクトル（ｓｔａｔｕｓ  ｖｅｃｔｏｒ）にコピーされる。いずれのデータ要素の値も選択されなかったリストに対応する、残りの状態ベクトルは、そのリストのすべての可能なデータ要素の値が選択されたものとして取り扱われる。何故ならば何の選択もないということは、このデータ要素の型式に関しては何の制限もないということを意味するからである、従って、それら全ての位置に１が挿入される。
たとえば、ユーザが値「シャツ」を選択した場合を想定する。すると、表２０に示したように、リスト「衣服」に関する状態ベクトルの第１の位置には１が挿入され、第２の位置には０が挿入される。その他のすべてのブール文字列は表２１−２４に示したように１によって満たされる。
これに関連して、ユーザ選択ベクトルは、ＯＲモードにおける方法を実行することに関しては義務的ではないことを説明する必要がある。ユーザの選択は、独立したベクトルまたはリストに記録することが可能であり、ユーザの選択は、状態ベクトルに直接エンコードできる。しかし、ユーザ選択ベクトルは、ＡＮＤモード（枠１０９を参照のこと。）においては用いられる。
次のステップでは、プログラムは引き続いて、バイナリ化された表のデータレコードの検索（ｔｒａｖｅｒｓｅ）をする（図１の枠１１０−１１１及び図２を参照のこと。）。第１に頻度ベクトルがクリアされる（枠２０２）。それぞれのデータレコードのそれぞれの値について、対応する状態ベクトルの対応する値が１であるかをチェックする（枠２０３）。もしデータレコードのすべての値についてそうであるならば、プログラムは「ヒット」または「合致（ｍａｔｃｈ）」であると判断する（枠２０４）。そして、対応する頻度ベクトルの対応する値が１だけ増加される（枠２０５）。
表の中のすべてのデータレコードが調べられたら（枠２０６）、対応する頻度ベクトルの頻度カウントがゼロであるような状態ベクトルのすべての位置をクリアする（０に設定する）ことにより、対応する状態ベクトルが更新（ｕｐｄａｔｅ）される（枠２０７及び２０８）。このようにして、頻度ベクトルは、その選択に含まれないこれらのデータ要素の値を探すために利用することができる。
データベースにもっと表がある場合には、これらの表について前述のステップが繰り返される。すべての表が検査されたら、前述したステップはすべての表についてもう一度繰り返される。この手続きは、状態ベクトルがもはや変化しなくなるまで続けられる（枠１１１）。通常は、それぞれの表を１回だけ、または２回検索することが必要とされる。しかし、データベースがひとつの表のみを有する場合は、この表はもちろん１回だけ検査されることが必要とされる。
表２５−２９は、データ要素の値として「シャツ」が選択された後に表８と９が一度だけ検索された時の、頻度ベクトルの内容を示している。状態ベクトルの要素のうちで、対応する頻度ベクトル要素の値がゼロよりも大きいものは「１」を有し、その他のすべての要素は、「０」を有する。
これらの表の検査に必要とされる時間は、これらの表に含まれているデータの量に線形に比例している。
次のステップでは、選択の結果がユーザに示される（枠１１２と１０３）。この選択に含まれるデータ要素の値、すなわちその選択に合致するデータレコードのデータ要素の値、は第１の方法、例えば第１の色、により示され、その選択から除外されたデータ要素の値は、異なる方法、例えば第２の色により示される。これらの値は状態ベクトルから得られる。さらに、選択された値、すなわちユーザ選択ベクトルから得られた値、は望ましくはさらに異なる方法により示される。表３０−３４は、値として「シャツ」が選択されたような前述の場合において、その結果がユーザにどう示されるかを示している。表に示されているように、サイズ３２と３５及び科目番号２１００が除外されている、何故ならばサイズ３２または３５、或いは科目番号２１００のシャツは存在しないからである。
ここで、ユーザがさらに採りうるデータ要素の値のうちのいずれか、例えばサイズの値「４０」、を選択した場合は、頻度ベクトルはクリアされ、前述のステップが繰り返されて、どのデータレコードが選択「シャツ」と選択「４０」の両方に合致するかを調べる。この結果は表３５−３９に示されている。ここで、ユーザがサイズ４０のシャツを希望する場合は、価格が１８０の青のシャツとなることが明らかになる。
前述の例では、異なるデータ要素の型式の間で、想定された論理的ＡＮＤ操作が存在することが示されている。すなわち、（衣服＝シャツ）ＡＮＤ（サイズ）＝（４０）ＡＮＤ（色）＝（青）ＡＮＤ（科目番号）＝（１００１）ＡＮＤ（価格）＝（１８０）である。しかし、いずれかのデータ要素の値と、同じデータ要素の型式とは、通常は論理ＯＲ演算によって関連づけられる。このことは、第２の選択の前に、サイズは「３９」と「４０」のいずれかであったという事実によって示されている。
もし、ユーザが除外されている値を選択した場合は、少なくとも、その新たな選択と矛盾するそれまでのすべての選択は、その状態をそれに応じて変化させる。また、ユーザが一度に複数のデータ要素の値を選択することも可能である。
望ましくは、本発明による方法はＡＮＤ機能、すなわち論理ＡＮＤ演算によって関連づけられる同一のデータ要素の型式のうちの第１のデータ要素の値と第２のデータ要素の値とを選択すること、を許容する。これは、ＳＱＬによって実行すると、時間がかかり、しかも煩雑な操作である。本発明による方法によれば、ユーザは単に、ＡＮＤカテゴリーにある所望のデータ要素の型式を特定すればよい。
ＡＮＤの原理は、表４０−４６を参照にしつつ説明される。表４０−４４に示されているように、４つの異なる国において７種類の異なる調査が実施された場合を想定する（枠３０１）。スウェーデンを選択した結果は、表４３と４４に示されている。調査１００３、１００５及び１００６は除外されている。何故ならばこれらのいずれも調査もスウェーデンでは実施されていないからである。イタリーも除外されている。何故ならばスウェーデンとイタリーの両方で実施された調査はないからである。
データ要素の型式が、ＡＮＤのカテゴリーにあると特定された場合は、プログラムはまず、すべてのデータ要素の型式がＯＲのカテゴリーにあった前述の場合と同様に、バイナリ化された表を検索し、その結果として、調査１００１、１００２、１００４及び１００７を見つける。スウェーデンを選択したことによって除外された国を見つけるためには、最初の検索の間に見つけられた前述の調査を入力（選択された値）として、バイナリ化された表をもう一度検索する。この第２の検索の結果として、イタリーについてヒットは無く、すなわち、除外される。
ユーザが次のステップで、フィンランドを選択する場合は、その結果は表４５と４６に示されているようになり、すなわち調査１００１及び１００７のみが対象となりうる。バイナリ化された表の最初の検索が、スウェーデンとフィンランドとを選択された値として、前述のように実行される。複数のヒットのうちのいずれがＡＮＤ条件を満足するかを決定するために、プログラムは頻度ベクトルをチェックする。頻度カウントが選択された国の数、ここでは２、に等しいような調査のみが、このＡＮＤ条件を満足する。より一般的には、第１のデータ要素の型式がＡＮＤカテゴリーにあるものと特定され、この型式のｎ個のデータ要素の値が選択されている場合は、頻度カウントがｎに等しいような第２の型式のデータ要素の値のみが対象となりうる。
本発明による方法のＡＮＤモードの望ましい実施の形態について、図３を参照しつつ以下により詳細に説明する。
以下では、表４０に対応するバイナリ化された表がすでに生成されており、ユーザ選択ベクトルと状態ベクトルと頻度ベクトルとが例示されていると想定する（枠３０１）。また、説明の容易のために、表の右側カラムはＡＮＤカテゴリーにあるものと特定されたものであると想定する。
ＡＮＤとして特定されたデータ型式の１または複数のデータ要素の値をユーザが選択したことが検知されると、そのユーザの選択は、ユーザ選択ベクトルにエンコードされる。そして、状態ベクトルに初期値が割り当てられる。ＯＲモードにおける場合とは異なり、状態ベクトルのすべての要素は「１」に設定される、何故ならば、ＡＮＤリストの中の１または複数の値を選択したことは、同一のリストの中の別の値を除外したことを意味するわけではないからである。しかし、ＡＮＤモードにおいて最初にバイナリ化された表の検索をする時に、その表の左側カラムに対応する状態ベクトルは、そのバイナリ化された表の右側カラムに対応するユーザ選択ベクトルと共に、入力として用いられる。
バイナリ化された表を最初に検索する前に、その表の左側カラムに対応する頻度ベクトルはクリアされる（枠３０２）。そして、その表のそれぞれのデータレコードについて（枠３０３）、次のステップが実行される。もし、表の右側カラムのデータ要素の値に対応するユーザ選択ベクトルの要素が設定されている場合、左側カラムのデータ要素の値に対応する頻度ベクトルの要素が１だけ増加される（枠３０４）。
すべてのデータレコードの検索が終了すると（枠３０５）、次のステップが実行される。頻度ベクトル要素がＡＮＤカテゴリーのリストの中でユーザによりなされた選択の数、すなわち右側のユーザ選択ベクトルにおける１の総数、に等しくない場合は、表の左側カラムに対応する頻度ベクトルのそれぞれの要素について、左側の状態ベクトルの対応する要素がクリアされる（枠３０６）。
前述のステップの結果は、ユーザ選択に含まれている、表の左側カラムのデータ要素の値である。右側カラムのデータ要素の値の状態は、この表の最初の検索によって影響を受けない。右側カラムのどのデータ要素の値がそのユーザの選択によって含まれるのかを決定するために、その表の左側カラムに対応する更新された状態ベクトルとその表の右側カラムに対応する状態ベクトルを入力として、バイナリ化された表の第２の検索が実行される。
まず、右側カラムの頻度ベクトルがクリアされる（枠３０７）。次に、その表のそれぞれのデータレコードについて（枠３０８）、次のステップが実行される。もし、表の左側カラムのデータ要素の値に対応するユーザ選択ベクトルの要素が設定されている場合、右側カラムのデータ要素の値に対応する頻度ベクトルの要素が１だけ増加される（枠３０９）。
すべてのデータレコードの検査が終了すると（枠３１０）、右側の状態ベクトルの要素であって、対応する左側の頻度ベクトルの要素がゼロであるような、これらの要素はクリアされる。そして、「１」であるような状態ベクトルの要素は、ユーザの選択に含まれているデータ要素の値を示し、その結果は、表４３及び４４または４５及び４６に示されているようになる。
以上の説明では、カラムが２つの表を参照しつつ、ＡＮＤモードについて説明した。しかし、複数カラムの表から２カラムの表を生成することによって、複数カラムの表の中の１またはそれ以上のカラムに関連してＡＮＤを実行することも可能である。ＡＮＤが１つのカラムについて実行される場合には、２カラムの表を生成するために、その複数カラムの表から、このカラムとＡＮＤカラムとが抽出される。そして、ＡＮＤが２またはそれ以上のカラムについて実行される場合は、これらのカラムは合成されて新しい一つのカラムにされ、２カラムの表を生成するためにＡＮＤカラムと共に用いられる。
時に、データベースが表に除外のみを有し、その他のすべての関係は、通常の法則に従っている場合がある。このことを反映するために、余分なデータレコードを表の最後に付け加えて、その中の１またはそれ以上、しかしすべてではない、のデータ要素の値をアスタリスク（＊）とすることができる。このアスタリスクは、そのデータ要素の値が特定されておらず、または開放されていることを示す。
「ワイルド・カード」レコードまたはデフォルトレコードと称される、このデータレコードについての情報は、別に格納される。この情報に基づいて、プログラムは、その表がワイルド・カードのデータレコードを含むことと、その表がそれに従って取り扱われるべきものであることを、認識する。
ここで、表４７及び４８に示した例について考えてみる。表４７は、自動車のメーカとその国とを示している。表４８は、それぞれの自動車メーカのシリンダ容積を示している。表４８は表４７よりも多くのメーカを示しており、表４７に示されてないのは、日本のメーカであることが分かる。コンピュータの主メモリに読み込まれた表に対して、この情報を含ませるために、表４７にワイルド・カードのデータレコードを追加することができ、そのメーカの値はアスタリスクとして、その国の値は日本とする。
プログラムがワイルド・カードを含む表をバイナリ化する時には、ワイルド・カードのカラムと同一の値を有するデータレコードを互いに隣り合わせになるように、その表をソートする。
次のステップでは、プログラムはその表の中のデータレコードの数と同数の位置を有するベクトルを生成する。そして、そのベクトルの最初の位置には、０が挿入される。その表が検索される時に、ワイルド・カードのカラムの値が前のデータレコードのこれらのカラムの値と同一である場合は、検査されるデータレコードに対応するベクトルの要素は、ベクトルの前の値と同一の値に設定される、そして、同一でない場合には、同一の値に１を加算した値に設定される。バイナリ化された表の検索が終了した時、ユニークな（ｕｎｉｑｕｅ）ヒットの数がカウントされ、すなわち、前述のベクトルにおいて異なる値を有するヒットのみがカウントの対象とされる。ヒットの数がそれぞれのワイルド・カードのカラムの中の選択された値の数の積に等しい場合は、この場合のみ、そのワイルド・カードのデータレコードは除外されたものである。
例えば、表４８においてシリンダ容積として「１．４」という値が選択された場合を考えると、メーカとして「フォード」と「サーブ」が含まれる事となる。これは、また、表４７において２つのユニークなヒットを生ずる事となり、何故ならばワイルド・カードのカラムの値が異なるからである。ここで、ワイルド・カードのカラムにおいて２つの値が選択され、２つのヒットがあるので、そのワイルド・カードのデータレコードは除外されている。
もし、シリンダ容積の値として「２．０」が代わりに選択されると、自動車メーカ「ボルボ」と「マツダ」が含まれ、表４７に対する入力として選択される。しかし、ワイルド・カードのカラムのこれらの選択された値は、１よりも多いヒット（ボルボ・スウェーデン）を生じさせない。その結果として、ワイルド・カードのデータレコードは依然として選択が可能である。
本発明によれば、現存しているデータ・ベースの応用可能性を広げることができる。例えば、多くの企業が多数のデータ・ベースを有し、それらのデータ・ベースは、ネットワーク上の別々のコンピュータの上で走るさまざまなデータ・ベース管理システムに組み込まれている。しかし、個々のユーザはそれらのさまざまなデータ・ベースに含まれている情報のうちのほんの一部分のみを必要とするに過ぎない場合がしばしば生ずる。本発明によれば、ユーザは、特定のプログラミングをなんら必要とせずに、さまざまなデータ・ベースから関係のあるデータレコードの表を引き出して、全く新規で均一な、例えば企画などを創り出すことができる。
さらに、そのユーザはデータ・ベースからのデータにローカル・データやコメントを結合することもできる。データの処理はローカルに行われるので、ローカル・データは処理されて中央のデータと同等の重要度を有するようにできる。これによって、ローカル・データと中央のデータとの組み合わせを実現することができる。
さらに、従来のデータ・ベースにおいては、ビデオ、音声およびカラー写真などを含むマルチメディアは容易に扱えない場合がしばしば生じていた。また、それらは、通常のコンピュータ・ネットワークを介して伝送されることが多くはなかった。本発明によれば、いたるところに存在しているマルチメディアを接続することが可能になる、例えば、ローカルに接続されたＣＤプレイヤーなどである。関係のあるマルチメディアのファイル名とフォーマットは、特定の値によって表に簡単に与えられる。その値が選択されると、対応するマルチメディアの実演が開始される。
補遺Ａ
0004201831.tif 000002
0004201831.tif 000003
表１５−２９は衣服のデータ要素の型式において「シャツ」を選択した場合を示す。
0004201831.tif 000004
表３０から３４は衣服のデータ要素の型式から「シャツ」を選択した後のユーザ・インターフェイスの一例を示す。
0004201831.tif 000005
表３５から３９は衣服のデータ要素の型式から「シャツ」、サイズのデータ要素の型式から「４０」を選択した後のユーザ・インターフェイスの一例を示す。
0004201831.tif 000006
0004201831.tif 000007
表４３と４４は、ＡＮＤモードにおいて、国のデータ要素の型式から「スウェーデン」を選択した後のユーザ・インターフェイスの一例を示す。
0004201831.tif 000008
表４５と４６は、ＡＮＤモードにおいて、国の表から「スウェーデン」と「フィンランド」を選択するユーザ・インターフェイスの一例を示す。
0004201831.tif 000009
0004201831.tif 000010
【図１】
0004201831.tif 000011
【図２】
0004201831.tif 000012
【図３】
0004201831.tif 000013