JPH0577097B2 - - Google Patents

Info

Publication number
JPH0577097B2
JPH0577097B2 JP1270688A JP1270688A JPH0577097B2 JP H0577097 B2 JPH0577097 B2 JP H0577097B2 JP 1270688 A JP1270688 A JP 1270688A JP 1270688 A JP1270688 A JP 1270688A JP H0577097 B2 JPH0577097 B2 JP H0577097B2
Authority
JP
Japan
Prior art keywords
term
terms
unification
arguments
counter
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.)
Expired - Lifetime
Application number
JP1270688A
Other languages
English (en)
Other versions
JPH01189730A (ja
Inventor
Hiroshi Sakai
Shigeki Shibayama
Kazuhide Iwata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP1270688A priority Critical patent/JPH01189730A/ja
Publication of JPH01189730A publication Critical patent/JPH01189730A/ja
Publication of JPH0577097B2 publication Critical patent/JPH0577097B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、知識情報処理や知識ベース処理にお
いて、単一化可能な項を選択する前処理として単
一化候補項を選択する単一化候補項の選択装置に
関する。
(従来の技術) 知識情報処理の分野では、従来のデータ処理の
分野で用いられてきた数値や文字の他に「項」と
呼ばれる構造を取扱うことが多い。以下に項の例
を示す。
定数(小文字で表す)からなる項 a 変数(大文字で表す)からなる項 X 2つの引数を有する述語の項 f(a,X) 述語の引数として引数を持つ述語を与えた項 f(f(X),g(f(a,b))) このように、項は、のように定数だけからな
るもの、のように変数だけからなるもの、の
ようにいくつかの引数を持つ述語からなるもの、
のように引数として引数を持つ述語を与えた項
などがある。
このような項は、知識情報処理の分野では非常
に良く使用される構造であり、特にPrologにお
いては、項の形式を用いて表した述語の並びから
なるプログラムに目標となる項が与えられ、この
目標項がプログラム中の述語の組合わせで満足さ
せられるかどうかを調べていくことを処理の基本
としている。この過程で、項と項の単一化
(Unification)処理が重要な役割を果たす(W.F.
Clocksin/C.S.Mellish著、中村克彦訳「Prolog
プログラミング」マイクロソフトウエア刊)。
この単一化が成功であるか失敗であるかは、次
のように判定される。
2つの項が同一である場合 例えば、f(a,b)とf(a,b)のように、
2つの項が全く同一である場合には、単一化成功
である。
2つの項が異なる場合 例えば、f(a,b)とf(c,b)のように、
2つの項が異なる場合には、単一化失敗である。
2つの項の少なくとも一方に変数があるとき 例えばf(X,b)とf(f(a),Y)のよう
に、2つの項のいずれか一方に変数がある場合に
は、その変数に例えば、X=f(a),Y=bのよ
うに、適当な項を代入することによつて他方と一
致させることができれば、単一化成功である。但
し、この場合、同一の変数には同一の項を代入す
る必要がある。
一方、例えば、f(X,X)とf(a,b)のよ
うに、変数Xは同時にaとbとになり得ないか
ら、この場合には単一化失敗として定義される。
従来、この単一化処理は、ある項集合に対して
目標項が与えられると、目標項と項集合の各項と
を全て比較して、各項の目標項との単一化の可否
を判断することにより行われていた。しかしなが
ら、この方法では、第5図に示すように、項集合
1の要素が多い場合や、目標項2が複数与えられ
た場合など、単一化の可否を検討すべき組合わせ
が非常に多くなり、単一化処理に多くの時間を費
やしてしまうという問題があつた。
そこで、項集合の各項と目標項とを比較する前
に、前処理として単一化の可能性のある候補を高
速抽出し、比較する対象を大幅に絞り込むことに
よつて単一化処理の高速化を図ることが提案され
ている(森田他、「単一化結合の処理方式」情報
処理学会第32回全国大会予稿集pp.1191〜1192)。
この方式は、例えば第5図に示すような項集合
1と目標項2とが与えられた場合、第6図に示す
ように、各項をソーテイングによつて辞書式順序
に並べ替え、目標項2と項集合1の各項とを上か
ら順に突合していく。目標項をA、項集合から取
出された項をBとすると、各項A,Bの各要素
SA,SBを頭から順に比較して、いずれかの項に
ついて最初に変数が現われるまで(変数が現われ
ない場合には項の終わりまで)の部分について一
致する項を単一化候補項として取出す。例えば、
第6図の例では、目標項f(b,X)に対し、f
(b,b)が単一化候補項として取出される。な
お、この比較の過程で、最初に変数が現われるま
でに、一致しない要素が出現した場合には、次の
ペアに比較対象が移るが、このとき、一致しなか
つた要素SA,SBがSA>SBの関係にあるときに
は、項集合の次の項を比較対象とし、SA<SBの
関係にあるときには、次の目標項を比較対象とす
る。
このような処理によつて単一化候補項の高速選
択が可能で、かつ単一化候補項を大幅に絞り込ん
で単一化処理に供することができるので、単一化
処理の高速化を図ることができる。
しかしながら、このような単一化候補項の選択
は、どのような項集合についても有効であるとは
限らない。例えば、第7図に示すように、目標項
2の各項の引数の一番目から変数X,Yが現われ
るような場合には、上述した処理では単一化候補
項として全ての項が選択されてしまうことにな
る。
(発明が解決しようとする問題点) このように、比較する項の頭から最初に変数が
現われるまでに一致する項を単一化候補として選
択する従来の単一化候補項の選択装置では、比較
するいずれかの項の先頭近くに変数があると、単
一化候補項を十分に絞り込むことができず、結
局、単一化処理の高速化を図ることができないと
いう問題があつた。
本発明は、このような問題点を解決すべくなさ
れたもので、単一化候補項の十分な絞り込み効果
が得られ、単一化処理の高速化に寄与できる単一
化候補項の選択装置を提供することを目的とす
る。
[発明の構成] (問題点を解決するための手段) 本発明は、変数又は定数からなる引数を持つ複
数の項を要素とする項集合と、この項集合とは別
に与えられた変数又は定数からなる引数を持つ目
標項とを、両項の頭から順に比較して行き、いず
れかの項について最初に変数が現われるまでの部
分について一致するものを単一化候補項として選
択する単一化候補項の選択装置において、前記比
較すべき両項の引数の順序を入替える入替手段
と、この入替手段によつて引数の入替えが行われ
た項同士の比較を行う第1の比較手段と、前記入
替手段によつて引数の入替えが行われていない項
同士の比較を行う第2の比較手段と、これら第1
の比較手段と第2の比較手段を同時に適用し、い
ずれか先に終了した比較手段をもつて、演算結果
とする判断手段と、を具備したことを特徴として
いる。
(作用) 比較される2つの項の引数の並びのうち、どこ
に変数が現われるかは未定である。もし、目標項
の1番目の引数が変数である場合には、項集合の
全ての項を単一化候補項として抽出しなければな
らない。しかし、この引数の並びが入替えられれ
ば、入替えた目標項については十分に単一化候補
項を絞り込むことが可能である。
本発明では、入替手段によつて比較すべき両項
の引数の順序を入替え、この両項の引数を入替え
た項同士の比較を第1の比較手段で行うと同時
に、入替えを行なわなかつた項同士の比較を第2
の比較手段で行い、いずれか先に終了した比較手
段の演算結果によつて単一化候補項を選択するよ
うにしているため、どちらか一方に十分に絞り込
まれた単一化候補項を得ることができる。したが
つて、十分に絞り込まれた単一化候補項を単一化
処理に供することにより、単一化処理の高速化に
寄与することができる。
(実施例) 以下、図面に示した本発明の一実施例に基づい
て本発明を詳細に説明する。
第1図は本実施例に係る単一化候補項の選択装
置の構成を示す図である。
この選択装置は、項記憶装置11より与えられ
る項から単一化候補項を選択する第1の単一化候
補項選択処理部12と、項記憶装置11から与え
られる項の引数を並べ替える引数順序変更処理部
13と、この引数順序変更処理部13によつて引
数の並びを変更された項から単一化候補項を選択
する第2の単一化候補項選択処理部14とで構成
されている。この単一化候補項の選択装置は、単
一化処理の前処理として単一化候補を絞り込むも
のである。2つの単一化候補項選択処理部12,
14は、同時に処理を開始し、先に処理が終了し
た方の選択結果を単一化候補項として出力するも
のである。この単一化候補項は、次段の図示しな
い単一化処理装置に与えられる。
引数順序変更処理部13は、例えば第2図に示
すように構成されている。即ち、INレジスタ2
1及びOTレジスタ22は、それぞれ入力用及び
出力用のバツフアとなるものである。Tメモリ2
3は、入力された項の引数部分の各要素を格納す
る。Pメモリ24は、上記Tメモリ23に格納さ
れた引数の区切りを示すポインタを格納するメモ
リである。Aカウンタ25は、上記Pメモリ24
に対してTメモリ23のポインタを格納したり、
Pメモリ24からポインタを読み出してTメモリ
23のアドレスを指定するカウンタである。Nレ
ジスタ26は、入力された項の引数の個数を格納
する。Iカウンタ27は、現在取扱い中の引数番
号を格納する。比較器28は、Nレジスタ26の
値とIカウンタ27の値を比較する。Jカウンタ
29は、引数の終端を探索するためのカウンタで
ある。そして、制御部30はこれら各部を制御す
る。
この引数順序変更処理部13は、基本的には、
第3図に示すような動作を行なう。即ち、例え
ば、いまf(X,g(Y,a),h(b,c))とい
う項が与えられる場合を考えると、その項は、第
3図に示すように、各要素のコード(f,X,
g,……)とその要素が保有する引数の数(3,
0,2,……)とからなる要素データの列で表現
される。そして、Tメモリ23には、これら要素
データのうち、引数の部分が格納され、Pメモリ
24には、Tメモリ23に格納された要素データ
のうち、引数の始まりを示すポインタが格納さ
れ、Iカウンタ27には、Pメモリ24へのポイ
ンタが格納される。したがつて、Iカウンタ27
をデクリメントさせながらPメモリ24の後ろか
らTメモリ23へのポインタを読出すことによ
り、Tメモリ23に格納された引数の順序を逆に
して読出すことができる。
第4図に、この引数順序変更処理部13の動作
フローを示す。
まず、順次入力される要素データは、INレジ
スタ21にセツトされる(S1)。INレジスタ21
からOTレジスタ22に最初の要素データ“f/
3”がセツトされ、Nレジスタ26にINレジス
タ21に格納された引数の個数“3”が格納され
る。そして、Iカウンタ27及びAカウンタ25
が“0”にリセツトされる(S2)。次にOTレジ
スタ22のデータが出力される(S3)。Iカウン
タ27とNレジスタ26とを比較し(S4)、Iカ
ウンタ27の値がNカウンタ26に格納された引
数の数にまだ達していない場合には、Iカウンタ
27で示されるPメモリ24の格納場所にAカウ
ンタ25の内容を格納する。そして、Jカウンタ
29に“1”をセツトする(S5)。次に入力した
要素データをINレジスタ21にセツトする
(S6)。Aカウンタ25で示されるTメモリ23
の格納場所に新たに入力したINレジスタ21の
値を格納する。そして、Aカウンタ25をインク
リメントし、Jカウンタ29をデクリメントした
後INレジスタ21内の引数の個数を加算する
(S7)。Jカウンタ29の値が“0”であれば引
数の終端であることを意味してるので、Iカウン
タ27をインクリメントして全ての引数について
処理を終えたか判定し(S4)、更に引数がある場
合には、同様の処理を続ける。一方、Jカウンタ
29の値から引数の終端に達していないと判定さ
れたら(S8)、次の要素データを入力する(S6)。
Iカウンタ27がNレジスタ26の値に達した
ら、Tメモリ23への全ての引数の要素データの
格納と、Pメモリ24へのTメモリ23のポイン
タの格納とが終了する。
次に、Tメモリ23から引数の読出しが行われ
る。このとき、Iカウンタ27の初期値は、引数
の数である。まず、Iカウンタ27がデクリメン
トされ(S10)、Iカウンタ27が“0”に達し
てなければ(S11)、Aカウンタ25に、Iカウ
ンタ27で示されるPメモリ24の格納場所のデ
ータをセツトする。そして、Jカウンタ29には
“1”がセツトされる(S12)。OTレジスタ22
にAカウンタ25で示されるTメモリ23の格納
場所のデータが出力される。そして、Jカウンタ
29がデクリメントされ、その値にOTレジスタ
22に格納された引数の数が加算される(S13)。
OTレジスタ22のデータが出力される(S14)。
Aカウンタ25がインクリメントされ、Jカウン
タ29がデクリメントされ、その値にOTレジス
タ22の引数の数が加算される(S15)。Jカウ
ンタ29が“0”に達したら、その引数の終端で
あることを示しているので、次の引数について同
様の処理が行われる(S16)。そして、このよう
な処理がIカウンタ27の値が“0”に達するま
で続けられると、引数を逆に並べた要素データの
列、即ち項の出力が終了する。
以上の装置によれば、第3図にも示すように、
従来f(X,g(Y,a),h(b,c))のように、
引数の第1番目に変数Xが現われるような項につ
いて、上記の変換処理を施すことにより、f(h
(b,c),g(Y,a),X)のように変数Xを引
数の一番最後に配置させることができる。
ところで、変数が引数のどの位置に配置される
かは個々のプログラムによつて異なる。従つて、
この装置では、第1図に示すように、上記の変数
処理を行なつた項と変数処理を行なわない項とを
2つの単一化候補項選択処理部12,14に入力
し、これら2つの単一化候補項選択処理部12,
14のうち、先に処理が終了した方の結果を単一
化候補項として出力するようにしている。これに
よつて単一化候補項の数を大幅に絞り込むことが
できる。
[発明の効果] 以上のように、本発明によれば、比較対象とな
る2つの項の各要素を頭から比較し、最初に変数
が現われるまでの部分が一致したものを単一化候
補項として選択する装置において、比較すべき両
項の引数の順序を入替える手段を設け、この手段
によつて引数の入替えを行なつた項同士の比較
と、入替えを行なわなかつた項同士の比較のいず
れか一方によつて単一化候補項の選択を行なうよ
うにしたので、候補項を十分に絞り込むことがで
き、単一化処理の高速化に寄与することができ
る。
【図面の簡単な説明】
第1図は本発明の一実施例に係る単一化候補項
の選択装置の構成を示すブロツク図、第2図は同
選択装置における引数順序変更処理部の詳細ブロ
ツク図、第3図は同変更処理部におけるデータの
流れを示す図、第4図は同変更処理部の動作フロ
ーを示す流れ図、第5図は従来の単一化処理を説
明するための図、第6図及び第7図は従来の単一
化候補項の選択方法を説明するための図である。 1……項集合、2……目標項、11……項記憶
装置、12,14……単一化候補項選択処理部、
13……引数順序変更処理部。

Claims (1)

  1. 【特許請求の範囲】 1 変数又は定数からなる引数を持つ複数の項を
    要素とする項集合と、この項集合とは別に与えら
    れた変数又は定数からなる引数を持つ目標項と
    を、両項の頭から順に比較して行き、いずれかの
    項について最初に変数が現われるまでの部分につ
    いて一致するものを単一化候補項として選択する
    単一化候補項の選択装置において、 前記比較すべき両項の引数の順序を入替える入
    替手段と、 この入替手段によつて引数の入替えが行われた
    項同士の比較を行う第1の比較手段と、 前記入替手段によつて引数の入替えが行われて
    いない項同士の比較を行う第2の比較手段と、 これら第1の比較手段と第2の比較手段を同時
    に適用し、いずれか先に終了した比較手段をもつ
    て、演算結果とする判断手段と、 を具備したことを特徴とする単一化候補項の選択
    装置。
JP1270688A 1988-01-25 1988-01-25 単一化候補項の選択装置 Granted JPH01189730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1270688A JPH01189730A (ja) 1988-01-25 1988-01-25 単一化候補項の選択装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1270688A JPH01189730A (ja) 1988-01-25 1988-01-25 単一化候補項の選択装置

Publications (2)

Publication Number Publication Date
JPH01189730A JPH01189730A (ja) 1989-07-28
JPH0577097B2 true JPH0577097B2 (ja) 1993-10-26

Family

ID=11812856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1270688A Granted JPH01189730A (ja) 1988-01-25 1988-01-25 単一化候補項の選択装置

Country Status (1)

Country Link
JP (1) JPH01189730A (ja)

Also Published As

Publication number Publication date
JPH01189730A (ja) 1989-07-28

Similar Documents

Publication Publication Date Title
US4785400A (en) Method for processing a data base
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
JPH0652225A (ja) ファイル検索方法及びシステム
Price Table lookup techniques
JP2753260B2 (ja) マージ方法
JPH06149589A (ja) 参照対象変数決定処理方法および翻訳処理システム
JPH02130673A (ja) データ検索方式
JPH0786875B2 (ja) ベクトル処理装置
JPH0577097B2 (ja)
JPS59121436A (ja) デ−タ群のソ−ト方法
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
JP2519245B2 (ja) 情報検索装置
JPH1139344A (ja) 2次元配列コードを用いた文字列検索方法
JPS61278933A (ja) デ−タのソ−ト方式
JP2002297897A (ja) データ格納方法及びデータ格納プログラム
JPH01228022A (ja) 二次元データ格納方式
JPS63118958A (ja) 索引フアイル記憶装置
JPS6162125A (ja) 情報検索装置
JPH03147036A (ja) 可変長データ処理装置
JPS63253431A (ja) インバ−テツド構造のデ−タベ−ス検索方式
JPS5824822B2 (ja) デ−タメモリブロックのアクセス方法
JPS62186328A (ja) ソ−ト処理方式
JPH01175651A (ja) アドレス変換方式
JPS61199126A (ja) マイクロプログラムチエツク方式
JPS61170840A (ja) 結合処理における中間データ生成方法

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term