JPH0276034A - 知識ベースと推論を手続型ソース・プログラム・コードに変換する方法 - Google Patents

知識ベースと推論を手続型ソース・プログラム・コードに変換する方法

Info

Publication number
JPH0276034A
JPH0276034A JP1211550A JP21155089A JPH0276034A JP H0276034 A JPH0276034 A JP H0276034A JP 1211550 A JP1211550 A JP 1211550A JP 21155089 A JP21155089 A JP 21155089A JP H0276034 A JPH0276034 A JP H0276034A
Authority
JP
Japan
Prior art keywords
sub
knowledge base
node
network
inference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1211550A
Other languages
English (en)
Other versions
JPH087683B2 (ja
Inventor
Frederic D Highland
フレデリツク・デイーン・ハイランド
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0276034A publication Critical patent/JPH0276034A/ja
Publication of JPH087683B2 publication Critical patent/JPH087683B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/042Backward inferencing
    • 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

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は知識ベース・システムに関する。すなわち、い
わゆる“推論エンジン゛°により“知識ベース°°に累
積されたコード化された専門家の知識を活用して問題を
解決していくコンピュータ・システムである。もし、知
識ベースの領域、あるいは問題のスコープが十分に小さ
く、かつ十分な容量を持つ知識ベースにコード化されて
いれば、この知識ベース・システムは人間の専門家の能
力に匹敵、あるいはそれを超える仕事を実行できる。
このような場合、知識ベース・システムは°“エキスパ
ート・システム°”と呼ばれる。
B、従来技術及びその問題点 知識ベースシステムの技術は多くの通用分野において有
効な活用性を提示してきた一方、いくつかの分野におい
ては、その有効性は現在の実行手段の限られた能力によ
り損われていた。特にリアル・タイム・モニタ・アンド
・コントロール・システムのように短時間に多くのデー
タを扱う必要のあるシステムや、知識ベースシステムが
他の複数の適用業務とコンピュータを共用する組込み適
用の場合には問題があった。
推論プロセスをサポートする特別のハードウェアの改良
により知識ベースシステムはしだいに改良されているが
、従来からのハードウェアに基づく知識ベースシステム
にはその装置特有の解釈特性から生ずる根本的限界があ
る。“°推論エンジン″°がコンパイルされた言語で公
式化されている場合であっても、一般の推論エンジンは
知識ベースを表わすデータ構造の解釈を要求する。この
解釈プロセスはコンパイルされたインプリメンテーショ
ン(知識を具体化する規則の公式化)に比較して非効率
的である。知識ベースの編集はツリーの決定や他のシン
グル・パラダイム推論戦略決定をする推論技術の制限に
より行なわれるが、この制限はナレッジ・エンジニアの
能力をある種の問題を表現、解決する場合において制限
してしまうことになる。
弘の” インブ1メンーーション 大部分の知識ベース・システムは、データ構造の集積と
して知識を内的に表わす。データ構造はノード及びノー
ド間リンクから構成される。ノードはルール及びルール
内でのテストを表わす。ノードは事実がいかにテストさ
れるが、そのテスト結果はどうか、事実をどのように取
得するか、事実に基づく処理及び、テスト結果に基づく
処理手段等が含まれる。リンクは事実やテスト結果がル
ールに基づいて結合される道筋であり、これらのテスト
やルールが知識ベースの他のルールによって照会される
。そして、ルールが“真“′の時は処理が実行される。
ノードは通常ツリーあるいはネットワークのような照会
リストあるいは流動データ値に伴って数の増大する構成
に組織化されている。これらのネットワークは、推論プ
ロセスのインプリメントのために推論エンジンによって
考察される。各ノードにおいて、推論エンジンはノード
の内容を確認して、何のデータが含まれているか、当デ
ータにはどのようなテストが必要か(テスト評価)、こ
れらのテストに基づいて次はどのノードを処理すべきか
(テスト結果伝ra)、ルールが真であるとき何を実行
すべきか(ルールアクション実行)等を決定しなければ
ならない。このプロセスの結果に基づいて、推論エンジ
ンは他のノードへ続(1つあるいはそれ以上のリンクを
追跡する。これは解釈プロセス(インタープリティブ・
プロセス)の基本である。
この1例として、ゴール・ツリーのセットとしてルール
化されている単純な逆向きチエインの場合を考えると、
各々は状況及び事実値を与え、1つのゴールを結論づけ
る1つあるいはそれ以上のルールを有している。このル
ールの典型的なセット及びこれらの結果から得られるゴ
ール・ツリーを第2図に示す。このようなシステムにお
ける推論プロセスはゴールの選択により開始され、次に
その時点で未知の事実を見つけるために°“深さ優先゛
の考察を、各々のゴール・ツリーについて行なう。次に
、事実の値が値の求め方を指示する事実ノードの情報解
釈によって求められる。次に、テスト評価がその事実の
照会を行なうテスト・ノードの情報解釈によって行なわ
れる。その後、考察プロセス及びノード解釈により前ノ
ードの結果をツリーの次のノードにいかに結合すべきか
、受け渡すべきかを決定する行程をくり返してゴールツ
リーをテスト結果が伝播する。さらにテスト評価及び結
果伝播を実行する解釈(インタープリチージョン)プロ
セスに加えてツリー考察プロセスが解釈(インタープリ
テイブ)されなければならない。これはツリーを形成す
る接続構成がノードのみが知っているからである。この
逆向きチエインの形はEMYCrN (rThe EM
YCIN Manual 」tleuristic P
rograming Project Report 
llPP−81−16,5tan ford IJni
versity、1981 ) :PIE(rThe 
Portable Inference Engine
:FittingSignificant Exper
tfse 1nto Small System JI
BM Systems Journal、Vol、25
.No2.1986 )及びWinston及びHor
nの示した具体例(LISP、 2ndEd、Chap
terlB、 ’Expert Problem So
lving u’singRules andStre
ams JAddison Wesley、Readi
ng、Mass、1984)に類イ以する。
他の知識ベースシステムの従来例としては米国特許第4
.591,983号、第4,648.044号、第4,
713,775号がある。
前向きチエイン推論システム・アルゴリズムは事実から
ゴールへ前向きに仕事をする点で逆向きチエインと異な
っている。知識の表現のツリーあるいはネットワークは
同様に使用されるが、事実の発見や評価のための深さ優
先考察は行なわれない。代わりに、このシステムではル
ール状況に応じた事実の検索が実行される。一般にはデ
ータ値をルールへ伝播し、データ及びこのデータに基づ
くルールテストの評価を実行することとなる。これは事
実の1セツトごとに対するこれらのテストを評価するテ
スト・ノードの解釈をも必要とする。
テストの評価後、その結果は各ステップで前ノードの結
果をネットワーク中の次のノードにいかに実行、結合、
受は渡すかを決定するノード解釈を行ないながらゴール
・ツリーを伝播する。この前向きチエイン推論機構の形
はWins tonとHornの提示例(LISP、2
nd Ed、、Chapter18.AddisonW
esley、Reading、Mass、、1984)
や0PS5 (Forgy。
”Rete:八Fast  Algolithm  f
or  the  ManyPattern/Mar1
y 0bject Match Problen”、A
rtfficial 1nte11igence、Vo
l、19.1982)で実現されている。
これらのツリーやネットワークでの解釈考察や各ノード
の実行に要求される決定ステップは各ノードが推論プロ
セスを分解したようなものである。
各ノードにおいて、推論システムは可能ステップのどち
らが求められているかを決定し、その後当ノードで利用
可能な情報を使用してこれらのステップを実行しなけれ
ばならない。ノードが実行ステップを完了すると、次に
実行すべきノードの決定が行なわれる。知識ベースシス
テムのパフォーマンスは、もし解釈プロセスを排除して
同様のステップを簡潔なコンパイルされたプログラムコ
ードによって実行できたなら大幅に改善されるであろう
C0発明の目的 本発明の主要目的は、知識ベースシステムを直接コンパ
イラブルな高水準言語プログラム・コードに変換し、推
論アルゴリズムの高度な実行を達成する方法を提供する
ことである。
さらに本発明のもう1つの目的は知識ベースをプログラ
ムの形で表現する方法を提供し、知識ベースルールから
この形に変換する方法を提供することである。
D、実施例 これらの目的はその他の目的も含め、以下に説明する如
く、本発明によって達成される。この方法は以下のステ
ップからなる。
(a)ノード及びノード間リンクのネットワークを複数
のルール・ツリーあるいは“サブ・ネットワーク”に区
分する。
(b)各サブ・ネットワークを個々に識別し、後の照会
のために各ノードのラベリングを行なう。
(c)推論手段と結合した際、各サブ・ネットワークに
対応するコンパイラブル手順プログラム・コードのセグ
メントを生成する。このプログラム・コードは以下“推
論コード゛″と言う。ステップ(b)での識別子が各サ
ブ・ネットワーク中の各ノードにそれぞれのコードを割
りあてるのに使用される。この推論コードは知識ベース
固有のルールに基づく各サブ・ネットワークの各ノード
の機能をインプリメントするノード・サブ・セグメント
を有する。推論コードはさらにコントロール・サブ・セ
グメントを持つ。これは各ノード・サブ・セグメント上
記識別に用いてアクセスを行ない、ネットワークの効果
的考察に必要な場合、各ノード・サブ・セグメントのく
り返し実行を行なわしめる。
(d)各データ項目ごとに、これらデータ項目を分散す
るためのコンパイラブル手順プログラム・コードのセグ
メントを生成する。このコードは以下°“分散コード゛
という。このコードは知識ベースシステムの実行中にデ
ータ項目が修正されたとき、識別手段を用いて適当な推
論コードを呼び出すものである。
このように本発明に従ったルール・コンパイレーション
の基本的手法は、まず最初に推論プロセス中に解釈推論
エンジンによって実行されるステップを決定し、次にこ
れらのステップに必要なプログラム・コードのみを生成
することである。知識ベースの分析を通して、知識ベー
ス構成の可能ステップのセットは大幅に、例えば、1ス
テツプまで削減できる。これはさらに推論プロセスを実
行する簡明で効果的な手順プログラム・コードに変換さ
れ得る。同様に、このプロセスに続くステップも付加プ
ログラム・コードが生成できるように識別される。この
工程を使用することで、いかなる解釈推論プログラムも
解釈ステップを排除したコンパイル・システムに変換可
能である。
上述したことから分かるように、本発明の方法はテスト
評価のコンパイレーション、テスト結果の伝播、そして
ルール処理の実行をアドレスする。
これらの動作は前向きチエインでも逆向きチエインでも
ミックス・チエイン(前向きと逆向きのコンバイン)の
推論プロセスに共通である。評価及び伝播ステップは推
論過程において最も多用されるので、これらのコンパイ
レーションはパフォーマンス全体に多大な利益をもたら
す。この説明の中では逆向きチエイン推論における評価
のための事実選択の実行の改善方法についてはここで示
した前向きチエインから自明であるので詳細には述べな
い。
ルール・コンパイレーションの実行のため、ルールは各
ルール構成要素となるノードとルール構成要素を他のル
ール構成要素や事実と結びつけるリンクとからなるネッ
トワーク表現に変換されなくてはならない。これは第2
図に示すごとく知識ベースの実行の際、解釈推論エンジ
ンによって使用されるのと同じネットワークである。さ
らにメカニズムは知識ベースシステムの動的性質を保存
するために結果の伝播用のネットワークの考察をコンパ
イルする改善が必要となる。
本発明のコンパイレーション技術の1つはルールのネッ
トワークをルール・ツリー・サブ・ネットワークのセッ
トに区分することである。サブ・ネットワークはツリー
としてとらえられているが、これらはツリーの中に他の
サブ・ネットワークの照会項目を含んでいることもある
ので完全なツリーである必要はない。この区分に使われ
る基準は任意である。例えば、1つのルールをベースと
しであるいは通常のデータ・セットに用いられるルール
のグループを根拠に区分を行なうことができる。パフォ
ーマンスを最大限なものとするために、基準は個々のサ
ブネットワーク以外のサブ・ネットワークの照会を最小
限にして、呼び出しを削減したものであるべきである。
次に、各ルール・ツリー(サブ・ネットワーク)のノー
ドはケース・インデックスによってコントロールされる
“ホワイル・ループ” (Whileloop)内のケ
ース構造の一部を表わすものとなる。
ケース構造の各パートは知識ベースから生成されるルー
ル・ネットワークのノードの機能を実行するプログラム
・コードのセグメントから構成される。各プログラム・
コードセグメントはケース・インデックスの操作を介し
てツリー中の親ノードに条件付きで制御を与える。コー
ド・セグメントはさらに他の情報、事実の集合や、確実
性を有する要素を親ノードに与える。ツリー構造の使用
はルール・ツリーの各ノードに1つの親が存在すること
を保証するもので、多枝の必要性や、技情報を保持する
スタック機構を必要とするものではない。ルール・ツリ
ーの外部の親は外部ルール・フリー中のノードの呼び出
し手続きによってアクセスできる。これにより、呼び出
し手続があるので、保留値を保持するスタックの必要性
が排除された。
スタックは複合データ値を各組に送る際に必要となる可
能性はある。しかし、この必要性も個々の項目ごとでは
なく各個のデータリストを送ることによって排除できる
。“°ホワイル・ループ゛ (While 1oop)
の使用により、伝播(コード・セグメントの連続実行)
をコントロール構造の各呼び出しにおいて可能な限り続
けることができるようになる。これは、さらにルール・
ツリーのどのノードに対してもノード評価の付加的融通
性の要求に基づいて呼び出されることを許容する(例え
ば、事実構成中の1エレメントの一部が変化した場合等
である)。
コントロール構造の最後のステージは、“終結゛として
ルールを確認することである。これは、例えば競合集結
機構や、ルール動作の実行のために選択すべき競合対象
をエントリーすることである。
最後に手続的プログラム・コードが、知識ペース中のデ
ータ項目への変化に基づいてルールツリーを活性化する
ために生成される。このプログラム・コードは°“分散
コード°゛と呼ぶ。というのはこの目的が知識ベース・
システムの実行中、各データ項目に修正の分散を行なう
ことであるからである。知識ベースの分析により、ルー
ル・ツリーのリストや、ツリー中のノー下が各データ項
目ごとに展開される。データ項目が変化したとき、各ル
ール・ツリーから適当なノードを呼び出すためにこれら
のリストから、分散コードが呼び出される。分散コード
はデータ項目あるいは1つの選択されたノードに関連す
るすべてのノードを呼び出すように構成され得る。
いくつかのシステムでは分散されるデータ項目の識別は
ルール・ツリーのイニシャル(暗黙の)テストとしてイ
ンプリメントされる一部データあるいはクラスのテスト
の一部として実行される。
(Forgy、 ”Rett:A Fast Algo
rithm for the ManyPattern
/many 0bject Match Proble
n+”、^rtificia11nte11igenc
e、Vol、19.1982参照)ルール中の照会の分
析を通して決定されるルールツリーによって各データ項
目が正しく使用されるのでルールツリー構成の呼び出し
が効果的に行なわれ、テストの必要性を排除できる。
このインプリメンテーションの使用により、評価及び伝
播プロセスは、データ項目がアップデートされたときの
分散コードによって開始される。
分散コードは評価されるノードのインデックス値をルー
ルツリーケース構造に与える。これにより希望ノードの
選択及び評価が行なわれる。評価結果に従ってインデッ
クスは評価対象の親ノードのインデックス値かあるいは
出口(exit)インデックス値にリセットされる。プ
ロセスはルールが結論づけられるか、あるいは現行利用
可能な情報から引き出されるすべてのサブ結果がすべて
使用されつくすまで続けられる。他のルール・ツリーか
らルールの照会は照会エントリーのための適当なインデ
ックスを与えるルール 構造の呼び出しとしてインプリメントされる。
本発明の実施例を第1図に示す。第1図は本発明の方法
を単純化して表わしたものである。
第2図に知識ベースを形づくるルールとこのルールから
内的に生成されたルールツリーを示した。
以下にこの知識ベースから得られる分散及び伝播機能を
果たすプログラム・コードの単純化した形態を示す。
生底且二上 R1:PROC(N) 一部LE(N<>0) CASE (N) 1:DISPLAY A 2:IF LEFT INPtlT TRUEAND 
 RIGHT  INPUT  TRUETIIEN 
N=1 LSE N=0 3:IF A>10 THEN N=2 ELSE 4:IF  B<OTHEN N、2 ELSE N工O ND ND A−DIST:PROC CALL  R1(3) ND B−DIST:PROC CALL  I?I(4) ND NOTE:N=CASE/N0DB  INDEXAあ
るいはBの値の変化の際はいつでもA−DIST(分散
)あるいはB−DIST(分散)の工程においてルール
ツリー手続きRULEI (ルール1、R1)がテスト
評価を行なうため適当なインデックス値とともに呼び出
される。テスト評価の結果はその後可能な限り遠くまで
伝播される。
評価を行なうコード中、本実施例ではANDの場合は削
除しである。この機能はすべての要求タームが評価され
たかを確認する。結果は、制御を次のノード・セグメン
トに渡すかあるいはインデックスをOにセットしてすべ
てのタームが評価されるまで処理を終結させるかのどち
らかに用いられる。この機能を達成するための方法とし
ては状況指標のテスト、指標リストの探索、あるいは評
価カウント機構の使用等いくつかの方法がある。データ
値を扱い、親ノードに渡すプログラム・コードは本実施
例では簡略化のため削除した。
知識ベースのルールをコンパイラブルな手順プログラム
・コードに変換する本発明における方法は以下に示すス
テップからなる。
、入j已乙ブ」−:ネットワーク型の知識ベースを解釈
推論に使えるものとする。このステップは最も新しい知
識ベースシステムインプリメンテーションにおいて実行
される。ネットワークはルール構成(テスト、論理動作
、処理、事実項目)をノードとして表わし、ルール構成
の相互関係及び知識ベース中の事実との関係をリンクと
して表現しなければならない。
ス天ス1上:知識ベースをルール・ツリーからなる森と
する。これはルール・ネットワークを1つの根(ルート
)を持つルール・ツリー・サブネットワークへ区分する
ためのいくつかの基準を必要とする。各サブ・ネットワ
ークの外部照合の数はパフォーマンス上の理由から最小
のものが望まれる。多くのシステムにおける区分の基準
で最も有効なものは各ルールあるいは推論チエインの末
端が根(ルート)となるルール動作を有するルールツリ
ーを形成することである。
2j=乙プ」工:得られた各ルール・ツリー(サブ・ネ
ットワーク)の深さ優先考察は根(ルート)から始まり
、各ノードにシーケンシャルに1から始まるインデック
スあるいは識別子をつける。このステップはルール・ツ
リー中で各ノードを個々に識別し、ケース構成にインデ
ックス値を提供する。現行でのルール・ツリーではない
ルールのノードにはナンバーは付されない。
囚元21主:各ルール・ツリーの深さ優先考察及びプロ
ローグ(手順ヘッダー、イニシャライズ、ホワイル及び
ケース・ステートメント)からなるルール手順の生成、
知識ベースのルールに基づくノードの機能をインプリメ
ントする各ノードのためのケース部分の生成、適当な状
況のもとで評価され得べく次のノードに対するインデッ
クスをリセットする状況コードの生成そしてエピローグ
の生成、ケース・インデックス値はステップ2のナンバ
リングから得られる。他のルール・ツリーから照会され
たノードは照会ポイント及び関連事実等のインデックス
値を渡す照会ルール手順への呼び出しを含んでいる。事
実値をアップデートするルール処理は適当な分散手順へ
の呼び出しを介して照会ルールへこれらの値を渡すこと
になる。
、入jニ乙プ」ユニ知識ベースの各データ項目において
、プロローグを含む分散手続が生成され、データ項目を
照会する各ルール手順の呼び出しコード、そしてエピロ
ーグが生成される。呼び出しはルール手順の中で実行さ
れるべきテストノードのインデックスを渡すことになる
本発明の方法では知識ベースを特徴づけるルール処理及
びデータ分散手順のセットを生成する。
本方法では知識ベースの固有ルールを推論論理と結びつ
けて固有のコード・モジュールを生成する。
従って推論エンジンはもはやルールから物理的に分離さ
れたものではなく、既知の知識ベースシステムを伴った
ケースであり、これはルール・コードと最適な形で結合
したものといえる。物理的に明りような推論エンジンを
欠いているが、通常のアプローチ(分離された推論エン
ジン及び知識ベース)の機能は結果的に得られるモジュ
ールが推論エンジンと同様の処理を行なうので問題ない
本発明のコンパイル技術によって得られる処理パフォー
マンスの利益は主に言語の複雑さ、推論エンジンによる
解釈実行時間、基礎的アルゴリズムに係るものから得ら
れる。パフォーマンス上の利益は経路あるいは処理ステ
ップの選択の実行の際に生ずる。特徴のより豊富なセッ
トを提供する知識を表現する言語は処理中により多くの
選択すべき経路に出会い、より多くのパフォーマンス上
の利益が期待できる。
ルールのインプリメンテーション及び推論エンジンの手
順の中で、プログラムコードは間接的解釈の排除を超え
るインプリメンテーション上の付加的効果を与える。事
実及び知識ベース・コントロール・ブロックは間接的な
リンクリストや他のダイナミック構造のように探索や、
複雑な考察を必要とするものを用いず、プログラム変数
や、参照ディレクトリとして表わされる。同様に、ルー
ル状況テストや処理ステートメントに用いられる表現は
、複雑な解釈構造ではなく、コード中で効果的にインプ
リメントされる。解釈推論エンジンはすべての可能な知
識ベースや構成に対して生成される必要があるので、こ
れらのインプリメンテーションからの利益は得られない
さらに、知識ベースのプログラムコードへの変換は結果
システムの組み込み能力を改善する。コンパイル知識ベ
ースは互換性のある言語同士でああればいかなる言語と
でも互換可能である。
本発明に従ったコンパイル技術によって生成されたプロ
グラム・コードは基本的に解釈技術で使用される対応す
るデータ構成よりも多くの記憶装置を必要とする。これ
は解釈アプローチで使用される生成論理が各ノードでカ
スタマイズされ繰り返されるからである。このタイプの
弱点(低級処理における記憶容量の要求増大)は処理拡
充技術においてはありがちなことである。記憶容量の実
際の差異はルール言語の性質及び複雑さによって異なる
。必要とされる記憶容量はその基礎となる知識ベースの
データ構成に要求される記憶容量に比例する。ルールと
データの相互作用による結合の増幅は起こらない。これ
は同じ知識ベースの解釈フオームに使用されると同様の
知識ベースの内的表現から生成されるコードであるから
である。
生成コードのサイズは適当な実用手順に従って減少でき
る。知識ベースのコンパイルはコードのシーケンスの共
通化によって達成される。知識ベース構成から引き出さ
れるコードを組み込まないコード・シーケンスは実用手
順としてのインプリメンテーションとしてとらえること
ができる。
本発明によるコンパイル技術の使用によって、生成され
るプログラムコードは従来のアプローチでは使用されて
いないデータ構成に対応する推論エンジン用論理をも含
むこととなる。実際の対応する数を得るためには、従来
の技術における推論エンジンソフトウェアのサイズは知
識ベースを表わすデータ構造のサイズに沿って考えなく
てはならない。
知識ベース・コンパイレーションに対する一つのアプロ
ーチはルール・ネットワークをIFステートメントのネ
ストの連続からなる判断ツリーのセットとして表わすこ
とである。このアプローチはENYCIN(Van M
elle et al、、 ”The EMYCINM
anual”HHeuristic Programm
ing ProjectReport HPP−81−
16,1981)のコンパイル・バージョンのようない
くつかのシステムで使用されている。しかし、このアプ
ローチはそこに含まれるパラメータ(それ自身の値に基
づく)の評価オーダを限定してしまい、要求に基づく個
々のノードにアクセスできないというものである。個々
のノードにアクセスができないので、このアプローチは
確信あるいは前向きチエイン推論に基づく動的ルール指
示としての技術を支えるものではない。さらにこのアプ
ローチはこれらのシステムによって形成される推論シス
テムに固有のものであり、他の推論システムに通用でき
るとは限らない。
状況及びルール処理のプログラム・コードへのコンパイ
ルのもう一つのアプローチは解釈データ構造としての推
論ネットワークを保持してしまうものである。この技術
はKnowledge Tool (インターナショナ
ル・ビジネス・マシーンズ・コーポレーションの商標)
やETC(“Economy 1nExpert Sy
stem Con5truction:The AEG
IS Coa+batSystem Maintena
nce Adviser ” 5PIE^pplica
tions of Artificial  Inte
lligenceConference、 1986)
に用いられている。このアプローチは状況評価及び処理
実行のパフォーマンスを向上させるのみで推論プロセス
の中核を成すルールや結果の分散を提示するものではな
い。
本発明に基づくコーポレーションの技術はForgyに
より提唱されたrRETE、のコーポレーションに類似
した要素を有している(ReLe:A Fast Al
gorithm for Many pattern/
ManyObject  Match  Proble
m、  ”  八rtificialInte11ig
ence、Vol、19.1982)。しかしForg
yのアプローチはRETE・ネットワークに固有のもの
で、ブランチ(GOTO)の使用や選択枝の保存領域を
含むものである。ブランチの使用や、分散工程の欠除は
言語コンパイラによる制限をも超えるRETEのインプ
リメント用の大量のコード・セグメントを要求する結果
となってしまう。本発明の技術はGOTOを持たない構
造のコードであり、余分な記憶スタックも有しないもの
である。
構造コードの生成はルールが小さなモジュールでインプ
リメントされることを許容し、高級言語コンパイラの制
限を排除し、知識ベースの小さなシステムの処理用記憶
装置への分割の可能性を与えるものである。
E0発明の効果 知識ベースのコーポレーション方法にはいくつかあるが
、本発明の方法は従来の解釈アプローチとは異なったル
ール言語の複雑さ、特徴にとられれることのないパフォ
ーマンス改良を達成するものである。本方法は決定ツリ
ー生成アプローチに比して優れたものである。というの
は前向きチエイン推論システムにおけるルール・ネット
ワーク中の各ノードへの直接アクセスを許容し、動的ル
ール配列の如き技術の使用を可能とするからである。さ
らに、本方法は、状況テストや、ルール処理ステートメ
ントのみのコンパイルのアプローチにとどまらず、推論
メカニズムのコンパイル及び拡充を図るものである。
以上述べたように、この知識ベース・システムを生成す
る方法は多くの利点を有するものである。
ここに述べられた実施例及び図面に基づいて当業者であ
れば多くの変更、モデイフィケーション、バリエーショ
ンが可能であろう。これらの変更、モデイフィケーショ
ン、バリエーションは本発明の思想に基づく範囲のもの
であり特許請求の範囲に述べられた技術的範囲に包含さ
れるものである。
【図面の簡単な説明】
第1図は本発明においてコード化される知識ベース及び
ルールツリーを示す図、 第2図は一般的知識ベースシステムにおけるルール及び
これに伴うルールツリーの例を示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 弁理士  頓  宮  孝  −(外1名)

Claims (1)

  1. 【特許請求の範囲】 知識ベースと推論手段とをコンパイラブル・プログラム
    ・コードに変換する方法であり、上記知識ベースはルー
    ル及びデータ項目を含み、該ルールはノード及びノード
    の間のリンクから構成されるネットワーク中に配され、
    該ノードがテスト、論理動作、処理及びデータ項目を表
    わし、上記ネットワークは解釈推論に適応した形態をな
    すシステムにおいて、a)上記ネットワークを複数のサ
    ブ・ネットワークに区分するステップ、 b)各サブ・ネットワーク中の各ノードを個別の識別子
    によりラベリングを行なうステップ、 c)推論手段と結合された各対応サブ・ネットワークと
    同等の、推論用コンパイラブル手順プログラム・コード
    ・セグメントを生成するステップ、からなり、上記識別
    子は各サブ・ネットワーク中の各ノードに対応する個別
    のコードを有し、上記推論用コードは知識ベース個有の
    ルールに基づく各サブ・ネットワーク中の各ノードの機
    能をインプリメントし、条件付で上記識別子を用いて他
    のサブ・セグメントを呼び出すノード・サブ・セグメン
    トを有し、かつ上記識別子を用いて各ノード・サブ・セ
    グメントにアクセスし、必要に応じて各ノード・サブ・
    セグメントの繰返し実行を行なわしめるコントロール・
    サブ・セグメントを有するものであり、さらに、 d)知識ベース・システム実行中に、データ項目が変更
    されたとき、上記識別子により適当なプログラム推論コ
    ードを呼び出す各データ項目分散用のコンパイラブル手
    順プログラム・コード・セグメントを各データ項目ごと
    に生成するステップとから構成される知識ベース・シス
    テム構築方法。
JP1211550A 1988-08-19 1989-08-18 知識ベースと推論を手続型ソース・プログラム・コードに変換する方法 Expired - Fee Related JPH087683B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/234,268 US4924408A (en) 1988-08-19 1988-08-19 Technique for compilation of knowledge bases
US234268 1994-04-28

Publications (2)

Publication Number Publication Date
JPH0276034A true JPH0276034A (ja) 1990-03-15
JPH087683B2 JPH087683B2 (ja) 1996-01-29

Family

ID=22880655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1211550A Expired - Fee Related JPH087683B2 (ja) 1988-08-19 1989-08-18 知識ベースと推論を手続型ソース・プログラム・コードに変換する方法

Country Status (4)

Country Link
US (1) US4924408A (ja)
EP (1) EP0355287B1 (ja)
JP (1) JPH087683B2 (ja)
DE (1) DE68922800T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06291587A (ja) * 1992-07-08 1994-10-18 Matsushita Electric Ind Co Ltd 圧電振動子
JP2012003406A (ja) * 2010-06-15 2012-01-05 Hitachi Solutions Ltd 障害原因判定ルール検証装置及びプログラム

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0298738A (ja) * 1988-10-05 1990-04-11 Adoin Kenkyusho:Kk 知識コンパイル・パターン型推論システム
JPH07107668B2 (ja) * 1989-01-25 1995-11-15 株式会社日立製作所 知識処理ツールの推論方法
US5204939A (en) * 1989-12-14 1993-04-20 Fujitsu Limited Rule base processing system and rule evaluation control method therein
US5119470A (en) * 1990-04-27 1992-06-02 Ibm Corporation Computer based inference engine device and method thereof for integrating backward chaining and forward chaining reasoning
US5159662A (en) * 1990-04-27 1992-10-27 Ibm Corporation System and method for building a computer-based rete pattern matching network
JP2596652B2 (ja) * 1990-04-30 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 知識ベース受注処理方法及びシステム
US5271091A (en) * 1990-07-13 1993-12-14 International Business Machines Corporation Asynchronous architecture for knowledge-based systems
US5423041A (en) * 1990-09-28 1995-06-06 Texas Instruments Incorporated Coupling rules to an object-oriented program
US5293629A (en) * 1990-11-30 1994-03-08 Abraxas Software, Inc. Method of analyzing computer source code
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5283856A (en) * 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5627764A (en) * 1991-10-04 1997-05-06 Banyan Systems, Inc. Automatic electronic messaging system with feedback and work flow administration
US5555346A (en) * 1991-10-04 1996-09-10 Beyond Corporated Event-driven rule-based messaging system
US5442792A (en) * 1992-08-07 1995-08-15 Hughes Aircraft Company Expert system compilation method
US5263126A (en) * 1992-09-10 1993-11-16 Chang Hou Mei H Automatic expert system
US5491821A (en) * 1993-02-24 1996-02-13 International Business Machines Corporation Method and system for incremental processing of computer objects
WO1994019741A2 (en) * 1993-02-25 1994-09-01 Reticular Systems, Inc. Real-time rule based processing system
US5506937A (en) * 1993-04-02 1996-04-09 University Of West Florida Concept mapbased multimedia computer system for facilitating user understanding of a domain of knowledge
US5717835A (en) * 1995-01-11 1998-02-10 International Business Machines Corporation Simple approach to case-based reasoning for data navigation tasks
US5642467A (en) * 1995-01-31 1997-06-24 The Penn State Research Foundation Controller for autonomous device
US5815713A (en) * 1995-04-13 1998-09-29 Sterling Software, Inc. Method and system for automated transformation of declarative language process specifications
US5737739A (en) * 1995-12-19 1998-04-07 Xerox Corporation System that accesses a knowledge base by markup language tags
US5878261A (en) * 1996-05-15 1999-03-02 Hewlett-Packard Company Method for restructuring code to reduce procedure call overhead
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20030195848A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US6125359A (en) * 1997-09-23 2000-09-26 Unisys Corporation Method and apparatus for identifying the coverage of a test sequence in a rules-based expert system
US6219659B1 (en) * 1998-07-08 2001-04-17 Electronics For Imaging, Inc. Configuration description language system
US6240329B1 (en) 1998-11-09 2001-05-29 Chin-Yang Sun Method and apparatus for a semiconductor wafer inspection system using a knowledge-based system
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US7216113B1 (en) * 2000-03-24 2007-05-08 Symyx Technologies, Inc. Remote Execution of Materials Library Designs
US7284274B1 (en) * 2001-01-18 2007-10-16 Cigital, Inc. System and method for identifying and eliminating vulnerabilities in computer software applications
US6976254B2 (en) 2001-11-28 2005-12-13 Esmertec Ag Inter-method control transfer for execution engines with memory constraints
AU2003259744A1 (en) * 2002-08-09 2004-02-25 Corticon Technologies, Inc. Rule engine
US20040158545A1 (en) * 2003-02-12 2004-08-12 Symantec Corporation System and method for an expert architecture
US20040172320A1 (en) * 2003-02-28 2004-09-02 Performaworks, Incorporated Method and system for goal management
US20050125443A1 (en) * 2003-12-05 2005-06-09 Biplav Srivastava Automated interpretation of codes
US7035770B2 (en) * 2003-12-18 2006-04-25 Taiwan Semiconductor Manufacturing Company, Ltd. Fuzzy reasoning model for semiconductor process fault detection using wafer acceptance test data
US8117143B2 (en) * 2004-05-28 2012-02-14 Intel Corporation Using affinity measures with supervised classifiers
US7433854B2 (en) * 2005-07-21 2008-10-07 Honeywell International Inc. Backward chaining with extended knowledge base network
US20090043621A1 (en) * 2007-08-09 2009-02-12 David Kershaw System and Method of Team Performance Management Software
US8140445B2 (en) * 2008-05-20 2012-03-20 Ca, Inc. Fuzzy rule handling
US8589178B2 (en) * 2008-09-10 2013-11-19 Roche Diagnostics Operations, Inc. Extensible therapy delivery system and method thereof
WO2012151132A1 (en) 2011-04-30 2012-11-08 Vmware, Inc. Dynamic management of groups for entitlement and provisioning of computer resources
CN116012123B (zh) * 2023-03-27 2023-07-04 湖南三湘银行股份有限公司 一种基于Rete算法的风控规则引擎方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648044A (en) * 1984-06-06 1987-03-03 Teknowledge, Inc. Basic expert system tool
US4658370A (en) * 1984-06-07 1987-04-14 Teknowledge, Inc. Knowledge engineering tool
US4591983A (en) * 1984-07-09 1986-05-27 Teknowledge, Inc. Hierarchical knowledge system
US4713775A (en) * 1985-08-21 1987-12-15 Teknowledge, Incorporated Intelligent assistant for using and operating computer system capabilities to solve problems
US4783752A (en) * 1986-03-06 1988-11-08 Teknowledge, Inc. Knowledge based processor for application programs using conventional data processing capabilities
JPS633333A (ja) * 1986-06-23 1988-01-08 Hitachi Zosen Corp 知識工学システム用推論処理方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06291587A (ja) * 1992-07-08 1994-10-18 Matsushita Electric Ind Co Ltd 圧電振動子
JP2012003406A (ja) * 2010-06-15 2012-01-05 Hitachi Solutions Ltd 障害原因判定ルール検証装置及びプログラム

Also Published As

Publication number Publication date
JPH087683B2 (ja) 1996-01-29
EP0355287B1 (en) 1995-05-24
EP0355287A2 (en) 1990-02-28
EP0355287A3 (en) 1992-09-30
US4924408A (en) 1990-05-08
DE68922800D1 (de) 1995-06-29
DE68922800T2 (de) 1995-11-30

Similar Documents

Publication Publication Date Title
JPH0276034A (ja) 知識ベースと推論を手続型ソース・プログラム・コードに変換する方法
Kershenbaum et al. Centralized teleprocessing network design
US6389405B1 (en) Processing system for identifying relationships between concepts
Grefenstette Credit assignment in rule discovery systems based on genetic algorithms
US5813005A (en) Method and system of database divisional management for parallel database system
GB2274182A (en) Database co-processor.
US5263127A (en) Method for fast rule execution of expert systems
US4956791A (en) Merging pattern-matching networks including retes
Kinnear Jr Derivative methods in genetic programming
Vargas et al. Artificial immune systems as complex adaptive systems
Arias et al. Minimal schedule with minimal number of agents in attack-defence trees
Levis Modeling and design of distributed intelligence systems
Highland et al. Knowledge Base Compilation.
Mendes et al. Novel parallel anytime A* for graph and network clustering
van Leeuwen et al. Predicting the effects of spatiotemporal modifications of muscle activation on the tentacle extension in squid
Biema et al. The do-loop considered harmful in production system programming
Haynes On-line adaptation of search via knowledge reuse
Jian A Regressive Problem Solver That Uses Knowledgelet
Yao An efficient approach for rule matching in production system based on multi-agent
Shin et al. An architecture for very large rule bases based on surrogate files
Soh et al. A parallelization strategies of test suites generation for t-way combinatorial interaction testing
O'Kane An expert systems facility for Mumps
Negi et al. An Approach for Solving the Graph Coloring Problem using Adjacency Matrix
Mukhtar et al. The Design of Independent-Uniform Knowledge Sources of Blackboard Architecture in Timber Harvesting Decision-Making
Guliashki An accelerating technique for population based algorithms

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees