JP2624751B2 - High-speed inference method for compiled knowledge processing tools - Google Patents

High-speed inference method for compiled knowledge processing tools

Info

Publication number
JP2624751B2
JP2624751B2 JP63053523A JP5352388A JP2624751B2 JP 2624751 B2 JP2624751 B2 JP 2624751B2 JP 63053523 A JP63053523 A JP 63053523A JP 5352388 A JP5352388 A JP 5352388A JP 2624751 B2 JP2624751 B2 JP 2624751B2
Authority
JP
Japan
Prior art keywords
machine language
instruction
fact
rule
instruction sequence
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
JP63053523A
Other languages
Japanese (ja)
Other versions
JPH01229329A (en
Inventor
憲一 黒沢
優 島田
忠秋 坂東
利彦 中野
利弘 林
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63053523A priority Critical patent/JP2624751B2/en
Priority to EP19890302317 priority patent/EP0332427A3/en
Publication of JPH01229329A publication Critical patent/JPH01229329A/en
Priority to US08/145,299 priority patent/US5422980A/en
Application granted granted Critical
Publication of JP2624751B2 publication Critical patent/JP2624751B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、エキスパートシステムの高速処理方法に係
り、特にルールや事実をコンピユータの機械語命令列に
変換して高速推論を実現する推論処理方法に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a high-speed processing method of an expert system, and in particular, to an inference processing method of realizing high-speed inference by converting rules and facts into a machine language instruction sequence of a computer. About.

〔従来の技術〕[Conventional technology]

従来、論理型言語のパターンマツチ機能を用いてエキ
スパートシステムの高速な推論エンジンを構築する方式
については、ロジツク・プログラミング・コンフアレン
ス'87,1987年,第233頁から242頁(The Logic Programm
ing Conterence'87(1987)pp233−242)において論じ
られている。
Conventionally, a method for constructing a high-speed inference engine of an expert system using a pattern matching function of a logic language is described in Logic Programming Conference '87, 1987, pp. 233 to 242 (The Logic Programm.
ing Conterence '87 (1987) pp233-242).

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

上記従来技術は、論理型言語PROLOGを用いて、PROLOG
言語自身が有しているパターンマツチ機能とバツクトラ
ツク機能(PROLOGについては文献:中島:PROLOG共立出
版に詳しく述べられている)を効果的に利用することに
より高速な推論エンジンを構築しようとするものであ
る。このため、推論エンジンの必須機能である“実行可
能なルールとその条件を満足する事実の組合せからなる
解情報をすべて求めて、解情報集合を生成する”機能を
効率良く実現できない問題があつた。すなわち、PROLOG
は、ユニフイケーシヨンと呼ぶ変数に値を設定するため
のパターンマツチ機能と自動的に後戻りして別なルール
を選択するバツクトラツク機能を用いて、唯一つの実行
可能なルールを求めることを基本にしているため、推論
エンジンの必須機能である“実行可能なルールをすべて
求めること”が本質的に不得意であることに原因があつ
た。上記従来技術では、上記解情報集合をPROLOGのフア
クト文で実現し、推論の実行時に上記フアクト文をPROL
OGのassertを用いて追加し、retractを用いてあるファ
クト文を削除する必要があつた。このために、上記解情
報の生成や削除処理は、PROLOGのワークエリア上の解情
報を機械語命令に変換したりPROLOGの中間語表現形式へ
変換する必要があつた。さらに上記変換した機械語命令
または中間後を命令コード格納エリアや中間後格納エリ
アへコピーしなければならないため、高速処理が困難で
あつた。
The above prior art uses a logical language PROLOG,
It aims to build a high-speed inference engine by effectively using the pattern matching function and the backtracking function of the language itself (PROLOG is described in detail in the literature: Nakajima: PROLOG Kyoritsu Publishing). is there. For this reason, there is a problem that the essential function of the inference engine, that is, a function of “finding all solution information including combinations of executable rules and facts satisfying the conditions and generating a solution information set” cannot be efficiently realized. . That is, PROLOG
Is based on finding only one executable rule by using a pattern matching function to set a value to a variable called unification and a backtrack function to automatically go back and select another rule. The reason for this is that the essential function of the inference engine, "Finding all executable rules", is inherently weak. In the prior art, the solution information set is realized by a PROLOG fact statement, and the fact statement is
It was necessary to add using OG assert, and remove certain fact sentences using retract. For this reason, in the generation and deletion processing of the solution information, it was necessary to convert the solution information in the work area of the PROLOG into a machine language instruction or into an intermediate language expression form of the PROLOG. Furthermore, since the converted machine language instruction or intermediate intermediate has to be copied to an instruction code storage area or intermediate intermediate storage area, high-speed processing has been difficult.

本発明の目的は、前向き推論を行う推論エンジンの基
本機能である、実行可能なルールを全て求めて、各々の
解情報を更新することを高速に実行し得るコンパイル型
処理ツールにおける高速推論方法を提供することにあ
る。
SUMMARY OF THE INVENTION An object of the present invention is to provide a high-speed inference method in a compile-type processing tool that is a basic function of an inference engine that performs forward inference and that can obtain all executable rules and update each piece of solution information at high speed. To provide.

〔課題を解決するための手段〕[Means for solving the problem]

上記目的は、事実の知識とルールとからなる知識ベー
スをコンピュータが実行するための機械語命令へ変換
し、該変換された機械語命令列と当該変換された機械語
命令列を実行することにより生成される解情報の一つを
選択する解情報選択機械語命令列を実行して推論を行う
推論システムにおける推論方法において、解情報選択機
械語命令列を用いて選択された解情報を利用して、事実
から変換された機械語命令列のデータ部分を変更するこ
とにより事実を更新する事実変更手順と、さらに、更新
された事実を参照するルールに対応する機械語命令列
を、事実管理テーブルを用いて実行する手順により達成
される。
The object is to convert a knowledge base consisting of knowledge of facts and rules into machine language instructions for a computer to execute, and execute the converted machine language instruction sequence and the converted machine language instruction sequence. An inference method in an inference system that executes a solution information selection machine language instruction sequence to select one of generated solution information and performs inference, using the solution information selected using the solution information selection machine language instruction sequence. A fact change procedure for updating the fact by changing the data part of the machine language instruction sequence converted from the fact, and further, a machine language instruction sequence corresponding to a rule that refers to the updated fact, into a fact management table. This is achieved by a procedure performed using

〔作用〕[Action]

解情報集合を高速に生成するために、まず、解情報選
択機械語命令列を用いて選択された解情報を利用して、
事実から変換された機械語命令列のデータ部分を変更す
る事実変更手順により、高速に事実を更新することが可
能になる。
In order to generate a solution information set at high speed, first, using the solution information selected using the solution information selection machine language instruction sequence,
The fact changing procedure for changing the data part of the machine language instruction sequence converted from the fact makes it possible to update the fact at high speed.

さらに、更新された事実を参照するルールに対応する
機械語命令列を管理するテーブルの事実管理テーブルを
用いて求める手順により、事実の更新により再び実行す
る必要のある機械語命令列を高速に求めて実行すること
が可能になる。
Furthermore, by using the fact management table of the table that manages the machine language instruction sequence corresponding to the rule that refers to the updated fact, the machine language instruction sequence that needs to be executed again by updating the facts can be quickly obtained. Can be executed.

以上の手順により、解情報を選択後、高速に事実を更
新してから、次々と別の実行可能なルールを全て求め
て、各々の解情報を高速に生成することが可能になる。
According to the above procedure, after selecting the solution information, the fact is updated at a high speed, and then all other executable rules are obtained one after another, so that each piece of the solution information can be generated at a high speed.

〔実施例〕〔Example〕

まず最初に、ルールと事実の知識の例を第2図に示
し、第3図において、その実行過程を説明する。
First, an example of knowledge of rules and facts is shown in FIG. 2, and the execution process will be described with reference to FIG.

第2図(A)は判断の知識の例である。すなわち、属
性“値”が“人間”である事実Xが存在すれば、その事
実Xの属性“値”を“死ぬ”に変更せよという言葉のル
ールであり、(B)は事実を示す知識の例で、ソクラテ
スは属性“値”として“人間”をもつという意味であ
る。
FIG. 2A shows an example of the knowledge of the judgment. That is, if there is a fact X whose attribute “value” is “human”, the rule is a word that the attribute “value” of the fact X should be changed to “die”. In the example, Socrates means having "human" as the attribute "value".

第3図に示すように、この例を用いた場合の推論エン
ジンの実行過程は前向き推論を前提にすると、事実1
(C)がルールの条件(D1)を満足するか調べ、もし成
立すればルール1と事実1と変数Xの値からなる解情報
・(ルール1,事実1,X=ソクラテス)を解情報保持エリ
アへ保持する。この例では他に解情報が存在せずしかも
実行可能なルールは、上記解情報内のルールだけなの
で、次のルールの実行処理は(D2)に従い、変数Xで示
された事実であるソクラテスの属性“値”の値を“死
ぬ”に変更する処理を行う。この結果、新たな事実
(E)(事実2:ソクラテス値=死ぬ)が作成される。次
に変更前の事実1をもつ解情報を解情報保持エリアから
削除する処理を行う。この結果、解情報保持エリアには
解情報が存在しなくなる。次に、新たな事実2を用いて
ルールの条件(D1)を満足するか調べると成立しないの
ですべてのルールが成立しないことになり、かつ解情報
保持エリアも解情報が存在しないので処理が終了する。
以上の結果、第3図の(E)の事実2だけが前向き推論
から得られたことになる。
As shown in FIG. 3, the execution process of the inference engine using this example assumes that
Check whether (C) satisfies the condition (D1) of the rule, and if it is satisfied, hold solution information consisting of rule 1, fact 1, and the value of variable X (rule 1, fact 1, X = Socrates) Hold to area. In this example, the only rule that has no solution information and can be executed is the rule in the above solution information. Therefore, the execution process of the next rule follows (D2), and is the fact that Socrates The process of changing the value of the attribute “value” to “die” is performed. As a result, a new fact (E) (fact 2: Socrates value = die) is created. Next, a process of deleting the solution information having the fact 1 before the change from the solution information holding area is performed. As a result, no solution information exists in the solution information holding area. Next, if it is checked whether the condition (D1) of the rule is satisfied using the new fact 2, the rule is not satisfied, so that all rules are not satisfied, and the process is terminated because the solution information holding area has no solution information. I do.
As a result, only the fact 2 in FIG. 3E is obtained from the forward inference.

一般には、ルール数,事実数ともに複数個存在するの
で、上記解情報は爆発的に増加し、このような前向き推
論では、すべての解情報を求める処理の高速化が大きな
問題となつている。
In general, since there are a plurality of rules and facts, the above-mentioned solution information explosively increases, and in such forward inference, speeding up the processing for obtaining all the solution information is a major problem.

第4図に推論エンジンの前向き推論実行メカニズムを
示す。ここでF1は、F5のルールとF4の事実のパターンマ
ツチを行い、F5のルールの条件部を満足する解情報をす
べて求め解情報集合に追加し次のF2の競合解消処理にお
いて、ある戦略に基づいて唯1つのルールを選択する。
例えば、最とも新しい事実によつて成立したルールを優
先的に選択する戦略や、最も多くの条件をもつルールを
優先的に選択する戦略などがある。次にF3において選択
されたルールの実行部を実行し、事実を変更や新しい事
実の生成又は事実の削除などを行い、変更前の事実の下
で成立していた解情報を前記解情報集合から削除すると
ともに、変更または新たに追加された事実の下で新たに
成立するルールをすべて求めるパターンマツチ処理F1を
再度くり返す。
FIG. 4 shows a forward inference execution mechanism of the inference engine. Here, F1 performs a pattern match between the rules of F5 and the facts of F4, finds all solution information that satisfies the condition part of the rules of F5, adds it to the solution information set, and in the next conflict resolution process of F2, Only one rule is selected based on the rule.
For example, there are a strategy for preferentially selecting a rule established by the most recent fact, and a strategy for preferentially selecting a rule having the largest number of conditions. Next, the execution unit of the rule selected in F3 is executed, the fact is changed, a new fact is generated or the fact is deleted, and the solution information established under the fact before the change is obtained from the solution information set. In addition to the deletion, the pattern matching process F1 for obtaining all rules that are newly established under the changed or newly added fact is repeated again.

以上のごとく、推論エンジンは、上記解情報集合が空
集合になるまで実行をくり返す。
As described above, the inference engine repeats the execution until the solution information set becomes an empty set.

第5図は、本発明の一実施例を実現するためのハード
ウエア構成図である。ここでHは、記録装置Gに格納さ
れているプログラムを実行するためのコンピユータで、
その機械語命令は、文献D.H.D Warren著のAbstract PRO
LOG Instruction Set,SRI Intrnationl Techmical No.3
09,1983記載の機械語命令を少なくとも有しているもの
とする。Gは記憶装置であり、G1は第1図で示したルー
ルや事実から成る知識ベースを格納するための記憶エリ
アで、G2は本発明の手段を実現するプログラムを格納す
るための記憶エリアで、G3はG2のプログラムによつてG1
の知識ベースから変換された機械語命令列を格納するた
めの記憶エリアであり、G4はG3の機械語命令列が実行さ
れる時に使用するワークエリアであり、上記D.H.D Warr
enの文献ではHeapと呼ばれている領域を意味する。G5は
本発明の一手段を実現するために新設した解情報保持エ
リアで、G6は、G3の機械語命令列が使用する制御エリア
であり、上記文献にてStackと呼ばれている領域を意味
する。またG7は、バツクトラツクが発生した時に変数を
元の値に戻すために当該変数のアドレスを保持する記憶
エリアで、上記文献ではTrail Stackと呼ばれる記憶エ
リアである。またG8は、G1の変換プログラムが使用する
ワークエリアである。
FIG. 5 is a hardware configuration diagram for realizing one embodiment of the present invention. Here, H is a computer for executing a program stored in the recording device G.
The machine language instruction is Abstract PRO written by DHD Warren.
LOG Instruction Set, SRI Intrnationl Technical No.3
Assume that it has at least the machine language instructions described in 09,1983. G is a storage device, G1 is a storage area for storing a knowledge base consisting of rules and facts shown in FIG. 1, G2 is a storage area for storing a program for realizing the means of the present invention, G3 is G1 by G2 program
G4 is a storage area for storing a machine language instruction sequence converted from the knowledge base of GHD, and G4 is a work area used when the machine language instruction sequence of G3 is executed.
In the literature of en, it means an area called Heap. G5 is a solution information holding area newly established to realize one means of the present invention, G6 is a control area used by the machine language instruction sequence of G3, and means an area called Stack in the above document. I do. G7 is a storage area for storing the address of a variable in order to return the variable to its original value when a backtrack occurs, and is a storage area called a Trail Stack in the above document. G8 is a work area used by the conversion program of G1.

第6図は、本発明の手段を実現するプログラムの全体
構成を示したものである。ここではI1は、第2図の事実
の知識を機械語命令列に変換するプログラムで、I2はル
ールの条件部を機械語命令列に変換するもので、I3はル
ールの実行部を機械語命令列に変換するプログラムで、
I4は事実の管理テーブルを作成する処理プログラムであ
る。
FIG. 6 shows the overall configuration of a program for realizing the means of the present invention. Here, I1 is a program for converting knowledge of the facts in FIG. 2 into a machine language instruction sequence, I2 is for converting a condition part of a rule into a machine language instruction sequence, and I3 is a program for converting a rule execution part into a machine language instruction sequence. A program that converts to columns
I4 is a processing program for creating a fact management table.

第7図は、I2をさらに詳細に示したもので、I20は、
ルールの条件部を機械語命令列へ変換するプログラムの
本体であり、I21は、本実施例の重要な一手段である解
情報を生成する機能をもつ機械語命令列生成プログラム
である。
FIG. 7 shows I2 in more detail, where I20 is
I21 is a machine language instruction sequence generation program having a function of generating solution information, which is an important means of the present embodiment, which is a main body of a program for converting a condition part of a rule into a machine language instruction sequence.

第8図は、I3をさらに詳細に示したもので、I30はル
ールの実行部を機械語命令列へ変換するプログラムであ
り、I31はI30で生成された機械語命令列の実行によつて
属性値が変更された事実を有する解情報を解情報保持エ
リアからすべて削除する機械語命令列を生成するプログ
ラムである。
FIG. 8 shows I3 in more detail. I30 is a program for converting a rule execution section into a machine language instruction sequence, and I31 is an attribute obtained by executing the machine language instruction sequence generated by I30. This is a program for generating a machine language instruction sequence for deleting all the solution information having the fact that the value has been changed from the solution information holding area.

以下、各プログラムの構成について詳しく述べる。第
9図は、事実の知識の一般表現を示したものである。本
発明では、第4図のF1のパターンマツチ処理を高速化す
るため、第9図(J)の事実の知識を、D.H.D Warren著
の前記文献記載の“get−constant fid,A1",“get−con
stant time−tag,A2",“get−constant Vi,Ai+2"(i=
1〜n)命令列と“Proceed"命令の組へ変換することに
より高速パターンマツチを実験する。
Hereinafter, the configuration of each program will be described in detail. FIG. 9 shows a general expression of knowledge of facts. In the present invention, in order to speed up the pattern matching process of F1 in FIG. 4, knowledge of the facts in FIG. 9 (J) is obtained by using "get-constant fid, A1", "get −con
stant time-tag, A2 "," get-constant Vi, A i + 2 "(i =
1 to n) Experiment high-speed pattern matching by converting to a set of instruction sequence and “Proceed” instruction.

ここで上記get−constant命令は、定数と引数レジス
タAi(上記文献ではArgumeut registerと呼んでいる)
とのパターンマツチを行う命令である。また、fidは事
実を一意に識別するための識別番号でありtime−tag
は、事実の新しさを示すタイムフラグである。すなわ
ち、time−tagが大きい値であればあるほど新しい事実
であることを意味する。さらに、Vi(i=1〜n)は、
事実の属性値であり、“Proceed"命令は、上記すべての
get−constant命令のパターンマツチングが成功した時
に限り実行される命令で、上記文献ではレジスタCP(Co
ntinuous Pointer)で指示されたアドレスへジャンプす
る命令である。すなわち、第10図のプログラムI10は、
第9図(J)を(K)の機械語命令列へ変換し、第5図
のG3の記憶エリアへ格納する手段を示している。I101は
いI1の処理を意味する。すなわち、I101では、G3のトツ
プアドレスを示すCode−Prで指示された場所へ前記“ge
t−constant fid,A1"命令を書き込む処理を行い、次のI
102では、上記命令のサイズαだけCode−Prをインクリ
メントしている。次のI103では、Code−Prで指示された
場所へ前記“get−constant time−tag,A2"命令を書き
込む処理を行い、次のI104では、上記命令サイズαだけ
Code−Prをインクリメントしている。次のI105では、I1
06とI107を事実の属性個数n回実行し、I106ではCode−
Prで指示されたアドレスへ、前記“get−constant Vi,A
i+2"命令を書き込む処理を行い、次のI107では、上記命
令サイズαだけCode−Prをインクリメントしている。次
のI108では、Code−Prで指示された場所へ前記“Procee
d"命令を書き込み、最後にI109にてCode−Prを“Procee
d"命令をサイズβだけインクリメントして処理を終了す
る。
Here, the above-mentioned get-constant instruction is a constant and an argument register A i (referred to as an Argumeut register in the above document).
This is an instruction to perform a pattern match. Fid is an identification number for uniquely identifying a fact, and time-tag
Is a time flag indicating the newness of the fact. That is, the larger the value of the time-tag, the newer the fact. Further, V i (i = 1 to n) is
Attribute value of the fact, the “Proceed” instruction
This instruction is executed only when the pattern matching of the get-constant instruction succeeds.
This is an instruction to jump to the address specified by the ntinuous pointer. That is, the program I10 in FIG.
FIG. 9 shows means for converting (J) in FIG. 9 into a machine language instruction sequence of (K) and storing it in the storage area G3 in FIG. I101 means the processing of I1. That is, in I101, the “ge” is transferred to the location specified by Code-Pr indicating the top address of G3.
Perform processing to write the t-constant fid, A1 "instruction.
In 102, Code-Pr is incremented by the size α of the instruction. In the next I103, a process of writing the “get-constant time-tag, A2” instruction to the location specified by Code-Pr is performed. In the next I104, only the instruction size α
Code-Pr is incremented. In the next I105, I1
06 and I107 are executed n times for the number of attributes of the fact.
To the address designated by Pr, the above “get-constant Vi, A
In the next I107, the Code-Pr is incremented by the instruction size α. In the next I108, the “Procee” is moved to the location specified by the Code-Pr.
d ”instruction is written, and finally Code-Pr is changed to“ Procee ”at I109.
The d "instruction is incremented by the size β and the processing is terminated.

第11図は、第6図のI4で作成する事実の管理テーブル
の構成図を示したものである。すなわち、事実は、第4
図のパターンマツチ処理F1で参照されるばかりでなく、
F3にて事実の属性値の変更も行われる。本事実管理テー
ブルは、上記F3にて高速に属性値を変更するためと、変
更が発生した時に、F1にてその事実を条件部で参照して
いるルールの実行可能性を高速に調べるために用いる。
FIG. 11 shows a configuration diagram of a fact management table created at I4 in FIG. That is, the fact is
Not only is it referenced in the pattern match processing F1 in the figure,
F3 also changes the attribute value of the fact. This fact management table is used to quickly change the attribute value in F3 above and to quickly check the feasibility of the rule that refers to the fact in the condition part in F1 when the change occurs Used.

すなわち、第11図に示すごとく事実管理テーブルFT
は、各事実ごとにその事実と条件部にて参照しているル
ールの条件部をI2にて変換した機械語命令のアドレスか
ら成るテーブル1hs−tblへのポインタ1hs−tbl−adr
と、事実の属性個数n−slotと事実を一意に決定するた
めのfid情報と事実に対応する機械語命令列へのfact−P
rから成り立つている。
That is, as shown in FIG. 11, the fact management table FT
Is a pointer 1hs-tbl-adr to a table 1hs-tbl composed of the addresses of machine instructions converted by I2 from the condition part of the rule referred to by the fact and the condition part for each fact
And the number of attribute n-slot of the fact, the fid information for uniquely determining the fact, and the fact-P to the machine language instruction sequence corresponding to the fact
It consists of r.

次に第7図のルールの条件部処理プログラムについて
詳しく説明する。I20は、条件部を機械語命令列へ変換
するプラグラムで、I21は本発明で最も重要な手段であ
る解情報を生成する機能を有する機械語命令列を生成す
るプログラムである。上記プログラムの説明の前に、第
12図を用いてルールの条件部をどのような機械語命令へ
変換するのか説明する。
Next, the condition part processing program of the rule in FIG. 7 will be described in detail. I20 is a program for converting a condition part into a machine language instruction sequence, and I21 is a program for generating a machine language instruction sequence having a function of generating solution information, which is the most important means in the present invention. Before explaining the above program,
Using FIG. 12, a description will be given of what machine language instruction is used to convert the condition part of the rule.

A12は、n個の条件から成るルールの条件部である。
一般には、これら各条件は、事実の属性値を参照し、事
実の属性値同志の関係を条件としている。また、一般的
な条件も記述可能で、各属性が第2図のルールの条件の
ごとく変数を含んでいることもありうる。このようなル
ールの条件部を本発明の手段では、各条件で参照してい
る事実の数だけ、第12図に示す機械語命令列に変換す
る。例えば、A12の条件部でK個の事実を参照していれ
ば、第12図の機械語命令列は、K種作成されることにな
る。B12〜H12の機械語命令列は、第9図に示す事実
(J)がA12の条件部で参照されている時の命令列を示
している。以下、この場合の機械語命令列の機能を簡単
に説明する。
A12 is a condition part of a rule composed of n conditions.
Generally, each of these conditions refers to the attribute value of a fact, and is based on the relationship between the attribute values of the fact. In addition, general conditions can be described, and each attribute may include a variable as in the rule conditions in FIG. In the means of the present invention, the condition part of such a rule is converted into the machine language instruction sequence shown in FIG. 12 by the number of facts referred to in each condition. For example, if K conditions are referenced in the condition part of A12, K kinds of machine language instruction sequences in FIG. 12 are created. The machine language instruction sequences B12 to H12 show the instruction sequence when the fact (J) shown in FIG. 9 is referred to in the condition part of A12. Hereinafter, the function of the machine language instruction sequence in this case will be briefly described.

まず、機械語“allocate l"命令はD.H.D Warren著の
前記文献にて詳しく述べられているように、第5図の制
御エリアG6へA12の条件部中に含まれる変数の個数l個
の領域を確保して制御情報を確保し格納する。次のB12
では、変更された事実の属性値及びタイムタグをそれぞ
れVi(i=1〜w)とT−tagという上記変数領域へ保
持する。またfidは変更された事実の識別がfidであるか
どうかを調べるために使用する。この時に使用する“ge
t−constant"命令及び“get−variable"命令は、上記文
献に記載されているとおりである。次のC12では、A12の
条件部に対応する機械語命令列で、変数への属性値の代
入や代入された値と他の属性値との比較などに対応する
機械語命令列である。次のD12、本発明で重要な役割り
を果たす機械語命令列で、上記B12〜C12がワークエリア
G4や制御エリアG6を使用して処理を行つているのに対し
てD12ではG4のトツプアドレスを示すレジスタHの値を
一時保持レジスタSHへ転送する“move H,SH"命令と解情
報保持エリアのトツプアドレスを示するレジスタKの値
をレジスタHへ転送する“move K,H"命令から成つてい
る。この意味するところは、以下のE12〜F12において生
成する解情報をワークエリアG4ではなく解情報保持エリ
アG5へ生成することにある。すなわち、E12とF12におい
て使用する“put−list"および“unify−value"命令な
どは、D.H.D Warren著の前記文献では、各命令のオペラ
ンドで指示されたリストデータおよび変数の値とレジス
タHで指示された場所へ生成するため、D12においてレ
ジスタHを解情報保持エリアのトツプアドレスを指示す
るように変更し、上記命令によつて解情報を解情報保持
エリアG5へ生成しようとするものである。
First, as described in detail in the above-mentioned document by DHD Warren, the machine language "allocate l" instruction is used to transfer the 1 area of the number of variables included in the condition part of A12 to the control area G6 of FIG. Secure and store control information. Next B12
In holds modified facts attribute values and time tag to V i (i = 1~w) above that the T-tag variable region, respectively. Fid is also used to find out if the identity of the changed fact is fid. "Ge used at this time
The “t-constant” instruction and the “get-variable” instruction are as described in the above-mentioned document.In the next C12, assignment of attribute values to variables in a machine language instruction sequence corresponding to the conditional part of A12 And a machine language instruction sequence corresponding to a comparison between the assigned value and another attribute value, etc. The following D12 is a machine language instruction sequence that plays an important role in the present invention, and B12 to C12 are work areas.
While processing is performed using G4 and control area G6, D12 transfers the value of register H indicating the top address of G4 to temporary holding register SH, and a "move H, SH" instruction and solution information holding area. The "move K, H" instruction transfers the value of the register K indicating the top address of the register K to the register H. This means that the solution information generated in the following E12 to F12 is generated not in the work area G4 but in the solution information holding area G5. That is, the "put-list" and "unify-value" instructions used in E12 and F12 are described in the above-mentioned document by DHD Warren by the register H and the list data and variable values indicated by the operands of each instruction. In order to generate the solution information at the specified location, the register H is changed in D12 to indicate the top address of the solution information holding area, and the solution information is generated in the solution information holding area G5 by the above instruction.

次のE12では、レジスタA1へ解情報保持エリアG5のト
ツプアドレスを示するリストポインタを書き込む“put
−list"命令と変数VVi(i=1〜p)を解情報保持エリ
アへ書き込む“unify−value"命令から成つている。こ
れにより、解情報の一部である変数情報を解情報保持エ
リアへ書き込むことができる。次のF12では、レジスタA
2へ解情報保持エリアG5のトツプアドレスを示すリスト
ポインタを書き込む“put−list"命令とC12の条件を満
足した事実のタイムタグT−tagi(i=1〜q)を解情
報保持エリアへ書き込む“unify−value"命令から成つ
ている。これにより、解情報の一部であるタイムタグ情
報を解情報保持エリアへ書き込むことができる。次のG1
2では、解情報保持エリアへ解情報を生成する処理が終
了したので第13図に示すごとく生成した変数情報リスト
V−listとタイムタグリストT−listをルール管理テー
ブルRCTへ登録する処理命令add−csの実行を行う。ここ
でridは、ルールの一意に決定するための番号である。
In the next E12, a list pointer indicating the top address of the solution information holding area G5 is written into the register A1 by "put
-List "instruction and an" unify-value "instruction for writing a variable VV i (i = 1 to p) into the solution information holding area. In the next F12, register A
2, a "put-list" instruction for writing a list pointer indicating the top address of the solution information holding area G5 and a time tag T-tagi (i = 1 to q) of a fact satisfying the condition of C12 are written to the solution information holding area. It consists of an "unify-value" instruction. Thereby, the time tag information, which is a part of the solution information, can be written to the solution information holding area. Next G1
In step 2, since the processing for generating the solution information in the solution information holding area is completed, the processing instruction add for registering the generated variable information list V-list and time tag list T-list in the rule management table RCT as shown in FIG. Execute -cs. Here, rid is a number for uniquely determining a rule.

また第13図のV−list(i=1〜r),T−list(i=
1〜r)はRCTのridエントリに既に登録されている解情
報リストを意味している。新たに生成した解情報V−li
st,T−listは、第13図に示すごとくadd−cs命令によつ
てまずによつて新たに追加した解情報のポインタセル
(レジスタHで指示された場所)へRCTのridエントリの
内容であるrid−prを書き込み、次にによつてrid−pr
をレジスタKに書き換える処理を行う。これによつて新
たな解情報は、ルール管理テーブルとridのエントリに
登録することができた。この処理は、第14図に示すadd
−cs命令の処理フローで示している。次の第12図のH12
では解情報保持エリアからワークエリアへレジスタHを
元に戻す処理を行う。すなわち、レジスタHの内容をレ
ジスタKへ転送し、次のレジスタSHの内容とレジスタH
へ転送することにより、以後の処理ではレジスタHはワ
ークエリアを操作することになる。次の“deallocate"
と“fail"命令は、D.H.D Warren著の前記文献に記載さ
れているように制御してエリアから制御情報と変数領域
を解放し、強制的にバツクトラツクを発生させる処理を
行う。これにより、解情報はバツクトラツクの影響を受
けない(すなわちバツクトラツクによつても解放されな
い)解情報保持エリアへ格納することが可能となり、一
方、実行制御は、強制的にバツクトラツクを発生させる
ことにより、次々と別のルールと条件部を実行すること
が可能となるため、効率的にすべての解情報が解情報保
持エリアへ格納することが可能となる。また、本発明で
は、D12とH12で示したごとく、簡単な制御によりワーク
エリアと解情報保持エリアを切り換えることができる点
及び、E12とF12で示したごとく解情報をワークエリアへ
生成し、その後解情報エリアへコピーするのではなく、
直接解情報保持エリアへ生成することができる点が特徴
である。また、レジスタKとHを用いて第14図に示すご
とくJ100とJ200によつてルール管理テーブルへ新たに生
成した解情報を登録することができる。尚、競合集合
は、第13図にて説明したように解情報保持エリアG5に生
成される。このためルール管理テーブルRCTによって管
理されるものである。また、タイムタグ情報は最新の事
実のもとで成立しているルールを優先的に選択し、その
ルールの実行部を実行するために使用されるものであ
る。
In addition, V-list (i = 1 to r) and T-list (i =
1 to r) mean solution information lists already registered in the rid entry of the RCT. Newly generated solution information V-li
The st, T-list is the contents of the rid entry of the RCT to the pointer cell (location indicated by the register H) of the solution information newly added by the add-cs instruction as shown in FIG. Write a certain rid-pr, then use rid-pr
To the register K. As a result, new solution information can be registered in the rule management table and the entry of rid. This processing is performed by using the add
This is shown in the processing flow of the -cs instruction. H12 in Fig. 12
Then, processing for returning the register H from the solution information holding area to the work area is performed. That is, the contents of the register H are transferred to the register K, and the contents of the next register SH and the register H are transferred.
Then, in the subsequent processing, the register H operates the work area. Next “deallocate”
And the "fail" instruction perform control to release the control information and the variable area from the area under control as described in the above-mentioned document by DHD Warren, and to forcibly generate a backtrack. As a result, the solution information can be stored in the solution information holding area which is not affected by the backtrack (that is, is not released even by the backtrack). Since another rule and condition part can be executed one after another, all the solution information can be efficiently stored in the solution information holding area. Further, in the present invention, as shown by D12 and H12, the work area and the solution information holding area can be switched by simple control, and the solution information is generated in the work area as shown by E12 and F12, and thereafter, Instead of copying to the solution information area,
The feature is that it can be directly generated in the solution information holding area. Also, as shown in FIG. 14, newly generated solution information can be registered in the rule management table by means of J100 and J200 using the registers K and H. Note that the conflict set is generated in the solution information holding area G5 as described with reference to FIG. Therefore, it is managed by the rule management table RCT. The time tag information is used to preferentially select a rule that is established based on the latest fact and execute an execution unit of the rule.

以上が、第7図I20とI21によつて行うべき処理内容で
ある。すなわち、I20ではルールの条件部を第12図のB12
〜C12の機械語命令列へ変換し、次のI21では、第12図の
D12〜H12の機械語命令列へ変換する処理プログラムであ
る。
The above is the contents of the processing to be performed according to FIG. 7 I20 and I21. That is, in I20, the condition part of the rule is
To the machine language instruction sequence of C12.
This is a processing program for converting into a machine language instruction sequence of D12 to H12.

これにより、変更された事実を参照している条件とし
てもつルールを実行することが可能となり、しかも効率
良くすべての解情報を解情報保持エリアへ保持すること
ができる。これで第4図のF1のパターンマツチ処理が終
了したことになる。次にF2の競合解消処理によつて1つ
の実行すべきルールを決定する必要があるが、この処理
は本発明とは直接関係無いので、ここでは一意にルール
を特定化するためのrid番号とその解情報((VV1,…,VV
p),T−list)が解情報保持エリアの中から選択された
ものと仮定する。もし解情報保持エリアに1つも解情報
が無くなつた時、すべての推論処理が終了したことにな
る。
As a result, it becomes possible to execute a rule having a condition referring to the changed fact, and efficiently hold all the solution information in the solution information holding area. This means that the pattern matching process of F1 in FIG. 4 has been completed. Next, it is necessary to determine one rule to be executed by the conflict resolution processing of F2. However, since this processing is not directly related to the present invention, here, the rid number for uniquely specifying the rule is used. The solution information ((VV1, ..., VV
It is assumed that p) and T-list) are selected from the solution information holding area. If there is no solution information in the solution information holding area, all inference processing has been completed.

尚、ここで具体的な一例を用いて、ワークエリアG4と
解情報保持エリアG5に格納されるデータ構造について説
明する。
Here, the data structure stored in the work area G4 and the solution information holding area G5 will be described using a specific example.

ワークエリアG4へ格納するデータを第9図に示される
事実と、第12図中のB12,C12を用いて説明する。尚、第
9図における事実を、事実:値1=1.5,値2=2.5と
し、第12図中のC12をgreater−than2.0>A3+A4とる
と、第12図中のB12では、レジスタA3(実数1.5)とA4の
内容(実数2.5)を変数領域V1とV2へ格納している。第1
2図中のC12では、A3とA4を加算した値4.0をワークエリ
アG4へ生成する。この結果レジスタHは第24図に示した
位置を指示する。次ぎに4.0と定数2.0と比較し条件を満
足しないため、レジスタHの値を再び第24図に示した以
前のHの値に変更する。このように、4バイト長を越え
るデータがワークエリアG4に格納される。また、一方解
情報保持エリアG5に格納されるデータの構造は、第12図
の命令列E12,F12の実行によって第25図のデータ構造が
生成される。本実施例においては、簡易的にこのデータ
構造を((VV1,VV2,…VVp),(Ttag1,Ttag2,…,Ttag
q))と表現している。更に、G12の命令を実行すること
により、上記データ構造の最後のアドレスrid−prを書
き込む(第14図中のJ100)、rid−prは、第13図に示し
た要にこのルールの解情報アドレスである。その結果、
上記のデータ構造は、((VV1,VV2,…,VVp),(Ttag1,
Ttag2,…,Ttagq),rid−pr)となる。
The data stored in the work area G4 will be described using the fact shown in FIG. 9 and B12 and C12 in FIG. It is assumed that the fact in FIG. 9 is Fact: Value 1 = 1.5, Value 2 = 2.5, and C12 in FIG. 12 is greater-than2.0> A3 + A4, and B12 in FIG. The real number 1.5) and the contents of A4 (real number 2.5) are stored in the variable areas V1 and V2. First
At C12 in FIG. 2, a value 4.0 obtained by adding A3 and A4 is generated in the work area G4. This result register H points to the position shown in FIG. Next, since the condition is not satisfied by comparing 4.0 with the constant 2.0, the value of the register H is changed again to the previous value of H shown in FIG. Thus, data exceeding the 4-byte length is stored in the work area G4. On the other hand, as for the structure of the data stored in the solution information holding area G5, the data structure of FIG. 25 is generated by executing the instruction sequences E12 and F12 of FIG. In the present embodiment, this data structure is simply referred to as ((VV1, VV2,... VVp), (Ttag1, Ttag2,.
q)). Further, by executing the instruction of G12, the last address rid-pr of the above data structure is written (J100 in FIG. 14), and rid-pr is the solution information of this rule as shown in FIG. Address. as a result,
The above data structure is ((VV1, VV2, ..., VVp), (Ttag1,
Ttag2, ..., Ttagq), rid-pr).

また、解情報の追加処理については、上記のように生
成したデータ構造の最後(レジスタHで指示された場
所)に、他の解情報の先頭アドレス(rid−pr)を追加
する(第14図のJ100)。次ぎに、生成したデータ構造の
先頭アドレスを指示するレジスタKの値をルール管理テ
ーブルCRTへ書き込む(J200)。この結果、第13図に示
したようにリストの構造の形で追加されることになる。
As for the solution information adding process, the start address (rid-pr) of other solution information is added to the end of the data structure generated as described above (at the location specified by the register H) (FIG. 14). J100). Next, the value of the register K indicating the start address of the generated data structure is written to the rule management table CRT (J200). As a result, they are added in the form of a list as shown in FIG.

次に第8図に示すルールの実行部処理について詳しく
説明する。まず、ルールの実行部をどのような機械語命
令列に変換するのかを第15図を用いて説明する。この図
は、ルールの実行部が“modify(X,値=死ぬ)”であ
り、これは、事実Xの属性“値”を死ぬに変更する処理
である。まず、“get−constant rid,A1"命令は、やは
りルール番号を保持している引数レジスタA1とこのルー
ルの番号ridのパターンマツチを行う命令である。これ
により、実行すべきルールがridである時のみ、このル
ールを実行することが可能である。
Next, the execution part processing of the rule shown in FIG. 8 will be described in detail. First, what kind of machine language instruction sequence is converted into a rule execution unit will be described with reference to FIG. In this figure, the execution part of the rule is “modify (X, value = die)”, which is the process of changing the attribute “value” of fact X to die. First, a "get-constant rid, A1" instruction is an instruction for performing a pattern match between the argument register A1 which also holds a rule number and the number rid of this rule. Thus, this rule can be executed only when the rule to be executed is rid.

次のget−list,unify−value VV1,…,unify−value V
Vp命令は、前記解情報の中の変数情報VV1,…,VVpを参照
する命令である。すなわち、このルールの条件部にて変
数として出現し、かつ実行部にも出現した変数を解情報
保持エリアに格納していたのは、このように実行部で参
照するためである。この例ではVVl(1≦l≦P)が変
更された事実のfidを保管していう変数をしているもの
と仮定する。次のget−variable A3命令は、解情報の内
のタイムタグ情報を得るための命令である。ここでは必
要がないため、引数レジスタA3に保持しただけである。
次のread−time−tag VVl,T−tag命令は、変更された事
実のタイムタグを変数T−tagへ格納する命令で第16図
で詳しく説明する。次のmodify−frame−slot命令は、
変更すべき事実VVlの属性番号slot−noの値をvalueに変
更し、そのタイムタグを更新する処理を行う命令であ
る。次のfr−rule VVl,list−pointer命令は、変更され
た事実をその条件部で参照しているルールの保持してい
るルールフレームテーブルから求め、そのリストデータ
を変数list−pointerへ格納する命令である。すなわ
ち、list−pointerに存在するルールのみ実行すれば、
変更された事実の下で成立するルールをすべて知ること
ができる。次のcut−cs命令は、解情報保持エリア中の
解情報が変更される以前の事実を示すタイムタグT−ta
gをもつているかどうか調べる命令である。すなわち、
本命令では、解情報保持エリアの中でT−tagをもつて
いる解情報をすべて削除する処理を行う。次のmake−go
al−jump命令は、変更された事実VVlの各引数、すなわ
ち各属性値を引数レジスタAiへロードし、その事実を参
照しているルールの条件部に対する機械語命令列を次々
と実行する処理を行う。すなわち、これにより前記ルー
ルの条件部のパターンマツチ処理が呼び出される。以上
のごとく、本発明では、以前に述べたように、解情報を
効率良く求めることができるコンパイル方式である点が
特徴である。
Next get-list, unify-value VV1, ..., unify-value V
The Vp instruction is an instruction for referring to the variable information VV1,..., VVp in the solution information. That is, the reason that the variable that appears as a variable in the condition part of the rule and also appears in the execution part is stored in the solution information holding area is to be referred to by the execution part. In this example, it is assumed that VVl (1 ≦ l ≦ P) is a variable that stores the fid of the changed fact. The next get-variable A3 command is a command for obtaining time tag information in the solution information. Since it is not necessary here, it is only stored in the argument register A3.
The next read-time-tag VVl, T-tag instruction is an instruction for storing the time tag of the changed fact in the variable T-tag, which will be described in detail with reference to FIG. The following modify-frame-slot instruction:
This is an instruction for changing the value of the attribute number slot-no of the fact VVL to be changed to the value and updating the time tag. The next fr-rule VVl, list-pointer instruction obtains the changed fact from the rule frame table held by the rule referring to the condition part, and stores the list data in the variable list-pointer. It is. That is, if only rules that exist in list-pointer are executed,
Know all the rules that hold under the changed facts. The next cut-cs instruction is a time tag T-ta indicating the fact before the solution information in the solution information holding area is changed.
This is an instruction to check if it has g. That is,
In this instruction, a process of deleting all the solution information having a T-tag in the solution information holding area is performed. Next make-go
al-jump instruction, the argument of the facts has changed VVL, i.e. load each attribute value to the argument register A i, processing for sequentially executing the machine language instruction sequence for the condition part of the rule that refer to that fact I do. That is, the pattern matching process of the condition part of the rule is called. As described above, the present invention is characterized in that, as described above, the compile method can efficiently obtain solution information.

以下、第16図を用いて“read−time−tag"を説明す
る。まず、A16では第11図の事実管理テーブルのトツプ
アドレスを示すFT−topと事実のfidを示すVVlからft−p
rを求める。このft−prは、第11図に示す4つの情報1hs
−tbl−adr,n−slot,fid,fact−prのトツプを示すアド
レスである。次のB16では、ft−prに3を加えたテーブ
ルの内容、すなわち事実の機械語命令列を指示するアド
レスをfact−prへ代入する処理を行つている。次のC16
では、第11図中のtime−tagの値をT−tagへロードする
ため、命令のサイズαとそのオペランドサイズγのオス
セツトを加えたアドレスfact−pr+α+γの内容をT−
tagへロードしている。これにより変数T−tagへタイム
タグがロードされたことになる。
Hereinafter, "read-time-tag" will be described with reference to FIG. First, in A16, FT-top indicating the top address of the fact management table in FIG. 11 and ft-p from VVl indicating the fid of the fact are shown.
Find r. This ft-pr is composed of four information 1hs shown in FIG.
-Tbl-adr, n-slot, fid, address indicating the top of fact-pr. In B16, processing is performed to substitute the contents of the table obtained by adding 3 to ft-pr, that is, the address indicating the actual machine language instruction sequence, into fact-pr. Next C16
In order to load the value of the time-tag in FIG. 11 into the T-tag, the contents of the address fact-pr + α + γ obtained by adding the ossets of the instruction size α and the operand size γ are stored in the T-tag.
Loading to tag. This means that the time tag has been loaded into the variable T-tag.

次の第17図は、modify−frame−slot命令のフローで
ある。A17ではFT−topとVVlにより事実管理テーブルのf
idに関する情報エリアアドレスft−topを求めている。
次のB17では事実の機械語命令列へのアドレスfact−pr
を求めている。C17では、属性番号slot−noと命令のサ
イズαを用いて、変更したい属性をもつ機械語命令のト
ツプアドレスwkを求めている。次のD17ではその機械語
命令のオペランド、すなわち属性値アドレスへ変更した
い値valueを書き込んでおり、次のE17では、事実が変更
されたので、タイムタグを更新するため、機械語命令列
中のタイムタグのアドレスfact−pr+α+γへ一意に最
新のタイムタグを保持しているglobal−time−tagの内
容を書き込み、次のF17では、次の事実の変更があつた
ときのために、global−time−tag値を更新している。
FIG. 17 shows the flow of the modify-frame-slot instruction. In A17, FT-top and VVl use the f
Information area address ft-top for id is required.
In the next B17, the address fact-pr to the actual machine language instruction sequence
Seeking. In C17, the top address wk of the machine language instruction having the attribute to be changed is obtained using the attribute number slot-no and the instruction size α. In the next D17, the value of the instruction to be changed is written to the operand of the machine language instruction, that is, the attribute value address. In the next E17, since the fact has been changed, the time tag is updated. Write the contents of the global-time-tag holding the latest time tag uniquely to the address of the time tag, fact-pr + α + γ, and in the next F17, the global-time -Tag value is updated.

次にfr−rule命令を説明するが、その前に、各事実ご
とに、その事実をルールの条件部にて参照しているルー
ルを保持しているルールフレームテーブルの構成につい
て説明する。第18図は、ルールフレームテーブルRETと
そのトツプアドレスを示すFR−top、および各事実fidを
参照しているルールのリストを示すlist−pointerを示
している。また参照しているルールは、一意にルールを
特定化できる番号rid1〜ridmによつて結合されている。
この例では、事実fidは、rid1大1からridmまでのm個
のルール条件部に出現していることを示している。以上
の準備のもとに第19図を用いてfr−rule命令を説明す
る。
Next, before describing the fr-rule instruction, before that, the configuration of a rule frame table that holds, for each fact, a rule that refers to the fact in the condition part of the rule will be described. FIG. 18 shows a rule frame table RET, an FR-top indicating its top address, and a list-pointer indicating a list of rules referencing each fact fid. The rules referred to are linked by numbers rid1 to ridm that can uniquely specify the rule.
In this example, the fact that fid appears in m rule condition parts from rid1 large 1 to ridm. With the above preparation, the fr-rule instruction will be described with reference to FIG.

A19では、ルール・フレームテーブルのトツプアドレ
スFR−topと事実のfidを示すVVlを用いて、その事実を
条件部にて参照しているルールのリストアドレスをlist
−pointrへロードしている。
In A19, using the top address FR-top of the rule frame table and VVl indicating the fact fid, the list address of the rule that refers to the fact in the condition part is listed.
Loading to -pointr.

次ぎに、解情報の削除距離(cut−cs命令)について
第20図及び第21図を用いて説明する。
Next, the solution information deletion distance (cut-cs command) will be described with reference to FIGS. 20 and 21. FIG.

A20で、ルールフレームテーブルRFT内のlist−pointe
rで指示されたrule idをridへ代入する。これにより、
変更されたfidを参照しているルールをridへ設定するこ
とが可能となる。B20で、list−pointerの次ぎのアドレ
スの内容、即ち、他のrule idのアドレスをlist−point
erへ代入する。C20で、変数jへ1を代入する。これはF
20で参照するために設定するものである。D20で、ルー
ル管理テーブルRCTの先頭アドレスRid−topとridを加算
した値をrid−prへ代入する。rid−prはルール管理テー
ブルRCTのエントリアドレスを示している。E20で、ルー
ル管理テーブルRCTの内容に1を加えた値をT−listjに
代入する。この結果、T−listjは、タイムタグリスト
T−listのアドレスを保持する。次ぎに、F20で、cut−
csで指定されたT−tagがそのリストT−listに含まれ
ているか判定し、もし含まれていれば、削除する。Ga20
で、F20の処理終了後のT−listjから次ぎの解情報リス
トアドレスを求めr−prへ代入する。G20で、他に解情
報が存在するか判定し、もし存在しなければH20にて、
他のridが存在するか判定する。逆にもし存在すれば、l
a20にて、次ぎのrule idアドレスrid−prを求め、l20に
てjを加算して再びE20を実行する。
In A20, list-pointe in rule frame table RFT
Substitute the rule id specified by r into rid. This allows
A rule referring to the changed fid can be set to rid. In B20, the content of the address next to the list-pointer, that is, the address of another rule
Assign to er. At C20, 1 is substituted for a variable j. This is F
This is set for reference at 20. In D20, a value obtained by adding the start address Rid-top and rid of the rule management table RCT is substituted for rid-pr. rid-pr indicates an entry address of the rule management table RCT. In E20, a value obtained by adding 1 to the contents of the rule management table RCT is substituted for T-listj. As a result, T-listj holds the address of the time tag list T-list. Next, at F20, cut-
It is determined whether the T-tag specified by cs is included in the list T-list, and if it is, it is deleted. Ga20
Then, the next solution information list address is obtained from T-listj after the process of F20 is completed, and is substituted into r-pr. At G20, determine whether there is any other solution information, and if not, at H20,
Determine if another rid exists. Conversely, if it exists, l
At a20, the next rule id address rid-pr is obtained, j is added at l20, and E20 is executed again.

第21図は、第20図におけるT−listj処理(F20)のフ
ローである。A21で、T−listjにて指示されたタイムタ
グリストの先頭要素をt−tagへ代入する。B21で、指定
されたT−tagとt−tagとを比較して一致していればC2
1を実行し、一致していなければF21を実行する。C21
は、jへ0を代入することにより一致したt−tagした
ことを示す。F21では、タイムタグリストの全ての要素
を調べたか判定し、もし正しければHa21を実行し、正し
くなければG21を実行する。Ha21では、jが0か判定
し、0であれば、T−tagがタイムタグリスト中になか
ったことを意味するため削除することなく終了する。一
方、0でなければH21にて削除処理を実行する。即ち、
次ぎの解情報へのポインタ(T−listj+2)をrid−pr
で指示されたアドレスへ格納することによってその解情
報を削除する。
FIG. 21 is a flowchart of the T-listj processing (F20) in FIG. In A21, the head element of the time tag list designated by T-listj is substituted for t-tag. In B21, the specified T-tag and t-tag are compared and if they match, C2
Execute 1 and if they do not match, execute F21. C21
Indicates that a matching t-tag was obtained by substituting 0 into j. In F21, it is determined whether all the elements of the time tag list have been checked. If it is correct, Ha21 is executed, and if it is not correct, G21 is executed. In Ha21, j is determined to be 0, and if it is 0, it means that the T-tag was not in the time tag list, and the processing ends without deleting. On the other hand, if it is not 0, the deletion process is executed at H21. That is,
The pointer (T-listj + 2) to the next solution information is rid-pr
The solution information is deleted by storing the information at the address specified in step (1).

以上でT−listj処理が終了する。参考のため、第22
図に、T−listjのリスト構成例を示す。このように、
T−listj自身もリスト構造をしているものとして説明
した。
Thus, the T-listj process ends. For reference, 22nd
The figure shows a list configuration example of T-listj. in this way,
T-listj itself has been described as having a list structure.

第23図は、変更された事実の下で再度解情報を求める
ために、前記ルールの条件部に対する命令コード(第12
図)を次々と実行するための機械語命令make−goal−ju
mp命令のフローである。
FIG. 23 shows an operation code (FIG. 12) for the condition part of the rule in order to obtain solution information again under the changed fact.
Make-goal-ju machine instruction for executing the following
It is a flow of an mp instruction.

まず、A22では第11図の事実管理テーブルのトツプア
ドレスFT−topと事実を知すVVlすなわちfidからその事
実に関する情報アドレスfid−prを求めている。次のB22
では、事実の機械語命令列アドレスを変数fact−Prへロ
ードしている。C22では、事実の引数個性、すなわち属
性個数分だけ、各属性値を引数レジスタAl(l=1〜n
−slot)へロードするため、変数lへゼロをロードして
いる。次のD22では、各機械語命令のオペランド、すな
わち属性値を引数レジスタAlへロードしている。ここで
αは機械語命令サイズ、γは、そのオペランドまでのオ
フセツトである。E22では、変数lをカウントアツプ
し、次のF22にて(fact−Pr+1)、すなわちn−slot
だけlがカウントアツプされたか調べている。これによ
りすべての属性値を引数レジスタAl(l=1〜n−slo
t)へロードできる。もしnoであれば、D22をくり返し実
行する。もし、yesであれば、次にG22にて(fid−P
r)、すなわちルールの条件部の機械語命令列のアドレ
スを保持するテーブルのアドレスを変数1hs−tbl−adr
へロードし、最後にH22にてexecute命令にて、そのオペ
ランドで示されたテーブル中のアドレスの命令列へ分岐
する。
First, in A22, the information address fid-pr relating to the fact is obtained from the top address FT-top of the fact management table in FIG. Next B22
Then, the actual machine language instruction string address is loaded into the variable fact-Pr. In C22, each attribute value is stored in the argument register Al (l = 1 to n
−slot) to load zero into variable l. In the next D22, the operand of each machine language instruction, that is, the attribute value is loaded into the argument register Al. Here, α is the machine instruction size, and γ is the offset up to its operand. At E22, the variable 1 is counted up, and at next F22, (fact-Pr + 1), that is, n-slot
It is checking whether only 1 has been counted up. Thereby, all attribute values are stored in the argument register Al (l = 1 to n-slo).
t) can be loaded. If no, repeat D22. If yes, then at G22 (fid-P
r), that is, the address of the table that holds the address of the machine instruction sequence in the condition part of the rule is set to the variable 1hs-tbl-adr
And finally branch to the instruction sequence at the address indicated by the operand in the execute instruction at H22.

このように、第1引数レジスタA1は必ず、fidを保持
し、第2引数レジスタA2は、事実のタイムタグを保持
し、かつ第3時以降の引数レジスタが事実の属性値を保
持するため、第12図のルールの条件部に対する機械語命
令列と整合性がとれることになる。また、本発明では詳
しく述べなかつたが、第11図中の各条件部に対する機械
語命令コードの直前には、D.H.D.Warren著の文献中に示
されている制御情報を命令列中に作り出す命令であるtr
y−me−else命令や、retry−me−else命令、および最後
の条件部の機械語命令列の直前には、trust−me−fail
命令が生成されているものとする。変換された機械語命
令列の最後に付加されたfail命令と3つの制御命令とが
上記execute命令と共に繰返し実行される。この結果、
次々とバツクトラツクを発生させながら、ルールの条件
部を満足するすべての解情報を解情報保持エリアへ直接
生成することが可能である。
Thus, the first argument register A1 always holds fid, the second argument register A2 holds the time tag of the fact, and the argument registers after 3:00 hold the attribute value of the fact, Consistency with the machine language instruction sequence for the condition part of the rule in FIG. 12 can be obtained. Although not described in detail in the present invention, immediately before the machine language instruction code for each conditional part in FIG. 11, an instruction for creating control information shown in a document by DHDWarren in an instruction sequence. tr
Immediately before the y-me-else instruction, the retry-me-else instruction, and the machine instruction sequence in the last conditional part, trust-me-fail
It is assumed that an instruction has been generated. The fail instruction and three control instructions added to the end of the converted machine language instruction sequence are repeatedly executed together with the execute instruction. As a result,
It is possible to directly generate all the solution information satisfying the condition part of the rule in the solution information holding area while generating a backtrack one after another.

最後に、本実施例において最も重要な第12図の機械語
命令列を生成する手段を示した第1図のフローを説明す
る。
Finally, the flow of FIG. 1 showing the means for generating the most important machine language instruction sequence of FIG. 12 in this embodiment will be described.

まず、A1において、当該ルールの条件部にて参照され
ている事実の種類だけ機械語命令列を生成したか調べて
いる。もし、生成していれば、処理を終了する。B1で
は、参照されている事実の属性数を変数lに代入し、対
のC1にてallocate l命令を生成する。次に、D1において
参照されている事実は変数として表現されているか、事
実名が明記されているか判定し、変数であれば、E1にて
get−variable Fid,A1命令とget−variable T−tag,A2
命令を生成する。一方、変数でなければF1にて事実を特
定化する番号fidを用いてget−constant fid,A1命令とg
et−variable T−tag,A2命令を生成する。次にG1にて事
実の属性個数Kだけget−variable Vi,Ai+2(i=1〜
K)命令を生成し、H1にてルールの条件部に対する機械
語命令列を生成する。次のI1では、第5図のG4からG5へ
レジスタHを切り換えることにより、ワークエリアから
解情報保持エリアへ切り換える命令を生成する。次のJ1
とK1では、それぞれ、変数情報とタイムタグ情報を解情
報保持エリアに生成するための機械語命令列を生成し、
次のL1では、新たに生成した解情報をridへ登録するた
めの命令を生成している。最後に、M1では、解情報保持
エリアからワークエリアへ切り換えるためにmove H,K命
令とmove SH,H命令を生成し、deallocate命令と強制的
にバツクトラツクを発生するfail命令を生成する。次に
A1をくり返し実行する。
First, in A1, it is checked whether or not a machine language instruction sequence has been generated for only the types of facts referred to in the condition part of the rule. If it has been generated, the process ends. In B1, the number of attributes of the fact being referred to is assigned to a variable l, and an allocate l instruction is generated in the pair C1. Next, it is determined whether the fact referred to in D1 is expressed as a variable or the fact name is specified.
get-variable Fid, A1 instruction and get-variable T-tag, A2
Generate instructions. On the other hand, if it is not a variable, the get-constant fid, A1 instruction and g
Generate an et-variable T-tag, A2 instruction. Next, in G1, the number of actual attributes K is get-variable Vi, A i + 2 (i = 1 to
K) Generate an instruction, and generate a machine instruction sequence for the condition part of the rule at H1. In the next I1, an instruction to switch from the work area to the solution information holding area is generated by switching the register H from G4 to G5 in FIG. Next J1
And K1, respectively, generate a machine language instruction sequence for generating variable information and time tag information in the solution information holding area,
In the next L1, an instruction for registering the newly generated solution information in the rid is generated. Finally, in M1, a move H, K instruction and a move SH, H instruction are generated to switch from the solution information holding area to the work area, and a deallocate instruction and a fail instruction for forcibly generating a backtrack are generated. next
Execute A1 repeatedly.

〔発明の効果〕〔The invention's effect〕

本発明によれば、推論において最も負荷の重い解集合
をすべて求める処理を高速に行うことが出来るので、エ
キスパートシステムなどの推論速度を大幅に向上させる
ことができる。すなわち、事実をデータとして表現する
のではなく機械語として表現したことにより、高速に事
実とのパターンマツチが可能となり、ルールの条件部に
対するすべての解情報を高速に求め、かつ次々と別のル
ールの条件部を調べることができることから、従来の大
部分の推論エンジンがルールをインタプリットしていた
のに対してかなり高速となりえる。
According to the present invention, the process of obtaining all the solution sets with the heaviest loads in inference can be performed at high speed, so that the inference speed of an expert system or the like can be greatly improved. In other words, by expressing facts as machine language rather than data, pattern matching with facts becomes possible at high speed, all solution information for the condition part of the rule is obtained at high speed, and another rule is successively added. Can be significantly faster than most conventional inference engines have interpreted rules.

【図面の簡単な説明】[Brief description of the drawings]

第1図は、本発明の一手段であるすべての解情報を効率
良く求める機械語命令列を生成する手段を示したもので
ある。第2図は、本発明の手段によつて変換される以前
の一つの推論ソールプログラム例である。第3図は、そ
の実行を示したものである。第4図は、一般的な推論メ
カニズムを示したものである。第5図は、本発明を実行
するために必要なコンピユータと記憶装置を示したもの
である。第6図から第23図は、本発明の一実施例を詳し
く述べた図である。第24図は、本実施例におけるワーク
エリアに記憶されるデータ構造の説明図である。第25図
は、本実施例における解情報保持エリアに記憶されるデ
ータ構造の説明図である。 I1……ワークエリアから解情報保持エリアへ変更する処
理、J1〜L1……解情報保持エリアへ新たな解情報を生成
し登録する処理、M1……解情報保持エリアからワークエ
リアへ変更しかつ強制的にバツクトラツクを発生する機
械語命令列を生成する処理。
FIG. 1 shows a means for generating a machine language instruction sequence for efficiently obtaining all solution information, which is one means of the present invention. FIG. 2 is an example of an inference sole program before being converted by the means of the present invention. FIG. 3 shows the execution. FIG. 4 shows a general inference mechanism. FIG. 5 shows a computer and a storage device necessary for executing the present invention. FIG. 6 to FIG. 23 are diagrams detailing one embodiment of the present invention. FIG. 24 is an explanatory diagram of the data structure stored in the work area in the present embodiment. FIG. 25 is an explanatory diagram of the data structure stored in the solution information holding area in the present embodiment. I1 ... Process to change from work area to solution information holding area, J1 to L1 ... Process to generate and register new solution information in solution information holding area, M1 ... Change from solution information holding area to work area and Processing to generate a machine language instruction sequence for forcibly generating a backtrack.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 茨城県日立市久慈町4026番地 株式会社 日立製作所日立研究所内 (72)発明者 中野 利彦 茨城県日立市大みか町5丁目2番1号 株式会社日立製作所大みか工場内 (72)発明者 林 利弘 茨城県日立市大みか町5丁目2番1号 株式会社日立製作所大みか工場内 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Tadaaki Bando 4026 Kuji-cho, Hitachi City, Ibaraki Prefecture Inside Hitachi, Ltd. Hitachi Research Laboratory, Ltd. (72) Inventor Toshihiko Nakano 5-2-1 Omika-cho, Hitachi City, Ibaraki Prefecture Co., Ltd. (72) Inventor Toshihiro Hayashi 5-2-1, Omika-cho, Hitachi City, Ibaraki Prefecture In-house Omika Plant, Hitachi, Ltd.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】記憶部に格納されたプログラムを実行する
コンピュータと、事実の知識とルールとからなる知識ベ
ースをコンピュータが実行するための機械語命令へ変換
するプログラムを有し、該プログラムにより変換された
機械語命令列を実行することにより推論を行う推論シス
テムにおける推論方法であって、 前記プログラムは、 事実を、レジスタに格納された値とパターンマッチを行
う機械語命令の命令部分を格納するコード領域と、事実
の有する値に対応する該機械語命令のオペランドを格納
するオペランド領域とを有する機械語命令を有する機械
語命令列に変換し、 ルールの条件部を、パターンマッチを行う際に用いる変
数の値を保持する領域を前記記憶部に設けた作業領域に
第1の領域として確保する命令と、パターンマッチを行
う値を所定のレジスタに設定したのち事実から変換され
た機械語命令列を呼び出す分岐命令と、解集合をバック
トラックが行われた際も情報が保持される前記記憶部の
所定の第2の領域に生成する命令と、ルールの実行部か
ら変換される機械語命令列への分岐命令、及びルールの
条件部に定義された条件が満足された場合に前記第1の
領域を未使用状態にした後バックトラックを行う命令と
を有する機械語命令列に変換し、 ルールの実行部を、前記ルールの条件部が変換された機
械語命令列を実行することにより生成される解情報の一
つを選択する解情報選択機械語命令列を実行させる命令
と、ルールの実行部で定義された動作を行う命令を含む
機械語命令とに変換し、 該ルールの実行部で定義された動作を行う命令は、ルー
ルの実行部で定義された動作が事実を変更する動作であ
る場合には、前記事実から変換された機械語命令列のオ
ペランド領域を変更する命名からなるオペランド変更機
械語命令列を有し、 上記変換された機械語命令列を予め前記記憶部内の所定
の第3の領域に記憶し、 該記憶された機械語命令列を実行することにより行う推
論方法は、 前記第3の領域に記憶された機械語命令列の内、ルール
の条件部から変換された機械語命令列を実行する際に、
前記ルールの条件部から変換された機械語命令列中の記
憶部の所定の第2の領域に解集合を生成する命令を実行
することにより、実行の際に求めた解集合を前記第2の
領域に生成した後バックトラックを行って全ての解情報
を求め、 前記解情報選択機械語命令列を実行して上記求められた
全ての解情報の中から選択された一つの解情報を用い
て、前記事実から変換された機械語命令列が有するオペ
ランド変更機械語命令列を実行してオペランド領域を変
更することにより事実を更新する事実変更処理と、 前記事実から変換された機械語命令列の識別情報と、該
事実から変換された機械語命令列を呼び出すルールの条
件部から変換された機械語命令列とを対応させる事実管
理テーブルを用いて、上記事実変更処理により変更され
た事実から変換された機械語命令列を実行するルールの
条件部から変換された機械語命名列を実行する処理 とを有することを特徴とするコンパイル型知識処理ツー
ルの高速推論方法。
1. A computer for executing a program stored in a storage unit, and a program for converting a knowledge base composed of knowledge of facts and rules into machine language instructions to be executed by the computer. An inference method in an inference system that performs inference by executing a set of machine language instruction sequences, wherein the program stores facts and an instruction portion of a machine language instruction that performs pattern matching with a value stored in a register. When converting a code area and a machine language instruction string having a machine language instruction having an operand area for storing an operand of the machine language instruction corresponding to a value of a fact, A command for securing an area for holding a value of a variable to be used as a first area in a work area provided in the storage unit; And a branch instruction for calling a machine instruction sequence converted from the fact after setting a value in a predetermined register, and a predetermined second in the storage unit in which the information is retained even when the backtracking is performed on the solution set. An instruction to be generated in an area, a branch instruction to a machine language instruction string to be converted from an execution part of a rule, and the first area is set to an unused state when a condition defined in a condition part of the rule is satisfied. After that, it is converted into a machine language instruction sequence having an instruction to perform backtracking, and the execution part of the rule is one of the solution information generated by executing the machine language instruction sequence in which the condition part of the rule is converted. Is converted into an instruction to execute a solution information selection machine language instruction sequence and a machine language instruction including an instruction to perform an operation defined by the rule execution unit, and perform the operation defined by the rule execution unit. The instruction is executed by the rule execution section. In a case where the defined operation is an operation that changes a fact, it has an operand change machine language instruction sequence consisting of a naming that changes an operand area of the machine language instruction sequence converted from the fact, and the converted machine The inference method of storing a word instruction sequence in a predetermined third area in the storage unit in advance and executing the stored machine instruction sequence comprises: a machine language instruction sequence stored in the third area. When executing the machine language instruction sequence converted from the condition part of the rule,
By executing an instruction to generate a solution set in a predetermined second area of the storage unit in the machine language instruction sequence converted from the condition part of the rule, the solution set obtained at the time of execution is converted to the second set. After generating in the area, perform backtracking to obtain all solution information, execute the solution information selection machine instruction sequence, and use one solution information selected from all the solution information obtained above. A fact change process for updating a fact by executing an operand change machine language instruction sequence of a machine language instruction sequence converted from the fact and changing an operand area; Using a fact management table that associates the identification information with the machine language instruction sequence converted from the condition part of the rule that calls the machine language instruction sequence converted from the fact, changes from the fact changed by the above fact change process. Machine instruction fast inference methods compiled knowledge processing tool, characterized in that it has a process for executing the converted machine language designated column from the condition part of the rule to execute the columns.
JP63053523A 1988-03-09 1988-03-09 High-speed inference method for compiled knowledge processing tools Expired - Lifetime JP2624751B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63053523A JP2624751B2 (en) 1988-03-09 1988-03-09 High-speed inference method for compiled knowledge processing tools
EP19890302317 EP0332427A3 (en) 1988-03-09 1989-03-08 Inference processing method and apparatus
US08/145,299 US5422980A (en) 1988-03-09 1993-11-03 Inference processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63053523A JP2624751B2 (en) 1988-03-09 1988-03-09 High-speed inference method for compiled knowledge processing tools

Publications (2)

Publication Number Publication Date
JPH01229329A JPH01229329A (en) 1989-09-13
JP2624751B2 true JP2624751B2 (en) 1997-06-25

Family

ID=12945178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63053523A Expired - Lifetime JP2624751B2 (en) 1988-03-09 1988-03-09 High-speed inference method for compiled knowledge processing tools

Country Status (3)

Country Link
US (1) US5422980A (en)
EP (1) EP0332427A3 (en)
JP (1) JP2624751B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02259836A (en) * 1989-03-31 1990-10-22 Hitachi Ltd Fuzzy inference method
JPH0695879A (en) * 1992-05-05 1994-04-08 Internatl Business Mach Corp <Ibm> Computer system
JP3638310B2 (en) * 1994-06-29 2005-04-13 株式会社東芝 Case reasoning support device
JP3353651B2 (en) * 1997-06-23 2002-12-03 松下電器産業株式会社 Agent interface device
US6157922A (en) 1997-10-24 2000-12-05 Trilogy Development Group, Inc. Method and apparatus for transparent backtracking
US5946683A (en) * 1997-11-25 1999-08-31 Lucent Technologies Inc. Technique for effectively instantiating attributes in association rules

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62262132A (en) * 1986-05-08 1987-11-14 Mitsubishi Electric Corp Data file control system
JPS633334A (en) * 1986-06-23 1988-01-08 Hitachi Zosen Corp Forward reasoning system
JPS6341926A (en) * 1986-08-08 1988-02-23 Casio Comput Co Ltd High speed inference system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736123B2 (en) * 1983-05-09 1995-04-19 株式会社日立製作所 Equipment group control method
US4648044A (en) * 1984-06-06 1987-03-03 Teknowledge, Inc. Basic expert system tool
US4803641A (en) * 1984-06-06 1989-02-07 Tecknowledge, Inc. Basic expert system tool
US4748439A (en) * 1985-08-13 1988-05-31 Fairchild Semiconductor Corporation Memory apparatus and method for retrieving sequences of symbols including variable elements
US4847784A (en) * 1987-07-13 1989-07-11 Teknowledge, Inc. Knowledge based tutor
US4839822A (en) * 1987-08-13 1989-06-13 501 Synthes (U.S.A.) Computer system and method for suggesting treatments for physical trauma

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62262132A (en) * 1986-05-08 1987-11-14 Mitsubishi Electric Corp Data file control system
JPS633334A (en) * 1986-06-23 1988-01-08 Hitachi Zosen Corp Forward reasoning system
JPS6341926A (en) * 1986-08-08 1988-02-23 Casio Comput Co Ltd High speed inference system

Also Published As

Publication number Publication date
EP0332427A2 (en) 1989-09-13
EP0332427A3 (en) 1992-02-19
US5422980A (en) 1995-06-06
JPH01229329A (en) 1989-09-13

Similar Documents

Publication Publication Date Title
US5664177A (en) Data processing system having a data structure with a single, simple primitive
US5267175A (en) Data base access mechanism for rules utilized by a synthesis procedure for logic circuit design
US5361357A (en) Method and apparatus for optimizing computer file compilation
US4644471A (en) Method for processing a data base
JP3765949B2 (en) Object-oriented software development support apparatus and development support method
JPH0228831A (en) Version management
JPH05197697A (en) Apparatus and method for constructing software system
JPH0644299A (en) Method and system of comparing data-file
WO2003073274A1 (en) Iterative software development environment with prioritized build rules
JPH047640A (en) Class succession settling processing method
JPH08234975A (en) Program generation device and method
JPH07200358A (en) Automatic test method of software application
JPH05298120A (en) Computer system
JP2624751B2 (en) High-speed inference method for compiled knowledge processing tools
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
JPH086812A (en) Debugging method and debugger for information processing program
US5721924A (en) Method and device for obtaining a value of a referred to variable defined in a source program having a specific variable name
US5765177A (en) Document processing method and apparatus for searching documents having a graph based document logic structure
JP3318051B2 (en) Translation processing method
JPH0934698A (en) Software generating method and software developing and supporting method
JPH06110733A (en) Test case generating device of program
US5241623A (en) Method and system for delineation of structure and linkages between knowledge base modules
EP0267379A2 (en) Data base access mechanism for rules utilized by a synthesis procedure for logic circuit design
JPH04239338A (en) Measuring system for microprogram comprehension rate
JPH0816448A (en) Data deleting method for data group