JPH02178736A - エキスパートシステム用の判別ネットを生成する装置及び方法 - Google Patents

エキスパートシステム用の判別ネットを生成する装置及び方法

Info

Publication number
JPH02178736A
JPH02178736A JP1275768A JP27576889A JPH02178736A JP H02178736 A JPH02178736 A JP H02178736A JP 1275768 A JP1275768 A JP 1275768A JP 27576889 A JP27576889 A JP 27576889A JP H02178736 A JPH02178736 A JP H02178736A
Authority
JP
Japan
Prior art keywords
satisfied
expression
nodes
node
data
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.)
Pending
Application number
JP1275768A
Other languages
English (en)
Inventor
Kamesh Ramakrishna
カーメシュ ラマクリシュナ
Meyer A Billmers
メイヤー エイ ビルマース
G Theriault Daniel
ダニエル ジー セリオールト
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH02178736A publication Critical patent/JPH02178736A/ja
Pending 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
    • G06N5/047Pattern matching networks; Rete networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Devices For Executing Special Programs (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) この発明は、規則(ルール)によって定義された条件が
判別ネットとして構成され、システムで得られたデータ
にどの規則が適用可能かの効率的な判定を行えるような
、規則に基づく人工知能システム(いわゆる“エキスパ
ートシステム”)に関する。
(従来の技術と課Iff) エキスパートシステムは、−組の規則がらなり、規則に
従って処理されるデータ種類を定義するコンピュータプ
ログラムに基づいている。エキスパートシステムは“推
論”として知られるプロセスにより、規則とユーザまた
はその他のデータベースからシステムによって得られた
作業データベース中のデータとの間のマツチング(合致
)を行い、どの規則が適用されるかを判定し、一つ以上
の適用規則が“発射(ファイア) °され(すなわちデ
ータに適用され)、ユーザに対するアドバイスあるいは
ユーザの質問に対する説明を与えたり、その他何らかの
処置を行う。推論プロセスは、データに適用可能な規則
がなくなるか、または規則の通用が結果を生じなくなる
まで繰り返される。
各規則は1つ以上の条件(まとめて規則の“左側”と称
する)を含み、これらの条件はデータによって満たされ
ると、その規則が適用可能なことを指示する。規則が適
用されたとき行うべき動作が、規則の“右側”に列挙さ
れている。どの規則が適用可能かを判定する1つの方法
は、新しいデータ要素がシステムから得られる毎に、全
ての規則の左側の各条件をテストすることである。この
方式では、作業中のデータベースがデータの追加または
削除によって変更される毎に、変更データがテストの結
果を変えないものであっても、作業中のデータベース内
のデータによって満たされる(あるいは満たされない)
と判定された条件が再テストされる。また、左側の1よ
り多い規則内に同じ条件が存在することがしばしばあり
、これらは新しいデータ要素が得られる毎に複数回テス
トされることになる。
この点を避けるため、一部のエキスパートシステムは規
則の左側を、いわゆる“網状(reticular)”
ネットつまりRETf! (細網)ネットなどの“判別
ネット”として構成している。RETEネットは、作業
中のデータベースが変更されるとき、作業中のデータベ
ース内の変更データに応じて変化する結果を有する条件
だけをテストすることによって、どの規則が適用可能か
をより効率的に判定する。またRETEネットでは、1
より多い規則に共通な条件を、作業中のデータベースが
変更する毎に1回だけテストする。
RETEネットは、全規則の条件がノードのネットワー
クとして構成されたデータ構造である。規則の条件は、
規則の左側に指定された条件の各種組合せを表す一組の
結合ノードで相互に結合されたテストノードによって識
別される。ある1つの条件は、その条件が複数の規則の
左側に生じる場合であっても、1つのテストノードによ
って表される。作業中のデータベース内のデータが各テ
スト及びテストの組合せに合致するにつれ、そのデータ
を表すトークンがRE!TEネフトを通じ各ノードを介
して通過してい(、RETEネットは、各々個々の規則
に対応する結果ノードに終端している。規則の左側が満
たされると、RETEネットはその規則に対応した結果
ノード内にトークンを記憶する。
RETEネットは、規則の左側の条件の組合せがノード
のネットワークとして容易に表せるようなものであると
き、良好に機能する0例えば、条件1AND条件2AN
D条件3AND条件4が満たされることを必要とする規
則の左側は、条件lと2のテストノードを結合するAN
Dノード、この第2ANDノードと条件3のテストノー
ドを結合する別のANDノード、及びこの第2ANDノ
ードと条件4のテストノードを結合する第3のANDノ
ードで表される。
規則の左側は、条件のよりフレキシブルな組合せを指定
するのが望ましいことが多い:例えば、条件LAND(
条件2.3.4または5のうち少なくとも2つ)。こう
した種類の条件の組合せは“メタテスト”と呼ばれ、一
般に条件1のテストノードを条件2.3.4及び5のテ
ストノードの順列と結合し、幾つかの異なる結果ノード
に終端する入り組んだ1組のノードによって表される。
推論のサイクル中、データが正しくないからでなく、条
件を満たすデータがデータベースから失われているため
に、1つ以上の条件が満たされず、規則全体の条件が満
たされないことがある。この場合継続させるには、失わ
れているデータが識別され、与えられねばならない。
12ETEネツトに基づくエキスパートシステムのプロ
グラムでは一般に、推論のプロセスを反対方向に進める
特別の規則(つまり、“逆方向連鎖°)で、あるいは限
られた一連の質問をユーザに行うことによって、失われ
ているデータを識別しようと試みている。また、エキス
パートシステムのプログラムに、常に満たされる条件を
持ち、他のいずれの規則の左側も満たされないときにの
み適用される特別の規則(@空き条件”規則と呼ばれる
)を付は加えることもできる。空き条件規則によって取
られる1処置”は、データが必要であることをユーザに
認識させ、失われているデータを識別するガイドを与え
るように選定されている。
(課題を解決するための手段) 本発明の一特徴において、条件からなる表現は、前記条
件がノードによって表され、しかも表現における条件間
での関係がノード間のリンクによって表されるようなネ
ットワークに与えられるデータ要素の値に基づき、前記
ノードの少なくとも一部によって表された条件のうちど
れがデータ要素の値によって満たされているかを識別す
る情報を記憶すること、及び前記表現を評価するベース
として、記憶された情報を前記表現に基づいてテストす
ることによって評価される。
好ましい実施例は、下記の特徴を有する。
前記情報は、ノード用と異なる、情報に割り当てられた
別個のロケーション内に記憶され、各ノードからの情報
は該ノードに割り当てられたロケーションに入力される
。前記表現中における前記条件の所定数が満たされたと
き、表現は満たされ、さらに前記情報で占められたロケ
ーションの数がカウントされて、幾つの条件が満たされ
ているかを判定する。
一実施例において、前記表現は一ノードによって表され
た標識付け条件を含み、さらにロケーションのグループ
分けが標識付け条件ノードからの情報に基づいて記憶装
置内に形成され、各グループが標識付け条件を満たすデ
ータ要素と対応付けられる。前記ノードからの情報が、
標識付け条件を満たすデータ要素を識別し、前記識別さ
れたデータ要素に対応するグループのロケーションに入
力される。前記ノードからの情報で占められた各グルー
プ内におけるロケーションの数がカウントされ、前記表
現が満たされているかどうかを判定する。
各グループは、前記表現の満たされていることを示す占
有ロケーションのカウントをそのグループが現在有して
いるかどうかを判定するためにモニターされる。情報の
新しいエントリが当該グループに加えられる毎に、グル
ープ内の前記占有ロケーションがカウントされる。
情報の新しいエントリによって、前記表現の満たされる
ことを示す占有ロケーションのカウントをそれまで有し
ていなかったグループが、前記表現の満たされることを
示す占有ロケーションのカウントを有するようになった
とき、表現は満たされたものとして指示される。但し、
情報の新しいエントリがグループに加えられたとき、そ
のグループが前記表現を満たす占有ロケーションのカウ
ントをすでに有している場合、前記指示をなされない。
一部のノードは、記憶装置内における対応した前記占有
ロケーションから前記情報を削除させ、さらに前記情報
がグループ内のロケーションから削除される毎に、グル
ープ内の占有ロケーションがカウントされる。情報の削
除によって、前記表現を満たす占有ロケーションのカウ
ントを前に有していたグループが、前記表現を満たさな
い占有ロケーションのカウントを有するようになったと
き、前記表現が満たされないことの指示がなされる。
この結果、網状ネント(すなわちRETEネット)など
の判別ネットであるのが好ましいネットワークは、メタ
テストなど、表現内における条件の全てより少ない一部
によって満たされる表現を効率的に表すことができる。
これらメタテストの特定例には、条件のうちいずれか1
つが満たされたら満たされるという表現、あるいは条件
のうち少なくとも(または多くとも)所定の数が満たさ
れたら満たされるという表現が含まれる0本ネットワー
クは、評価の結果が1つのロケーション(例えばRBT
Eネット内の終端ノード)で得られるようにすることに
よって、表現が満たされるかどうかの判定を容易とする
別の側面において、本発明は、条件がノードによって表
されるようなネットワークデータに与えられるデータの
実際値に基づいて、データの項類に属するデータの可能
値に関連した条件からなる表現を評価する際、前記デー
タのうち、項類の値を必要とする条件が仮に満たされる
ために、値がネットワーク内に生じることを必要としな
い項類を識別すること、及び前記条件を表すノードによ
って、項類の値がネットワーク内で生じないときでも、
条件が仮に満たされることを指示させることによって評
価することをカウントする。
好ましい実施例は、さらに下記の特徴を有する。
前記項類は所定値をそれに割り当てることによって識別
され、その項類に属する値がネットワーク内に生じるま
で、所定値は維持される。前記識別された項類の値をテ
ストする条件を有する各ノードが、前記条件が満たされ
ないとき、項類が所定値を有しているかどうかをテスト
し、有していれば、前記条件が仮に満たされることをノ
ードが指示する。
前記ノードによって表された条件が満たされるかまたは
仮に満たされることを、ノードの所定の組合せが指示す
れば、前記表現が満たされたものと見なされ、さらに前
記表現が満たされたら、仮に満たされると指示された条
件の数を識別される。
前記表現は規則と関連しており、仮に満たされると指示
された前記条件の数がゼロであれば、その規則は適用さ
れない。
好ましくは、前記表現が複数存在し、該表現における条
件が満たされるかまたは仮に満たされることを、前記ノ
ードの所定の組合せが指示すれば、各表現が満たされた
ものとされ;さらに満たされ表現毎に、仮に満たされる
と指示された条件の数が識別される。前記満たされた表
現間における優先順位が、各表現毎の、仮に満たされる
と指示された前記条件の数に基づいて決められる。前記
表現は各々規則と関連しており、1つの規則がその優先
順位に基づいて選択される。
前記満たされた表現について、仮に満たされると指示さ
れた前記条件の数がゼロに等しければ、選択された規則
が適用される。一方、仮に満たされると指示された前記
条件の数がゼロより大きければ、ネットワーク中で値が
生じなかったデータの前記識別された項類を選択し、該
選択されたデータの項類に関する値が得られる。
この結果、データが失われている項類が、ユーザが見え
ない機構によって効率的に識別される。
特殊の規則、空き条件規則、または逆方向連鎖などは、
全く必要ない。つまり、失われているデータが、ユーザ
によってまたは別個のプログラムを実行することによっ
て、容易に検索可能である。
発明の上記以外の特徴及び利点は、以下の詳しい説明と
特許請求の範囲の記載から明かとなろう。
(実施例) 盪遺之軌作 第1図を参照すれば、エキスパートシステム10は、任
意の適切なエキスパートシステムプログラミング言語(
デジタルイキブメント社から入力可能なopssなど)
を用いて作成されるエキスパートシステムプログラム1
2を実行する。エキスパートシステムプログラム12は
、動作中にプログラムが使用するデジタルの項類(カテ
ゴリ)を識別する一組のデータの定義14を含む0例え
ば、プログラム12が人に関するデータに対して使われ
る場合、データの定義14は姓名、年齢、性別、身長及
び体重などの項類を含み得る。またプログラム12は、
規則の定義16によって記述され、データの定義14に
適合し且つシステム10から得られる実際のデータを操
作するための一組の規則も含む、エキスパートシステム
プログラム12はさらに、他の言語(C,フォートラン
、ベーシックなど)で書かれ、エキスパートシステムプ
ログラム12の実行中に呼び出されたとき、(リモート
データベースへのアクセス、統計計算などの)タスクを
実施するプログラム18へのリンクも含んでいる。
第2図を参照すれば、規則の定義16によって記述され
た1組の規則20 (例えばルール1−3)は各々、テ
ストコネクタ24(例えば“AND”)によって相互に
結合され規則の左側として知られる表現式を形成する1
つ以上の条件つまりテスト22(例えばテス)1−74
)を含む。規則20は、その規則の左側26におけるテ
スト22.24の表現式をデータが満たす場合にのみ、
システム10から得られたデータに適用可能である0例
えば規則1は、データがテス)T1.T2及びT3を通
過した場合にのみ(すなわちテス)Tl−T3が全て“
真゛である場合にのみ)、適用可能である。4−ス)T
2は規則2の左側26内にも存在し、規則2が適用可能
であるためには、テストT4と共に真でなければならな
い。同じく、規則3の左側26が満たされるためには、
テストTl、T3及びT4が全て真でなければならない
各規則20の右側28は、規則が適用された場合に実行
される“処WIJスト°30を含む、規則の適用は例え
ば、システムlOによってもっと多くのデータを得させ
たり、あるいは(他のプログラム18の1つを実行する
などして)あるデータの値を演算させたりする。また規
則の適用で、(データを表示したり、外部のデータベー
ス48を変更したりなど)何等かの外部的処置を取らせ
ることもできる。
再び第1図を参照すれば、データの定義14と規則の定
義16は、後で詳しく説明する方法でコンパイラ32に
よって翻訳され、網状ネット36(すなわちRETEネ
ット)として知られる判別ネットデータ構造などのよう
な推論エンジン34のメモリ33内に記憶される。(他
のプログラム18はそれぞれ独自のコンパイラ46によ
って翻訳され、推論エンジン34内のプロセッサ及びコ
ントローラ46に与えられる。) また第3図を参照すると、RETEネット36において
、各規則20(第2図)の左側26(第2図)間の区別
は取り除かれており、個々のテス)Tl−74はそれぞ
れ、幾つの規則内でテスト22が現れるかに関わりなく
、1つのテストノード40a40dによって表される0
例えば、テストTlは両規則1と3の左側26内に現れ
るが、1つのテストノード40aによって表される。
テストノード40a−41dへは、後で詳しく説明する
ように共通の開始ノード38から導かれる。テストノー
ド40a−40dの出力は、−組の結合ノード42a−
42eを介して、−組の結果つまり終端ノード44a−
44cに相互結合されている。結合ノード42a−42
eは各々、規則20(第2図)の左側26におけるテス
トコネクタ24の関数機能(この場合“AND”)を表
す。
各終端ノード44a−44cは、1つの規則20の左側
26と対応している。つまり、開始ノード38からテス
トノード40a−40dと結合ノード42a−42eを
経て各々の終端ノード44a−44cに至る経路が、1
つの規則20の左側26におけるテスト表現式を表す。
例えば、テストノード40aと40bの百出力はAND
結合ノード42aによって相互結合され、さらにAND
結合ノード41aの出力がAND結合ノード42bでテ
ストノード40cの出力と相互結合される。終端ノード
44aに与えられるこの結果が、規則1の左側26を構
成するテストの表現式%式%)) 同じく、テストノード40bと40dの百出力はAND
結合ノード42cで結合され、その結果が規則2の左側
26に規定されたテストの表現式((T2)AND (
T4))を表すものとして終端ノード44aに与えられ
る。最後に、規則3の左側26のテスト表現式つまり(
(Tl)AND(T3)AND (T4))はRETE
ネット36内において、テストノード40aと40Cの
百出力がAND結合ノード42dで結合され、その出力
がAND結合ノード42eでテストノード40dの出力
と結合され、終端ノード44cへ与えられることによっ
て表される。
さらに、各終端ノード44a−44cは、その終端ノー
ドが対応している規則の処理リスト30を識別する0例
えば、終端ノード44aは規則1の処理リス1−30を
識別する。
推論エンジン34内のプロセッサ/コントローラ46で
は、例えばデータベース48からまたはユーザインタフ
ェース50を介してユーザから、あるいはデータの定義
14によって指定された初期の演算を行うことによって
、あるいは規則20(第2図)の右側28を実行するこ
とによって等、各種の方法で作業データを得る。プロセ
ッサ/コントローラ46はそのデータを、−組のデータ
要素56として作業メモリ54内に記憶する。それぞれ
のデータ要素56は、1つ以上のデータの定義と各定義
毎の値を識別する。例えば、データ要素56は1つの項
M(例えば年tea>とそれに係わる値、もしくは複数
の項M(例えば姓名、年齢、身長、性別及び体重)と各
項類に係わる値で構成し得る。
動作時、新しいデータ要素56が作業領域54内に記憶
される毎に、プロセッサ/コントローラ4Gは各データ
要素に関する“追加”トークンを生成し、それらのトー
クンを1回に1つづつRIETBネ・ノド36に与え、
l?ETεネットはトークンを処理して、1つ以上の規
則20が作業メモリ54内に記憶されているデータに適
用可能かどうかを判定する。このプロセスは“マツチン
グ(合致)′として知られ、後で詳しく説明する。複数
の規則20が適用可能であるか、または1つの規則が1
より多いデータ要素の組合せに適用可能であると、プロ
セッサ/コントローラ46が衝突の解消を行ってそのよ
うな1つ以上の規則“事例”を選択し、それらの規則事
例を適用させる。
規則事例の適用は、幾つかの結果をもたらすことがある
0例えば、新たなデータを生じたり、プロセッサ/コン
トローラ46によって既存データに関する新たな値を計
算させたり、あるいはデータベース48からまたはイン
タフェース50を介してユーザからもっと多くのデータ
を取得させたりすることがある。プロセッサ/コントロ
ーラ46は、新たに取得されたデータをデータ要素56
として作業メモリ54内に記憶し、それら新たなデータ
要素に関する追加トークンを生成し、新たな追加トーク
ンをRETBネット36内に別の推論サイクルで与えて
、適用される規則事例があるかどうかを捜す、同じく、
動作中にデータ値が変更されると、プロセッサ/コント
ローラ46は古いデータ値を表す“削除1トークンをR
1!TBネット36に与え、次いで新たなデータ値に関
する“追加°トークンを与える。このプロセスは、適用
可能な規則が識別されなくなるまで、あるいは規則の適
用の結果新たなデータ要素56が発生または得られなく
なるで継続される。
動作中、プロセッサ/コントローラ46はインタフェー
ス50を介して、ユーザーにアドバイスを与えたり、ユ
ーザからの質問に対する説明を与えることができる。ま
たプロセッサ/コントローラ46は、1つ以上のプログ
ラム18を実行したり、データをユーザに表示する等、
その他の処置を行うこともできる。
第3図において、プロセッサ/コントローラ46は、デ
ータ要素56を表す追加または削除トークンt (原始
トークンと呼ぶ)を開始ノード38に与え、その後テス
トノード40a−40dへと与える。そしてプロセッサ
/コントローラ46は、各テストノード40a−40d
によって識別されているテストを原始トークンtに係わ
るデータに対して行い、テストが合格すると、プロセッ
サ/コントローラ46はその原始トークンを該当の結合
ノードつまりノード42a−42eに送る。テストノー
ド40a−40dから送られる原始トークンは、第3図
中それぞれ1.−14として示しである。但し、これら
はトークンtと同等である。
各結合ノード42a−42e (例えば第3図に詳しく
示したAND結合ノード42a)は、その結合ノードが
トークンを受は取る各ノード毎に1つづつ一対のメモリ
を含む、つまり結合ノード42aは、テストノードから
のトークンt、を受は取って記憶する左側メモリ52と
、テストノード40bからのトークンt2を受は取って
記憶する右側メモリ54とを含む。
プロセッサ/コントローラ46は、各結合ノード42−
42eの左右メモリ52.54内のトークンを、その結
合ノードの関数機能に従ってマツチさせようとする。結
合ノードは、規則内のテストコネクタ26(第2図)の
関数機能に対応した広範囲の可能な関数機能を定義して
いる0例えば、結合ノードは左側メモリ52内のトーク
ンと右側メモリ54内のトークンとの単純な論理積(A
ND)を指定可能である。(これが結合ノード42a−
42eの関数機能に相当する。)あるいは、(NOT結
合ノードと呼ばれる)結合ノードは、左側メモ1J52
内のトークンの存在に対応した右側メモリ54内のトー
クンの不在に関するチエツクを指定できる。また結合ノ
ードは入カドークンに係わるデータ要素に対するテスト
を識別し、プロセッサ/コントローラ46によって例え
ば、一方のトークンに係わるデータ要素が他方のトーク
ンに係わるデータ要素に等しいか、等しくないか、それ
より小さいか、大きいか、以下かまたは以上かを判定す
ることもできる。プログラマは、プロセッサ/コントロ
ーラ46によって結合ノードでデータ要素に対し行われ
るべきその他のテストも指定可能である。
いずれの種類の結合ノードにおいても、トークンのマツ
チングが見い出されるとプロセッサ/コントローラ46
は、複合トークンと呼ばれ、どのトークン(従ってどの
データ要素)が結合ノードでマツチしたのかを識別する
複合トークンを発生する。プロセッサ/コントローラ4
6は、その複合トークンをRETBネント36内の次の
ノードに送る。原始トークンと同様、複合トークンは追
加トークンまたは削除トークンとし得る。例えば、(テ
ストT2を合格したデータ要素Bに係わる)1つの追加
トークンt2がAND結合ノード42aの右側メモリ5
4内にすでに存在する時点で、データ要素Aに係わる追
加トークンtをR[!TEネット36に与える場合を考
えてみる。データ要素AがテストT1を合格すると、プ
ロセッサ/コントローラ46はそのトークン(第3図中
t3で示しである)をノード40aからAND結合ノー
ド42aの右側メモリ52に送る。ここで追加トークン
が左右両側メモリ52.54内に存在するので、結合ノ
ード42aのAND関数が満され、プロセッサ/コント
ローラ46は複合追加トークンt2t1を発生し、その
複合1・−クンを結合ノード42aから結合ノード42
bの左側メモリ52に送る。
複合トークン1.−1.は両方の原始トークンt、とt
!を識別し、従ってテス1−TIとT2を通過すると共
に、結合ノード42aの関数機能を満たしているデータ
要素A、Bも識別する。
続けて、その後推論エンジン34によって得られたデー
タ要素CがテストCを満たしたものとする。プロセッサ
/コントローラ46はデータ要素Cを表す追加トークン
t、を、テストノード40cからAND結合ノード42
bの右側メモリ54に送る。従って、原始トークンt、
と、すでにノード42bの左側メモリ52に記憶されて
いる複合トークン1!−1,との間にマツチングが存在
する。そこでプロセッサ/コントローラ46は、原始ト
ークンt8、Lx−t+(ひいてはそれぞれデータ要素
C,B及びA)を識別する別の複合追加トークン1.−
1.−1.を生じる。
複合追加トークン1.−1!−1,はプロセッサ/コン
トローラ46によって終端ノード44a内に記憶され、
規則1の左側26が満たされていることを指示する。同
じく、新たなデータ要素56の処理が規則2の左側26
を満たすと、プロセッサ/コントローラ46は複合追加
トークンt41、を、結合ノード42cから終端ノード
44b内に記憶する。また、規則3の左側のテストTl
T3及びT4が満たされると、プロセッサ/コントロー
ラ46によって複合追加トークン14−1゜−1,が結
合ノード42eから終端ノード44c内に記憶される。
全てのデータ要素56を表すトークンがRETEネット
36に与えられた後、プロセッサ/コントローラ46は
終端ノード44a−44cをチエツクし、どの規則の左
側26が満たされているか、及びどの要素が1つまたは
複数の左側を満たしているかを判定する。複数の規則2
0(例えば規則1と2)の左側26が、満たされること
がある。また、1つの規則20 (例えば規則)の左側
26が、データ要素56の1より多い組合せによって満
たされることもある0例えば、テストT3がデータ要素
りによって満たされれば、データ要素り、 B及びAと
データ要素C,B及びAをそれぞれ識別する一対の複合
追加トークン1.−1.−1.が終端ノード44a内に
存在することになる。
規則の左側26を満たしたデータ要素56の各組合わせ
が、その規則の“事例゛を識別する、すなわち規則が適
用可能な一組のデータ要素56を定義する。推論エンジ
ン34が規則の複数の事例間における衝突の解消を行い
、どの1つまたは複数の規則のどの1つまたは複数の事
例を適用すべきかを判定する。ある規則(例えば規則1
)の−事例が適用されると、プロセッサ/コントローラ
46はその事例に係わる終端ノード内の複合追加トーク
ン(例えばノード44a内の(データ21C,B、Aに
関する)トークン1.−1.−1.)を削除されるもの
としてマーク表示し、別の複合トークンがノード44a
内に記憶されるまで(つまり規則1の適用時に1より多
い複合トークンがノード44a内に記憶されていなかっ
たなら)、その規則が満たさているかどうか再び考慮さ
れないようにする。
第4−7図を参照すると、開始ノード38、テストノー
ド40a−40d、結合ノード42a−42e1及び終
端ノード44a−44cがそれぞれ、推論エンジン34
内に記憶されたデータ構造60.70.80及び90に
よって定義されている。開始ノード38のデータ構造6
0が第4図に示してあり、RETBネット36内におけ
る後続ノードのアドレス、すなわちテストノード40a
−40dのアドレス71(第5図)を含むポインタリス
ト用のポインタを有するフィールド62を含んでいる。
第5図を参照すれば、テストノード40a−40dのデ
ータ構造70は、各テストノードに割り当てられたテス
ト(例えばノード40aのテストTI)のメモリアドレ
スを含んだポインタであるフィールド72を含んでいる
。フィールド73は、各テストノード40a−40dか
らトークンが送られる1つまたは複数の後続ノードの左
側メモリ52(第3図)のアドレスを保持したポインタ
リスト用のポインタを含む0例えば、テストノード40
bのフィールド73は、結合ノード42cの左側メモリ
 (LM)52のアドレスを保持したポインタを含むリ
スト用のポインタを有する。フィールド74は、トーク
ンが送られる1つまたは複数の後続ノードの右側メモリ
54のアドレスを含んだポインタリスト用のポインタを
有する。例えば、テストノード40bのフィールド74
は、結合ノード42aの右側メモリ (RM)54のア
ドレスを保持したポインタを含むリスト用のポインタを
有する。
第6図を参照すれば、結合ノード42a−42eのデー
タ構造80は、結合ノードの左側メモリ(LM)52の
アドレス用ポインタを含むフィールド82を含み、結合
ノードの右側メモリ(RM)54のアドレス用ポインタ
はフィールド83内に含まれている。フィールド84内
のポインタは、テスト(例えば等しいか、等しくないか
、より小さいか、大きいか、以下か、以上かまたは無視
かの判定)及び左右メモリ内のトークンのマツチングを
行うノードによって識別される論理関数(例えばAND
またはN0T)の、推論エンジン34のメモリ33内に
おけるロケーシヨンを示す。テストノード40a−40
dからのトークンと異なり、結合ノード40a−40e
からのトークンは後続ノードの左側メモリ52だけに送
られる。そこでフィールド85は、それら左側メモリの
アドレスを含むポインタリスト用のポインタを含んでい
る。例えば、結合ノード42aのデータ構造80内のフ
ィールド85は、結合ノード42bの左側メモリ52の
アドレス用ポインタを含む。
第7図を参照すれば、終端ノード44a−44cのデー
タ構造90は、結合ノードから受は取った1つ以上の複
合トークンが記憶される推論エンジン34のメモリ33
内におけるロケーションを保持したポインタリスト用の
ポインタを有するフィールド92を含んでいる0例えば
、ノーF 44 a用のフィールド92は、結合ノード
42bからの複合トークン1.−1.−1.が記憶され
る推論エンジン34のメモリ33内におけるロケーショ
ン用ポインタを有する。終端ノード44a−44cのア
ドレスは、それぞれ結合ノード42b、42c。
42cのデータ構造80のフィールド85内のポインタ
によって識別される。フィールド93は、各終端ノード
44a−44cによって識別された規則の処置リスト3
0が記憶される推論エンジンメモリ33内におけるロケ
ーション用ポインタを含む。
第8図を参照すれば、原始トークンのデータ構造100
は、その原始トークンに係わるデータ要素56が記憶さ
れる作業メモリ54内のロケーション用ポインタを有す
るフィールド102を含んでいる0例えば、データ要素
Aに係わる原始トークンtのデータ構造内のフィールド
102は、データ要素Aが記憶される作業メモリ54内
のロケーション用ポインタを有する0例えば、データ要
素AがテストTlに合格すると、プロセッサ/コントロ
ーラ46によって結合ノード42aの左側メモリ52に
送られる原始トークンt、はトークンtと同じアドレス
101を有し、またデータ要素Aのロケーション用ポイ
ンタをフィールド102内に有する。
原始トークンのデータ構造100は、トークンが追加ト
ークンであるかまたは削除トークンであるかを示すフィ
ールド103も含んでいる。追加トークンは、前記した
ようにトークンが与えられる1つまたは複数のノード内
でのトークンリストを増加させる。一方、削除トークン
は、1つまたは複数の後続ノードの左側メモリ52また
は右側メモリ54からトークンを差し引く。
原始トークンデータ構造100内の別のフィールド10
4は、例えば規則20の複数の事例間(すなわち満たさ
れたそれぞれの左側26を有する複数の規則20間、及
び1つの規則の満たされた複数の事例間)での衝突を解
消するのに使われる、推論エンジンメモリ33内に記憶
されたシーケンス用ポインタを含む。
第9図を参照すれば、複合トークン(例えば結合ノード
42aから生じるトークンtz  j+)のデータ構造
110は、複合トークンがそこから形成されたトークン
のアドレスを保持したポインタリスト用のポインタを有
するフィールド112を含んでいる0例えば、結合ノー
ド42aの左右メモリ52.54に記憶された(それぞ
れデータ要素AとB指す)原始トークン1.と12間で
マツチングが存在するとき、プロセッサ/コントローラ
46によって生成される複合トークン1.−1.は、原
始トークン1t、1.の各アドレス101を保持した2
つのポインタを有するリスト用ポインタを有するフィー
ルド112を含む、同じく、結合ノード42bで生成さ
れた複合トークン1.−1t−1,は、トークンt、の
アドレス101と複合トークン1.−1.のアドレス1
11をそれぞれ保持した一対の2つのポインタを有する
リスト用ポインタをフィールド112を含む。
つまり、複合トークンに係わるデータ要素(すなわちデ
ータの定義とそれぞれのデータ値)は、全ての原始トー
クンのアドレスが見つかるまでフィールド112に係わ
るポインタリストを辿り、次いで各原始トークンが表し
ているデータ要素56の作業メモリ54内のロケーショ
ンを指す原始トークンのフィールド102内のポインタ
を辿ることによって見い出される。
複合トークンのデータ構造110は、追加/削除フィー
ルド113と、トークンに係わる衝突解消シーケンス及
びその他の機能を指すポインタ用のその他のフィールド
114も含んでいる。
再び第2及び3図を参照すると、RETEネ7)36は
、規則1−3のように、規則の左側における全ての条件
が満たされることを単に要求する規則20(すなわちA
ND及びNOTのテストコネクタ24だけを含む規則)
のための効率的な表現を与える。しかし、左側のテスト
の全てでなく一部が合格したときに満たされるテスト表
現式を左側が定義しているその他の規則も存在する。こ
れらのテストの組合せは、“メタテスト”として知られ
ている。
第10及び11図を参照すれば、一種類のメタテストに
おいて、規則(例えば規則4)の左側26′におけるテ
ストの表現式は、個々のテストT2−TS間に論理和(
OR)のテストコネクタ24′を含んでいる。規則4の
左側は、テストT1とT2が通過するか、テス)TIと
T3が通過するか、テストTIとT4が通過するが、あ
るいはテストTlとT5が通過すると満たされる。
規則4用のRETEネットは表現120が第11図に示
しである。プロセッサ/コントローラ46は、開始ノー
ド122から導かれた原始トークンに係わるデータ要素
56に対して、それぞれノード124a−124eによ
って識別されたテストTl−75を行う。左側26′が
満たされるにはテストT1が合格しなければならないの
で、プロセッサ/コントローラ46は原始トークンt、
を全ての結合ノード126a−126dの左側メモリ5
2(第3図)に与える。
原始トークンtz  tsは、対応したテストT1−T
5が合格したとき、それぞれ結合ノード126a126
dの左側メモリに送られる。プロセッサ/コントローラ
46は、トークンのマツチングが生じると、それぞれ結
合ノード126a−126dで複合トークンj!  j
l+t!−tl+t4  ’l+ts−1,を生じる。
これら4つの複合トークンのいずれか1つの発生は規則
4の一事例をもたらすので、プロセッサ/コントローラ
46はRETEネット36内のどこかで、あるいは4つ
の異なる終端ノード128a−128dで各複合トーク
ンを調べなければならない。また、(例えばT1とT2
の合格のため)規則4の一事例が適用された場合、規則
のその他の事例の適用な防止されねばならない。
第12及び13図を参照すれば、“少なくとも”の規則
による別の種類のメタテストが使われている0例えば、
テストTlとテストT2−T5のうち少なくとも2つが
合格すると、規則5の左側26#の表現式が満たされる
。左側26″における“の中の少なくとも2つ(at 
1east 2 of) ”という表現が、RETEネ
ットで容易に表せないテストコネクタ25である。左側
26“のための1つのRETt!ネット表現130が第
13図に示してあり、テストノード134a−134e
によって生じたトークン1.−1Sを組み合わせるのに
9個の結合ノード136a−136iを必要とする。R
ETEネット130は6個の複合トークン(1,−1゜
tl r  ta  tz  Ll r  L%−tl
−’l *  t4t、−t、 l t、−t、’s−
t、 + jS T4−11)を生じ、これらの内いず
れか1つの存在が、規則5の左側26#が満たされてい
ることを示す。
第14及び15図を参照すれば、規則が適用し得る場合
に合格可能な左側260cでのテストの数を制限する、
規則6など“多くとも(at most)”の規則につ
いて、さらに別の種類のメタテストが行われる。つまり
、規則6の左側26ocはテストTl−75の下記の論
理的組合せによってのみ満たされる: not T5  not T4  not T3  n
ot T2  Tlnot T5  not T4  
not T3  T2    TlnotT5  no
tT4  T3    T2    TlnotT5 
 T4    notT3  T2    Tlnot
 T5  not T4  T3    not T2
  TIT5    notT4  notT3  T
