JPH0573618A - 構造体の検索方法 - Google Patents
構造体の検索方法Info
- Publication number
- JPH0573618A JPH0573618A JP3258670A JP25867091A JPH0573618A JP H0573618 A JPH0573618 A JP H0573618A JP 3258670 A JP3258670 A JP 3258670A JP 25867091 A JP25867091 A JP 25867091A JP H0573618 A JPH0573618 A JP H0573618A
- Authority
- JP
- Japan
- Prior art keywords
- term
- codeword
- search
- code word
- terms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 45
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【構成】 検索項の集合から、少なくとも一つの質問項
に対して単一化する検索項を検索する場合、先ず、検索
項および質問項に対して、そのアルゴリズムで生成した
符号語に2ビット以上からなる最小要素を設定し、かつ
符号語生成の際、最小要素以下には分割せず、また、分
割された各要素の符号語を定める。次に、検索項および
質問項の最小要素同士の符号語の論理演算で、単一化の
候補を選択する。 【効果】 識別できる関数子の種類が広がり、フェイル
ス・ドロップの確率を削減することができる。その結
果、単一化可能な候補に単一化不可能な項が入る率を減
少させることができる。
に対して単一化する検索項を検索する場合、先ず、検索
項および質問項に対して、そのアルゴリズムで生成した
符号語に2ビット以上からなる最小要素を設定し、かつ
符号語生成の際、最小要素以下には分割せず、また、分
割された各要素の符号語を定める。次に、検索項および
質問項の最小要素同士の符号語の論理演算で、単一化の
候補を選択する。 【効果】 識別できる関数子の種類が広がり、フェイル
ス・ドロップの確率を削減することができる。その結
果、単一化可能な候補に単一化不可能な項が入る率を減
少させることができる。
Description
【0001】
【産業上の利用分野】本発明は、構造を持ったデータを
対象とした情報検索を行う構造体の検索方法に関する。
対象とした情報検索を行う構造体の検索方法に関する。
【0002】
【従来の技術】人工知能等、知識を利用した計算機処理
などでは、構造を持ったデータがその知識やデータの表
現の基本要素として多く用いられている。大量の知識や
データを必要とする、より高度で大規模な知識処理の応
用を考えた場合、構造を持ったデータの高速な検索方法
が重要である。
などでは、構造を持ったデータがその知識やデータの表
現の基本要素として多く用いられている。大量の知識や
データを必要とする、より高度で大規模な知識処理の応
用を考えた場合、構造を持ったデータの高速な検索方法
が重要である。
【0003】演繹データベース、知識データベース等の
システムでは、通常、変数を含む項が知識表現の基本要
素として用いられることが多く、それらの演算として単
一化演算が基本演算として必須である。知識の規模が大
きくなるにつれ、大量の項に対する単一化可能な項の高
速演算(検索機構)が必須である。そこで、何等かの高
速化手法が必要であるが、項は定数と異なり、構造を持
ち、しかもその構造が可変であるため、B−treeやハッ
シュ法等の従来の高速技法を適用することができない。
システムでは、通常、変数を含む項が知識表現の基本要
素として用いられることが多く、それらの演算として単
一化演算が基本演算として必須である。知識の規模が大
きくなるにつれ、大量の項に対する単一化可能な項の高
速演算(検索機構)が必須である。そこで、何等かの高
速化手法が必要であるが、項は定数と異なり、構造を持
ち、しかもその構造が可変であるため、B−treeやハッ
シュ法等の従来の高速技法を適用することができない。
【0004】そこで、各項に対し符号語を割り当て、そ
の符号語に対して簡単な演算を施すことにより、予め単
一化可能な候補を選択する手法が提案されている。その
一つとして、例えば、Wise, M. J. & Poerts, D. M. W.
“Indexing Prolog via Superimposed Code Word and F
ield Encoded Words”.International Conference on L
ogic Programming, IEEE Computer Society Press, pp2
03-210, Feb, 1984 に記載されたFEW(フィールド・
エンコーデッド・ワード:Field Encorded Word )法が
知られている。
の符号語に対して簡単な演算を施すことにより、予め単
一化可能な候補を選択する手法が提案されている。その
一つとして、例えば、Wise, M. J. & Poerts, D. M. W.
“Indexing Prolog via Superimposed Code Word and F
ield Encoded Words”.International Conference on L
ogic Programming, IEEE Computer Society Press, pp2
03-210, Feb, 1984 に記載されたFEW(フィールド・
エンコーデッド・ワード:Field Encorded Word )法が
知られている。
【0005】以下、上記のFEW法について説明する。
先ず、最初に、項を定義する。項は、以下のように再帰
的に定義される。 (1) 変数及び0引数関数子は項である(0引数関数子は
定数)。 (2) n引数関数子(項1、項2、…、項n)は項であ
る。 そして、この項に対して、変数に適当な項を割り当てた
場合、同一の項となる(単一化可能な)項を検索する。
例えば、以下、大文字を変数として、f(X,b,g
(X))とf(a,Y,g(a))は、Xにaを、Yに
bを代入することにより、どちらもf(a,b,g
(a))となるため、単一化可能である。逆に、f
(X,b,g(X))とf(a,Y,g(b))は、単
一化不可能である。また、単一化はProlog等で用
いられ、論理型言語を中心とした知識表現で多く用いら
れる。
先ず、最初に、項を定義する。項は、以下のように再帰
的に定義される。 (1) 変数及び0引数関数子は項である(0引数関数子は
定数)。 (2) n引数関数子(項1、項2、…、項n)は項であ
る。 そして、この項に対して、変数に適当な項を割り当てた
場合、同一の項となる(単一化可能な)項を検索する。
例えば、以下、大文字を変数として、f(X,b,g
(X))とf(a,Y,g(a))は、Xにaを、Yに
bを代入することにより、どちらもf(a,b,g
(a))となるため、単一化可能である。逆に、f
(X,b,g(X))とf(a,Y,g(b))は、単
一化不可能である。また、単一化はProlog等で用
いられ、論理型言語を中心とした知識表現で多く用いら
れる。
【0006】しかし、変数の代入操作が含まれるため、
例えば、想定される質問(項)に対して、該当するデー
タ(単一化可能な項)を全て連続したように予め並べる
連続可能性のような性質すらなく、大量のデータに対し
て、従来の索引付けの方法、即ち、非構造体に関する方
法の適用が困難である。
例えば、想定される質問(項)に対して、該当するデー
タ(単一化可能な項)を全て連続したように予め並べる
連続可能性のような性質すらなく、大量のデータに対し
て、従来の索引付けの方法、即ち、非構造体に関する方
法の適用が困難である。
【0007】FEW法の処理方法は以下のように行われ
る。検索対象となる項集合中の全ての項および問い合わ
せである項に対して符号語を生成する。即ち、n−ビッ
トの符号語に対して、項が、 (1) 0−引数関数子(定数)である場合、ハッシュ関数
を用いてnビットの符号を生成する。 (2) m−引数関数子である場合、符号語をm+1個の部
分に分割し、最初の部分語にm−引数関数子のハッシュ
値を、残りのm個に各引数の項の分割された符号語に対
する符号を生成する。 (3) 変数の場合、格納される項に対しては、全てのビッ
トが1である符号を、また、問い合わせの項に対して
は、全てのビットが0である符号を生成する。
る。検索対象となる項集合中の全ての項および問い合わ
せである項に対して符号語を生成する。即ち、n−ビッ
トの符号語に対して、項が、 (1) 0−引数関数子(定数)である場合、ハッシュ関数
を用いてnビットの符号を生成する。 (2) m−引数関数子である場合、符号語をm+1個の部
分に分割し、最初の部分語にm−引数関数子のハッシュ
値を、残りのm個に各引数の項の分割された符号語に対
する符号を生成する。 (3) 変数の場合、格納される項に対しては、全てのビッ
トが1である符号を、また、問い合わせの項に対して
は、全てのビットが0である符号を生成する。
【0008】そして、検索対象となる項集合中の全ての
項の符号語と問い合わせである項の符号語を比較するこ
とで、単一化可能な候補項を抽出する。即ち、検索対象
となる項の符号語をS、問い合わせの項の符号語をQと
すると、Q∧S=Qを満足する項が候補項である。但し
∧はビット毎の論理積を表す。次いで、候補項に関して
問い合わせの項と単一化可能かどうかを調べる。
項の符号語と問い合わせである項の符号語を比較するこ
とで、単一化可能な候補項を抽出する。即ち、検索対象
となる項の符号語をS、問い合わせの項の符号語をQと
すると、Q∧S=Qを満足する項が候補項である。但し
∧はビット毎の論理積を表す。次いで、候補項に関して
問い合わせの項と単一化可能かどうかを調べる。
【0009】図2に項集合の例を、図3に符号化の例を
示す。例えば、検索対象となる項を図2の(1) 〜(5) 、
問い合わせの項を図2の(a)として与えた場合の検索
処理は以下のようになる。先ず、検索対象の項集合の各
項に対して、図3の例のように符号語を割り当てる。符
号語は、上述した規則に従い、定数や変数の場合は、そ
の符号をハッシュ関数ψによって求める。m−引数関数
の場合は、適当な関数を用いて符号語をm+1個の符号
語に分割し、最初の符号語に関数子のハッシュ値を、残
りのm個には各引数の符号を同様に与える。引数がまた
m−引数であった場合には、更に分割が行われる。これ
以上分割ができない(割り当てられた符号語が短過ぎ
る)場合分割を行わず、例えば関数子のハッシュ値をそ
の符号とする。但し、検索対象となる項に存在する変数
については、全ビット1を与える。また、問い合わせで
ある項についても、同様に符号語を作成する。但し、問
い合わせの項に存在する変数については、全ビット0を
与える。
示す。例えば、検索対象となる項を図2の(1) 〜(5) 、
問い合わせの項を図2の(a)として与えた場合の検索
処理は以下のようになる。先ず、検索対象の項集合の各
項に対して、図3の例のように符号語を割り当てる。符
号語は、上述した規則に従い、定数や変数の場合は、そ
の符号をハッシュ関数ψによって求める。m−引数関数
の場合は、適当な関数を用いて符号語をm+1個の符号
語に分割し、最初の符号語に関数子のハッシュ値を、残
りのm個には各引数の符号を同様に与える。引数がまた
m−引数であった場合には、更に分割が行われる。これ
以上分割ができない(割り当てられた符号語が短過ぎ
る)場合分割を行わず、例えば関数子のハッシュ値をそ
の符号とする。但し、検索対象となる項に存在する変数
については、全ビット1を与える。また、問い合わせで
ある項についても、同様に符号語を作成する。但し、問
い合わせの項に存在する変数については、全ビット0を
与える。
【0010】図4に、検索候補の選定処理の説明図を示
す。ここで、図4(a)は、質問項とその符号語を示
し、図4(b)は検索処理を示している。図4(a)に
示すように、問い合わせである項(質問項)にも符号語
Qが与えられる。そして、検索対象の符号語をS、問い
合わせの符号語Qにおいて、Q∧S=Qを満足する項が
検索候補であり、この場合は検索候補として項(1) およ
び(4) が挙げられ(図4(b)参照)、そのうち項(4)
が単一化可能な項である。しかしながら、Q∧S=Qを
満足しても、単一化可能でない場合がある。これをfail
s drop(フェイルス・ドロップ)と呼び、図4(b)に
おける(1) がこれに相当する。また、この場合、Q∧S
=Qを満たさない項については単一化できないことが知
られているので、単一化を試みる必要がなくその分の検
索時間の短縮が図れる。
す。ここで、図4(a)は、質問項とその符号語を示
し、図4(b)は検索処理を示している。図4(a)に
示すように、問い合わせである項(質問項)にも符号語
Qが与えられる。そして、検索対象の符号語をS、問い
合わせの符号語Qにおいて、Q∧S=Qを満足する項が
検索候補であり、この場合は検索候補として項(1) およ
び(4) が挙げられ(図4(b)参照)、そのうち項(4)
が単一化可能な項である。しかしながら、Q∧S=Qを
満足しても、単一化可能でない場合がある。これをfail
s drop(フェイルス・ドロップ)と呼び、図4(b)に
おける(1) がこれに相当する。また、この場合、Q∧S
=Qを満たさない項については単一化できないことが知
られているので、単一化を試みる必要がなくその分の検
索時間の短縮が図れる。
【0011】一方、上記のFEW法と同種の方法として
知られるCCW(Concatinated Code Word)法では、予
め定められた構造に従って、項の内部の各関数子および
変数の符号化したもの(要素符号語)を結合したものを
符号語として用いる。この場合、ハッシュ値の比較に
は、各(要素)符号語が等しいかどちらかが変数である
かを調べ、全てそうであれば、候補とする方式をとる。
知られるCCW(Concatinated Code Word)法では、予
め定められた構造に従って、項の内部の各関数子および
変数の符号化したもの(要素符号語)を結合したものを
符号語として用いる。この場合、ハッシュ値の比較に
は、各(要素)符号語が等しいかどちらかが変数である
かを調べ、全てそうであれば、候補とする方式をとる。
【0012】
【発明が解決しようとする課題】しかしながら、上記の
FEW法では、比較演算として、いわゆる重ね合わせ符
号(SCW)の方式を踏襲しているため、nビットの符
号語で高々Com(n,n/2)種類の関数子しか識別
できず、分解能(符号語により識別可能なデータの種
類)が低下するという問題点を有していた。尚、ここ
で、Com(n,n/2)とは、n個の中からn/2個
取出す組合せの数を示す。一方、上記のCCW法は、各
nビットの要素符号語に対して2n−1種類の識別が行
えるが、構造を予め定める必要があり、構造に合わない
場合は、その符号語が無駄になるといる問題点を有して
いた。本発明は、上記従来の問題点を解決するためにな
されたもので、符号化の分解能(精度)を向上させるこ
とのできる構造体の検索方法を提供することを目的とす
る。
FEW法では、比較演算として、いわゆる重ね合わせ符
号(SCW)の方式を踏襲しているため、nビットの符
号語で高々Com(n,n/2)種類の関数子しか識別
できず、分解能(符号語により識別可能なデータの種
類)が低下するという問題点を有していた。尚、ここ
で、Com(n,n/2)とは、n個の中からn/2個
取出す組合せの数を示す。一方、上記のCCW法は、各
nビットの要素符号語に対して2n−1種類の識別が行
えるが、構造を予め定める必要があり、構造に合わない
場合は、その符号語が無駄になるといる問題点を有して
いた。本発明は、上記従来の問題点を解決するためにな
されたもので、符号化の分解能(精度)を向上させるこ
とのできる構造体の検索方法を提供することを目的とす
る。
【0013】
【課題を解決するための手段】本発明の構造体の検索方
法は、項を用いたデータ表現を行う計算機システムにお
いて、検索項の集合から、少なくとも一つの質問項に対
し、該質問項と単一化する検索項を検索する構造体の検
索方法において、前記検索項および質問項に対して、該
項内の各関数子および変数に対し、そのアルゴリズムで
該項の符号語を生成する符号語生成手段と、前記符号語
生成手段で生成された質問項の符号語と、前記検索項の
符号語との論理演算結果により、単一化の可能性のある
項を判定する判定手段とを備え、前記符号語生成手段
は、符号語に2ビット以上からなる最小要素を設定し、
前記符号語の生成の際、該最小要素以下には分割せず、
かつ分割された各符号語の符号を定め、前記判定手段
は、前記検索項および質問項の最小要素同士の符号語の
論理演算に基づき単一化の候補を選択することを特徴と
するものである。
法は、項を用いたデータ表現を行う計算機システムにお
いて、検索項の集合から、少なくとも一つの質問項に対
し、該質問項と単一化する検索項を検索する構造体の検
索方法において、前記検索項および質問項に対して、該
項内の各関数子および変数に対し、そのアルゴリズムで
該項の符号語を生成する符号語生成手段と、前記符号語
生成手段で生成された質問項の符号語と、前記検索項の
符号語との論理演算結果により、単一化の可能性のある
項を判定する判定手段とを備え、前記符号語生成手段
は、符号語に2ビット以上からなる最小要素を設定し、
前記符号語の生成の際、該最小要素以下には分割せず、
かつ分割された各符号語の符号を定め、前記判定手段
は、前記検索項および質問項の最小要素同士の符号語の
論理演算に基づき単一化の候補を選択することを特徴と
するものである。
【0014】
【作用】本発明の構造体の検索方法においては、検索項
の集合から、少なくとも一つの質問項に対して単一化す
る検索項を検索する場合、先ず、検索項および質問項に
対して、そのアルゴリズムで生成した符号語に2ビット
以上からなる最小要素を設定し、かつ符号語生成の際、
最小要素以下には分割せず、また、分割された各符号語
の符号を定める。次に、検索項および質問項の最小要素
同士の符号の論理演算で、単一化の候補を選択する。従
って、識別できる関数子の種類が広がり、フェイルス・
ドロップの確率を削減することができる。その結果、単
一化可能な候補に単一化不可能な項が入る率を減少させ
ることができる。
の集合から、少なくとも一つの質問項に対して単一化す
る検索項を検索する場合、先ず、検索項および質問項に
対して、そのアルゴリズムで生成した符号語に2ビット
以上からなる最小要素を設定し、かつ符号語生成の際、
最小要素以下には分割せず、また、分割された各符号語
の符号を定める。次に、検索項および質問項の最小要素
同士の符号の論理演算で、単一化の候補を選択する。従
って、識別できる関数子の種類が広がり、フェイルス・
ドロップの確率を削減することができる。その結果、単
一化可能な候補に単一化不可能な項が入る率を減少させ
ることができる。
【0015】
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。先ず、本発明では、検索対象となる項の集合
(データベース)から、各項の特徴を抽出した符号語を
予め用意する。また、検索の問い合わせに対しても、そ
の質問項もしくは、質問項の集合に対して符号語を同様
に作成し、符号語の比較により検索対象の絞り込みを行
い、絞り込まれた検索対象の項とだけ質問項との単一化
処理を行う。単一化の処理に比べ、符号語の比較演算は
極めて高速に行えるため、全ての検索対象に対して単一
化処理を行った場合と比較して高速な処理が期待でき
る。
説明する。先ず、本発明では、検索対象となる項の集合
(データベース)から、各項の特徴を抽出した符号語を
予め用意する。また、検索の問い合わせに対しても、そ
の質問項もしくは、質問項の集合に対して符号語を同様
に作成し、符号語の比較により検索対象の絞り込みを行
い、絞り込まれた検索対象の項とだけ質問項との単一化
処理を行う。単一化の処理に比べ、符号語の比較演算は
極めて高速に行えるため、全ての検索対象に対して単一
化処理を行った場合と比較して高速な処理が期待でき
る。
【0016】即ち、本発明の単一化検索の処理概要は、
以下のように構成されている。 (1) 検索対象となる項の集合の各項に対して、符号語を
作成する(尚、この符号語は通常索引ファイルと呼ばれ
るファイルに格納される)。 (2) 検索対象に対する検索指示が与えられたら、その検
索条件を表現する項である質問項もしくは、その項集合
に対しても、各項に対する符号語を作成する。 (3) 検索対象の符号語と質問項の符号語により、単一化
の可能性のある組合せを抽出する。 (4) 上記(3) で絞り込まれた組合せに対して単一化処理
を行う。 更に、検索対象に対する問い合わせがある場合は、(2)
から(4) を繰り返す。これにより、前処理として、(1)
のオーバヘッドを削減することができる。
以下のように構成されている。 (1) 検索対象となる項の集合の各項に対して、符号語を
作成する(尚、この符号語は通常索引ファイルと呼ばれ
るファイルに格納される)。 (2) 検索対象に対する検索指示が与えられたら、その検
索条件を表現する項である質問項もしくは、その項集合
に対しても、各項に対する符号語を作成する。 (3) 検索対象の符号語と質問項の符号語により、単一化
の可能性のある組合せを抽出する。 (4) 上記(3) で絞り込まれた組合せに対して単一化処理
を行う。 更に、検索対象に対する問い合わせがある場合は、(2)
から(4) を繰り返す。これにより、前処理として、(1)
のオーバヘッドを削減することができる。
【0017】本発明の特徴は、上記(1) および(2) にお
ける索引化の方法にある。このような索引方法では、短
い符号語を用いていかに検索対象の語の情報を表現する
かが問題となり、その結果が(3) における絞り込みの率
となり、全体の処理時間に影響を与える。単一化検索の
ための索引法であるFEWでは、符号語の対する符号化
の方式として重ね合わせ符号による符号化を用いてい
る。これは、オア演算を行うために符号語を2進語で表
現した時の1の現れるビット数と0の現れるビット数が
等しくなるように符号化した時に最も選択効率が良くな
ることが知られている。
ける索引化の方法にある。このような索引方法では、短
い符号語を用いていかに検索対象の語の情報を表現する
かが問題となり、その結果が(3) における絞り込みの率
となり、全体の処理時間に影響を与える。単一化検索の
ための索引法であるFEWでは、符号語の対する符号化
の方式として重ね合わせ符号による符号化を用いてい
る。これは、オア演算を行うために符号語を2進語で表
現した時の1の現れるビット数と0の現れるビット数が
等しくなるように符号化した時に最も選択効率が良くな
ることが知られている。
【0018】本発明では、符号語は、2ビット以上の分
割単位を持っていると考える。符号語の分割では、分割
単位を単位として行い、分割単位を更に分割することは
できない。本発明では、符号語の与え方として以下の方
法を用いる。 (1) 与えられた項が定数のとき、その符号語に対するハ
ッシュ値を演算し、その符号語の符号とする。 (2) 与えられた項が変数であるとき、その符号語に対す
る値は0とする。 (3) 与えられた項が、m−引数関数で表現されていると
きは、符号語をm+1個に分割して、各分割された符号
語に対して、 最初の分割された符号語には、関数名のハッシュ値を
符号とし、 残りの符号語には各引数の項に対する符号語を本アル
ゴリズムを再帰的に適用することにより計算する。 この時、分割できなければ、関数名のハッシュ値を符号
語全体の符号語とする。
割単位を持っていると考える。符号語の分割では、分割
単位を単位として行い、分割単位を更に分割することは
できない。本発明では、符号語の与え方として以下の方
法を用いる。 (1) 与えられた項が定数のとき、その符号語に対するハ
ッシュ値を演算し、その符号語の符号とする。 (2) 与えられた項が変数であるとき、その符号語に対す
る値は0とする。 (3) 与えられた項が、m−引数関数で表現されていると
きは、符号語をm+1個に分割して、各分割された符号
語に対して、 最初の分割された符号語には、関数名のハッシュ値を
符号とし、 残りの符号語には各引数の項に対する符号語を本アル
ゴリズムを再帰的に適用することにより計算する。 この時、分割できなければ、関数名のハッシュ値を符号
語全体の符号語とする。
【0019】図1に、従来技術の項で説明したFEW法
の例と同様の項に対する符号語の構成を示す。この実施
例では、最小分割単位を4ビットにとっており、一つの
符号語は8個の分割要素からなっている。尚、符号化を
行う項は、f(a,h(X,c))である。
の例と同様の項に対する符号語の構成を示す。この実施
例では、最小分割単位を4ビットにとっており、一つの
符号語は8個の分割要素からなっている。尚、符号化を
行う項は、f(a,h(X,c))である。
【0020】ここで、この項のトップレベルは、2引数
fであるので、この符号語を3つに分割する。この場
合、最初の2要素を関数記号fに割り当て、残りの3要
素ずつを2つの引数に割り当てる。即ち、最初の2要素
は、fの8ビットへのハッシュ関数値を用いて、「01
010101」となる。その後の3要素については、第
1引数であるaによって決定されるが、これは定数であ
るため、その12ビットへのハッシュ値を計算して、
「100110100101」となる。最後の3要素に
ついては、第2引数のh(X,c)の符号語を計算する
が、これは2引数関数hであるので、更に分割し、最初
の要素がhの4ビットへのハッシュ値で「0010」、
2番目は変数のため「000」、最後がcで「100
0」となる。この場合、最小要素より細かくなるような
分割は行わない。例えば、fの第2引数が3引数関数で
あった場合には、分割をせずにその関数記号のハッシュ
値とするか、最初の2引数と関数記号を用いたハッシュ
値を用いるかなどの方法を取る。これらは、対象となる
項の集合や質問の特性から決定することができる。
fであるので、この符号語を3つに分割する。この場
合、最初の2要素を関数記号fに割り当て、残りの3要
素ずつを2つの引数に割り当てる。即ち、最初の2要素
は、fの8ビットへのハッシュ関数値を用いて、「01
010101」となる。その後の3要素については、第
1引数であるaによって決定されるが、これは定数であ
るため、その12ビットへのハッシュ値を計算して、
「100110100101」となる。最後の3要素に
ついては、第2引数のh(X,c)の符号語を計算する
が、これは2引数関数hであるので、更に分割し、最初
の要素がhの4ビットへのハッシュ値で「0010」、
2番目は変数のため「000」、最後がcで「100
0」となる。この場合、最小要素より細かくなるような
分割は行わない。例えば、fの第2引数が3引数関数で
あった場合には、分割をせずにその関数記号のハッシュ
値とするか、最初の2引数と関数記号を用いたハッシュ
値を用いるかなどの方法を取る。これらは、対象となる
項の集合や質問の特性から決定することができる。
【0021】一方、上記の符号語に対する検索は、以下
のようになる。全ての最小要素に対して、「その最小要
素に対して符号語が全く同じであるか、どちらかが0で
ある」という条件が成立すれば候補である。即ち、各符
号語の最小要素毎に、その値が0であれば、それを変数
として扱う。変数が現れる場所には、どのような値がき
ても候補となる。図5に、符号語の比較を示す。例え
ば、図5(a)に示す場合は、比較する符号語の2要素
目がどちらも0でなく、かつ等しくないため、候補には
ならない。反対に、図5(b)に示す場合では、全ての
要素が等しいか、どちらかが0になっているため、候補
として残ることになる。
のようになる。全ての最小要素に対して、「その最小要
素に対して符号語が全く同じであるか、どちらかが0で
ある」という条件が成立すれば候補である。即ち、各符
号語の最小要素毎に、その値が0であれば、それを変数
として扱う。変数が現れる場所には、どのような値がき
ても候補となる。図5に、符号語の比較を示す。例え
ば、図5(a)に示す場合は、比較する符号語の2要素
目がどちらも0でなく、かつ等しくないため、候補には
ならない。反対に、図5(b)に示す場合では、全ての
要素が等しいか、どちらかが0になっているため、候補
として残ることになる。
【0022】この際、従来のFEW法のように、S∧Q
=Qのような判定ではなく、比較は通常の比較であるた
め、最小要素のビット幅をmビットとすると、nビット
の符号語に対して変数の符号を除いた図5(c)中の式
(1) の種類の記号を識別することができる。例えば、最
小要素が4ビットの場合、8ビットの符号語に対して、
従来のFEW法では、Com(8,4)=70通りの符
号が用いられるが、本実施例では式(2) に示すように、
225通りの符号を用いることができる。
=Qのような判定ではなく、比較は通常の比較であるた
め、最小要素のビット幅をmビットとすると、nビット
の符号語に対して変数の符号を除いた図5(c)中の式
(1) の種類の記号を識別することができる。例えば、最
小要素が4ビットの場合、8ビットの符号語に対して、
従来のFEW法では、Com(8,4)=70通りの符
号が用いられるが、本実施例では式(2) に示すように、
225通りの符号を用いることができる。
【0023】尚、上記実施例では、符号語による候補の
選定をプログラムで構成するようにしたが、これは、ハ
ードウェアで構成することも可能である。図6に、ハー
ドウェアで構成した判定手段の例を示す。ここで、図6
(a)は判定手段の全体回路図、図6(b)は各判定回
路A、Bの内部回路図である。このように、判定回路A
と判定回路Bには、それぞれ符号語の各1ビットずつが
入力されるよう構成されており、また、各判定回路A、
B、…、の出力がアンド回路に入力され、その論理積を
演算するようになっている。また、各判定回路A、B
は、符号語同士の各ビットをそれぞれ入力するエクスク
ルーシブ−ノア(EX −NOR)回路1、2、3、4
と、それぞれの符号語の各ビットを入力するノア回路
5、6と、各エクスクルーシブ−ノア回路1、2、3、
4の出力を入力するアンド回路7と、アンド回路7の出
力とノア回路5、6の出力を入力するオア回路8とから
構成されている。
選定をプログラムで構成するようにしたが、これは、ハ
ードウェアで構成することも可能である。図6に、ハー
ドウェアで構成した判定手段の例を示す。ここで、図6
(a)は判定手段の全体回路図、図6(b)は各判定回
路A、Bの内部回路図である。このように、判定回路A
と判定回路Bには、それぞれ符号語の各1ビットずつが
入力されるよう構成されており、また、各判定回路A、
B、…、の出力がアンド回路に入力され、その論理積を
演算するようになっている。また、各判定回路A、B
は、符号語同士の各ビットをそれぞれ入力するエクスク
ルーシブ−ノア(EX −NOR)回路1、2、3、4
と、それぞれの符号語の各ビットを入力するノア回路
5、6と、各エクスクルーシブ−ノア回路1、2、3、
4の出力を入力するアンド回路7と、アンド回路7の出
力とノア回路5、6の出力を入力するオア回路8とから
構成されている。
【0024】また、上記実施例では、構造体として項の
場合を例にとって説明したが、一般の、プログラム言語
等で用いられる構造体は、通常、その構造定義とデータ
が分離されているが、このような構造体を項の形で表現
することも可能であり、従って、そのような構造体にお
いても項表現に変換することで、本発明を適用すること
が可能である。更に、上記実施例では、最小分割単位を
4ビットで構成したが、これに限定されるものではな
く、2ビット以上であれば、上記実施例と同様の効果を
奏する。
場合を例にとって説明したが、一般の、プログラム言語
等で用いられる構造体は、通常、その構造定義とデータ
が分離されているが、このような構造体を項の形で表現
することも可能であり、従って、そのような構造体にお
いても項表現に変換することで、本発明を適用すること
が可能である。更に、上記実施例では、最小分割単位を
4ビットで構成したが、これに限定されるものではな
く、2ビット以上であれば、上記実施例と同様の効果を
奏する。
【0025】
【発明の効果】以上説明したように、本発明の構造体の
検索方法によれば、検索による候補項の選定を、検索項
および質問項の2ビット以上からなる最小要素同士の論
理演算により行うようにしたので、例えば、mビットの
最小要素を有するnビットの符号語に対して識別できる
関数子の種類が、Com(n,n/2)から図5(c)
の式(1) にまで広がり、単一化の候補の選択により、フ
ェイルス・ドロップの確率を削減することができる。従
って、単一化可能な候補に単一化不可能な項の入る率を
減少させることができ、その結果、項の数を増加させ、
項の単一化による高速な検索が可能となる。
検索方法によれば、検索による候補項の選定を、検索項
および質問項の2ビット以上からなる最小要素同士の論
理演算により行うようにしたので、例えば、mビットの
最小要素を有するnビットの符号語に対して識別できる
関数子の種類が、Com(n,n/2)から図5(c)
の式(1) にまで広がり、単一化の候補の選択により、フ
ェイルス・ドロップの確率を削減することができる。従
って、単一化可能な候補に単一化不可能な項の入る率を
減少させることができ、その結果、項の数を増加させ、
項の単一化による高速な検索が可能となる。
【図1】本発明の構造体の検索方法の説明図である。
【図2】項集合の説明図である。
【図3】従来の構造体の検索方法における符号化の一例
を示す説明図である。
を示す説明図である。
【図4】従来の構造体の検索方法における検索候補の選
定処理の説明図である。
定処理の説明図である。
【図5】本発明の構造体の検索方法における符号語の比
較処理の説明図である。
較処理の説明図である。
【図6】本発明の構造体の検索方法における判定手段の
他の実施例を示す構成図である。
他の実施例を示す構成図である。
Claims (1)
- 【請求項1】 項を用いたデータ表現を行う計算機シス
テムにおいて、検索項の集合から、少なくとも一つの質
問項に対し、該質問項と単一化する検索項を検索する構
造体の検索方法において、 前記検索項および質問項に対して、該項内の各関数子お
よび変数に対し、そのアルゴリズムで該項の符号語を生
成する符号語生成手段と、 前記符号語生成手段で生成された質問項の符号語と、前
記検索項の符号語との論理演算結果により、単一化の可
能性のある項を判定する判定手段とを備え、 前記符号語生成手段は、符号語に2ビット以上からなる
最小要素を設定し、前記符号語の生成の際、該最小要素
以下には分割せず、かつ分割された各符号語の符号を定
め、 前記判定手段は、前記検索項および質問項の最小要素同
士の符号語の論理演算に基づき単一化の候補を選択する
ことを特徴とする構造体の検索方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3258670A JPH0738196B2 (ja) | 1991-09-11 | 1991-09-11 | 構造体の検索方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3258670A JPH0738196B2 (ja) | 1991-09-11 | 1991-09-11 | 構造体の検索方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0573618A true JPH0573618A (ja) | 1993-03-26 |
| JPH0738196B2 JPH0738196B2 (ja) | 1995-04-26 |
Family
ID=17323471
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3258670A Expired - Lifetime JPH0738196B2 (ja) | 1991-09-11 | 1991-09-11 | 構造体の検索方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0738196B2 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01232436A (ja) * | 1988-03-14 | 1989-09-18 | Agency Of Ind Science & Technol | 単一化候補項の選択装置 |
| JPH01232426A (ja) * | 1988-03-14 | 1989-09-18 | Agency Of Ind Science & Technol | 単一化候補項選択のためのインデックス作成装置 |
| JPH01276237A (ja) * | 1988-04-27 | 1989-11-06 | Agency Of Ind Science & Technol | 単一化候補項の選択装置 |
-
1991
- 1991-09-11 JP JP3258670A patent/JPH0738196B2/ja not_active Expired - Lifetime
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01232436A (ja) * | 1988-03-14 | 1989-09-18 | Agency Of Ind Science & Technol | 単一化候補項の選択装置 |
| JPH01232426A (ja) * | 1988-03-14 | 1989-09-18 | Agency Of Ind Science & Technol | 単一化候補項選択のためのインデックス作成装置 |
| JPH01276237A (ja) * | 1988-04-27 | 1989-11-06 | Agency Of Ind Science & Technol | 単一化候補項の選択装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0738196B2 (ja) | 1995-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Falkoff | Algorithms for parallel-search memories | |
| Stephen | String searching algorithms | |
| US7536399B2 (en) | Data compression method, program, and apparatus to allow coding by detecting a repetition of a matching character string | |
| US8095526B2 (en) | Efficient retrieval of variable-length character string data | |
| JP6160259B2 (ja) | 文字列探索方法、文字列探索装置および文字列探索プログラム | |
| JPH07297728A (ja) | パターン一致を探索するための方法およびシステム | |
| JPH02109167A (ja) | 文字列検索方法及び装置 | |
| KR20100116595A (ko) | 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템 | |
| JP2008299867A (ja) | データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 | |
| JPH0573618A (ja) | 構造体の検索方法 | |
| Parberry | A computer assisted optimal depth lower bound for sorting networks with nine inputs | |
| KR102146625B1 (ko) | 오토마타 기반 증분적 중위 확률 계산 장치 및 방법 | |
| CN109299260B (zh) | 数据分类方法、装置以及计算机可读存储介质 | |
| Kurniawan et al. | A new string matching algorithm based on logical indexing | |
| EP0638187B1 (en) | Categorizing strings in character recognition | |
| JP2007233554A (ja) | 高速パターンマッチング装置の探索方法 | |
| JP2590698B2 (ja) | 文字列データ検索装置 | |
| KR102271489B1 (ko) | 정규표현식 패턴의 탐지를 위한 아호코라식 오토마타 구축 장치 및 방법 | |
| JP2005242668A (ja) | パターンマッチング装置および方法ならびにプログラム | |
| JPH09293066A (ja) | ベクトル演算装置およびベクトル演算方法 | |
| JPH10177582A (ja) | 最長一致検索方法及び装置 | |
| JP3018579B2 (ja) | 名前検索処理装置 | |
| JP3104893B2 (ja) | 情報検索方式 | |
| JPH01276237A (ja) | 単一化候補項の選択装置 | |
| JPH1115836A (ja) | 文字列探索用テーブル、その作成方法及び文字列探索方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |