JP3049561B2 - プロダクションシステムとプロダクションシステムの変換装置 - Google Patents

プロダクションシステムとプロダクションシステムの変換装置

Info

Publication number
JP3049561B2
JP3049561B2 JP2130695A JP13069590A JP3049561B2 JP 3049561 B2 JP3049561 B2 JP 3049561B2 JP 2130695 A JP2130695 A JP 2130695A JP 13069590 A JP13069590 A JP 13069590A JP 3049561 B2 JP3049561 B2 JP 3049561B2
Authority
JP
Japan
Prior art keywords
cluster
control expression
control
rule
processing
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
JP2130695A
Other languages
English (en)
Other versions
JPH0424826A (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 東洋通信機株式会社
Priority to JP2130695A priority Critical patent/JP3049561B2/ja
Priority to EP19910905903 priority patent/EP0483359A4/en
Priority to PCT/JP1991/000374 priority patent/WO1991018343A1/ja
Publication of JPH0424826A publication Critical patent/JPH0424826A/ja
Priority to US08/327,230 priority patent/US5452453A/en
Priority to US08/486,936 priority patent/US5615308A/en
Application granted granted Critical
Publication of JP3049561B2 publication Critical patent/JP3049561B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はプロダクションシステムに関し、手続き型言
語によるフローの記述とプロダクションルールを統合す
ることによってプログラミングを簡素化する手法及び、
該プログラムを従来のプロダクションシステムにて実行
可能な形式のルールに変換する手法に関する。
(従来技術) 「もしAならばBせよ」あるいは“IF A THEN B"の形
式で表現される知識をプロダクションルール(以下ルー
ルと称する)と呼び、Aを条件部、Bを動作部と呼ぶ。
条件部と動作部は与えられた問題領域における専門家の
知識に基づき問題解決のためにお互いに関連付けられた
ものである。第15図はルールの集合の上で推論し、知識
処理を行うプロダクションシステムの概念図である。
同図において1はプロダクションメモリ(Production
Memory)であり、前記ルールを複数個格納する。2は
ワーキングメモリ(Working Memory:以下WMと称す)で
あり、クラス名と複数の属性値の組とから成るデータ
(Working Memory Element:以下WMEと称す)を複数個格
納する。推論部3は上述した全てのルールの条件部と全
てのWMEとを照らし合わせ、該ルール群から条件が全て
満足されるものを選び出して競合集合4を作り、更にそ
の中の1つをある基準に従って選択し、該ルールの動作
部に記述してある動作を実行する。このようにルールの
動作部を実行することをそのルールをファイアするとい
い、その結果WMの内容の変更が起こることが一般的であ
るが、WMの内容に変更があるなしにかかわらず上記のよ
うに競合集合を作り、推論処理を行うことを繰り返す。
第16図は上述の動作を示すフローチャートであり、ST
1〜ST3のステップからなる。
(ST1:照合) ルール群の条件とデータの突き合わせ (ST2:競合解消) 実行するルールの選択 (ST3:実行) 選択したルールの実行、データの更新 プロダクションシステムは以上ST1〜ST3のステップを
一般にWMEを更新しつつ繰り返して実行し所望の結果を
得るものであるが、結果の如何に関わらずIFの後の条件
を全て満足するルールがなくなるかあるいはTHENの後の
動作部に停止する旨の記述がある場合は処理を終了す
る。
上述したルールの条件部は複数の条件(以下条件要素
と称す)の組み合わせであることが多いが、プログラマ
は単にそのような条件要素を書き並べるだけでよい。
又、動作部には条件部に対応してどのような処理を行う
かのみを処理を行う順に書けばよく、どのようにして競
合集合を作るのか、即ちルールの条件部とWMEの照合を
どのように行うかはどこにも書く必要はない。これは、
上記ルールの実行順序はルールに含まれた専門的知識に
基づき自動的に決定されるためであって、選択された複
数のルールのうちいずれを選ぶかはシステムによって予
め定めてある基準、例えば最多数の条件要素を持つもの
から選択するといった基準に従うため、プログラマはル
ールの記述順序を考慮する必要はなく、ルールをどのよ
うな順番で並べてもよい。
以上のような点がルールベースの記述上の利点であ
り、通常の手続き型の言語ではプログラミングが複雑か
つ面倒な処理をいとも簡単に記述できる。
しかし、上述した基本的なプロダクションシステムの
考え方では次のような欠点があった。
即ち、ルールがどのような順番で並んでいてもよいと
いうことは、どのルールも選ばれる可能性は全て平等で
あるということであるが、実際の処理においては特定の
ルール群のみを選択の対象にしたり、あるいは無視した
りしたいことが頻繁に発生する。つまりある処理を行っ
ている間はその処理に関連するルール群のみを選択候補
としたい場合が多いが、そのような場合でもルールベー
スでは特定のルール群をプログラマが任意かつ明示的に
選択することは非常に困難である。換言すればルールベ
ースではルール群の選択を制御することが非常に難し
く、ある特定の目的例えば入力、計数、印字等の処理
(以下サブタスクと称する)を順次に実行するためのル
ール群のみを集めてモジュール化して選択することは難
しい。従って、従来の手続き型の言語のように複数のサ
ブタスクの分岐あるいはループ等を含む処理を行う際に
はプログラミング上のテクニックが必要で、例えば「ク
ラスタ制御」と呼ばれる方法を用いていた。
クラスタ制御とは前記各々のサブタスクを実行するた
めに必要なルール群それぞれをクラスタと定義し、各ル
ールの条件部にはどのクラスタに属するかを記述するこ
とをその内容とするルールベースのプログラミング技法
である。具体的にはどのクラスタを実行するかを指定す
る制御用WMEを用意し、例えばそのクラス名を制御、属
性名を^now、値をクラスタAとし、条件部に“&制御
^now=クラスタA"なる条件要素を持ったもののみを選択
の候補とする。上例の条件要素の意味は「クラス名が制
御のWMEで、属性^nowの値が“クラスタA"のものがあれ
ば」という意味である。尚、制御用WMEはクラスタ制御
においては常に1個だけ存在し、あるクラスタ内の処理
が終了する毎にその属性値を次に起動すべきクラスタ名
に書き換えることによって順次異なるクラスタを選択す
ることができるようにする。
以上のようなクラスタ制御を用いて処理を行う場合の
実例を説明する。
第17図(a)はサブタスクA及びサブタスクBを順に
実行する場合のフローチャートであり、同図(b)はそ
れに対応したルール群である。同図において5及び6は
サブタスクA及びBであり、Ar1〜ArnはクラスタAに属
するルール群、Br1〜BrmはクラスタBに属するルール群
である。ルールAr1はルールAr1である旨を示す“DEFINE
RULE Ar1"で始まり、その後に条件部7、動作部8を記
述し、ENDで終わる。条件部7は条件部である旨を示す
“IF"の後にクラス名が制御、属性名が^now、^nowの値
がクラスタAであるWMEが存在するという条件要素“&
制御 ^now=クラスタA"、及び複数の条件要素をまとめ
て一般的に記した“Ac1"という条件要素群から成り、EN
Dで終わる。動作部8は“THEN"の後に複数の動作を一般
的に記したAa1という動作群から成り、ENDで終わる。他
のルールも同様に記述されている。
なお、この例では上記Ar1のAはクラスタAに関する
ことを、rはルールであることを、Ac1のcは条件であ
ることを、Aa1のaは動作であることを示し、その他の
ルールについても同様にrはルールであることを、cは
条件であることを、aは動作であることを示す。また、
後に述べるがWMEが存在しないという条件要素の場合は
“&”に代わり“?"を用いる。
第17図のルール群を使用して処理を行うには同図
(c)に示すように制御用WMEを用意する。例えばその
クラス名を制御、属性名を^nowとした時、該制御用WME
の属性^nowの値がクラスタAであるならば、条件部に
“&制御 ^now=クラスタA"という条件要素を含むルー
ルは選択されうるが、そのような条件要素を含まないル
ールは選択されない。これとは逆に制御用WMEの属性^no
wの値がクラスタBであるならば、条件部に“&制御 ^
now=クラスタB"という条件を含むルールは選択されう
るが、その条件を含まないルールは選択されない。
即ち上述の例の場合、サブタスクAに関する全てのル
ールの条件部にのみ“&制御 ^now=クラスタA"という
条件要素を記述し、サブタスクBに関する全てのルール
の条件部にのみ“&制御 ^now=クラスタB"という条件
要素を記述する。更に、サブタスクAの実行中一番最後
にファイアするルールArnの動作部には前記制御用WMEの
属性^nowの値をクラスタBと書き直す“MODIFY 1 ^now
クラスタB"という動作9を記述し、またサブタスクBの
一番最後にファイアするルールBrmの動作部にはSTOPと
いう動作10を記述する。ここでMODIFYの後の数字1は条
件部の何行目の条件要素とマッチするWMEの属性値を書
き換えるのかを示すもので、このような記述法によって
属性値を更新するWMEのクラス名を省略することができ
る。
以上第17図(b)に示したプログラミング技法によれ
ば初期条件を“&制御 ^now=クラスタA"とすればクラ
スタAの実行が終了したら制御用WMEの属性値がクラス
タBに書き換えられ、次にクラスタBを実行することが
できる。クラスタの数は3以上であっても同様にそれら
を順次選択し、実行することができる。
次に第18図(a)に分岐のある場合のフローチャート
を、同図(b)にそれに対応したルール群を示す。第18
図において11は分岐条件の判定処理で、これに対応する
クラスタJのルールの条件部に記述された“&制御 ^n
ow=クラスタJ"及びJc1なる条件が満たされるか否かに
よって次にクラスタC12かクラスタD13のいずれかを選択
実行する手順を示すものである。またJr1、Jr2はクラス
タJを構成するルール群であり、その条件部には共に
“&制御 ^now=クラスタJ"という条件を有し、更にル
ールJr1ではJc1が成立し、ルールJr2ではJc1が成立しな
いという条件を付加したものである。
処理に当たってはまず初期条件が“&制御 ^now=ク
ラスタJ"を満たすこと及びWME中にJc1を満たすデータが
存在するか否かによって前記ルールJr1又はJr2のいずれ
かを選んでファイアする。
その結果該ルールの動作部に記載された動作に従い、
前記制御用WMEの値を書き換えることによってクラスタ
C又はDのいずれかに分岐して該クラスタを実行でき
る。処理C12及びD13に対応するルール群及びそれらの実
行については前記第17図に示した例と同様であるので省
略する。
最後に第19図(a)にループを含む場合のフローチャ
ートを、同図(b)にそれに対応するルール群を示す。
第19図において14は分岐条件の判定を行う処理で、プロ
ダクションシステム上でクラスタJのルール群の条件部
に記述された“&制御 ^now=クラスタJ"及びJc1なる
条件が満たされるか否かによって次にクラスタE15を実
行するか処理を終了するかを選択実行する処理と対応す
るものである。Jr1、Jr2はクラスタJ内のルールであ
り、この部分については前記第18図と同様であるので説
明は省略する。また、ルールEcnはクラスタEの実行中
最後にファイアするもので、処理が終了したら制御用の
クラス制御のWMEの属性^nowの値をクラスタJに書き換
え、判定処理14へ戻る。
処理に当たってはまず初期条件が“&制御 ^now=ク
ラスタJ"であればWM中にJc1を満たすWMEが存在するか否
かによって前記ルールJr1又はJr2のいずれかを選んでフ
ァイアする。
その結果該ルールの動作部に記載された動作に従い、
前記制御用WMEの値を書き換えることによってクラスタ
Eを実行するか、あるいは書き換えずに処理を終了する
かを選択し、クラスタEの処理が終了したら“&制御
^now=クラスタJ"とWMEの値を変更することによって判
定を繰り返し、分岐条件が満たされるまでループ処理を
繰り返す。
しかしながら、上記3つの例では当然ながらクラス名
が制御で^nowという属性を持ったクラスタ制御用のWME
が必要である。またこれと共に各ルールにおける条件部
にAc1のような本来の条件に加えて、例えば“&制御 ^
now=クラスタA"というクラスタ制御用条件要素も必要
である。更に、例えばクラスタAの実行後クラスタBの
実行を行うには最後に実行されるルール中に“MODIFY 1
^nowクラスタB"というように^nowの値をどう変更する
かという制御動作の記述も必要である。
第18図に示した例では説明を簡単にするためにクラス
タ制御用条件は^nowの値がクラスタJ、クラスタC、ク
ラスタDの3種類としたが、実用的なプロダクションシ
ステムで所要の動作を行わせるためには多数のクラスタ
が必要である。しかし多数のクラスタ全てについて次に
選択すべきクラスタを把握し、分岐あるいはループ毎に
綿密に場合分けをした上でクラスタ制御用条件及び動作
をルールに付加することをは実用上は不可能に近い位大
変である。即ち、原理的にはプロダクションシステムで
もクラスタ制御を用いれば手続き型処理は可能ではある
が、人間のプログラム作成能力には限界があるため、コ
ンピュータの能力の大小にかかわらず現状ではたかだか
数百〜数千のルールから成るプロダクションシステムし
か実現していない。つまり複雑な順序制御を必要とする
大規模プロダクションシステムを実現することは従来技
術では非常に困難であった。
(発明の目的) 本発明は上述したような従来のプロダクションシステ
ムの問題を解決するためになされたものであって、複雑
な順序制御を含むプロダクションシステムのクラスタ単
位のフロー制御を手続き型言語同様に簡単に記述するこ
とを可能とし、その結果大規模なプロダクションシステ
ムの構築を可能としたプログラム記述方法及びその変換
手法を提供することを目的とする。
(発明の概要) 上記目的を達成するため本発明は以下のように構成す
る。
即ち、クラスタ制御を行うプロダクションシステムに
おいて、次に起動実行すべき処理用クラスタを指定する
命令、あるいはその他フロー制御に関する命令を記述し
た制御表現要素を実行すべき順序に並べて上記処理用ク
ラスタとは別の制御表現部を備えると共に、所要プロダ
クションルールの動作部に記述すべき次に起動実行する
処理用クラスタ指定命令に代えて前記制御表現部に戻る
旨の命令を記述することによって、制御表現部に記述さ
れた命令に従って順次処理用クラスタの指定等の処理を
行い得るよう構成する。
また、前記制御表現部の各制御表現要素を1以上のプ
ロダクションルールに変換して制御表現部を1以上のプ
ロダクションルールから成る制御用クラスタに変換する
と共に、各処理用クラスタの所要ルールの動作部に記述
されている処理用クラスタから制御表現部に戻る旨の記
述をそれに相当する動作に変換し、もって制御表現部と
プロダクションルールが一体となって統合的に動作する
ルールベースとなるよう変換する。
(実施例) 以下、図示した実施例に基づいて本発明を詳細に説明
する。
第1図は本発明に係るプログラムの概要を示す図であ
る。
同図において、16、17、18はサブタスク毎に集められ
た複数のルールから成るクラスタで、各々にクラスタA,
B,………Nという名を付けたものであり、各クラスタに
属するルールは従来のルールベースで記述する。
また19は本発明において付加した制御表現でクラスタ
の実行順序を定義するものであり、従来技術に示したよ
うな順次処理、分岐処理、ループ処理等に関するクラス
タ制御に関する各クラスタ内の各ルールの条件部の制御
条件、動作部の制御動作を不要とするものである。
第2図は制御表現を記述するための制御表現要素のい
くつかを例示したもので従来の手続き型言語であるBASI
C等に類した形式をとっている。それらは各々異なった
処理を行うための命令であって数十種類程度決めておけ
ば、ほぼ全ての手続き型の処理が可能である。
制御表現の具体的な記述方法の詳細は後述するが、本
発明ではこのような制御表現要素の中から処理すべき目
的に応じて必要なものを選択使用して制御表現を記述す
ることによって任意のクラスタ制御を可能とする。
次に従来技術にて説明した処理を前記制御表現を用い
た本発明のプログラムでどのように記述するかを具体的
に示す。
第3図(a)はクラスタA、Bを順に実行する際のフ
ローチャートで、同図(b)はそのフローを実行するた
めに本発明に基づいて作成したプログラムである。同図
に示すプロダラムは制御表現部20、クラスタA21、クラ
スタB22から成り、これらは第1図の制御表現19、クラ
スタA16、クラスタB17に相当する。
まず制御表現部について説明すると、制御表現部は制
御表現部である旨を示す“DEFINE MAIN"なる宣言文23、
複数の制御表現要素を順次記述したステップ24〜26及び
制御表現部の終了を示すENDの宣言から成るものであ
る。前記のステップ24、25は該ステップ内で名前を指定
したクラスタを起動実行実行せしめる命令であって、制
御表現部20は全体として複数のクラスタの実行順序を指
定するものである。なお、本実施例に示すFIREとは、第
2図に示す制御表現要素の中の一つであって所要のクラ
スタを名前で選択して起動する記述子であり、所要クラ
スタに属するルール群のみをファイアの候補としてその
他のルール群はファイアの候補としないという命令であ
る。
次にクラスタAの説明をすると、これはクラスタAで
ある旨を示す“DEFIEN CLUSTER クラスタA"なる宣言文
27を記述した後に、ルールArl′〜Arn′を記述し、更に
クラスタの終了を示すENDの宣言を記述したもので、各
ルールには条件部28、動作部29があることは従来のルー
ルと同様である。また、クラスタAの処理を終了すべく
クラスタA内で一番最後にファイアするルールArn′に
はDONE(Aexp)という記述30を付加する。このDONE(Ae
xp)とはクラスタAに於ける処理の終了後、当該クラス
タを選択した制御表現部内のステップ24の次のステップ
に制御を移すべき旨を指令し、またクラスタAの処理に
より得たAexpという名前の情報の値を所定のメモリに記
録する旨指令する記述子である。また、クラスタBはク
ラスタAと同様に宣言文、ルールBr1′〜Brm′及びEND
の宣言から成る。
次に本実施例の動作を説明する。本実施例はクラスタ
A、Bを順に実行するものであり、その実行手順は手続
き型言語におけるメインルーチンとサブルーチンの関係
に似ている。即ち、制御表現部20の第1ステップに基づ
きクラスタAが駆動され、クラスタAの処理の最後に選
択されるルール中の動作部に記述してあるDONE(Aexp)
に従ってクラスタAの処理により得た情報Aexpの値を所
定のメモリに記録した上で制御表現部の第2ステップに
制御が戻る。次にこの第2ステップに基づきクラスタB
が駆動され、クラスタBの処理の最後のルール中のDONE
(Bexp)によってクラスタBの処理により得た情報Bexp
の値を所定のメモリに記録した上で前記同様に制御表現
部の第3ステップに制御が戻る。この戻ったステップに
はSTOPの記述があり、以上で処理は全て終了する。以上
のように従来の手続き型のフロー制御の記述に従って複
数のクラスタを順に駆動することができる。
一般にはあるクラスタの処理終了後は該クラスタの処
理により得た情報に応じて異なるクラスタを駆動し、該
クラスタ処理の最後のルール中のDONE(パラメータ名)
に基づき前記同様に制御表現部の次にステップに戻る、
あるいは制御表現部のステップに記述されている内容に
よってはクラスタを選択するのに代えて次に実行するス
テップを選択し、それら一連の手続きを継続することで
クラスタレベルのフロー制御が進行する。
従来技術で述べた通りのクラスタ制御の技法のみでは
クラスタ間で制御を受け渡すことしかできない。本実施
例では各クラスタと制御表現の間で単に制御の受け渡し
を行うのみでなく、各クラスタの処理によって得た情報
をも制御表現に渡している。このようなことは従来のク
ラスタ制御の技法では大変複雑となり、プログラミング
に多大な工数を要するが本実施例では非常に簡単にプロ
グラミングを行うことができる。
同様にして他の例についても説明する。
第4図(a)は分岐がある場合のフローチャートで、
同図(b)はそれに対応する本発明のプログラムであ
る。同図においてプログラムは制御表現部31、クラスタ
C32、クラスタD33から成る。
制御表現部は宣言文、複数のステップ及びENDから成
ることは前記実施例と同様であり、全体として分岐処理
を行うものである。
第1ステップに記述してある“WHEN Jc1 THEN GOTO
@L1"は、Jc1という条件が成立すれば、詳しくは後述す
るが@L1というラベルのステップへジャンプする命令で
ある。ここでWHENはBASIC、FORTRAN等におけるIFに相当
する。
第3ステップのGOTOはその後に記述してあるラベル@
L2のステップへ無条件ジャンプする命令である。
第4ステップ、第6ステップに示す@L1、@L2のよう
にその一番最初に“@”が記述してあるステップをラベ
ル行と称す。これらは制御表現部内で所望のステップへ
ジャンプする際に参照するための表記であって、何かを
行う命令ではない。ラベルを使用するとループや分岐が
多い際に所要箇所へジャンプすることが簡単にできる。
また、クラスタC、クラスタDは上述の例と同様に宣
言文、ルール及びENDの記述から成っている。
本実施例は分岐のあるフローを実行するものである
が、以下その動作を説明する。
まず第1ステップでJc1という条件が成立するか否か
を判定し、成立する場合はラベル@L1の第4ステップへ
ジャンプする。これは単なるラベルであるので次の第5
ステップへ制御を渡し、クラスタDを実行する。クラス
タDの処理が終了するとラベル@L2の第6ステップを経
て、第7ステップに制御を渡し、STOPで全ての処理を終
了する。
第1ステップでJc1という条件が成立しない場合は第
2ステップへ制御を渡し、クラスタCを実行する。クラ
スタCの処理が終了するとラベル@L2の第6ステップの
@L1を経て第7ステップのSTOPに制御を渡し、全ての処
理を終了する。
以上のように条件判定を行えば、2つのクラスタのい
ずれかに分岐して処理を行うことが出来、クラスタの数
が3以上であっても同様に分岐して処理を行うことが出
来る。
最後のループの例について説明する。
第5図(a)はループ処理のフローチャートで、同図
(b)はそれに対応する本発明のプログラムである。同
図においてプログラムは前記実施例同様制御表現部34及
びクラスタE35から成る。
制御表現部は宣言文、複数のステップ及びENDの記述
から成り、全体として繰り返し処理を行うものである。
第1ステップの@STARTはラベルであり、その他は前
記実施例にて説明したのと同様の記述となっている。
本実施例はループ処理を実行するものであるが、その
動作を説明すると、まず第1ステップ@STARTでは何も
行わずに第2ステップへ制御を渡してJc1という条件が
成立するか否かを判定し、その結果Jc1が成立する場合
はラベル@L1へジャンプした後第6ステップのSTOPに基
づき全ての処理を終了する。
第2ステップでJc1という条件が成立しない場合は第
3ステップ“FIRE クラスタE"へ制御が渡り、クラスタ
Eを実行する。クラスタEの処理が終了すると第4ステ
ップの“GOTO @START"が実行された第1ステップのラ
ベル@STARTを経て、第2ステップにて再び判定を行
う。
本実施例は以上説明したようにある条件が成立するか
否か条件判定を行い、その結果によって分岐先をクラス
タEを起動するステップとするのか終了するステップと
するのかを選択実行するもので、分岐の重要な例である
ループ処理も可能となる。
ここで、以上説明した本発明におけるルールの記述と
従来の記述を比較してみる。まずクラスタA、Bを順に
駆動する場合について考えると、本発明に基づき作成し
た第3図のプログラムではルール中に“&制御^now=ク
ラスタA"といった制御用条件の記述はなく、“MODIFY 1
^now クラスタB"といった制御用動作の記述も必要な
い。分岐がある場合やループがある場合についても同様
にルール群中に制御用条件、制御用動作の記述を行うこ
とはいずれも不要であり、これらに相当する処理は全て
制御表現部で手続き的に記述されている。
即ち、本発明に係るプロダクションシステムは上述の
如き制御表現部とクラスタ群の組合せから成るプログラ
ムで動作するものであり、その一番のポイントは、制御
表現部に制御順序を従来の手続き型言語と同様の感覚で
記述し、ルール群を然るべきクラスタ群に命名分割した
上、各クラスタ内で制御表現部へ戻るべきルールの動作
部には単に“DONE(パラメータ)”なる記述とすれば十
分な点で、プログラマは前述のような従来のクラスタ制
御に比べると非常に簡単に制御表現部を記述することに
よってクラスタ制御できる。従って従来は制御用条件、
動作の記述が複雑であったため実現し得なかった大規模
のプロダクションシステムが、上述の如きプログラムの
記述方法により簡単に実現できる。
以上説明したように本発明によれば複数のクラスタの
実行順序を極めて簡単なプログラミングで制御すること
ができる。即ち本発明は制御表現部に従来の手続き型言
語同様のGOTOによる分岐、REPEAT/UNTILのループ等の記
述を行い、任意のステップへ制御を渡すことによってル
ール内の制御動作の記述を不要にしたものである。従っ
て、これらを適当に組み合わせることによってクラスタ
単位の手続き的なフロー制御を非常に簡単に記述するこ
とができる。
本発明のプロダクションシステムにおいては上述のよ
うにプログラマは制御表現部とルールを分けて記述する
だけでよく、各ルール内の制御条件の記述を考慮する必
要は全くない。
しかしこのように記述された制御表現部とルール群の
組合せから成るプログラムを従来からあるプロダクショ
ンシステムで使用しようとしても、そのプログラムをそ
のまま使用することはできない。その理由は従来のプロ
ダクションシステムには制御表現という概念はないため
その記述は何ら意味をなさず、また制御表現を用いるこ
とによってルール中からクラスタ制御に関する条件と動
作の記述を削除したため、そのままでは従来のプロダク
ションシステムによるクラスタ制御が不可能である。そ
こで次に、従来のプロダクションシステムとの互換性を
確保するため上述の如きプログラムを従来一般に用いら
れていたルールベースのプロダクションシステムの記述
に変換する手法を説明する。その基本的な考え方は制御
表現部の各ステップを1個又は複数のルールに変換する
と共に、各クラスタ内の各ルールには制御用条件と制御
用の動作を付加して従来のルールと同じ形式の記述に変
換し、更にDONE(パラメータ)もそれに対応する動作に
変換するということである。
第6図は本発明に基づいて作成した制御表現部とルー
ル群から成るプログラムを、両者を統合した従来のプロ
ダクションシステムで駆動しうるルールベースに変換す
る方法及び装置の概念図である。
同図において36は読み取り部で、制御表現部とルール
群で記述された上記本発明のプログラム37を読み取り、
各部の最先頭部に記述された制御表現部であるかクラス
タであるかを示す宣言文及びENDの宣言を参照して制御
表現部とルールに分ける。
制御表現部は上述したように数十種類の制御表現要素
のうちいくつかを組み合わせ、かつそれらに変数を含め
て記述したステップの集合であるが、それら各ステップ
を従来のプロダクションシステムを駆動しうる形式の1
個または複数個の従来形式のルールに変換する。即ち、
制御表現変換ブロック38は前記読み取り部36で分離され
た制御表現部の各ステップを読み出し、第2図右蘭に示
した命令に対応するような機能を持つ従来のルール形式
に変換する。また、前記読み取り部36で分離されたルー
ル群もルール変換ブロック39にて従来の形式で記述した
ルール群に変換する。
以上の結果プログラム37は従来のプロダクションシス
テムで実行可能な形式のルール群40に変換され、制御表
現部は制御用クラスタとなる。なお、制御表現部及び各
ルール中に記述されている変数部分はそれぞれのステッ
プあるいはルールによって異なるが、その対応について
は後述するよう変換の際に注意を要する。
以上が変換の基本的な思想であるが、具体的には以下
のような手法を用いればよい。
第7図は制御表現部を従来のプロダクションシステム
にて駆動可能な形式のルールに変換する手法の例を示す
図で、ここでは“FIRE クラスタA"の変換例を示す。
同図において41は制御表現部のある1ステップの先頭
に、当該ステップがその制御表現部内で何番目であるか
を示す論理行番号を付加したものである。この論理行番
号は実際は付いていないが変換に使用する便宜的なもの
で、番号BASICの記述にならい、例えば10番毎の行番号
とする。42は該ステップの制御表現に対応して予め用意
されているテンプレートであり、そのステップにて実行
すべき内容を従来のルールの形式で記述したものである
が、可変部分(ここではα、β、γの蘭)を空欄とした
ものである。該テンプレート42の前記可変部分にステッ
プ41を構成する文字列の然るべき部分を切り取ってはめ
込むことにより、ルール43が作成される。
まず制御用WMEとしてクラス名が制御で属性^nowを有
するもの、及びクラス名が行番で属性^NOを有するもの
の2つを用意する。そしてFIREに対応したテンプレート
は同図に示すようにルール名がLINEαである旨を示す宣
言で始まり、次に条件部である旨を示すIFに続いてクラ
スタを制御する“&制御^now=メイン”、該ステップの
論理行番号を示す“行番^NO=α”及びENDの宣言があ
り、その後に動作部である旨を示すTHENに続いて制御用
WMEを書き換える命令“MODIFY 1 ^now β”、次に実行
すべき制御表現部の論理行番号をクラス行番のWMEの属
性^NOに書き込むための“MODIFY 2 ^NO γ”及びENDを
宣言し、最後にルールの終了を示すENDの宣言を上記の
順に書き並べたものである。上記は一例であるが全ての
種類の制御表現のステップに対応するテンプレートが前
記第6図の制御表現変換ブロック38に付属するメモリ内
に記憶されている。
上例のような2つの条件“&制御 ^now=メイン”及
び“&行番 ^NO=α”はFIRE以外の場合であっても
必ず付加する。
従って変換は、上述のテンプレート42中のαに当該ス
テップの論理行番号“20"を、βには選択起動すべきク
ラスタの名前である“クラスタA"を制御表現から切り取
ってはめ込み、更にγには次に戻るべき制御表現部のス
テップの論理行番号、“30"を入れて43に示すような従
来形式のルールを得る。
以上のような手法により制御表現部のステップは従来
のプロダクションシステムで駆動可能な形式のルールに
変換される。
次に、前のクラスタ処理によって得た値が35であれば
@LABELのステップへジャンプする命令である“WHEN DO
NE=35 THEN GOTO @LABEL"をルールに変換する例を第
8図に示す。
同図において44は上記のような制御表現の1ステップ
の先頭に該ステップの論理行番号例えば40を付加したも
の、45は該ステップに対応して用意されたテンプレート
であり、46は変換した結果作成される従来形式のルール
である。
このテンプレート46が前記第7図と違うところは第1
に条件部に“&結果 ^type=β ^DONE=δ”の記述が
あること、第2に動作部に“MODIFY 1 ^now β”の記
述がなく“MODIFY 1 ^NO ζ”の記述のみであること、
第3に制御表現部の1ステップを2個のルールに変換す
るという点である。
まず第1の点につき説明すると、各クラスタ中のルー
ルからDONE(パラメータ)で制御表現部に受け渡される
情報はクラス名が結果、属性名が^type及び^DONEの2つ
であるWMEに記述されていることを示す。なお、上記^ty
peとは前記情報の型、^DONEはその値を示す。
第2の点につき説明すると、該ステップでは別のクラ
スタを選択起動するクラスタ制御はしないから^nowの値
に変更はなく、制御表現部内で別のステップにジャンプ
するのであるから論理行番号を表す属性の値のみに変更
を行うことを示す。
第3の点につき説明すると、該ステップを2個のルー
ルに変換するのは“前のクラスタ処理によって得た値が
35である”という条件が成立したときと不成立のときの
両方の動作を記述するためである。
従って上記テンプレートのαには当該ステップの行番
号を、βには条件判定に用いる値の型を、δにはその値
35を、εにはGOTOでジャンプする先のラベルのステップ
の論理行番号を、ζには制御表現部の次のステップの論
理行番号を挿入する。
なお、この例のようにGOTOや、GOSUBのように次に実
行するステップの順番を飛び越したり戻ったりする場合
は@L1のようなラベルを用いるが、ラベルを用いている
ステップをルールに変換する際には、当該ステップの記
述のみをもってはラベル行の論理行番号が分からず変換
できない。そこで各ステップに論理行番号を付する時点
でラベルの行があった場合はそのラベル名と論理行番号
の対応関係をメモリ上に記憶しておけばラベル名と論理
行番号を対照でき、上記問題は解決し、ラベル行をルー
ルに変換できる。
次にルール部の変換について説明すると、第9図は本
発明に基づき制御表現部とクラスタ群とに分けたルール
群内の各ルールを従来一般に用いられていたルールの記
述に変換する様子を示す図である。
同図において47は本発明に基づいて記述したクラスタ
Aのルール群であって該ルール群の各ルールが従来と異
なる点は条件部にクラスタ制御用の条件要素“&制御
^now=クラスタA"を欠くこと及び一番最後にファイアす
るルールの動作部に次に選択すべきクラスタ名の代わり
に制御表現部に戻るべき旨を示す命令“DONE(パラメー
タ)”の記述があることである。これを従来形式のルー
ルに変換するには単に“&制御 ^now=クラスタA"とい
う条件を当該クラスタ内の全ルールの条件部に付加し、
一番最後にファイアするルールの動作部に記述された動
作DONE(パラメータ)を“MODIFY 1 ^now メイン”と
変換した上で“パラメータ”の型と実行時の値を前記制
御用のクラス結果のWMEの属性^typeと^DONEに書き込む
ような動作に変換すればよい。この操作は公知のテキス
ト処理の技法によれば容易に実現できる。その結果ルー
ル47は従来形式のルール48に変換される。
上述のような手法により、本発明に基づいて作成した
制御表現部とルール群からなるプログラムを、両者を統
合した従来のプロダクションシステムで駆動しうるルー
ルベースに変換することができる。具体的には第3図に
示す順序処理を行うプログラムは第10図に示すルールベ
ースに、第4図に示す分岐処理を行うプログラムは第11
図に示すルールベースに、第5図に示すループ処理を行
うプログラムは第12図に示すルールベースに各々変換さ
れる。これらは従来のルールベースプログラムとは若干
異なる点はあるが、両者は全く同一の処理を行うもので
あることは自明である。
上述のように変換されたルールは第15図に示す従来の
プロダクションシステムのプロダクションメモリ1に格
納され、プロダクションシステムとして動作する。
以上本発明の原理を説明したが、上述のような形態の
ルール群から成るクラスタ群を用いて手続き型言語同様
の形で記述した制御表現により前記クラスタ群を簡単に
所望の順序で動作させることができる。
このように本発明では制御表現部とルールを分けて書
くだけでよく、各クラスタの中では制御のための条件を
意識せずにプログラミングができる。
従って分岐が多い、あるいはループが何重にもなって
いて複合している場合のようにクラスタ制御の記述が複
雑なために従来は実現が困難だった大規模なプロダクシ
ョンシステムを構築することが容易となる。
さて、上述した以外の制御表現要素も同様の手法で従
来形式のルールに変換することができるが、特にGOSUB/
RETURN及びREPEAT/UNTILについて説明する。
GOSUBはサブルーチンを呼ぶ命令で、RETURNはそのサ
ブルーチンを呼んだ行の次の行へ戻る命令である。サブ
ルーチンの中でサブルーチンを呼ぶ、つまりサブルーチ
ン呼び出しのネスティングを行う際に本質的に必要なこ
とは、最初のメインルーチンから数えて何度目のサブル
ーチン呼び出しであるか、及び当該サブルーチンを呼び
出したサブルーチンの何行目に戻るのかをメモリ上のス
タックで管理把握することである。このためにスタック
ポインタ及びスタックとして働く2種類のWMEを用い
る。
スタックポインタとして使用するのは最初のメインル
ーチンから数えて連続何度目のサブルーチン呼び出しで
あるかを示すためのWMEで、例えばそのクラス名を深
さ、属性名を^spとし、常に1個しか存在しないように
する。またスタックとして使用するのはRETURNによって
元のルーチンのどこの行に戻るべきかを記憶しておくた
めのWMEで、例えばそのクラス名をコールスタック、属
性名を^Ret及び^depthとし、サブルーチンを呼び出す毎
に1つずつ生成され、RETURNで元のルーチンに戻る毎に
1つずつ削除されるようにする。
第13図(a)はGOSUBをルールに変換するテンプレー
トである。
同図において“&深さ ^sp IS β”はメインルーチ
ンから数えて連続何度目のサブルーチン呼び出しである
か、即ちどの深さにいるかをその値のいかんによらず変
数βにコピーする処理である。“LET β=β+1"はβの
値を1増す命令である。MAKEはWMEを生成する命令で、
前記スタック、即ちクラス名がコールスタック、属性名
が^Ret及び^depthであるWMEを生成する。ここでγは当
該サブルーチンを呼び出した元のルーチンのどの行へ戻
るのかを示す論理行番号、βはスタックボインタ^spの
現在の値のコピーである。“MODIFY 2 ^NO δ”は論理
行番号δに当たるサブルーチンのラベルへジャンプする
ための動作である。“MODIFY 3 ^sp β”はサブルーチ
ンを呼び出す毎にスタックの深さを示すスタックポイン
タ^spの値を1増やすことを意味する。
同図(b)はRETURNをルールに変換するテンプレート
である。“LET β=β−1"はβの値を1減らす命令であ
る。“MODIFY 2 ^NO γ”は元のルーチンの戻るべき行
番号γへジャンプするための動作である。“MODIFY 3 ^
sp β”はサブルーチンからそれを呼んだ元のルーチン
へ戻る毎にサブルーチン呼び出しの深さの記録値を1減
らすことを意味する。REMOVEはWMEを削除する命令で、
コールスタック上で元のルーチンのどこの行へ戻るかを
属性^Retに記述してある情報は、元のルーチンに戻った
後は不要となるために削除するものである。
以上のように現在どの深さにいるのかということと、
元のルーチンの何行目に戻るのかを示すWMEを用い、該W
MEの値を変更あるいはWMEを生成、削除することによっ
てGOSUB/RETURNのネスティングが可能となる。
同様にネスティングをしたREPEAT/UNTILも何段目か、
どこの行に戻るのか、値が何であるのかを制御するWME
とそれらWMEを生成、削除、あるいは値を変更すること
によりルールに変換できる。
ところで、本発明は上述のような実施例に限らず種種
の変形をしてもよい。
上記実施例では制御表現部の記述をを手続き型言語と
したが、手続き型言語に限らず単に実行順序を記載した
表でもよい。
また、クラスタから制御表現部に戻るための記述子
“DONE(パラメータ)”はクラスタ内で一番最後にファ
イアするルールに付加するとしたが、複数のルールに付
加してもよい。即ち、クラスタ内の処理の状況によって
第1のルールあるいは第2のルールのいずれかがファイ
アしたら制御表現部に戻したい場合は“DONE(パラメー
タ)”を両方のルールに記述しておけばよい。もちろ
ん、必要に応じて3つ以上のルールに記述してもよく、
DONE(パラメータ)の記述してあるいずれかのルールが
ファイアした後にクラスタ処理は終了して、制御表現部
に戻る。
また、いずれのルールにも記述されていない場合はい
ずれかのルールに自動的に付加するよう構成してもよ
い。
なお、複数のルールの動作部にDONE(パラメータ)を
記述する場合、ルール毎に異なる“パラメータ”を使用
してDONE(パラメータ)と書いてよいことはいうまでも
ない。
更に、クラスタ内の処理によって得た情報は必要に応
じてルール中の“DONE(パラメータ)”という記述によ
りクラス名が結果、属性名が^type及び^DONEの2つであ
るデータ受渡し用のWMEに記憶することは前述した通り
である。その場合に該ルールを従来の形式に変換する際
には、制御表現部に戻るために^nowをメインと書き換え
るのに加えてデータ受渡し用のWMEの属性^type及び^DON
Eをも書き換えることが必要となる。
具体的なテンプレートは第14図に示すように、“MODI
FY 結果 ^type α ^DONE β”という動作を付加し
たものとなる。ここでαは情報の型、βは情報の値であ
る。
これとは逆に制御表現部にて得たパラメータをクラス
タに渡すよう構成してもよい。
更にまた、本発明のように記述したプログラムを従来
形式のルールに変換した後には制御用WMEとしてクラス
名が制御で属性名が^nowのもの及びクラス名が行番で属
性名が^NOのものの2つを用いたが、制御用WMEは1つで
もよい。例えば上記のデータ受渡し用のクラス結果のWM
Eが2個の属性を持っているようにクラス名が制御で^no
wと^NOの2個の属性を有するWMEを用いれば制御用WMEは
1つで済む。
なお、ルールの実行順序を手続き的に制御する方法と
しては上述した方法の他、特開昭61−502359(USP4,56
8,370)に開示される方法もある。これは制御知識に基
づき言語インタプリタを用いて制御手続きを変更する、
即ち競合集合の中からルールを選択する基準そのものを
変更するものである。従ってプログラムを制御部分とル
ール部分に分けて記述するという点において両者は類似
するものの、本発明は言語インタプリタを必要とせず、
また競合集合の中からルールを選択する基準そのものを
変更することもない等構成が全く異なり、両者は直接は
関係ない。
(発明の効果) 本発明は以上説明したように構成し、動作するもので
あるから手続き型言語同様フロー制御を取り扱い易くし
つつ大規模なプロダクションシステムを提供するうえで
著しい効果がある。
【図面の簡単な説明】
第1図は本発明に係るプログラムの概要を示す図、第2
図は制御表現要素の例、第3図はクラスタA、Bを順に
行う例、第4図は分岐のある例、第5図はループのある
例、第6図はルール変換方法の概念図、第7図及び第8
図は制御表現をルールに変換する例、第9図はルールを
従来形式のルールに変換する例、第10図〜第14図は変換
後のルールの例、第15図はプロダクションシステムの構
成例、第16図はプロダクションシステムの動作を示すフ
ローチャート、第17図〜第19図は従来例である。 36……読み取り部、38……制御表現変換ブロック、39…
…ルール変換ブロック
フロントページの続き (72)発明者 槙 正一 神奈川県高座郡寒川町小谷2丁目1番1 号 東洋通信機株式会社内 (72)発明者 安井 嗣了 神奈川県高座郡寒川町小谷2丁目1番1 号 東洋通信機株式会社内 (72)発明者 市瀬 浩 神奈川県高座郡寒川町小谷2丁目1番1 号 東洋通信機株式会社内 審査官 久保 光宏 (56)参考文献 特開 平2−126324(JP,A) 特開 昭63−186303(JP,A) 特開 平1−274243(JP,A) 特開 平2−29828(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 JICSTファイル(JOIS) CSDB(日本国特許庁)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロダクションルールを複数の処理
    用クラスタに区分してメモリに格納しクラスタ制御を行
    うプロダクションシステムに於いて、 上記処理用クラスタとは別の制御表現部をメモリ上に設
    け、該制御表現部は次に起動実行すべき処理用クラスタ
    を指定する命令、あるいはその他フロー制御に関する命
    令を記述した制御表現要素を実行すべき順序に並べて格
    納したものであり、 前記プロダクションルールの所要数は、その動作部に次
    に起動実行する処理用クラスタ指定命令に代えて前記制
    御表現部に戻る旨の命令を記述したものであって、 前記制御表現部に記述された命令に従って順次処理用ク
    ラスタの指定等の処理が実行されることによって、各プ
    ロダクションルールの所要動作部に次に起動実行すべき
    クラスタ名の指定の記述を不要としたことを特徴とする
    プロダクションシステム。
  2. 【請求項2】前記各処理用クラスタには宣言文によって
    クラスタ名が付されており、前記処理用クラスタの指定
    に前記クラスタ名を用いたものであることを特徴とする
    請求項1記載のプロダクションシステム。
  3. 【請求項3】前記制御表現部の記述形式が条件処理、繰
    り返し処理、サブルーチン呼び出し処理のいずれか又は
    それらの組み合わせを含む手続き型言語であることを特
    徴とする請求項1又は2記載のプロダクションシステ
    ム。
  4. 【請求項4】処理用クラスタ内の所要ルール中に、当該
    処理用クラスタから制御表現部に戻る際に制御表現部に
    て参照可能なパラメータが記述されていることを特徴と
    する請求項1乃至3記載のプロダクションシステム。
  5. 【請求項5】請求項1乃至4に記載されたプロダクショ
    ンシステムの前記制御表現部の各制御表現要素を1以上
    のプロダクションルールに変換して制御表現部を1以上
    のプロダクションルールからなる制御用クラスタに変換
    する手段と、 各処理用クラスタの所要ルールの動作部に記述されてい
    る処理用クラスタから制御表現部に戻る旨の記述をそれ
    に相当する動作に変換する手段とを備えることによっ
    て、 制御表現部とプロダクションルールとが一体となって統
    合的に動作するルールベースとなるよう変換することを
    特徴とするプロダクションシステムの変換装置。
  6. 【請求項6】前記制御表現部を以下の手段にてプロダク
    ションルールに変換することを特徴とする請求項5記載
    のプロダクションシステムの変換装置。 1)前記制御表現部の各制御表現要素に論理行番号を付
    加する手段と、 2)前記制御表現部の制御表現要素を呼び出す手段と、 3)前記制御表現要素に相当するプロダクションルール
    であってその可変部分を空欄としたものを記憶する記憶
    手段と、 4)前記制御表現部の制御表現要素を解析し、その結果
    によって該制御表現要素に相当するプロダクションルー
    ルであってその可変部分を空欄としたものを前記記憶手
    段から選択する手段と、 5)前記制御表現部の所要箇所から所要情報を読み出
    し、必要に応じて加工する手段と、 6)前記選択されたプロダクションルールの可変部分に
    前記読み出された情報又は加工した情報を書き込む手段
    と、 7)制御用クラスタ内の全プロダクションルールの条件
    部に、制御用クラスタに属するプロダクションルールの
    みが選択実行される候補となるよう所定の条件を付加す
    る手段と、 8)上記条件部に制御表現部のどの論理行番号に相当す
    るプロダクションルールを実行するかを指定する条件を
    付加する手段と、 9)ある処理用クラスタの実行後、制御用クラスタのど
    の論理行番号と対応する制御表現要素に制御を戻すのか
    を指定する動作を制御用クラスタ内の所要プロダクショ
    ンルールの動作部に付加する手段。
JP2130695A 1990-05-21 1990-05-21 プロダクションシステムとプロダクションシステムの変換装置 Expired - Fee Related JP3049561B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2130695A JP3049561B2 (ja) 1990-05-21 1990-05-21 プロダクションシステムとプロダクションシステムの変換装置
EP19910905903 EP0483359A4 (en) 1990-05-21 1991-03-20 Production system
PCT/JP1991/000374 WO1991018343A1 (en) 1990-05-21 1991-03-20 Production system
US08/327,230 US5452453A (en) 1990-05-21 1994-10-21 Rule based production system adapted for complex procedural flow
US08/486,936 US5615308A (en) 1990-05-21 1995-06-07 Rule-based production system adapted for complex procedures flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2130695A JP3049561B2 (ja) 1990-05-21 1990-05-21 プロダクションシステムとプロダクションシステムの変換装置

Publications (2)

Publication Number Publication Date
JPH0424826A JPH0424826A (ja) 1992-01-28
JP3049561B2 true JP3049561B2 (ja) 2000-06-05

Family

ID=15040414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2130695A Expired - Fee Related JP3049561B2 (ja) 1990-05-21 1990-05-21 プロダクションシステムとプロダクションシステムの変換装置

Country Status (4)

Country Link
US (2) US5452453A (ja)
EP (1) EP0483359A4 (ja)
JP (1) JP3049561B2 (ja)
WO (1) WO1991018343A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4217314A1 (de) 1992-05-26 1993-12-02 Kurt Dr Ammon Adaptives Computersystem
KR100243806B1 (ko) * 1996-06-07 2000-02-01 가네꼬 히사시 공정 플로 작성 시스템
US5893105A (en) * 1996-11-12 1999-04-06 Micrografx, Inc. Executable flowchart
US6154765A (en) 1998-03-18 2000-11-28 Pasocs Llc Distributed digital rule processor for single system image on a clustered network and method
US6226627B1 (en) * 1998-04-17 2001-05-01 Fuji Xerox Co., Ltd. Method and system for constructing adaptive and resilient software
US6701516B1 (en) * 1998-05-21 2004-03-02 Qifang Li P++ software
US6934696B1 (en) 2000-09-15 2005-08-23 Bently Nevada, Llc Custom rule system and method for expert systems
US7065745B2 (en) * 2002-12-16 2006-06-20 Sun Microsystems, Inc. System and method for evaluating and executing hierarchies of rules
US7203826B2 (en) * 2005-02-18 2007-04-10 Qualcomm Incorporated Method and apparatus for managing a return stack
US8578347B1 (en) * 2006-12-28 2013-11-05 The Mathworks, Inc. Determining stack usage of generated code from a model
US7853546B2 (en) * 2007-03-09 2010-12-14 General Electric Company Enhanced rule execution in expert systems
US8418135B2 (en) * 2007-05-31 2013-04-09 Red Hat, Inc. Method and apparatus to abstract away rule languages
JP2008305004A (ja) * 2007-06-05 2008-12-18 Ricoh Co Ltd 画像形成装置、アプリケーション実行方法及びアプリケーション実行プログラム
US8495560B2 (en) * 2009-10-12 2013-07-23 International Business Machines Corporation Converting an activity diagram into code
US9361165B2 (en) * 2009-12-03 2016-06-07 International Business Machines Corporation Automated merger of logically associated messages in a message queue
IN2013MU03243A (ja) * 2013-10-15 2015-07-17 Tata Consultancy Services Ltd
US11137988B2 (en) * 2017-06-02 2021-10-05 Mitsubishi Electric Corporation Program code generation device and computer readable medium
US11232096B2 (en) * 2018-09-06 2022-01-25 Optumsoft, Inc. Automatic generation of an efficient rule set implementation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3651281A (en) * 1969-06-06 1972-03-21 Carl H Becker Laser recording system using photomagnetically magnetizable storage medium
US4568370A (en) * 1982-09-29 1986-02-04 Corning Glass Works Optical fiber preform and method
US4658370A (en) * 1984-06-07 1987-04-14 Teknowledge, Inc. Knowledge engineering tool
US4809219A (en) * 1985-06-26 1989-02-28 International Business Machines Corporation Method for processing an expert system rulebase on a system having limited memory
JPH0652502B2 (ja) * 1987-05-06 1994-07-06 株式会社日立製作所 推論方法
US4837735A (en) * 1987-06-09 1989-06-06 Martin Marietta Energy Systems, Inc. Parallel machine architecture for production rule systems
JP2506991B2 (ja) * 1987-09-25 1996-06-12 松下電器産業株式会社 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム
US5006992A (en) * 1987-09-30 1991-04-09 Du Pont De Nemours And Company Process control system with reconfigurable expert rules and control modules
US5204941A (en) * 1987-09-30 1993-04-20 Sharp Kabushiki Kaisha Element checking system for use in forward inference system
US5165011A (en) * 1988-09-22 1992-11-17 Omron Tateisi Electronics Co. System for switching a rule group
US5101362A (en) * 1988-12-14 1992-03-31 Digital Equipment Corporation Modular blackboard based expert system
JPH07107668B2 (ja) * 1989-01-25 1995-11-15 株式会社日立製作所 知識処理ツールの推論方法
JP2507593B2 (ja) * 1989-04-25 1996-06-12 株式会社東芝 推論方式
US5241652A (en) * 1989-06-08 1993-08-31 Digital Equipment Corporation System for performing rule partitioning in a rete network
JPH047743A (ja) * 1990-04-26 1992-01-13 Toshiba Corp 推論システム
US5303332A (en) * 1990-07-30 1994-04-12 Digital Equipment Corporation Language for economically building complex, large-scale, efficient, rule-based systems and sub-systems

Also Published As

Publication number Publication date
JPH0424826A (ja) 1992-01-28
EP0483359A4 (en) 1992-11-19
US5615308A (en) 1997-03-25
WO1991018343A1 (en) 1991-11-28
EP0483359A1 (en) 1992-05-06
US5452453A (en) 1995-09-19

Similar Documents

Publication Publication Date Title
JP3049561B2 (ja) プロダクションシステムとプロダクションシステムの変換装置
CA1316262C (en) Version management tool
EP0317477B1 (en) Software management structure
JPH0744389A (ja) 知識ベース設計用システムおよび方法
EP0318985A2 (en) Interrogating device and method
US5101362A (en) Modular blackboard based expert system
GB2143667A (en) Instruction system topic-interpreting method
Werner et al. Role-based runtime model synchronization
Reitman Programming intelligent problem solvers
KR101905675B1 (ko) 모듈의 구조 해석을 지원하는 장치 및 프로그램
JP3307461B2 (ja) 推論装置
Smits et al. Logistics of a program system. The DIRDIF program control and command protocol
JP2891128B2 (ja) ファジィルールの表示,編集方法およびその構築装置
JPH0715661B2 (ja) メツセ−ジテキスト組み立て編集制御方式
EP0448641A1 (en) A modular blackboard-based expert system
JPH0644388A (ja) データフローモデルの実行システム
JPH0527951A (ja) プログラム群管理システム
JPS61243534A (ja) プログラム管理方式
JP2017126176A (ja) マイグレーション装置、目的ソースの生産方法、およびプログラム
JPS6041132A (ja) ソフトウエア設計方式
Agustín-Aquino et al. Experimentation
JPH0628029B2 (ja) 多階層プログラムソ−ス管理方式
JPH06332704A (ja) プロダクションシステムにおける推論の制御方式
JP2001060154A (ja) 類似処理実行装置
JPH07239728A (ja) 運転スケジュール更新方式

Legal Events

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