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

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

Info

Publication number
JPH087683B2
JPH087683B2 JP1211550A JP21155089A JPH087683B2 JP H087683 B2 JPH087683 B2 JP H087683B2 JP 1211550 A JP1211550 A JP 1211550A JP 21155089 A JP21155089 A JP 21155089A JP H087683 B2 JPH087683 B2 JP H087683B2
Authority
JP
Japan
Prior art keywords
node
code
rule
knowledge base
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.)
Expired - Fee Related
Application number
JP1211550A
Other languages
English (en)
Other versions
JPH0276034A (ja
Inventor
フレデリツク・デイーン・ハイランド
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は知識ベース・システムに関する。すなわち、
いわゆる“推論エンジン”により“知識ベース”に累積
されたコード化された専門家の知識を活用して問題を解
決していくコンピュータ・システムである。もし、知識
ベースの領域、あるいは問題のスコープが十分に小さ
く、かつ十分な容量を持つ知識ベースにコード化されて
いれば、この知識ベース・システムは人間の専門家の能
力に匹敵、あるいはそれを超える仕事を実行できる。こ
のような場合、知識ベース・システムは“エキスパート
・システム”と呼ばれる。
B.従来技術及びその問題点 知識ベースシステムの技術は多くの適用分野において
有効な活用性を提示してきた一方、いくつかの分野にお
いては、その有効性は現在の実行手段の限られた能力に
より損われていた。特にリアル・タイム・モニタ・アン
ド・コントロール・システムのように短時間に多くのデ
ータを扱う必要のあるシステムや、知識ベースシステム
が他の複数の適用業務とコンピュータを共用する組込み
適用の場合には問題があつた。
推論プロセスをサポートする特別のハードウエアの改
良により知識ベースシステムはしだいに改良されている
が、従来からのハードウエアに基づく知識ベースシステ
ムにはその装置特有の解釈特性から生ずる根本的限界が
ある。“推論エンジン”がコンパイルされた言語で公式
化されている場合であつても、一般の推論エンジンは知
識ベースを表わすデータ構造の解釈を要求する。この解
釈プロセスはコンパイルされたインプリメンテーシヨン
(知識を具体化する規則の公式化)に比較して非効率的
である。知識ベースの編集はツリーの決定や他のシング
ル・パラダイム推論戦略決定をする推論技術の制限によ
り行なわれるが、この制限はナレツジ・エンジニアの能
力をある種の問題を表現、解決する場合において制限し
てしまうことになる。
推論の解釈インプリメンテーシヨン 大部分の知識ベース・システムは、データ構造の集積
として知識を内的に表わす。データ構造はノード及びノ
ード間リンクから構成される。ノードはルール及びルー
ル内でのテストを表わす。ノードは事実がいかにテスト
されるか、そのテスト結果はどうか、事実をどのように
取得するか、事実に基づく処理及び、テスト結果に基づ
く処理手段等が含まれる。リンクは事実やテスト結果が
ルールに基づいて結合される道筋であり、これらのテス
トやルールが知識ベースの他のルールによつて照会され
る。そして、ルールが“真”の時は処理が実行される。
ノードは通常ツリーあるいはネツトワークのような照会
リストあるいは流動データ値に伴つて数の増大する構成
に組織化されている。これらのネツトワークは、推論プ
ロセスのインプリメントのために推論エンジンによつて
考察される。各ノードにおいて、推論エンジンはノード
の内容を確認して、何のデータが含まれているか、当デ
ータにはどのようなテストが必要か(テスト評価)、こ
れらのテストに基づいて次はどのノードを処理すべきか
(テスト結果伝播)、ルールが真であるとき何を実行す
べきか(ルールアクシヨン実行)等を決定しなければな
らない。このプロセスの結果に基づいて、推論エンジン
は他のノードへ続く1つあるいはそれ以上のリンクを追
跡する。これは解釈プロセス(インタープリテイブ・プ
ロセス)の基本である。
この1例として、ゴール・ツリーのセツトとしてルー
ル化されている、単純な逆向きチエインの場合を考える
と、各々は状況及び事実値を与え、1つのゴールを結論
づける1つあるいはそれ以上のルールを有している。こ
のルールの典型的なセツト及びこれらの結果から得られ
るゴール・ツリーを第2図に示す。このようなシステム
における推論プロセスはゴールの選択により開始され、
次にその時点で未知の事実を見つけるために“深さ優
先”の考察を、各々のゴール・ツリーについて行なう。
次に、事実の値が値の求め方を指示する事実ノードの情
報解釈によつて求められる。次に、テスト評価がその事
実の照会を行なうテスト・ノードの情報解釈によつて行
なわれる。その後、考察プロセス及びノード解釈により
前ノードの結果をツリーの次のノードにいかに結合すべ
きか、受け渡すべきかを決定する行程をくり返してゴー
ルツリーをテスト結果が伝播する。さらにテスト評価及
び結果伝播を実行する解釈(インタープリテーシヨン)
プロセスに加えてツリー考察プロセスが解釈(インター
プリテイブ)されなければならない。これはツリーを形
成する接続構成がノードのみが知っているからである。
この逆向きチエインの形はEMYCIN(「The EMYCIN Manua
l」Heuristic Programing Project Report HPP−81−1
6,Stan ford University,1981):PIE(「The Portable
Inference Engine:Fitting Significant Expertise int
o Small System」IBM Systems Journal,Vol.25,No2,198
6)及びWinston及びHornの示した具体例(LISP,2nd Ed,
Chapter18,「Expert Problem Solving using Rules and
Streams」Addison Wesley,Readng,Mass,1984)に類似す
る。
他の知識ベースシステムの従来例としては米国特許第
4,591,983号、第4,648,044号、第4,713,775号がある。
前向きチエイン推論システム・アルゴリズムは事実か
らゴールへ前向きに仕事をする点で逆向きチエインと異
なつている。知識の表現のツリーあるいはネツトワーク
は同様に使用されるが、事実の発見や評価のための深さ
優先考察は行なわれない。代わりに、このシステムでは
ルール状況に応じた事実の検索が実行される。一般には
データ値をルールへ伝播し、データ及びこのデータに基
づくルールテストの評価を実行することとなる。これは
事実の1セツトごとに対するこれらのテストを評価する
テスト・ノードの解釈をも必要とする。テストの評価
後、その結果は各ステツプで前ノードの結果をネツトワ
ーク中の次のノードにいかに実行、結合、受け渡すかを
決定するノード解釈を行ないながらゴール・ツリーを伝
播する。この前向きチエイン推論機構の形はWinstonとH
ornの提示例(LISP.2nd Ed.,Chapter18,Addison Wesle
y,Reading,Mass.,1984)やOPS5(Forgy,“Rete:AFast A
lgolithm for the Many Pattern/Many Object Match Pr
oblen",Artificial Intelligence,Vol.19,1982)で実現
されている。
これらのツリーやネツトワークでの解釈考察や各ノー
ドの実行に要求される決定ステツプは各ノードが推論プ
ロセスを分解したようなものである。各ノードにおい
て、推論システムは可能ステツプのどちらが求められて
いるかを決定し、その後当ノードで利用可能な情報を使
用してこれらのステツプを実行しなければならない。ノ
ードが実行ステツプを完了すると、次に実行すべきノー
ドの決定が行なわれる。知識ベースシステムのパフオー
マンスは、もし解釈プロセスを排除して同様のステツプ
を簡潔なコンパイルされたプログラムコードによつて実
行できたなら大幅に改善されるであろう。
C.発明の目的 本発明の主要目的は、知識ベースシステムを直接コン
パイラブルな高水準言語プログラム・コードに変換し、
推論アルゴリズムの高度な実行を達成する方法を提供す
ることである。
さらに本発明のもう1つの目的は知識ベースをプログ
ラムの形で表現する方法を提供し、知識ベースルールか
らこの形に変換する方法を提供することである。
D.実施例 これらの目的はその他の目的も含め、以下に説明する
如く、本発明によつて達成される。この方法は以下のス
テツプからなる。
(a)ノード及びノード間リンクのネツトワークを複数
のルール・ツリーあるいは“サブネットワーク”に区分
する。
(b)ユニークな識別子またはインデックスを用いて各
サブネットワーク内の各ノードにラベルを付ける。
(c)推論手段と連係したものとして各サブネットワー
クに対応するコンパイラブル手順プログラム・コードの
セグメントを生成する。このプログラム・コードは以下
“推論用コード”と言う。ステツプ(b)での識別子が
各サブ・ネツトワーク中の各ノードにそれぞれのコード
を割りあてるのに使用される。この推論用コードは知識
ベース固有のルールに基づく各サブネットワークの各ノ
ードの機能をインプリメントするノード・サブセグメン
トを有する。推論用コードはさらにコントロール・サブ
セグメントを持つ。これは上記識別子を用いて各ノード
・サブセグメントへのアクセスを行ない、ネツトワーク
の効果的考察に必要な場合、各ノード・サブセグメント
のくり返し実行を行なわしめる。
(d)各データ項目ごとに、これらデータ項目を分散す
るためのコンパイラブル手順プログラム・コードのセグ
メントを生成する。このコードは以下“分散コード”と
いう。このコードは知識ベースシステムの実行中にデー
タ項目が修正されたとき、識別手段を用いて適当な推論
用コードを呼び出すものである。
このように本発明に従つたルール・コンパイレーシヨ
ンの基本的手法は、まず最初に推論プロセス中に推論エ
ンジンによつて実行されるステツプを決定し、次にこれ
らのステツプに必要なプログラム・コードのみを生成す
ることである。知識ベースの分析を通して、知識ベース
構成の可能ステツプのセツトは大幅に、例えば、1ステ
ツプまで削減できる。これはさらに推論プロセスを実行
する簡明で効果的な手順プログラム・コードに変換され
得る。同様に、このプロセスに続くステツプも付加プロ
グラムコードが生成できるように識別される。この工程
を使用することで、いかなる推論プログラムも解釈ステ
ツプを排除したコンパイル・システムに変換可能であ
る。
上述したことから分かるように、本発明の方法はテス
ト評価のコンパイレーシヨン、テスト結果の伝播、そし
てルール処理の実行をアドレスする。これらの動作は前
向きチエインでも逆向きチエインでもミツクス・チエイ
ン(前向きと逆向きのコンバイン)の推論プロセスに共
通である。評価及び伝播ステツプは推論過程において最
も多用されるので、これらのコンパイレーシヨンはパフ
オーマンス全体に多大な利益をもたらす。この説明の中
では逆向きチエイン推論における評価のための事実選択
の実行の改善方法についてはここで示した前向きチエイ
ンから自明であるので詳細には述べない。
ルール・コンパイレーシヨンの実行のため、ルールは
各ルール構成要素となるノードとルール構成要素を他の
ルール構成要素や事実と結びつけるリンクとからなるネ
ツトワーク表現に変換されなくてはならない。これは第
2図に示すごとく知識ベースの実行の際、推論エンジン
によつて使用されるのと同じネツトワークである。さら
にメカニズムは知識ベースシステムの動的性質を保存す
るために結果の伝播用のネツトワークの考察をコンパイ
ルする改善が必要となる。
本発明のコンパイレーシヨン技術の1つはルールのネ
ツトワークをルール・ツリー・サブネットワークのセツ
トに区分することである。サブネツトワークはツリーと
してとらえられているが、これらはツリーの中に他のサ
ブネツトワークの照会項目を含んでいることもあるので
完全なツリーである必要はない。この区分に使われる基
準は任意である。例えば、1つのルールをベースとして
あるいは通常のデータ・セツトに用いられるルールのグ
ループを根拠に区分を行なうことができる。パフオーマ
ンスを最大限なものとするために、基準は個々のサブネ
ツトワーク以外のサブネツトワークの照会を最小限にし
て、呼び出しを削減したものであるべきである。
次に、各ルール・ツリー(サブネツトワーク)のノー
ドはケース・インデツクスによつてコントロールされる
“ホワイル・ループ”(While loop)内のケース構造の
一部を表わすものとなる。ケース構造の各パートは知識
ベースから生成されるルール・ネツトワークのノードの
機能を実行するプログラム・コードのセグメントから構
成される。各プログラム・コード・セグメントはケース
・インデツクスの操作を介してツリー中の親ノードに条
件付きで制御を与える。コード・セグメントはさらに他
の情報、事実の集合や、確実性を有する要素を親ノード
に与える。ツリー構造の使用はルール・ツリーの各ノー
ドに1つの親が存在することを保証するもので、多枝の
必要性や、枝情報を保持するスタツク機構を必要とする
ものではない。ルールツリーの外部の親は外部ルール・
ツリー中のノードの呼び出し手続きによつてアクセスで
きる。これにより、呼び出し手続があるので、保留値を
保持するスタツクの必要性が排除された。スタツクは複
合データ値を各親に送る際に必要となる可能性はある。
しかし、この必要性も個々の項目ごとではなく各種のデ
ータリストを送ることによつて排除できる。“ホワイル
・ループ”(While loop)の使用により、伝播(コード
・セグメントの連続実行)をコントロール構造の各呼び
出しにおいて可能な限り続けることができるようにな
る。これは、さらにルール・ツリーのどのノードに対し
てもノード評価の付加的融通性の要求に基づいて呼び出
されることを許容する(例えば、事実構成中の1エレメ
ントの一部が変化した場合等である)。
コントロール構造の最後のステージは、“終結”とし
てルールを確認することである。これは、例えば競合集
結機構や、ルール動作の実行のために選択すべき競合対
象をエントリーすることである。
最後に手続的プログラム・コードが、知識ベース中の
データ項目の変化に基づいてルール・ツリーを活性化す
るために生成される。このプログラム・コードは“分散
コード”と呼ぶ。というのはこの目的が知識ベース・シ
ステムの実行中、各データ項目に修正の分散を行なうこ
とであるからである。知識ベースの分析により、ルール
・ツリーのリストや、ツリー中のノードが各データ項目
ごとに展開される。データ項目が変化したとき、各ルー
ル・ツリーから適当なノードを呼び出すためにこれらの
リストから、分散コードが呼び出される。分散コードは
データ項目あるいは1つの選択されたノードに関連する
すべてのノードを呼び出すように構成され得る。
いくつかのシステムでは分散されるデータ項目の識別
はルール・ツリーのイニシヤル(暗黙の)テストとして
インプリメントされる一般データあるいはクラスのテス
トの一部として実行される。(Forgy,“Rett:A Fast Al
gorithm for the Many Pattern/many Object Match Pro
blem",Artificial Intelligence,Vol.19,1982参照)ル
ール中の照会の分析を通して決定されるルールツリーに
よつて各データ項目が正しく使用されるのでルール・ツ
リー構成の呼び出しが効果的に行なわれ、テストの必要
性を排除できる。
このインプリメンテーシヨンの使用により、評価及び
伝播プロセスは、データ項目がアツプデートされたとき
の分散コードによつて開始される。分散コードは評価さ
れるノードのインデツクス値をルール・ツリー・ケース
構造に与える。これにより希望ノードの選択及び評価が
行なわれる。評価結果に従つてインデツクスは評価対象
の親ノードのインデツクス値かあるいは出口(exit)イ
ンデツクス値にリセツトされる。プロセスはルールが結
論づけられるか、あるいは現行利用可能な情報から引き
出されるすべてのサブ結果がすべて使用されつくすまで
続けられる。他のルール・ツリーからルールの照会は照
会エントリーのための適当らインデツクスを与えるルー
ル・ツリー・ケース構造の呼び出しとしてインプリメン
トされる。
本発明の実施例を第1図に示す。第1図は本発明の方
法を単純化して表わしたものである。
第2図に知識ベースを形づくるルールとこのルールか
ら内的に生成されたルール・ツリーを示した。以下にこ
の知識ベースから得られる分散及び伝播機能を果たすプ
ログラム・コードの単純化した形態を示す。
AあるいはBの値の変化の際はいつでもプロシージャ
(手続)A−DIST(分散)あるいはB−DIST(分散)に
おいてルールツリー手続きRULE1(ルール1、R1)がテ
スト評価を行なうため適当なインデツクス値とともに呼
び出される。テスト評価の結果はその後可能な限り遠く
まで伝播される。評価を行なうコード中、本実施例では
ANDの場合は削除してある。この機能はすべての要求タ
ームが評価されたかを確認する。結果は、制御を次のノ
ード・セグメントに渡すかあるいはインデツクスを0に
セツトしてすべてのタームが評価されるまで処理を終結
させるかのどちらかに用いられる。この機能を達成する
ための方法としては状況指標のテスト、指標リストの探
索、あるいは評価カウント機構の使用等いくつかの方法
がある。データ値を扱い、親ノードに渡すプログラム・
コードは本実施例では簡略化のため削除した。
知識ベースのルールをコンパイラブルな手順プログラ
ム・コードに変換する本発明における方法は以下に示す
ステツプからなる。
ステツプ0:ネツトワーク型の知識ベースを推論に使える
ものとする。このステツプは最も新しい知識ベースシス
テムインプリメンテーシヨンにおいて実行される。ネツ
トワークはルール構成(テスト、論理動作、処理、事実
項目)をノードとして表わし、ルール構成の相互関係及
び知識ベース中の事実との関係をリンクとして表現しな
ければならない。
ステツプ1:知識ベースをルール・ツリーからなる森とす
る。これはルール・ネツトワークを1つの根(ルート)
を持つルール・ツリー・サブネツトワークへ区分するた
めのいくつかの基準を必要とする。各サブ・ネツトワー
クの外部照合の数はパフオーマンス上の理由から最小の
ものが望まれる。多くのシステムにおける区分の基準で
最も有効なものは各ルールあるいは推論チエインの末端
が根(ルート)となるルール動作を有するルール・ツリ
ーを形成することである。
ステツプ2:得られた各ルール・ツリー(サブ・ネツトワ
ーク)の深さ優先考察は根(ルート)から始まり、各ノ
ードにシーケンシヤルに1から始まるインデツクスある
いは識別子をつける。このステツプはルール・ツリー中
で各ノードを個々に識別し、ケース構成にインデツクス
値を提供する。現行でのルール・ツリーではないルール
のノードにはナンバーは付されない。
ステツプ3:各ルール・ツリーの深さ優先考察及びプロロ
ーグ(手順ヘツダー、イニシヤライズ、ホワイル及びケ
ース・ステートメント)からなるルール手順の生成、知
識ベースのルールに基づくノードの機能をインプリメン
トする各ノードのためのケース部分の生成、適当な状況
のもとで評価され得べく次のノードに対するインデツク
スをリセツトする状況コードの生成そしてエピローグの
生成。ケース・インデツクス値はステツプ2のナンバリ
ングから得られる。他のルール・ツリーから照会された
ノードは照会ポイント及び関連事実等のインデツクス値
を渡す照会ルール手順への呼び出しを含んでいる。事実
値をアツプデートするルール処理は適当な分散手順への
呼び出しを介して照会ルールへこれらの値を渡すことに
なる。
ステツプ4:知識ベースの各データ項目において、プロロ
ーグを含む分散手続きが生成され、データ項目を照会す
る各ルール手順の呼び出しコード、そしてエピローグが
生成される。呼び出しはルール手順の中で実行されるべ
きテスト・ノードのインデツクスを渡すことになる。
本発明の方法では知識ベースを特徴づけるルール処理
及びデータ分散手順のセツトを生成する。本方法では知
識ベースの固有ルールを推論論理と結びつけて固有のコ
ード・モジュールを生成する。従つて推論エンジンはも
はやルールから物理的に分離されたものではなく、既知
の知識ベースシステムを伴つたケースであり、これはル
ール・コードと最適な形で結合したものといえる。物理
的に明りような推論エンジンを欠いているが、通常のア
プローチ(分離された推論エンジン及び知識ベース)の
機能は結果的に得られるモジユールが推論エンジンと同
様の処理を行なうので問題ない。
本発明のコンパイル技術によつて得られる処理パフオ
ーマンスの利益は主に言語の複雑さ、推論エンジンによ
る解釈実行時間、基礎的アルゴリズムに係るものから得
られる。パフオーマンス上の利益は経路あるいは処理ス
テツプの選択の実行の際に生ずる。特徴のより豊富なセ
ツトを提供する知識を表現する言語は処理中により多く
の選択すべき経路に出会い、より多くのパフオーマンス
上の利益が期待できる。
ルールのインプリメンテーシヨン及び推論エンジンの
手順の中で、プログラムコードは間接的解釈の排除を超
えるインプリメンテーシヨン上の付加効果を与える。事
実及び知識ベース・コントロール・ブロツクは関節的な
リンクリストや他のダイナミツク構造のように探索や、
複雑な考察を必要とするものを用いず、プログラム変数
や、参照デイレクトリとして表わされる。同様に、ルー
ル状況テストや処理ステートメントに用いられる表現
は、複雑な解釈構造ではなく、コード中で効果的にイン
プリメントされる。推論エンジンはすべての可能な知識
ベースや構成に対して生成される必要があるので、これ
らのインプリメンテーシヨンからの利益は得られない。
さらに、知識ベースのプログラムコードへの変換は結果
システムの組み込み能力を改善する。コンパイル知識ベ
ースは互換性のある言語同士であればいかなる言語とで
も互換可能である。
本発明に従つたコンパイル技術によつて生成されたプ
ログラム・コードは基本的に解釈技術で使用される対応
するデータ構成よりも多くの記憶装置を必要とする。こ
れは解釈アプローチで使用される生成論理が各ノードで
カスタマイズされ繰り返されるからである。このタイプ
の弱点(低級処理における記憶容量の要求増大)は処理
拡充技術においてはありがちなことである。記憶容量の
実際の差異はルール言語の性質及び複雑さによつて異な
る。必要とされる記憶容量はその基礎となる知識ベース
のデータ構成に要求される記憶容量に比例する。ルール
とデータの相互作用による結合の増幅は起こらない。こ
れは同じ知識ベースの解釈フオームに使用されると同様
の知識ベースの内容表現から生成されるコードであるか
らである。
生成コードのサイズは適当な実用手順に従つて減少で
きる。知識ベースのコンパイルはコードのシーケンスの
共通化によつて達成される。知識ベース構成から引き出
されるコードを組み込まないコード・シーケンスは実用
手順としてのインプリメンテーシヨンとしてとらえるこ
とができる。
本発明によるコンパイル技術の使用によつて、生成さ
れるプログラム・コードは従来のアプローチでは使用さ
れていないデータ構成に対応する推論エンジン用論理を
も含むこととなる。実際の対応する数を得るためには、
従来の技術における推論エンジン・ソフトウエアのサイ
ズは知識ベースを表わすデータ構造のサイズに沿つて考
えなくてはならない。
知識ベース・コンパイレーシヨンに対する一つのアプ
ローチはルール・ネツトワークをIFステートメントのネ
ストの連続からなる判断ツリーのセツトをして表わすこ
とである。このアプローチはENYCIN(Van Melle et a
l.,“The EMYCIN Manual";Heuristic Programming Pron
ject Report HPP−81−16,1981)のコンパイル・バージ
ヨンのようないくつかのシステムで使用されている。し
かし、このアプローチはそこに含まれるパラメータ(そ
れ自身の値に基づく)の評価オーダを限定してしまい、
要求に基づく個々のノードにアクセスできないというも
のである。個々のノードにアクセスができないので、こ
のアプローチは確信あるいは前向きチエイン推論に基づ
く動的ルール指示としての技術を支えるものではない。
さらにこのアプローチはこれらのシステムによつて形成
される推論システムに固有のものであり、他の推論シス
テムに適用できるとは限らない。
状況及びルール処理のプログラム・コードへのコンパ
イルのもう一つのアプローチは解釈データ構造としての
推論ネツトワークを保持してしまうものである。この技
術はKnowledge Tool(インターナシヨナル・ビジネス・
マシーンズ・コーポレーシヨンの商標)やETC(“Econo
my in Expert System Construction:The AEGIS Combat
System Maintenance Adviser"SPIE Applications of Ar
tificial Intelligence Conference,1986)に用いられ
ている。このアプローチは状況評価及び処理実行のパフ
オーマンスを向上させるので推論プロセスの中核を成す
ルールや結果の分散を提示するものではない。
本発明に基づくコンパイレーシヨンの技術はForgyに
より提唱された「RETE」のコンパイレーシヨンに類似し
た要素を有している(“Rete:A Fast Algorithm for Ma
nyn pattern/Many Object Match Problem,"Artificial
Intelligence,Vol.19,1982)。しかしForgyのアプロー
チはRETE・ネツトワークに固有のもので、ブランチ(GO
TO)の使用や選択枝の保存領域を含むものである。ブラ
ンチの使用や、分散工程の欠除は言語コンパイラによる
制限をも超えるRETEのインプリメント用の大量のコード
・セグメントを要求する結果となつてしまう。本発明の
技術はGOTOを持たない構造のコードであり、余分な記憶
スタツクも有しないものである。構造コードの生成はル
ールが小さなモジユールでインプリメントされることを
許容し、高級言語コンパイラの制限を排除し、知識ベー
スの小さなシステムの処理用記憶装置への分割の可能性
を与えるものである。
E.発明の効果 知識ベースのコンパイレーシヨン方法にはいくつかあ
るが、本発明の方法は従来の解釈アプローチとは異なつ
たルール言語の複雑さ、特徴にとらわれることのないパ
フオーマンス改良を達成するものである。本方法は決定
ツリー生成アプローチに比して優れたものである。とい
うのは前向きチエイン推論システムにおけるルール・ネ
ツトワーク中の各ノードへの直接アクセスを許容し、動
的ルール配列の如き技術の使用を可能とするからであ
る。さらに、本方法は、状況テストや、ルール処理ステ
ートメントのみのコンパイルのアプローチにとどまら
ず、推論メカニズムのコンパイル及び拡充を図るもので
ある。
以上述べたように、この知識ベース・システムを生成
する方法は多くの利点を有するものである。ここに述べ
られた実施例及び図面に基づいて当業者であれば多くの
変更、モデイフイケーシヨン、バリエーシヨンが可能で
あろう。これらの変更、モデイフイケーシヨン、バリエ
ーシヨンは本発明の思想に基づく範囲のものであり特許
請求の範囲に述べられた技術的範囲に包含されるもので
ある。
【図面の簡単な説明】
第1図は本発明においてコード化される知識ベース及び
ルール・ツリーを示す図、 第2図は一般的知識ベースシステムにおけるルール及び
これに伴うルール・ツリーの例を示す図である。

Claims (1)

    【特許請求の範囲】
  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 1988-08-19

Publications (2)

Publication Number Publication Date
JPH0276034A JPH0276034A (ja) 1990-03-15
JPH087683B2 true 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)

Families Citing this family (48)

* 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
EP0459626A3 (en) * 1990-04-30 1993-05-26 International Business Machines Corporation Knowledge based order planning system
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
US5555346A (en) * 1991-10-04 1996-09-10 Beyond Corporated 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
JPH06291587A (ja) * 1992-07-08 1994-10-18 Matsushita Electric Ind Co Ltd 圧電振動子
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
AU6250794A (en) * 1993-02-25 1994-09-14 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
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.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
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.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
US7565642B2 (en) * 2002-08-09 2009-07-21 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
JP5651381B2 (ja) * 2010-06-15 2015-01-14 株式会社日立ソリューションズ 障害原因判定ルール検証装置及びプログラム
AU2012250953B2 (en) 2011-04-30 2015-04-09 VMware LLC Dynamic management of groups for entitlement and provisioning of computer resources
CN111159045B (zh) * 2019-12-31 2024-04-19 中国银行股份有限公司 一种兼容性问题检测方法、装置及存储介质
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 知識工学システム用推論処理方式

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH087683B2 (ja) 知識ベースと推論を手続型ソース・プログラム・コードに変換する方法
Larranaga et al. Learning Bayesian network structures by searching for the best ordering with genetic algorithms
Lam et al. Automated generation of independent paths and test suite optimization using artificial bee colony
Malaguti et al. A metaheuristic approach for the vertex coloring problem
US4881178A (en) Method of controlling a classifier system
US6389405B1 (en) Processing system for identifying relationships between concepts
González Muñoz et al. Multi-stage genetic fuzzy systems based on the iterative rule learning approach
Giordana et al. Learning disjunctive concepts by means of genetic algorithms
Blythe An overview of planning under uncertainty
CN111104120B (zh) 神经网络编译方法、系统及相应异构计算平台
CN112632744B (zh) 基于超网络模型的作战体系架构建模方法及空间探索方法
Wathieu et al. Re: Bt-espresso: Improving interpretability and expressivity of behavior trees learned from robot demonstrations
US4956791A (en) Merging pattern-matching networks including retes
CN111190711B (zh) Bdd结合启发式a*搜索的多机器人任务分配方法
Hillenbrand Citius altius fortius: lessons learned from the theorem prover Waldmeister
Kinnear Jr Derivative methods in genetic programming
De Falco et al. Simulation of genetic algorithms on MIMD multicomputers
Liu et al. Encoding selection for solving Hamiltonian cycle problems with ASP
Highland et al. Knowledge Base Compilation.
Haynes On-line adaptation of search via knowledge reuse
Giani et al. PANIC: A parallel evolutionary rule based system
Takahashi Extended changing crossover operators to solve the traveling salesman problem
Weise et al. Evolving distributed algorithms with genetic programming: Election
Mukhtar et al. The Design of Independent-Uniform Knowledge Sources of Blackboard Architecture in Timber Harvesting Decision-Making
Haynes A comparison of random search versus genetic programming as engines for collective adaptation

Legal Events

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