2    TlnotT5  T4    T3   
 notT2  Tlnot T5  T4    n
ot T3  not T2  TIT5    no
tT4  T3    notT2  TIT5   
 not T4  not T3  not T2  
TIT5    T4    notT3  notT
2  Tl第15図は、左側26ocのためのRHTE
ネット表現140を示す。テストノード144a−14
4eが10個のAND結合ノード146a−146jと
28個のNOT結合ノード148a−148bbを供給
し、左側26ocの11個の可能な事例を表す11個の
出カドークンを生じる。
本発明の一特徴・によれば、RETEネット36がメタ
テスト(規則4−6の左側におけるテストの表現式など
)を表す方法が、RET[!ネット内の通常のテストノ
ードつまり結合ノードによってテストされる1つ以上の
条件の発生をカウント可能とする新たなノードを生成す
ることによって変更される。
第16図を参照すると、本発明によれば“OR”規則4
(第1θ図)、“少なくとも”の規則5(第12図)、
及び“多くとも”の規則(第14図)の各左側が、通常
の開始ノード152、テストノード154a−154d
及び結合ノード156a−156dに加えて、新たなノ
ードを含む簡単なRE↑Eネットによって表せる。新た
なノードはリレーノード158a−158dとカウンタ
ノード160で、これらがプロセッサ/コントロ−ラ4
6によってトークンを共有のトークンメモリテーブル2
00に与える。プロセッサ/コントローラ46が、メモ
リテーブル200に記憶されたトークンに対するテスト
を、メタテスト機能210に従って行う。リレーノード
158a−158dとカウンタノード160は、エキス
パートシステムプログラム12が推論エンジン34内に
翻訳されるとき、コンパイラ32(第1図)によって生
成される。
プログラム/コントローラ46は、トークン1゜をテス
トノード154aから結合ノード156a−156dの
左側メモリ52 (第3図)に送ると共に、トークンL
、をカウンタノード160にも送り、トークンt1は共
有メモリテーブル200の行内に(それぞれの結合ノー
ド156a−156dを介してリレーノード158a−
158dから送られてくる)複合トークンを記憶するた
めの指標として使われる。結合ノード156a−156
dの右側メモリ54は、それぞれテストノード154a
−154dからトークン1!−1,を受は取る。プロセ
ッサ/コントローラ46は、前述したのと同様に、結合
ノード156a−156dの左右メモリ52.54内で
トークンをマツチさせることによって、メモリテーブル
200に記憶される複合トークンを生じる。各リレーノ
ード(例えばノード158a)は、共有メモリテーブル
200の列を識別し、プロセッサ/コントローラ46が
複合ノード(例えばトークンjz  tl)を、結合ノ
ード156a−156dからテーブル200内の割り当
てられた行に送るのを可能とする。
第17図を参照すれば、リレーノード158a−158
dのデータ構造170は、リレーノード158a−15
8dとカウンタノード160によって共有されるカウン
タノード情報190のアドレス(191、第19図)を
保持したフィールド172を含む、フィールド173は
、トークンがリレーノード158a−158dからそこ
に送られる共有メモリテーブル200内の列を識別する
ポインタを有する。
第18図を参照すれば、カウンタノード160のデータ
構造180は、共有されるカウンタノード情f1190
のアドレス191  (第19図)を保持したフィール
ド182を含む。
第19図を参照すれば、リレーノード158a−158
dとカウンタノード160によって共有されるカウンタ
ノード情報190のデータ構造190は、カウンタノー
ド160のメタテスト機能(例えば規則4−6の“OR
”少なくとも。
または“多くとも”の表現)のメモリ33(第1図)内
におけるロケーションを識別するポインタを有するフィ
ールド192を含んでいる。フィールド193は、メタ
テスト機能の引数(例えば112等)を含む、すなわち
規則5(第12図)の場合、フィールド192内のテス
トポインタは、“少なくとも”のテストシーケンスが存
在する推論エンジン34のメモリ33内におけるロケー
ションを示し、フィールド193内の引数は、規則の左
側が満たされるためTIと共に合格しなければならない
テストT2−T5の番号(すなわち2)を与える。
フィールド194は、それぞれリレーノード158a−
158dを経た複合トークンtZ  Ll+t3  t
lI  La  El+  tS tlを記憶する共有
トークンメモリテーブル200の開始アドレス用ポイン
タを含んでいる。共有トークンメモリテーブル200は
、後で詳しく述べるようにカウンタノード160からの
トークンt、によって指標(=Jけされる。フィールド
195は、システム10の全ての規則に関するRETE
ネット150内における後続ノード(図示せず)の左側
メモリ52のアドレスを含むポインタリスト用のポイン
タを保持する0図示の目的上、RETI!ネッ)150
は第16図中、唯一の後続ノードとして終端ノード16
2を有するものとして示されている。つまり、終端ノー
ド162(第7図)のアドレス91が、フィールド19
5に係わるポインタリスト内に含まれている。
第20図を参照すれば、共有トークンメモリテーブル2
00は、それぞれリレーノード158a−158dのフ
ィールド173において識別され、結合ノード156a
−156dからの複合トークン用の列202a−202
dを含む、つまり、結合ノード156aによって表され
る結合(例えばAND)を合格したテス)T2とTIの
事例を表す複合トークン1.−1.は、列202aに割
り当てられる。結合ノード156bの関数機能に従って
合格したテストT3とTIの事例は、列202bに割り
当てられる複合トークン1.−1.によって表される。
列202cは、結合ノード156aによってテストされ
る結合を合格したテストT4とT1の事例を表す複合ト
ークン1.−1.用に指定されている。結合ノード15
6dの関数機能に従って合格したテス)T5とTIの事
例を表す複合トークン1.−1.は、列202dに割り
当てられる。
メタテスト規Jl!I 4−6のいずれか1つの左側は
、テストT2−75の一部の組合せの合格と共にテスト
T1が合格した場合にのみ満たされ、また幾つかのデー
タ要素56がテストT1を合格することがあるため、列
202,1−202dは、テストノード154aによっ
てカウンタノード160に導かれたトークン【、に従っ
て、行204a−204nに指標付けされている。つま
り、各行204a−204nは、(第8図、フィー)L
tF102内のポインタによりて)データ要素を識別す
るトークン1.と対応する。結合ノード156a−15
6dとリレーノード158a−158dから、(第9図
の各データ構造フィールド112に係わるポインタリス
トを介して)データ要素まで辿れる複合トークンだけが
、行204a −204n内に入れられる資格がある。
第16.20及び21図を参照して、動作の初期時、結
合ノード156a−156dの左右メモリとメモリテー
ブル200が空であるものとする。
新しいデータ要素56(例えばデータ要素A)が、(例
えばユーザまたはデータベース48から、あるいは適用
された規則の結果として)推論エンジン34から得られ
ると、プロセッサ/コントローラ46はそのデータ要素
を作業メモリ54内に記憶し、データ要素への記憶ロケ
ーションを指す原始追加トークンt  (A)  (第
8図)を生成し、新らしいトークンt  (A)を介し
ノード152に与える(220)。
次いでプロセッサ/コントローラ46は、トークンt 
 (A)をテストノード154a−154eに順次送る
。データ要素AはテストT1を合格するものとする(2
22) 、プロセッサ/コントローラ46はこの追加ト
ークンtt(A)を、テストノード154aからカウン
タノード160に与える(224)、カウンタノード1
60が、(それぞれリレーノード158a−158dを
介して)結合ノード156a−156dから得られるデ
ータ要素Aを指すトークン1.に対応した複合トークン
に指定されたメモリテーブル200内の行204aを生
じる(226)、またトークン1゜(A)は、プロセッ
サ/コントローラ46によって結合ノード156a−1
56dの左側メモリ(LM)52内にも記憶される(2
2B)。
新しい行く例えば行204 a’)がテーブル200内
に確立される毎に、カウンタノード160が、メタテス
ト機能210を呼び出す、なぜなら、テス)Tlが合格
すると直ちに、何等かの規則(例えば“多くとも”の規
則6)が満たされるからである。規則が満たされると、
プロセッサ/コントローラ46は新たに生成された行を
1T”つまり真としてマーク表示する;満たされないと
、その行は“Foつまり偽としてマーク表示される。
データ要素Aがナス1−T1合格したかどうかに関わり
な(、プロセッサ/コントローラ46は、データ要素A
に関してテストノード154a−154eによって識別
されたテストを順次行う(230)、テストプロセスは
、テストT2−T5が全て実行されるまで継続される(
232)。データ要素Aは、テストT2−T5のいずれ
も合格しないものとする。従って、結合ノード156a
−156dの左側メモリ54が全て空なので、いずれの
結合ノード156a−156dも左右メモリ52.54
内の両トークン間でマツチングを生じない(234)、
全てのテストTl−T5が実行され(232)、且つ(
1つ以上のテストが合格した場合)全ての結合ノードが
マツチングをチエツクし終る(236)と、プロセッサ
/コントローラ46はデータ要素Aについてそれ以上進
むことができず、さらにいずれか新しいデータ要素56
が得られるかどうかをチエツクする(238)。
このチエツクは、データ要素Aが全てのテストTl−T
5に合格しなかった場合にも行われる。
さらに得られるデータ要素56が存在すれば、プロセス
は次のデータ要素(例えばデータ要素B)について!!
続される(220)。
(原始トークンt (B)によって表される)データ要
素Bは、テストT4だけを合格するものとする(230
)。プロセッサ/コントローラ46は原始追加トークン
t、(B)を、テストノード154dを結合ノード15
6Cの左側メモリ54に送る(240)。ここで、プロ
セッサ/コントローラ46は結合ノード156cにおい
て、左右メモリ52.54内の両原始追加トークンtt
(A)、t4(B)間でマツチングを見い出す、従って
プロセッサ/コントローラ46は、原始トークンt4(
B)とtr(A)のアドレス102 (第8図)を含む
ポインタリスト用のポインタを有する複合追加トークン
(第9図)を発生し、複合トークンLs (B)−tr
 (A)をリレーノード158Cに送る (242)。
複合トークンta (B)−tr (A)は、テストT
4とT1が合格したことを示す。リレーノード158C
が(フィールド172内のポインタを介して)共有のカ
ウンタノード情報データ構造190にアクセスするため
、プロセッサ/コントローラ46は、複合トークンt4
(B)   tr (A)がメモリテーブル200の行
204a内に入れるべきかどうかくすなわち原始トーク
ンt+(A)に割り当てられた行)を判定し、複合トー
クンt4(a)−tr(A)を列202Cの行204a
 (すなわち第17図、フィールド173内のポインタ
によって識別され、リレーノード158Cに割り当てら
れた行)に送る(244)。
次いで、メモリ行テスト機能210がリレーノード15
8Cによって呼び出され、(トークンが追加されたのは
行204aだけであるから)行204aのテストポイン
タ192とテスト引数193に係わるメタテストをプロ
セッサ/コントローラ46で行わせ、行204aの列2
02a−202d内における複合追加トークンの数がメ
タテストを満たすかどうかを判定する(246)。
いま、規則5(第12図)がRETEネット150で表
されているものとする。プロセッサ/コントローラ46
はテスト機能210を用い、複合追加トークンを含む行
204a内に少なくとも2つの列202a−202dが
存在するかどうかを判定することによって、合格したテ
ストT1のある事例と共に、テストT2−75のうち少
なくとも2つが合格したかどうかをチエツクする(24
6)。
行204a内には1つの複合トークン、つまりトークン
ta (B)   tr (A)だけが存在するので、
規則5の左側はまだ満たされず、プロセッサ/コントロ
ーラ46は行204aをマーク表示“F”つまり偽(第
20図)の状態に保つ。
トークンta (B)が結合ノード156cの右側メモ
リに記憶されたとき、1より多い原始トークンが左側メ
モリ内に存在し、従ってトークンt4(B)に係わる連
続した複合トークンが発生されることもある(248)
、この場合、プロセッサ/コントローラ46はこれらの
複合トークンをリレーノード158cに送り(242)
、メモリ200の適切な行と列内に入れ(244)、そ
の行のテスト機能210を行う(246)。
リレーノード158cからの全複合トークンがメモリテ
ーブル200でチエツクされ終ると(248)、全ての
結合ノード156a−156dがトークンのマツチング
についてチエツクされ(236)、全てのテストTl−
T5が実行され(232)、プロセッサ/コントローラ
46は次のデータ要素が存在すれば(238)、その推
論処理を繰り返す。
次の新しいデータ要素、つまり要素Cは、テストT1だ
けを合格するものとする。プロセッサ/コントローラ4
6は追加トークンt+(C)をテストノード154aか
らカウンタノード160に送り、カウンタノード160
はその原始トークンとデータ要素C用の行204bをメ
モリテーブル200内に生成する(226)。原始トー
クン1゜(C)は、結合ノード156a−156dの左
側メモリ内にも記憶される(228)。従って、新しい
トークンのマツチングが結合ノード156Cで生じ<2
34)、プロセッサ/コントローラ46は新しい複合追
加トークンtオ(B) −t t(c)をリレーノード
158Cに送る(242)。
複合トークンt4(B)−” tt (C)のt1部分
は(例えばデータ要素人でなく)データ要素Cに係わる
ものなので、複合トークンta(B)   L+(C)
はりレーノード158Cから、メモリテーブル200の
行204b、列202c内に送られる(244)、Lか
しこの行204bは、テスト機能210の“少なくとも
2つ”というテストをまだ満たさず(246)、行20
4bはマーク表示“F”つまり偽の状態に維持される。
その後、次のデータ要素56が存在すれば(238)、
それについての推論処理が繰り返される。
次の新しいデータ要素、つまりデータ要素りは、テス)
T2だけを合格するものとする(230) 。
プロセッサ/コントローラ46は追加トークンt2(C
)をテストノード154bから結合ノード156a−1
56dの左側メモリ54内に送られる(240)、従っ
て、トークンt、(D)とトークンtI(A)間でマツ
チングが生じ、複合追加トークンtz (D)   t
t (A)がプロセッサ/コントローラ46によってリ
レーノード158aに送られる(242)。
複合トークンj* (D)−t 1(A)の1.部分は
データ要素Aに係わるものなので、プロセッサ/コント
ローラ46はその複合追加トークンのリレーノード15
8aから、メモリテーブル200の行204a、列20
2aに送る(244)。ここで、行204aの少なくと
も2つの列内に複合追加トークンが存在するので、テス
ト機能210は満たされる(246)。すなわちデータ
要素A。
B及びDが、満たされている規則5の左側の一事例とな
る。そこで行204aは“F”から“T”つまり真に変
更され、プロセッサ/コントローラ46は、カウンタノ
ード160のアドレス181(第18図)用のポインタ
と原始トークンt+(a)のアドレス101用のポイン
タとをフィールド112内に含む新しい複合トークンを
発生する<250)、この新しい複合トークン1cm1
゜(A)は終端ノード162内に記憶され(252)(
また場合によっては全規則のRETEネット36内のい
ずれかに送られる)。
さらに、原始追加トークン間での別のマツチング、すな
わちトークンt*(D)とtt(C)間でのマツチング
が、結合ノード156aに存在する(248.234)
、従って、プロセッサ/コントローラ46は複合追加ト
ークンjz(D)−t。
(C)をリレーノード158aに送り (242)、そ
のトークンをメモリテーブル200の列202aのうち
、tt(C)に対応した行204bに記憶する(244
> 、ここで、行204bの少なくとも2つの列内に複
合追加トークンが存在するので(246)、規則5の左
側の別の事例が満たされ、それが処理されねばならない
。そこでプロセンサ/コントローラ46は、行204b
の真/偽状態を“F”から“T”つまり真に変更し、新
しい複合トークンtc−t+(C)を発生して(250
)、それが終端ノード162内に記憶される(252)
例えば、“少なくとも2つ”という規則5の事例は、メ
モリテーブル200のある行204a−204nに属す
る少なくとも2つの列202a−202dが複合追加ト
ークンを含むときに生じるため、第3または第4の複合
追加トークンがその行内に入れられたとき、規則の追加
の事例は発生されるべきでない、従ってプロセッサ/コ
ントローラ46は(テスト機能210に基づき)、その
行の列への追加トークンの付加によって行(例えば行2
04a)が合格したことを判定する毎に1、その行の真
/偽(T/F)状態が変更されたかどうかをチエツクす
る(249)、変更していなければ(すなわちその行が
テストa能210をすでに満たしていれば)、プロセッ
サ/コントローラ46は(新しい規則の事例を表す)新
しい複合追加トークンを発生せず、プロセスはステップ
248に進む。
しかしながら、メモリテーブル200のある行のある列
から対応した複合追加トークンを除去するため、複合削
除トークンがリレーノード158a158dを介してプ
ロセッサ/コントローラ46によって送られると、また
その結果として、当該行のT/F状態が真から偽へ変化
すると(249)、(すなわちテスト機能210がその
行について満足しな(なると)、プロセッサ/コントロ
ーラ46は複合削除トークンを発生する(250)。複
合削除トークンは、カウンタノード160のアドレス1
81と、当該行に係わる原始トークン(例えば行204
aに関する原始トークンt+(A))のアドレスも指す
、この複合トークンが、プロセッサ/コントローラ46
によって終端ノード162に送られる(252)。
全ての新しいデータ要素に関する追加及び削除トークン
がRETEネット150に加えられた後(238)、プ
ロセッサ/コントローラ46は終端ノード162を、複
合追加トークンの存在についてチエツクする(254)
、終端ノード162が空であれば、規則5のどの事例も
適用の準備が整っていす、エキスパートシステムプログ
ラム12の実行は、少なくともそれまでに推論エンジン
34によって得られた全てのデータについて完了される
(256)。
しかし本例では、終端ノード162内における追加トー
クンt c−t + (A)とtC−tl(C)の存在
によって指示されているように、規則5の2つの事例が
適用の準備が整っている。プロセッサ/コントローラ4
6は、トークンのデータ構造110のフィールド114
(第9図)に存在する情報を用いて、2つの事例間にお
ける衝突の解消を行い、勝った方の事例規則、例えばト
ークンtc  tl(A)によって表された事例を適用
する(258)、もちろん、1つの重複トークンだけが
終端ノード162内に記憶されていれば、衝突は存在し
ないので、プロセッサ/コントローラ46はそのトーク
ンによって表された規則の事例を単に適用する。
規則事例の適用によって、より多くのデータが推論エン
ジン34から発生または得られると(260)、プロセ
ッサ/コントローラ46は新しいデータ要素の各々毎に
ステップ(220)から始まる推論プロセスを繰り返す
、新しいデータが全く発生または得られなければ、動作
が完了する(256)。
テストTlを合格した個々のデータトークン(例えばデ
ータ要素AとC用のトークン)に割り当てられた行によ
ってメモリテーブル200を指標付けすることの重要さ
は、結合ノード156a−156dの1つ以上がデータ
要素に対するテストを、左側メモリ52内のトークンと
右側メモリ54内のトークンとのマツチング条件として
識別するきに明らかとなろう0例えば、結合ノード15
6cが左側メモリ52内のトークンと右側メモリ54内
のトークン間での論理積(AND)関数を識別する他、
マツチング発生のためには左側メモリ内のトークンに係
わるデータ要素が右側メモリ内のトークンに係わるデー
タ要素の値より大きい値を持たねばならないことを指定
するテストを(第6図のフィールド84を介して)識別
する場合を考える。さらに、データ要素Aがデータ要素
B以下で、データ要素Cがデータ要素Bより大きいもの
とする。
この場合、プロセッサ/コントローラ46は結合ノード
156Cにおいてトークンj+(A)とt4(B)間で
のマツチングを見い出せないが、トークンtt(C)と
ta (B)間でのマツチングは認められる。トークン
t+(A) 、*(B)にそれぞれ割り当てられた行2
04a、204b間で指標付けられたメモリテーブル2
00により、プロセッサ/コントローラ46は複合トー
クンta(n)−tl(C)を(リレーノード158c
を介して)、行204aの代わりに行204bへ正しく
送ることができる。これは、満たされている規則5の左
側の事例がデータ要素Aによってでなく、データ要素C
によって生じたものであることを正しく示している。
RETBネフト150は、テスト機能210の適切なテ
スト(第19図、フィールドエ92)とテスト引数(フ
ィールド193)を識別することによって、広範囲のメ
タテストを表すことができる。
例えば、再び第10図を参照すると、“OR”の規則4
をRETEネット150で実施することもできる。テス
ト引数(第19図、フィールド193)は、簡単に1に
設定される。つまり、テスト機能210の実行はメモリ
テーブル200のある行202a−202nについて、
1つの複合追加トークンが該当の行内に記憶され、その
行のT/F状態を変更する度に、複合トークンが終端ノ
ード162の送られるようにする。
また第14図を参照すると、RETEネット150は“
多くとも2”の規則6の左側を表すこともできる。テス
トポインタ(フィールド192)とテスト引数(フィー
ルド193)は、メモリテーブル200のある行につい
て、0.1または2個の複合トークンが列202a−2
02d内に存在する場合にテスト機能210が満たされ
るように選定される。一方、ある行について3つ以上の
複合トークンがその行に記憶されている場合、トークン
は終端ノード162に送られない。
かかる方式を用いて、RETEネット150は例えば、
Xより多いがYより少ないテストが合格したかの判定、
あるいはXと7間のテストが合格したかの判定など、任
意の数のテストの上記以外の多くの組合せを実施可能で
ある。さらに別の例として、奇数または複数のテストが
合格したかどうか、あるいはテストの特定の組合せ(す
なわち第1.3及び4テストなど)が合格したかどうか
のチエツクもある。
再び第16図を参照すると、RETEネット150は、
(規則4−6のT1のように、テストT2T5のメタテ
ストと共に合格しなければならないテストなど)指標付
はテストを含まない規則の左側を表すこともできる。例
えば、テストT2、T3、T4またはT5のうち任意の
2つが合格したら、単純に満たされる左側を有する規則
5′を考えて見る。コンパイラ32(第1図)は、その
ような指標付けされないメタテストを認識し、カウンタ
ノード160にトークンを与える特別のテストノード(
154a)を生成する。コンパイラ32はテストノード
154b−154eをそれぞれテストT2−T5につい
て確立し、RETI!ネット150の残りを第16図に
示すように構成する。
またコンパイラ32は、1つだけの許容値を有し、ノー
ド154aの特別テストだけを合格可能な特別のデータ
要素も生成する。特別なテストノード及びデータ要素の
生成は、プログラマ(すなわち非指標付はメタテスト規
則の筆者)には見えない。
動作が始まると、プロセッサ/コントローラ46は特別
なデータ要素に係わるトークンをRETEネット150
に送り、特別なデータ要素は特別なテストノード154
aだけを合格する。これによってカウンタノード160
はメモリテーブル200内に、ノード154aからのト
ークンに割り当てられた行を形成する。特別トークンは
各テストノード154a−154eからのいずれのトー
クンとも結合ノード156a−156dでマツチングし
、特別トークンを識別する複合トークンがリレーノード
158a−158dに送られる。リレーノード158a
−158dからの複合トークンは、カウンタノード16
0からの特別トークンによって識別されたメモリテーブ
ル200内の行に属する列202a−202d (第2
0図)内に入れられる。プロセッサ/コントローラ46
はその行について、前述したのと同様にテスト機能21
0を実施する。
再び第1図を参照すると、エキスパートシステム10の
動作中しばしば、利用可能な全てのデータ要素56がR
ETBネット36に与えられた後でも、RETEネット
36で表されている規則のいずれの左側も満たされず、
従ってどの規則も適用されないことがある。その一つの
可能性は、データの定義14中の1つ以上の項類につい
て全てデータ値が得られないこと(すなわちそのような
各項類毎のデータが失われていること)がある0本発明
の別の特徴によれば、必要に応じて、失われているデ−
夕に対応したデータ定義の項類を効率的に確認可能とす
る機構が提供される。
第22図を参照すれば、エキスパートシステムプログラ
ム12のデータの定義14は、1つ以上のデータ項類(
例えば姓名、年齢、身長、体重)を含み、各項類毎の初
期のデータ値、及びデータが持つことを許容される一組
の値を有する。例えば、身長は始め“Y”に設定され、
100までの値を取り得るようにされる。本発明では、
要求に応じてデータ収集が行われるデータ定義の項類(
例えば“年齢”)が選定され、初期値は“く不問(un
asked) >”として割り当てられる。エキスパー
トシステムプログラム12の実行中、許容された値を持
つデータ要求が〈不問〉のデータ定義について得られる
と、もちろんその頃類のデータは“失われて”いないの
で、最初のく不問〉値はその得られた許容値によって書
き換えられる。
第23及び24図を参照すると、コンパイラ32はく不
問〉のデータ定義を処理するテストを認識し、これらの
テストを、テストの主機能が機能しない場合はく不問〉
値についてテストを行うように構成する。例えば、規則
7(第23図)の左側270は、年齢(age) = 
7であるかどうかをチエツクするテストT1と、身長が
60より小さいかどうかをテストするテストT2を含む
。本発明では、コンパイラ32が左側270を、規則7
′の左側270’  (第24図)であるかのように翻
訳し、規則7′のテストTl’では、年齢の値が7に等
しくないと、年齢が値〈不問〉を有するかどうかを尋ね
る。そうであれば、テストTl’は合格する。身長はく
不問〉のデータ定義でないので、テストT2は変わらな
い。
従って、年齢に関するデータがプロセッサ/コントロー
ラ46から得られなかった場合であっても、年齢は初期
のく不問〉値に等しいので、左側270′のうちTI’
を処理する部分は満たされる。しかし、年齢が7に等し
くない何等かの値(例えば6)を持つように、何等かの
データが年齢について得られると、〈不問〉が値“6”
で書き換えられるため、テストTl’は不合格となる。
左側270′のうちT2を処理する部分は、身長が60
より小さくなければ満たされない。
またコンパイラ32は規則7の処理リスト271(第2
3図)も、年齢のデータが失われているために規則7が
合格したら、後で詳しく述べるように、規則を適用する
代わりにプロセッサ/コントローラ46によって年齢用
のデータ収集シーケンスを開始させる処理リスト271
’へと変更する。
第25図を参照すれば、プロセッサ/コントローラ46
は原始及び複合両トークンのデータ構造280を変えて
、〈不問〉の初期値を有するデータ定義についてデータ
が失われているために合格した各トークンに係わるテス
トの回数を追跡するようにする。すなわち、全ての原始
及び複合トークンの衝突解消フィールド281に、デー
タが失われているにも拘らずく不問〉のデータ定義であ
るために合格したテストの回数を追跡するカウンタ28
2が付は加えられる。原始及び複合トークンのデータ構
造280の残りのフィールド283は、そのままである
〈不問〉のデータ定義をチエツクするため規則の左側に
対しコンパイラ32によってなされた変更、及びカウン
タ282を含めるためプロセッサ/コントローラ46に
よってトークンのデータ構造に加えられた改変は、プロ
グラマには全く見えない。
第26図を参照すれば、規則7′の左側270′がRE
TBネット290によって表されており、原始トークン
tがプロセッサ/コントローラ46により開始ノード2
92から、それぞれテストTl’とT2を識別する一対
のテストノード294a、294bに送られる。データ
要素がテストTI’とT2を合格すると、プロセッサ/
コントローラ46は原始トークン1..1.を、結合ノ
ード296の左側メモリと右側メモリにそれぞれ送る。
プロセッサ/コントローラ46は、結合ノードで左右メ
モリ内の原始トークン間におけるマツチングをチエツク
し、成功したマツチングを表す複合トークン1.−1.
を終端ノード298に送る。
プロセッサ/コントローラ46は各原始トークンtをR
ETEネフト290に与え、同ネットのく不問〉カウン
タ282はゼロに初期設定されている。
プロセッサ/コントローラ46は、〈不問〉値に関する
テストが行われ合格した場合にのみ、テストノード29
4aにおける原始トークンtの〈不問〉カウントをイン
クレメントする。
〈不問〉カウンタ282がインクレメントされる量は、
テストされ且つ〈不問〉値を有するトークンtによって
表されたデータ要素56内におけるデータ定義の数に依
存する。例えば、トークン【によって表されたデータ要
素がテストノード294aでテストされ(且つ合格して
)く不問〉値を有する1つのデータ定義だけを含む場合
、トークンtのく不問〉カウンタ282はlだけインク
レメントされる。一方、データ要素がテストノード29
4aで全てテストされる4つのデータ定義(例えば年齢
、身長、体重及び性別)を含み、データ要素自体が〈不
問〉値に設定されている場合、プロセッサ/コントロー
ラ46はそのデータ要素を表すトークンtの〈不問〉カ
ウンタ282を、結合ノード296にトークンを送ると
き4だけインクレメントする。
結合ノード296によって生成される複合トークン1.
−1.における〈不問〉カウンタ282の内容は、マツ
チングして複合トークンを形成した両トークン1.,1
.におけるく不問〉カウンタ282の内容の和である。
第27図を参照すれば、動作時、1つ以上のデータ定義
(例えば第22図の“年齢”)に値く不問〉が予め割り
当てられると(300)、プロセッサ/コントローラ4
6は新しい各データ要素56を作業メモリ54内にいれ
、各データ要素についてのトークンtを生成する(30
2)。次いでプロセッサ/コントローラ46は、トーク
ンtをテストノード292aに送り、新しいデータ要素
の値が年齢=7のテストに合格するかどうかをチエツク
する(304)。合格すれば、トークン1、がプロセッ
サ/コントローラ46によって、結合ノード296の左
側メモリに送られる(306)。
新しいデータ要素の値が年齢=7のテストに合格しない
と、プロセッサ/コントローラ46は、データ定義“年
齢°の値がく不問シに等しいかどうかをチエツクする(
308)。年齢について全くデータが得られていないと
すれば、データ定義の値はく不問〉に等しく、テス)T
I’を満たす(310) 、  トークンLlが結合ノ
ード296へ送られる前に、プロセッサ/コントローラ
46はトークン1.の〈不問〉カウンタ282をカウン
ト“1”にインクレメントする(312)。
結合ノード296において、プロセッサ/コントローラ
46は、左側メモリ (LM)52内の新しいトークン
1.と現在右側メモリ (RM)内に存在するトークン
1tとの間に、1つ以上のマツチングが存在するかどう
かをチエツクする(314)。
存在すれば、プロセッサ/コントローラ46は複合トー
クン、つまりトークン1t−1,を発生し、その各々は
く不問〉カウンタ282内に、マツチングした原始トー
クンt3、t8の両〈不問〉カウンタ282の合計に等
しいく不問〉カウントを有する(316)。その後、新
しい各複合トークンはプロセッサ/コントローラ46に
よって、終端ノード298に送られる(318) 。
尚、結合ノードが理論積(AND)以外の関数機能(例
えばNOT関数、あるいは−例として、1つのトークン
に係わるデータ要素の値が別のトークンに係わるデータ
要素の値より大きいかどうかのテストなど)を表す場合
も、結合ノードにおける関数機能が幾分変更される。つ
まり、テスト機能(例えば“より大きい”のテスト)は
、〈不問〉であると共に、それについてデータが失われ
ているデータの定義を含むときに、テストが合格である
ことを指示するように変更される。同じくNOT関数は
、NOT関数を適用したとき、ゼロでないく不問〉カウ
ントを存するトークンを無視するように変えられる。こ
れにより、データの定義かく不問〉であるだけのために
、NOT関数によって障害が不用意に指示されることを
防止する。
再び第27図を参照すると、トークンtはテストノード
294bにも送られ、テストT2(すなわち身長く60
)が関連のデータ要素に対して行われる(320)、い
ま新しいデータ要素は、T2を通過する(但しT1は通
過しなかった)ものとする、プロセッサ/コントローラ
46は、トークンt2を結合ノード296の右側メモリ
(R?l)に送る(322)、テストT2を通過しなか
ったら、身長はく不問〉でない(324)ので、次のデ
ータ要素が存在すれば(336)、次のステップでそれ
をROTEネソ)290に与える。(但し身長かく不問
〉であれば、テストが合格しく326)、トークンt□
のく不問〉カウントがゼロからインクレメントされる(
32B))。
プロセッサ/コントローラ46は、(規則7′の左側2
71′に従って)論理積(AND)関数を実施し、新し
いトークンt2と現在結合ノード296の左側メモリ 
(LM)内に存在するトークンt1間でのマツチングを
チエツクする(330)。
この例では、年齢が〈不問〉である(332)結果とし
てトークンt、が結合ノード296に送られている(3
06)ため、マツチングが見つかり、プロセッサ/コン
トローラ46はく不問〉カウンタ282内に“l”の値
を有する複合トークンt!−1,を発生する。新しい複
合トークン1.−1゜は、プロセッサ/コントローラ4
6によって終端ノード298内に記憶される(334)
さらに別の新しいデータ要素が存在すれば(336)、
それらは前述したのと同様、プロセッサ/コントローラ
46によって1回に1つづつ得られ、RETEネット2
90に与えられる。新しい全てのデータがRETEネッ
トに与えられたところで、プロセッサ/コントローラ4
6は複合トークンが存在するかどうか、RETBネット
内の全ての終端ノード(例えばノード298)をチエツ
クする(338)。何にも見つからなければ、どの左側
も満たされていないので、処理は終了する(340)。
一方、(1つの終端ノード内か複数の終端ノード内で)
1より多い複合トークンが見づかると(342)、プロ
セッサ/コントローラ46は複合トークン間での衝突解
消を行い、処理を進めるべき1つの複合トークンを得る
(344)。但L、1つの複合トークンだけが終端ノー
ドで見っがった場合、衝突の解消は必要ない。
第28図を参照すれば、複合トークンに関する衝突の解
消(344)は、複合トークンの〈不問〉カウント28
2によって決まる優先順序で行われる。0のく不問〉カ
ウントを持つトークン(344a)の方が、1のく不問
〉カウントのトークン(344b)より高い優先順位を
有し、さらに後者は2のく不問〉カウントを持つトーク
ン(344c)より高い優先順位を有する。つまり、い
ずれかの規則の左側に含まれたテストの最高数に対応し
た最大限のく不問〉カウント(すなわちN)を持つ複合
トークンが、最も低い優先順位となる(344n>。
この結果、データが失われている極わずかな数のく不問
〉のデータ定義に係わる複合トークンに対して、通常の
衝突解消手順が施される(345)。
従って、〈不問〉のデータ定義に幀ることなく満たされ
た左側を有する規則が、1つ以上のく不問〉のデータ定
義についてデータ値が失われているために満たされた左
側を有する規則と不用意に取り替えられることがない。
第27図に戻ると、衝突解消手順によって選ばれた複合
トークンがゼロのく不問〉カウントを有すると(346
)、プロセッサ/コントローラ46は、その複合トーク
ンを含む終端ノードに係わる左側を持った規則の事例を
適用する(348)。
なぜなら複合トークンは、該当規則の左側が作業メモリ
54内に記憶されたデータ要素56の実際値によって満
たされている事例を表しているからである。すなわち、
規則の左側におけるテストの中で、1つ以上のく不問〉
のデータ定義についてデータが失われている結果合格し
なかったものはない、規則の適用から新しいデータが発
生されると(350)、そのデータは前記したのと同様
に得られ、RE!TEネット290に与えられる0発生
されなければ、手順は終了される(340)。
しかし、衝突解消(344)によって選ばれた複合トー
クンが1以上のく不問〉カウントを有すると、その複合
トークンに係わる規則は適用されない、なぜなら、トー
クンに係わる1つ以上のデータ要素が失われているから
である。従って、規則の左側が満たされていても、1つ
以上のデータ部分が失われているため、その規則の適用
準備は整わない。
また第9図を参照すると、プロセッサ/コントローラ4
6は、複合トークンのフィールド112内のポインタを
辿り、複合トークンが形成された原始トークンのアドレ
ス101へと遡ることによって、データが失われている
1つ以上のく不問〉のデータ定義を識別する。そこで、
1の値を含む〈不問〉カウントを有するリスト中の最初
の原始トークンが選ばれる。その原始トークンのフィー
ルド102(第8図)におけるポインタが、(値く不問
〉を有する)当該データ要素の作業メモリロケーション
まで追跡され、その原始トークンを生じるためにテスト
されたく不問〉のデータ定義がそこから識別される(3
52)。
データ要素は1より多いデータの定義を含み得るので、
1より多いデータの定義が〈不問〉値を持つことがあり
、この場合にはく不問〉値を有するデータ要素内の最初
のデータ定義が識別される。
データ要素自体が〈不問〉値に設定されている場合にも
、データ要素内の最初のデータ定義が識別される。
く不問〉のデータ定義が識別されれば、その定義に関す
る失われたデータは多数くの方法で得られる(354)
、例えば、プロセッサ/コントローラ46は、単にユー
ザに対してデータの定義を識別提示し、ユーザが失われ
たデータを入力するのを待っていてもよい。あるいはプ
ロセッサ/コントローラ46は、失われたデータを演算
するその他のプログラム18(第1図)の1つを実行し
てもよい。
失われたデータが得られると、プロセッサ/コントロー
ラ46はそれを1つ以上のデータ要素として作業メモリ
54内にロードし、そのデータ要素に関する新しい原始
追加トークンが生成される(302)、また、データ定
義の前の値く不問〉に関する削除トークンがRETEネ
ット190に与えられた後、得られたデータ値を表す追
加トークンが生成される。
上記以外の実施例も、特許請求の範囲内に含まれる0例
えば、第16.20及び21図において、メモリテーブ
ル200は原始トークンによる代わりに、(カウンタノ
ード160を介して)複合トークンによって指標付けす
ることもできる。
【図面の簡単な説明】
第1図はエキスパートシステムの機能ブロック図、第2
図は第1図のシステムで使われる規則を表す図、第3図
は第2図の規則を表す網状ネット(すなわちRITEネ
ット)の図、第4図はR11!TEネツト内の第1種類
のノードのデータ構造図、第5図はRETEネット内の
第2種類のノードのデータ構造図、第6図はRETEネ
ット内の第3種類のノードのデータ構造図、第7図はR
ETHネット内の第4種類のノードのデータ構造図、第
8図はRETEネットで使われる原始トークンのデータ
構造図、第9図はRETEネットで使われる複合トーク
ンのデータ構造図、第10図は“OR”規則の図、第1
1図は第1O図の“OR”規則用の従来のRf!Tt!
ネットの図、第12図は“少なくとも(at 1eas
t)”の規則の図、第13図は第12図の1少なくとも
”の規則用の従来のRETEネットの図、第14図は“
多(とも(at most) ”の規則の図、第15図
は第14図の“多くとも”の規則用の従来のRf!7B
ネットの図、第16図は本発明の一特徴による第1O1
12及び14図の各規則用のRBTEネット図、第17
図は第16図のRETEネット内における1つのノード
のデータ構造図、第18図は第16図のRETEネット
内における別のノードのデータ構造図、第19図は第1
7及び18図のノードによって共有される情報のデータ
構造図、第20図は第16図のROTEネットの動作を
理解するのに有用な図、第21図は第16図のRETH
ネットの動作を示すフローチャート、第22図はデータ
定義の図、第23図は代表規則の図、第24図は本発明
の別の特徴に従って変更された第23図の規則の図、第
25図は本発明の別の特徴に従って変更された原始及び
複合トークンのデータ構造の図、第26図は第23及び
24図の規則用のRETEネットの図、第27及び28
図は本発明の別の特徴での動作を理解するのに有用なフ
ローチャートである。 20・・・・・・規則、22・・・・・・テスト、46
・・・・・・プロセッサ/コントローラ、56・・・・
・・データ要素、150.170,290・・・・・・
ネットワーク(綱状(ROTE)ネット)、152.2
92・・・・・・開始ノード、154 a−d、  2
94 aSb−・−・・テストノード、156a−d、
296・・・・・・結合ノード、158a−d・・・・
・・リレーノード、160・・・・・・カウンタノード
、162・・・・・・終端ノード、200・・・・・・
記憶装置(共有トークンメモリテーブル)、210・・
・・・・アナライザ(テスト機能)、282・・・・・
・トークン内のく不問〉カウンタ。 日G、2 FIG、 1 瑚暖貝り4: (Tl)AND叶2)OR(T3)O,R(T4)  
0R(T5コ 呻処ff1lJユ、41  1  1 
  t   \  −\、  \  \FIG、 10 FIG、l2 FIG、II 処置リスト5) FIG、 +9 匡 手続補正書 特許庁長官 吉 1)文 毅 殿 1、事件の表示 平成1年特許願第275768号 3、補正をする者 事件との関係

Claims (1)

  1. 【特許請求の範囲】 1、条件からなる表現を評価するネットワークで、該評
    価がネットワークに与えられるデータ要素の値に基づい
    てなされ、前記条件がノードによって表され、前記表現
    における条件間での関係が前記ノード間のリンクによっ
    て表されるようなネットワークにおいて、 前記ノードの少なくとも一部によって表された条件のう
    ちどれが、前記データ要素の値によって満たされている
    かを識別する情報を保持する記憶装置、及び 前記表現を評価するベースとして、前記記憶された情報
    を前記表現に基づいてテストするアナライザを備えたネ
    ットワーク。 2、前記記憶装置が、前記一部のノードのロケーション
    と異なる、前記情報に割り当てられた別個のロケーショ
    ンを備え、さらに 前記一部のノードの各1つからの前記情報を、該ノード
    に割り当てられたロケーションに入力する手段を備えた
    請求項1記載のネットワーク。 3、前記表現中における前記条件の所定数が満たされた
    とき、前記表現が満たされる場合に使用され、さらに 前記アナライザが前記情報で占められたロケーションの
    数をカウントし、前記表現中における幾つの条件が満た
    されているかを判定する請求項2記載のネットワーク。 4、前記表現が一ノードによって表された標識付け条件
    を含み、さらに 前記標識付け条件ノードからの情報に基づいて前記記憶
    装置内のロケーションをグループ分けする手段で、該グ
    ループの各1つが前記標識付け条件を満たす1つ以上の
    前記データ要素と対応している手段を備えた請求項2記
    載のネットワーク。 5、前記一部のノードからの前記情報が、前記標識付け
    条件を満たすデータ要素を識別し、さらに 前記入力手段が前記一部のノードからの前記情報を、前
    記識別されたデータ要素に対応するグループのロケーシ
    ョンに入力する請求項4記載のネットワーク。 6、前記表現中における前記条件の所定数が満たされた
    とき、前記表現が満たされ、さらに 前記アナライザが前記情報で占められた各グループにお
    けるロケーションの数をカウントし、前記表現が満たさ
    れているかどうかを判定する請求項4記載のネットワー
    ク。 7、前記グループが前記表現の満たされていることを示
    す占有ロケーションのカウントを現在有しているかどう
    かを、前記アナライザがモニターする請求項6記載のネ
    ットワーク。 8、前記情報の新しいエントリが前記グループに加えら
    れる毎に、前記アナライザがグループ内の前記占有ロケ
    ーションをカウントする請求項7記載のネットワーク。 9、前記情報の新しいエントリによって、前記表現の満
    たされることを示す占有ロケーションのカウントをそれ
    まで有していなかったグループが、前記表現の満たされ
    ることを示す占有ロケーションのカウントを有するよう
    になったとき、前記表現が満たされたことの指示を前記
    アナライザが生じる請求項8記載のネットワーク。 10、前記情報の新しいエントリが前記グループに加え
    られたとき、前記グループが前記表現を満たす占有ロケ
    ーションのカウントをすでに有している場合、前記アナ
    ライザが前記指示を生じない請求項9記載のネットワー
    ク。 11、前記一部のノードが、前記記憶装置内における対
    応した前記占有ロケーションから前記情報を削除させ、
    さらに 前記情報が前記グループ内のロケーションから削除され
    る毎に、前記アナライザがグループ内の占有ロケーショ
    ンをカウントする請求項6記載のネットワーク。 12、前記情報の削除によって、前記表現を満たす占有
    ロケーションのカウントを前に有していたグループが、
    前記表現を満たさない占有ロケーションのカウントを有
    するようになったとき、前記表現が満たされないことの
    指示を前記アナライザが生じる請求項11記載のネット
    ワーク。 13、前記ネットワークが判別ネットである請求項1記
    載のネットワーク。 14、前記判別ネットが網状ネットである請求項13記
    載のネットワーク。 15、前記一部のノードによって表された前記条件のい
    ずれか1つが満たされたとき、前記表現が満たされてい
    ると前記アナライザが判定する請求項1記載のネットワ
    ーク。 16、前記一部のノードによって表された前記条件の少
    なくとも所定数が満たされたとき、前記表現が満たされ
    ていると前記アナライザが判定する請求項1記載のネッ
    トワーク。 17、前記一部のノードによって表された前記条件の多
    くとも所定数が満たされたとき、前記表現が満たされて
    いると前記アナライザが判定する請求項1記載のネット
    ワーク。 18、条件からなる表現を評価する方法で、該評価がネ
    ットワークに与えられるデータ要素の値に基づいてなさ
    れ、前記条件がノードによって表され、前記表現におけ
    る条件間での関係が前記ノード間のリンクによって表さ
    れるようなネットワークであるものにおいて、 前記ノードの少なくとも一部によって表された条件のう
    ちどれが、前記データ要素の値によって満たされている
    かを識別する情報を記憶すること、及び 前記表現を評価するベースとして、前記記憶された情報
    を前記表現に基づいてテストすることを含む方法。 19、前記情報が、前記一部のノードのロケーションと
    異なる、前記情報に割り当てられた別個のロケーション
    内に記憶され、さらに 前記一部のノードの各1つからの前記情報を、該ノード
    に割り当てられたロケーションに入力することを含む請
    求項18記載の方法。 20、前記表現中における前記条件の所定数が満たされ
    たとき、前記表現が満たされ、さらに 前記テストが前記情報で占められたロケーションの数を
    カウントし、前記表現中における幾つの条件が満たされ
    ているかを判定することを含む請求項19記載の方法。 21、前記表現が一ノードによって表された標識付け条
    件を含み、さらに 前記標識付け条件ノードからの情報に基づいて記憶装置
    内のロケーションをグループ分けし、該グループの各1
    つが前記標識付け条件を満たす1つ以上の前記データ要
    素と対応するようになすことを含む請求項19記載の方
    法。 22、前記一部のノードからの前記情報が、前記標識付
    け条件を満たすデータ要素を識別し、さらに 前記一部のノードからの前記情報が、前記識別されたデ
    ータ要素に対応するグループのロケーションに入力され
    る請求項21記載の方法。 23、前記表現中における前記条件の所定数が満たされ
    たとき、前記表現が満たされ、さらに 前記テストが前記情報で占められた各グループ内におけ
    るロケーションの数をカウントし、前記表現が満たされ
    ているかどうかを判定する請求項22記載の方法。 24、前記グループが前記表現の満たされていることを
    示す占有ロケーションのカウントを現在有しているかど
    うかを、前記テストがモニターする請求項23記載の方
    法。 25、前記情報の新しいエントリが前記グループに加え
    られる毎に、前記テストがグループ内の前記占有ロケー
    ションをカウントする請求項23記載の方法。 26、前記情報の新しいエントリによって、前記表現の
    満たされることを示す占有ロケーションのカウントをそ
    れまで有していなかったグループが、前記表現の満たさ
    れることを示す占有ロケーションのカウントを有するよ
    うになったとき、前記表現が満たされたことの指示を生
    じることをさらに含む請求項25記載の方法。 27、前記情報の新しいエントリが前記グループに加え
    られたとき、前記グループが前記表現を満たす占有ロケ
    ーションのカウントをすでに有している場合、前記指示
    を生じさせないことをさらに含む請求項26記載の方法
    。 28、前記一部のノードが、前記装置内における対応し
    た前記占有ロケーションから前記情報を削除させ、さら
    に 前記情報が前記グループ内のロケーションから削除され
    る毎に、前記テストがグループ内の占有ロケーションを
    カウントする請求項23記載の方法。 29、前記情報の削除によって、前記表現を満たす占有
    ロケーションのカウントを前に有していたグループが、
    前記表現を満たさない占有ロケーションのカウントを有
    するようになったとき、前記表現が満たされないことの
    指示を生じることをさらに含む請求項28記載の方法。 30、データの項類に属するデータの可能値に関連した
    条件からなる表現を評価する方法で、該評価がネットワ
    ークに与えられるデータの実際値に基づいてなされ、前
    記条件がノードによって表されるようなネットワークで
    あるものにおいて、 前記データのうち、項類の値を必要とする条件が仮に満
    たされるために、値がネットワーク内に生じることを必
    要としない項類を識別すること、及び 前記条件を表すノードによって、前記項類の値が前記ネ
    ットワーク内で生じないときでも、前記条件が仮に満た
    されることを指示させることを含む方法。 31、前記データの項類が所定値を前記項類に割り当て
    ることによって識別され、前記項類に属する値が前記ネ
    ットワーク内に生じるまで、前記項類が前記所定値を維
    持する請求項30記載の方法。 32、前記識別された項類の値をテストする条件を有す
    る前記各ノードが、前記条件が満たされないとき、前記
    項類が前記所定値を有しているかどうかをテストし、有
    していれば、前記条件が仮に満たされることを指示する
    請求項31記載の方法。 33、前記ノードによって表された前記条件が満たされ
    るかまたは仮に満たされることを、前記ノードの所定の
    組合せが指示すれば、前記表現が満たされたものと見な
    され、さらに 前記条件の表現が満たされたら、仮に満たされると指示
    された前記条件の数を識別することを含む請求項32記
    載の方法。 34、前記表現が規則と関連しており、さらに仮に満た
    されると指示された前記条件の数がゼロであれば、前記
    規則を適用することを含む請求項33記載の方法。 35、前記表現が複数存在し、前記表現における前記条
    件が満たされるかまたは仮に満たされることを、前記ノ
    ードの所定の組合せが指示すれば、各表現が満たされた
    ものされ、さらに 前記満たされた表現毎に、仮に満たされると指示された
    前記条件の数を識別することを含む請求項33記載の方
    法。 36、前記満たされた表現間における優先順位を、前記
    満たされた各表現毎の、仮に満たされると指示された前
    記条件の数に基づいて決めることをさらに含む請求項3
    5記載の方法。 37、前記表現が各々規則と関連しており、さらに前記
    規則の1つを前記優先順位に基づいて選択することを含
    む請求項36記載の方法。 38、当該規則に係わる前記満たされた表現について、
    仮に満たされると指示された前記条件の数がゼロに等し
    ければ、前記選択された規則を適用することをさらに含
    む請求項37記載の方法。 39、当該規則に係わる前記満たされた表現について、
    仮に満たされると指示された前記条件の数がゼロより大
    きければ、前記ネットワーク中で値が生じなかったデー
    タの前記識別された項類を選択し、該選択されたデータ
    の項類に関する値を得ることをさらに含む請求項37記
    載の方法。 40、データの項類に属するデータの可能値に関連した
    条件からなる表現を評価する方法で、該評価がネットワ
    ークに与えられるデータの実際値に基づいてなされ、前
    記条件がノードによって表されるようなネットワークで
    あるものにおいて、 前記データのうち、項類の値を必要とする条件が仮に満
    たされるために、値がネットワーク内に生じることを必
    要としない項類を識別する情報用の記憶装置、及び 前記条件を表すノードによって、前記項類の値が前記ネ
    ットワーク内で生じないときでも、前記条件が仮に満た
    されることを指示させる手段を備えたネットワーク。
JP1275768A 1988-10-31 1989-10-23 エキスパートシステム用の判別ネットを生成する装置及び方法 Pending JPH02178736A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26469688A 1988-10-31 1988-10-31
US264696 1988-10-31

Publications (1)

Publication Number Publication Date
JPH02178736A true JPH02178736A (ja) 1990-07-11

Family

ID=23007215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1275768A Pending JPH02178736A (ja) 1988-10-31 1989-10-23 エキスパートシステム用の判別ネットを生成する装置及び方法

Country Status (2)

Country Link
EP (1) EP0367377A3 (ja)
JP (1) JPH02178736A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475293B1 (en) 2000-08-04 2009-01-06 Sun Microsystems, Inc. Product check matrix
US7146536B2 (en) 2000-08-04 2006-12-05 Sun Microsystems, Inc. Fact collection for product knowledge management
US7100082B2 (en) 2000-08-04 2006-08-29 Sun Microsystems, Inc. Check creation and maintenance for product knowledge management
US7146535B2 (en) 2000-08-04 2006-12-05 Sun Microsystems, Inc. Product knowledge management
US7051243B2 (en) 2002-04-30 2006-05-23 Sun Microsystems, Inc. Rules-based configuration problem detection
US7100083B2 (en) 2000-08-04 2006-08-29 Sun Microsystems, Inc. Checks for product knowledge management
ES2188376B1 (es) * 2001-05-24 2005-02-01 Jose Gallego Baños Sistema de informacion y arquitectura de agentes inteligentes.
GB2388222A (en) * 2001-07-27 2003-11-05 Sun Microsystems Inc Fact collection for product knowledge management

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0137414B1 (en) * 1983-09-28 1992-12-02 Hitachi, Ltd. High speed processing system for computer system
JPH0743722B2 (ja) * 1985-08-02 1995-05-15 株式会社東芝 帰納推論装置

Also Published As

Publication number Publication date
EP0367377A3 (en) 1992-12-23
EP0367377A2 (en) 1990-05-09

Similar Documents

Publication Publication Date Title
US8732107B2 (en) Method and system for capturing business rules for automated decision procession
Chandrasekaran et al. Generic tasks and task structures: History, critique and new directions
US6965887B2 (en) Rule processing methods for automating a decision and assessing satisfiability of rule-based decision diagrams
US5140671A (en) Expert system debugger
CN1069424C (zh) 开发计算机程序的方法和装置
US20080270337A1 (en) Rule processing system
Kalay Redefining the role of computers in architecture: from drafting/modelling tools to knowledge-based design assistants
US20040034848A1 (en) Rule engine
US5167012A (en) Method for performing consistency checks
JPH02178736A (ja) エキスパートシステム用の判別ネットを生成する装置及び方法
US5072405A (en) RETE network with provisional satisfaction of node conditions
Pickering et al. Explainable AI Insights for Symbolic Computation: A case study on selecting the variable ordering for cylindrical algebraic decomposition
Montanari et al. Contextual occurrence nets and concurrent constraint programming
US20050278340A1 (en) Problem solving assistant
US5023807A (en) System and method for producing discrimination nets for expert systems
Liu et al. A sublinear Sudoku solution in cP Systems and its formal verification
Clifford et al. A short introduction to expert systems
Morveli-Espinoza et al. Argumentation-based intention formation process
JPH05151025A (ja) デバツギング方法及びデバツグ装置
Spengler et al. Expert systems and quality tools for quality improvement
Compton et al. Extending ripple down rules
Linster Integrating conceptual and operational modeling: a case study
Rembold et al. Material flow system model evaluation and improvement
EP0439342A2 (en) Method of operating an expert system and computer systems therefor
Prcela et al. Developing factual knowledge from medical data by composing ontology structures