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

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

Info

Publication number
JPH0424826A
JPH0424826A JP2130695A JP13069590A JPH0424826A JP H0424826 A JPH0424826 A JP H0424826A JP 2130695 A JP2130695 A JP 2130695A JP 13069590 A JP13069590 A JP 13069590A JP H0424826 A JPH0424826 A JP H0424826A
Authority
JP
Japan
Prior art keywords
cluster
control
control expression
processing
rule
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
JP2130695A
Other languages
English (en)
Other versions
JP3049561B2 (ja
Inventor
Ichiro Ando
安東 一郎
Akio Sasaki
佐々木 彬夫
Tomoyuki Minamiyama
南山 智之
Shoichi Maki
槙 正一
Tsuguaki Yasui
安井 嗣了
Hiroshi Ichise
浩 市瀬
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.)
SASAKIAKIO JIMUSHO KK
Toyo Communication Equipment Co Ltd
Original Assignee
SASAKIAKIO JIMUSHO KK
Toyo Communication Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SASAKIAKIO JIMUSHO KK, Toyo Communication Equipment Co Ltd filed Critical SASAKIAKIO JIMUSHO KK
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)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はプロダクションシステムに関し、手続き型言語
によるフローの記述とプロダクションルールを統合する
ことによってプログラミングを簡素化する手法及び、該
プログラムを従来のプロダクションシステムにて実行可
能な形式のルールに変換する手法に関する。
〈従来技術) 「もしAならばBせよ」あるいは“IF  ATHEN
  B”の形式で表現される知識をプロダクションルー
ル(以下ルールと称する)と呼び、Aを条件部、Bを動
作部と呼ぶ0条件部と動作部は与えられた問題領域にお
ける専門家の知識に基づき問題解決のためにお互いに関
連付けられたものである。第15図はルールの集合の上
で推論し、知識処理を行うプロダクションシステムの概
念図である。
同図において1はプロダクションメモリ(Produc
tion  Memory)であり、前記ルールを複数
個格納する。2はワーキングメモリ<Working 
Memory以下WMと称す)であり、クラス名と複数
の属性値の組とから成るデータ(Working Me
mory Elewent :以下WMEと称す)を複
数個格納する。推論部3は上述した全てのルールの条件
部と全てのWMEとを照らし合わせ、該ルール群から条
件が全て満足されるものを選び出して競合集合4を作り
、更にその中の1つをある基準に従って選択し、該ルー
ルの動作部に記述しである動作を実行する。
このようにルールの動作部を実行することをそのルール
をファイアするといい、その結果WMの内容の変更が起
こることが一般的であるが、WMの内容に変更があるな
しにかかわらず上記のように競合集合を作り、推論処理
を行うことを繰り返す。
第16図は上述の動作を示すフローチャートであり、S
T1〜ST3のステップからなる。
(STI :照合) ルール群の条件とデータの突き合わせ (ST2 :競合解消) 実行するルールの選択 (ST3 :実行) 選択したルールの実行、データの更新 プロダクションシステムは以上ST1〜ST3のステッ
プを一般にWMEを更新しつつ繰り返して実行し所望の
結果を得るものであるが、結果の如何に関わらずIFの
後の条件を全て満足するルールがなくなるかあるいはT
HENの後の動作部に停止する旨の記述がある場合は処
理を終了する。
上述したルールの条件部は複数の条件(以下条件要素と
称す)の組み合わせであることが多いが、プログラマは
単にそのような条件要素を書き並べるだけでよい。又、
動作部には条件部に対応してどのような処理を行うかの
みを処理を行う順に書けばよく、どのようにして競合集
合を作るのか、即ちルールの条件部とWMEの照合をど
のように行うかはどこにも書く必要はない、これは、上
記ルールの実行順序はルールに含まれた専門的知識に基
づき自動的に決定されるためであって、選択された複数
のルールのうちいずれを選ぶかはシステムによって予め
定めである基準、例えば最多数の条件要素を持つものか
ら選択するといった基準に従うため、プログラマはルー
ルの記述順序を考慮する必要はなく、ルールをどのよう
な順番で並べてもよい。
以上のような点がルールベースの記述上の利点であり、
通常の手続き型の言語ではプログラミングが複雑かつ面
倒な処理をいとも簡単に記述できる。
しかし、上述した基本的なプロダクションシステムの考
え方では次のような欠点があった。
即ち、ルールがどのような順□番で並んでいてもよいと
いうことは、どのルールも選ばれる可能性は全て平等で
あるということであるが、実際の処理においては特定の
ルール群のみを選択の対象にしたり、あるいは無視した
りしたいことが頻繁に発生する。つまりある処理を行っ
ている間はその処理に関連するルール群のみを選択候補
としたい場合が多いが、そのような場合でもルールベー
スでは特定のルール群をプログラマが任意かつ明示的に
選択することは非常に困難である。換言すればルールベ
ースではルール群の選択を制御することが非常に難しく
、ある特定の目的例えば入力、計数、印字等の処理(以
下サブタスクと称する)を順次に実行するためのルール
群のみを集めてモジュール化して選択することは難しい
。従って、従来の手続き型の言語のように複数のサブタ
スクの分岐あるいはループ等を含む処理を行う際にはプ
ログラミング上のテクニックが必要で、例えば「クラス
タ制御」と呼ばれる方法を用いていた。
クラスタ制御とは前記各々のサブタスクを実行するため
に必要なルール群それぞれをクラスタと定義し、各ルー
ルの条件部にはどのクラスタに属するかを記述すること
をその内容とするルールベースのプログラミング技法で
ある。具体的にはどのクラスタを実行するかを指定する
制御用WMEを用意し、例えばそのクラス名を制御、属
性名をnow、値をクラスタAとし、条件部に“&制御
 −n o w =クラスタ制御なる条件要素を持った
もののみを選択の候補とする。上側の条件要素の意味は
「クラス名が制御のWMEで、属性−nOWの値が“ク
ラスタA“のものがあれば」という意味である。尚、制
御用WMEはクラスタ制御においては常に1個だけ存在
し、あるクラスタ内の処理が終了する毎にその属性値を
次に起動すべきクラスタ名に書き換えることによって順
次具なるクラスタを選択することができるようにする。
以上のようなりラスタ制御を用いて処理を行う場合の実
例を説明する。
第17図(a)はサブタスクA及びサブタスクBを順に
実行する場合のフローチャートであり、同図(b)はそ
れに対応したルール群である。同図において5及び6は
サブタスクA及びBであり、Arl〜Arnはクラスタ
Aに属するルール群、Brl〜BrmはクラスタBに属
するルール群である。ルールArlはルールArlであ
る旨を示す“DEF INE  RULE  Arl”
で始まり、その後に条件部7、動作部8を記述し、EN
Dで終わる0条件i!J7は条件部である旨を示す“I
F”の後にクラス塩が制御、属性名が−now、−no
vの値がクラスタAであるWMEが存在するという条件
要素“&制御 −now=クラスタA”、及び複数の条
件要素をまとめて一般的に記した’Acl”という条件
要素群から成り、ENDで終わる。動作部8は“THE
N”の後に複数の動作を一般的に記したAalという動
作群から成り、ENDで終わる。他のルールも同様に記
述されている。
なお、この例では上記ArlのAはクラスタAに関する
ことを、rはルールであることを、AclのCは条件で
あることを、Aalのaは動作であることを示し、その
他のルールについても同様にrはルールであることを、
Cは条件であることを、aは動作であることを示す、ま
た、後に述べるがWMEが存在しないという条件要素の
場合は“&°“に代わり“?”を用いる。
第17図のルール群を使用して処理を行うには同図(C
)に示すように制御用WMEを用意する。
例えばそのクラス塩を制御、属性名を−nowとした時
、該制御用WMEの属性−nowの値がクラスタAであ
るならば、条件部に“&制御 ゛n0W−クラスタA”
という条件要素を含むルールは選択されうるが、そのよ
うな条件要素を含まないルールは選択されないにれとは
逆に制御用WMEの属性−nowの値がクラスタBであ
るならば、条件部に“&制御 −n o w =クラス
タB”という条件を含むルールは選択されうるが、その
条件を含まないルールは選択されない。
即ち上述の例の場合、サブタスクAに関する全てのルー
ルの条件部にのみ“&制御 −n o w −クラスタ
A”という条件要素を記述し、サブタスクBに関する全
てのルールの条件部にのみ“&制御  n o w =
クラスタB”という条件要素を記述する。更に、サブタ
スクAの実行中一番最後にファイアするルールArnの
動作部には前記制御用WMEの属性−novの値をクラ
スタBと書き直す“MOI)IFY  1 −now 
 クラスタB″という動作9を記述し、またサブタスク
Bの一番最後にファイアするルールBr鳳の動作部には
5TOPという動作10を記述する。ここでMOD I
FYの後の数字1は条件部の何行目の条件要素とマツチ
するWMEの属性値を書き換えるのがを示すもので、こ
のような記述法によって属性値を更新するWMEのクラ
ス塩を省略することかて゛きる。
以上第17図(b)に示したプログラミング技法によれ
ば初期条件を“&制御  now−クラスタA”とすれ
ばクラスタAの実行が終了したら制御用WMEの属性値
がクラスタBに書き換えられ、次にクラスタBを実行す
ることができる。クラスタの数は3以上であっても同様
にそれらを順次選択し、実行することができる。
次に第18図(a)に分岐のある場合のフローチャート
を、同図(b)にそれに対応したルール群を示す、第1
8図において11は分岐榮件の判定処理で、これに対応
するクラスタJのルールの条件部に記述された“&制御
 −rlQW−クラスタJ”及びJclなる条件が満た
されるか否かによって次にクラスタC12かクラスタD
13のいずれかを選択実行する手順を示すものである。
またJrl、Jr2はクラスタJを構成するルール群で
あり、その条件部には共に“&制511 −now=ク
ラスタJ”という条件を有し、更にルールJrlではJ
clが成立し、ルールJr2ではJclが成立しないと
いう条件を付加したものである。
処理に当たってはまず初期条件が“&制御now−クラ
スタJ”を満たすこと及びWME中にJclを満たすデ
ータが存在するか否かによって前記ルールJrl又はJ
r2のいずれかを選んでファイアする。
その結果該ルールの動作部に記載された動作に従い、前
記制御用WMEの値を書き換えることによってクラスタ
C又はDのいずれかに分岐して該クラスタを実行できる
。処理C12及びD13に対応するルール群及びそれら
の実行については前記第17図に示した例と同様である
ので省略する。
最後に第19図(a)にループを含む場合のフローチャ
ートを、同図(b)にそれに対応するルール群を示す、
第19図において14は分岐条件の判定を行う処理で、
プロダクションシステム上でクラスタJのルール群の条
件部に記述された“&制御 −n o w =クラスタ
J”及びJclなる条件が満たされるか否かによって次
にクラスタE15を実行するか処理を終了するかを選択
実行する処理と対応するものである。Jrl、Jr2は
クラスタJ内のルールであり、この部分については前記
第18図と同様であるので説明は省略する。また、ルー
ルEcnはクラスタEの実行中最後にファイアするもの
で、処理が終了したら制御用のクラス制御のWMEの属
性−nowの値をクラスタJに書き換え、判定処理14
へ戻る。
処理に当たってはまず初期条件が“&制御n o w 
=クラスタJ”であればWM中にJclを満たすWME
が存在するか否かによって前記ルールJrl又はJr2
のいずれかを選んでファイアする。
その結果該ルールの動作部に記載された動作に従い、前
記制御用WMEの値を書き換えることによってクラスタ
Eを実行するか、あるいは書き換えずに処理を終了する
かを選択し、クラスタEの処理が終了したら“&制御 
−now−クラスタJ”とWMEの値を変更することに
よって判定を繰り返し、分岐条件が満たされるまでルー
プ処理を繰り返す。
しかしながら、上記3つの例では当然ながらクラス名が
制御で−nowという属性を持ったクラスタ制御用のW
MEが必要である。またこれと共に各ルールにおける条
件部にAclのような本来の条件に加えて、例えば“&
制御 −n o w =クラスタA”というクラスタ制
御用条件要素も必要である。更に、例えばクラスタAの
実行後クラスタBの実行を行うには最後に実行されるル
ール中に“MODIFY  1 −now  クラスタ
B”というように−nowの値をどう変更するかという
制御動作の記述も必要である。
第18図に示した例では説明を簡単にするためにクラス
タ制御用条件はnowの値がクラスタJ、クラスタC、
クラスタDの3種類としたが、実用的なプロダクション
システムで所要の動作を行わせるためには多数のクラス
タが必要である。
しかし多数のクラスタ全てについて次に選択すべきクラ
スタを把握し、分岐あるいはループ毎に綿密に場合分け
をした上でクラスタ制御用条件及び動作をルールに付加
することは実用上は不可能に近い位大変である。即ち、
原理的には10ダクシヨンシステムでもクラスタ制御を
用いれば手続き型処理は可能ではあるが、人間のプログ
ラム作成能力には限界があるため、コンピュータの能力
の大小にかかわらず現状ではたかだか数百〜数千のルー
ルから成るプロダクションシステムしか実現していない
。つまり複雑な順序制御を必要とする大規模プロダクシ
ョンシステムを実現することは従来技術では非常に困難
であった。
(発明の目的) 本発明は上述したような従来のプロダクションシステム
の問題を解決するためになされたものであって、複雑な
順序制御を含むプロダクションシステムのクラスタ単位
のフロー制御を手続き型言語同様に簡単に記述すること
を可能とし、その結果大規模なプロダクションシステム
の構築を可能としたプログラム記述方法及びその変換手
法を提供することを目的とする。
(発明の概要) 上記目的を達成するため本発明は以下のように構成する
即ち、クラスタ制御を行うプロダクションシステムにお
いて、次に起動実行すべき処理用クラスタを指定する命
令、あるいはその他フロー制御に関する命令を記述した
制御表現要素を実行すべき順序に並べて上記処理用クラ
スタとは別の制御表現部を備えると共に、所要プロダク
ションルールの動作部に記述すべき次に起動実行する処
理用クラスタ指定命令に代えて前記制御表現部に戻る旨
の命令を記述することによって、制御表現部に記述され
た命令に従って順次処理用クラスタの指定等の処理を行
い得るよう構成する。
また、前記制御表現部の各制御表現要素を1以上のプロ
ダクションルールに変換して制御表現部を1以上のプロ
ダクションルールから成る制御用クラスタに変換すると
共に、各処理用クラスタの所要ルールの動作部に記述さ
れている処理用クラスタから制御表現部に戻る旨の記述
をそれに相当する動作に変換し、もって制御表現部とプ
ロダクションルールが一体となって統合的に動作するル
ールベースとなるよう変換する。
(実施例) 以下、図示した実施例に基づいて本発明の詳細な説明す
る。
第1図は本発明に係るプログラムの概要を示す図である
同図において16.17.18はサブタスク毎に藁めら
れた複数のルールがら成るクラスタで、各々にクラスタ
A、B、・・・・・・・・・Nという名を付けたもので
あり、各クラスタに属するルールは従来のルールベース
で記述する。
また19は本発明において付加した制御表現でクラスタ
の実行順序を定義するものであり、従来技術に示したよ
うな順次処理、分岐処理、ループ処理等に関するクラス
タ制御に間する各クラスタ内の各ルールの条件部の制復
条件、動作部の制御動作を不要とするものである。
第2図は制御表現を記述するための制御表現要素のいく
つかを例示したもので従来の手続き型言藷であるBAS
、IC等に類した形式をとっている。
それらは各々異なった処理を行うための命令であって数
十種類程度決めておけば、はぼ全ての手続き型の処理が
可能である。
制御表現の具体的な記述方法の詳細は後述するが、本発
明ではこのような制御表現要素の中から処理すべき目的
に応じて必要なものを選択使用して制御表現を記述する
ことによって任意のクラスタ制御を可能とする。
次に従来技術にて説明した処理を前記制御表現を用いた
本発明のプログラムでどのように記述するかを具体的に
示す。
第3図(a)はクラスタA、Bを順に実行する際のフロ
ーチャートで、同図(b)はそのフローを実行するため
に本発明に基づいて作成したプログラムである。同図に
示すプログラムは制御表現部20、クラスタA21、ク
ラスタB22から成り、これらは第1図の制御表現19
、クラスタA16、クラスタB17に相当する。
まず制御表現部について説明すると、制御表現部は制御
表現部である旨を示す“DEFINEMAIN”なる宣
言文23、複数の制御表現要素を順次記述したステップ
24〜26及び制御表現部の終了を示すENDの宣言が
ら成るものである。
前記のステップ24.25は該ステップ内で名前を指定
したクラスタを起動実行実行せしめる命令であって、制
御表現部2oは全体として複数のクラスタの実行順序を
指定するものである。なお、本実施例に示すFIREと
は、第2図に示す制御表現要素の中の一つであって所要
のクラスタを名前で選択して起動する記述子であり、所
要クラスタに属するルール群のみをファイアの候補とし
てその他のルール群はファイアの候補としないという命
令である。
次にクラスタAの説明をすると、これはクラスタATあ
る旨を示す’DEFINE  CLtJSTERクラス
タA”なる宣言文27を記述した後に、ルールArl″
〜Arn’を記述し、更にクラスタの終了を示すEND
の宣言を記述したもので、各ルールには条件部28、動
作部29があることは従来のルールと同様である。また
、クラスタAの処理を終了すべくクラスタA内で一番最
後にフアイアするルールArn’にはDONE (Ae
xp)という記述30を付加する。このDONE (A
exp)とはクラスタAに於ける処理の終了後、当該ク
ラスタを選択した制御表現部内のステップ24の次のス
テップに制御を移すべき旨を指令し、またクラスタAの
処理により得たAexpという名前の情報の値を所定の
メモリに記録する旨指令する記述子である。また、クラ
スタBはクラスタAと同様に宣言文、ルールBrl’〜
Brm’及びENDの宣言から成る。
次に本実施例の動作を説明する。本実施例はクラスタA
、Bを順に実行するものであり、その実行手順は手続き
型言語におけるメインルーチンとサブルーチンの関係に
似ている。即ち、制御表現部20の第1ステツプに基づ
きクラスタAが駆動され、クラスタAの処理の最後に選
択されるルール中の動作部に記述しであるDONE (
Aexp)に従ってクラスタAの処理により得た情報A
expの値を所定のメモリに記録した上で制御表現部の
第2ステツプに制御が戻る0次にこの第2ステツプに基
づきクラスタBが駆動され、クラスタBの処理の最後の
ルール中のDONE (Bexp)によってクラスタB
の処理により得た情報Bexpの値を所定のメモリに記
録した上で前記同様に制御表現部の第3ステツプに制御
が戻る。この戻ったステップには5TOPの記述があり
、以上で処理は全て終了する0以上のように従来の手続
き型のフロー制御の記述に従って複数のクラスタを順に
駆動することができる。
一般にはあるクラスタの処理終了後は該クラスタの処理
により得た情報に応じて異なるクラスタを駆動し、該ク
ラスタ処理の最後のルール中のDONE (パラメータ
名)に基づき前記同様に制御表現部の次のステップに戻
る、あるいは制御表現部のステップに記述されている内
容によってはクラスタを選択するのに代えて次に実行す
るステップを選択し、それら一連の手続きを継続するこ
とでクラスタレベルのフロー制御が進行する。
従来技術で述べた通りのクラスタ制御の技法のみではク
ラスタ間で制御を受は渡すことしかできない。本実施例
では各クラスタと制御表現の間で単に制御の受は渡しを
行うのみでなく、各クラスタの処理によって得た情報を
も制御表現に渡している。このようなことは従来のクラ
スタ制御の技法では大変複雑となり、プログラミングに
多大な工数を要するが本実施例では非常に簡単にプログ
ラミングを行うことができる。
同様にして他の例についても説明する。
第4図(a)は分岐がある場合のフローチャートで、同
図(b)はそれに対応する本発明のプログラムである。
同図においてプログラムは制御表現部31、クラスタC
32、クラスタD33から成る。
制御表現部は宣言文、複数のステップ及びENDから成
ることは前記実施例と同様であり、全体として分岐処理
を行うものである。
第1ステツプに記述しである“WHEN  JclTH
EN  GOTOOLl”は、Jclという条件が成立
すれば、詳しくは後述するがOLlというラベルのステ
ップヘジャンプする命令である。
ここでWHENはBAS IC,FORTRAN等にお
けるIFに相当する。
第3ステツプのGOTOはその後に記述しであるラベル
@L2のステップへ無条件ジャンプする命令である。
第4ステツプ、第6ステツプに示すOLl、@L2のよ
うにその一番最初に°゛@”が記述しであるステップを
ラベル行と称す。これらは制御表現部内で所望のステッ
プヘジャンブする際に参照するための表記であって、何
かを行う命令ではない。
ラベルを使用するとループや分岐が多い際に所要箇所ヘ
ジャンブすることが簡単にできる。
また、クラスタC、クラスタDは上述の例と同様に宣言
文、ルール及びENDの記述から成っている。
本実施例は分岐のあるフローを実行するものであるが、
以下その動作を説明する。
まず第1ステツプでJclという条件が成立するか否か
を判定し、成立する場合はラベル@L1の第4ステツプ
ヘジヤンブする。これは単なるラベルであるので次の第
5ステツプへ制御を渡し、クラスタDを実行する。クラ
スタDの処理が終了するとラベル@L2の第6ステツプ
を経て、第7ステツプに制御を渡し、5TOPで全ての
処理を終了する。
第1ステツプでJclという条件が成立しない場合は第
2ステツプへ制御を渡し、クラスタCを実行する。クラ
スタCの処理が終了するとラベル@L2の第6ステツプ
の@L1を経て第7ステツプの5TOPに制御を渡し、
全ての処理を終了する。
以上のように条件判定を行えば、2つのクラスタのいず
れかに分岐して処理を行うことが出来、クラスタの数が
3以上であっても同様に分岐して処理を行うことが出来
る。
最後にループの例について説明する。
第5図(a)はループ処理のフローチャートで、同図(
b)はそれに対応する本発明のプログラムである。同図
においてプログラムは前記実施例同様制御表現部34及
びクラスタE35から成る。
制御表現部は宣言文、複数のステップ及びENDの記述
から成り、全体として繰り返し処理を行うものである。
第1ステツプの@5TARTはラベルであり、その他は
前記実施例にて説明したのと同様の記述となっている。
本実施例はループ処理を実行するものであるが、その動
作を説明すると、まず第1ステツプ@5TARTでは何
も行わずに第2ステツプへ制御を渡してJclという条
件が成立するか否かを判定し、その結果Jclが成立す
る場合はラベル@L1ヘジャンプした後第6ステツプの
5TOPに基づき全ての処理を終了する。
第2ステツプでJClという条件が成立しない場合は第
3ステツプ“FIRE  クラスタE”へ制御が渡り、
クラスタEを実行する。クラスタEの処理が終了すると
第4ステツプの“GOTO@5TART”が実行されて
第1ステツグのラベル@5TARTを経て、第2ステツ
プにて再び判定を行う。
本実施例は以上説明したようにある条件が成立するか否
か条件判定を行い、その結果によって分岐先をクラスタ
Eを起動するステップとするのか終了するステップとす
るのかを選択実行するもので、分岐の重要な例であるル
ープ処理も可能となる。
ここで、以上説明した本発明におけるルールの記述と従
来の記述を比較してみる。まずクラスタA、Bを順に駆
動する場合について考えると、本発明に基づき作成した
第3図のプログラムではルール中に“&制@  −no
w=クラスタA”といった制御用条件の記述はなく、“
MOD I FYl  −now  クラスタB”とい
った制御用動作の記述も必要ない0分岐がある場合やル
ープがある場合についても同様にルール群中に制御用条
件、111161用動作の記述を行うことはいずれも不
要であり、これらに相当する処理は全て制御表現部で手
続き的に記述されている。
即ち、本発明に係るプロダクションシステムは上述の如
き制御表現部とクラスタ群の組合せから成るプログラム
で動作するものであり、その一番のポイントは、制御表
現部に制御順序を従来の手続き型言語と同様の感覚で記
述し、ルール群を然るべきクラスタ群に命名分割した上
、各クラスタ内で制御表現部へ戻るべきルールの動作部
には単に“DONE (パラメータ)”なる記述をすれ
ば十分な点で、プログラマは前述のような従来のクラス
タ制御に比べると非常に簡単に制御表現部を記述するこ
とによってクラスタ制御できる。従って従来は制御用条
件、動作の記述が複雑であったため実現し得なかった大
規模のプロダクションシステムが、上述の如きプログラ
ムの記述方法により簡単に実現できる。
以上説明したように本発明によれば複数のクラスタの実
行順序を極めて簡単なプログラミングで制御することが
できる。即ち本発明は制御表現部に従来の手続き型言語
同様のGOTOによる分岐、REPEAT/UNTI 
Lのループ等の記述を行い、任意のステップへ制御を渡
すことによってルール内の制御動作の記述を不要にした
ものである。
従って、これらを適当に組み合わせることによってクラ
スタ単位の手続き的なフロー制御を非常に簡単に記述す
ることができる。
本発明のプロダクションシステムにおいては上述のよう
にプログラマは制御表現部とルールを分けて記述するだ
けでよく、各ルール内の制御条件の記述を考慮する必要
は全くない。
しかしこのように記述された制御表現部とルール群の組
合せから成るプログラムを従来からあるプロダクション
システムで使用しようとしても、そのプログラムをその
まま使用することはできない、その理由は従来のプロダ
クションシステムには制御表現という概念はないためそ
の記述は何ら意味をなさず、また制御表現を用いること
によってルール中からクラスタ制御に関する条件と動作
の記述を削除したため、そのままでは従来のプロダクシ
ョンシステムによるクラスタ制御が不可能である。そこ
で次に、従来のプロダクションシステムとの互換性を確
保するため上述の如きプログラムを従来一般に用いられ
ていたルールベースのプロダクションシステムの記述に
変換する手法を説明する。その基本的な考え方は制御表
現部の各ステップを1個又は複数のルールに変換すると
共に、各クラスタ内の各ルールには制御用条件と制御用
の動作を付加して従来のルールと同じ形式の記述に変換
し、更にDONE (パラメータ)もそれに対応する動
作に変換するということである。
第6図は本発明に基づいて作成した制御表現部とルール
群から成るプログラムを、両者を統合した従来のプロダ
クションシステムで駆動しうるルールベースに変換する
方法及び装置の概念図である。
同図において36は読み取り部で、制御表現部とルール
群で記述された上記本発明のプログラム37を読み取り
、各部の最先頭部に記述された制御表現部であるかクラ
スタであるかを示す宣言文及びENDの宣言を参照して
制御表現部とルールに分ける。
制御表現部は上述したように数十種類の制御表現要素の
うちいくつかを組み合わせ、かつそれらに変数を含めて
記述したステップの集合であるが、それら各ステップを
従来のプロダクションシステムを駆動しうる形式の1個
または複数個の従来形式のルールに変換する。即ち、制
御表現変換ブロック38は前記読み取り部36で分離さ
れた制御表現部の各ステップを読み出し、第2図右欄に
示した命令に対応するような機能を持つ従来のルール形
式に変換する。また、前記読み取り部36で分離された
ルール群もルール変換ブロック3つにて従来の形式で記
述したルール群に変換する。
以上の結果プログラム37は従来のプロダクションシス
テムで実行可能な形式のルール群40に変換され、制御
表現部は制御用クラスタとなる。
なお、制御表現部及び各ルール中に記述されている変数
部分はそれぞれのステップあるいはルールによって異な
るが、その対応については後述するよう変換の際に注意
を要する。
以上が変換の基本的な思想であるが、具体的には以下の
ような手法を用いればよい。
第7図は制御表現部を従来のプロダクションシステムに
て駆動可能な形式のルールに変換する手法の例を示す図
で、ここでは“FIRE  クラスタA”の変換例を示
す。
同図において41は制御表現部のある1ステツプの先頭
に、当該ステップがその制御表現部内で何番目であるか
を示す論理行番号を付加したものである。この論理行番
号は実際は付いていないが変換に使用する便宜的なもの
で、番号BASICの記述にならい、例えば10番毎の
行番号とする。
42は該ステップの制御表現に対応して予め用意されて
いるテンプレートであり、そのステップにて実行すべき
内容を従来のルールの形式で記述したものであるが、可
変部分くここではα、β、γのlfりを空欄としたもの
である。該テンプレート42の前記可変部分にステップ
41を構成する文字列の然るべき部分を切り取ってはめ
込むことにより、ルール43が作成される。
まず制御用WMEとしてクラス名が制御で属性nowを
有するもの、及びクラス名が行番で属性−Noを有する
ものの2つを用意する。そしてFIREに対応したテン
プレートは同図に示すようにルール名がLINEαであ
る旨を示す宣言で始まり、次に条件部である旨を示すI
Fに続いてクラスタを制御する“&制御 −now−メ
イン、該ステップの論理行番号を示す“符番 −NO=
α”及びENDの宣言があり、その後に動作部である旨
を示すTHENに続いて制御用WMEを書き換える命令
“MODIFY  1   nowβ”、次に実行すべ
き制御表現部の論理行番号をクラス符番のWMEの属性
−NOに書き込むための“MODIFY  2 −NO
r”及びENDを宣言し、最後にルールの終了を示すE
NDの宣言を上記の順に書き並べたものである。上記は
一例であるが全ての種類の制御表現のステップに対応す
るテンプレートが前記第6図の制御表現変換ブロック3
8に付属するメモリ内に記憶されている。
上側のような2つの条件“&制gin o w =メイ
ン”及び“&符番 −No−α”はFIRE以外の場合
であっても必ず付加する。
従って変換は、上述のテンプレート42中のαに当該ス
テップの論理行番号“20”を、βには選択起動すべき
クラスタの名前である“クラスタA”を制御表現から切
り取ってはめ込み、更にγには次に戻るべき制御表現部
のステップの論理行番号、“30”を入れて43に示す
ような従来形式のルールを得る。
以上のような手法により制御表現部のステップは従来の
プロダクションシステムで駆動可能な形式のルールに変
換される。
次に、前のクラスタ処理によって得た値が35であれば
@LABELのステップヘジャンプする命令である“W
HEN  DONE=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及びDO
NEの2つであるWMEに記述されていることを示す、
なお、上記−typeとは前記情報の型、−DONEは
その値を示す。
第2の点につき説明すると、該ステップでは別のクラス
タを選択起動するクラスタ制御はしないから−nowの
値に変更はなく、制御表現部内で別のステップにジャン
プするのであるから論理行番号を表す属性の値のみに変
更を行うことを示す。
第3の点につき説明すると、該ステップを2個のルール
に変換するのは“前のクラスタ処理によって得た値が3
5である”という条件が成立したときと不成立のときの
両方の動作を記述するためである。
従って上記テンプレートのαには当該ステップの行番号
を、βには条件判定に用いる値の型を、δにはその値3
5を、εにはGOTOでジャンプする先のラベルのステ
ップの論理行番号を、ζには制御表現部の次のステップ
の論理行番号を挿入する。
なお、この例のようにGOTOや、GO3UBのように
次に実行するステップの順番を飛び越したり戻ったりす
る場合は@L1のようなラベルを用いるが、ラベルを用
いているステップをルールに変換する際には、当該ステ
ップの記述のみをもってはラベル行の論理行番号が分か
らず変換できない、そこで各ステップに論理行番号を付
する時点でラベルの行があった場合はそのラベル名と論
理行番号の対応関係をメモリ上に記憶しておけばラベル
名と論理行番号を対照でき、上記問題は解決し、ラベル
行をルールに変換できる。
次にルール部の変換について説明すると、第9図は本発
明に基づき制御表現部とクラスタ群とに分けたルール群
内の各ルールを従来一般に用いられていたルールの記述
に変換する様子を示す図である。
同図において47は本発明に基づいて記述したクラスタ
Aのルール群であって該ルール群の各ルールが従来と異
なる点は条件部にクラスタ制御用の条件要素“&制御 
−now=クラスタA”を欠くこと及び一番最後にファ
イアするルールの動作部に次に選択すべきクラスタ名の
代わりに制御表現部に戻るべき旨を示す命令“DONE
 (パラメータ)”の記述があることである。これを従
来形式のルールに変換するには単に“&制@−nOW 
=クラスタA”という条件を当該クラスタ内の全ルール
の条件部に付加し、一番最後にファイアするルールの動
作部に記述された動作DONE(パラメータ)を“MO
DIFY  1 −nowメイン”と変換した上で“パ
ラメータ”の型と実行時の値を前記制御用のクラス結果
のWMEの属性−typeと−DONEに書き込むよう
な動作に変換すればよい、この操作は公知のテキスト処
理の技法によれば容易に実現できる。その結果ルール4
7は従来形式のルール48に変換される。
上述のような手法により、本発明に基づいて作成した制
御表現部とルール群からなるプログラムを、両者を統合
した従来のプロダクションシステムで駆動しうるルール
ベースに変換することができる。具体的には第3図に示
す順序処理を行うプログラムは第10図に示すルールベ
ースに、第4図に示す分岐処理を行う10グラムは第1
1図に示すルールベースに、第5図に示すループ処理を
行うプログラムは第12図に示すルールベースに各々変
換される。これらは従来のルールベースプログラムとは
若干具なる点はあるが、両者は全く同一の処理を行うも
のであることは自明である。
上述のように変換されたルールは第15図に示す従来の
プロダクションシステムのプロダクションメモリ1に格
納され、プロダクションシステムとして動作する。
以上本発明の詳細な説明したが、上述のような形態のル
ール群から成るクラスタ群を用いて手続き型言語同様の
形で記述した制御表現により前記クラスタ群を簡単に所
望の順序で動作させることができる。
このように本発明では制御表現部とルールを分けて書く
だけでよく、各クラスタの中では制御のための条件を意
識せずにプログラミングができる。
従って分岐が多い、あるいはループが何重にもなってい
て複合している場合のようにクラスタ制御の記述が複雑
なために従来は実現が困難だった大規模なプロダクショ
ンシステムを構築することが容易となる。
さて、上述した以外の制御表現要素も同様の手法で従来
形式のルールに変換することができるが、特4:GO3
UB/RETURN及びREPE・AT/UNTILに
ついて説明する。
GOSUBはサブルーチンを呼ぶ命令で、RETURN
はそのサブルーチンを呼んだ行の次の行へ戻る命令であ
る。サブルーチンの中でサブルーチンを呼ぶ、つまりサ
ブルーチン呼び出しのネスティングを行う際に本質的に
必要なことは、最初のメインルーチンから数えて何度口
のサブルーチン呼び出しであるか、及び当該サブルーチ
ンを呼び出したサブルーチンの何行目に戻るのかをメモ
リ上のスタックで管理把握することである。このために
スタックポインタ及びスタックとして働く2種類のWM
Eを用いる。
スタックポインタとして使用するのは最初のメインルー
チンから数えて連続何度口のサブルーチン呼び出しであ
るかを示すためのWMEで、例えばそのクラス名を深さ
、属性名をspとし、常に1個しか存在しないようにす
る。またスタックとして使用するのはRETURNによ
って元のルーチンのどこの行に戻るべきかを記憶してお
くためのWMEで、例えばそのクラス名をコールスタッ
ク、属性名を−Ret及び−depthとし、サブルー
チンを呼び出す毎に1つずつ生成され、RETURNで
元のルーチンに戻る毎に1つずつ削除されるようにする
第13図(a)はGO3UBをルールに変換するテンプ
レートである。
同図において“&深さ −sp  IS  β”はメイ
ンルーチンから数えて連続何度目のサブルーチン呼び出
しであるか、即ちどの深さにいるかをその値のいかんに
よらず変数βにコピーする処理である。“LET  β
=β+1”はβの値を1増す命令である。MAKEはW
MEを生成する命令で、前記スタック、即ちクラス名が
コールスタック、属性名が−Ret及び−depthで
あるWMEを生成する。ここでγは当該サブルーチンを
呼び出した元のルーチンのどの行へ戻るのかを示す論理
行番号、βはスタックポインターspの現在の値のコピ
ーである。“MODIFY  2No  δ”は論理行
番号δに当たるサブルーチンのラベルヘジャンプするた
めの動作である。1M0DIFY  3 −sp  β
”はサブルーチンを呼び出す毎にスタックの深さを示す
スタックポインターspの値を1増やすことを意味する
同図(b)はRETURNをルールに変換するテンプレ
ートである。LET  β=β−1”はβの値を1減ら
す命令である。“MOD I FY2 NOγ”は元の
ルーチンの戻るべき行番号γヘジャンプするための動作
である。“MODIFY  3 −8P  β”はサブ
ルーチンからそれを呼んだ元のルーチンへ戻る毎にサブ
ルーチン呼び出しの深さの記録値を1減らすことを意味
する。REMOVEはWMEを削除する命令で、コール
スタック上で元のルーチンのどこの行へ戻るかを属性−
Retに記述しである情報は、元のルーチンに戻った後
は不要となるために削除するものである。
以上のように現在どの深さにいるのがということと、元
のルーチンの何行目に戻るのかを示すWMEを用い、該
WMEの値を変更あるいはWMEを生成、削除すること
によってGo S U B/RETURNのネスティン
グが可能となる。
同様にネスティングをしたREPEAT/UNTILも
何段目か、どこの行に戻るのが、値が何であるのかを制
御するWMEとそれらWMEを生成、削除、あるいは値
を変更することによりルールに変換できる。
ところで、本発明は上述のような実施例に限らず種種の
変形をしてもよい。
上記実施例では制御表現部の記述をを手続き型言語とし
たが、手続き型言語に限らず単に実行順序を記載した表
でもよい。
また、クラスタがら制御表現部に戻るための記述子“D
ONE (パラメータ)″はクラスタ内で一番最後にフ
ァイアするルールに付加するとしたが、複数のルールに
付加してもよい、即ち、クラスタ内の処理の状況によっ
て第1のルールあるいは第2のルールのいずれががファ
イアしたら制御表現部に戻したい場合は“DONE (
パラメータ)”を両方のルールに記述しておけばよい、
もちろん、必要に応じて3つ以上のルールに記述しても
よく、DONE (パラメータ)の記述しであるいずれ
かのルールがファイアした後にクラスタ処理は終了して
、制御表現部に戻る。
また、いずれのルールにも記述されていない場合はいず
れかのルールに自動的に付加するよう構成してもよい。
なお、複数のルールの動作部にDONE (パラメータ
)を記述する場合、ルール毎に異なる“パラメータ”を
使用してDONE (パラメータ)と書いてよいことは
いうまでもない。
更に、クラスタ内の処理によって得た情報は必要に応じ
てルール中の“DONE (パラメータ)”という記述
によりクラス名が結果、属性名が−type及び−DO
NHの2つであるデータ受渡し用のWMEに記憶するこ
とは前述した通りである。その場合に該ルールを従来の
形式に変換する際には、制御表現部に戻るために−no
wをメインと書き換えるのに加えてデータ受渡し用のW
MEの属性−type及び−DONEをも書き換えるこ
とが必要となる。
具体的なテンプレートは第14図に示すように、“MO
D I FY  結果 −type  a  −D。
NE  β”という動作を付加したものとなる。ここで
αは情報の型、βは情報の値である。
これとは逆に制御表現部にて得たパラメータをクラスタ
に渡すよう構成してもよい。
更にまた、本発明のように記述したプログラムを従来形
式のルールに変換した後には制御用WMEとしてクラス
名が制御で属性名が−nowのもの及びクラス名が符番
で属性名が−NOのものの2つを用いたが、制御用WM
Eは1つでもよい。
例えば上記のデータ受渡し用のクラス結果のWMEが2
個の属性を持っているようにクラス名が制御でnowと
NOの2個の属性を有するWMEを用いれば制御用WM
Eは1つで済む。
なお、ルールの実行順序を手続き的に制御する方法とし
ては上述した方法の他、特開昭61−502359 (
USP4,568.370)に開示される方法もある。
これは制御知識に基づき言語インタプリタを用いて制御
手続きを変更する、即ち競合集合の中からルールを選択
する基準そのものを変更するものである。従ってプログ
ラムを制御部分とル・−層部分に分けて記述するという
点において両者は類似するものの、本発明は言語インタ
プリタを必要とせず、また競合集合の中からルールを選
択する基準そのものを変更することもない等構成が全く
異なり、両者は直接は関係ない。
(発明の効果) 本発明は以上説明したように楕成し、動作するものであ
るから手続き型言語同様フロー制御を取り扱い易くしつ
つ大規模なプロダクションシステムを提供するうえで著
しい効果がある。
【図面の簡単な説明】
第1図は本発明に係るプログラムの概要を示す図、第2
図は制御表現要素の例、第3図はクラスタA、Bを順に
行う例、第4図は分岐のある例、第5図はループのある
例、第6図はルール変換方法の概念図、第7図及び第8
図は制御表現をルールに変換する例、第9図はルールを
従来形式のルールに変換する例、第10図〜第14図は
変換後のルールの例、第15図はプロダクションシステ
ムの構成例、第16図はプロダクションシステムの動作
を示すフローチャート、第17図〜第19図は従来例で
ある。 36・・・・・・・・読み取り部、38・・・・・・・
・・制御表現変換ブロック、39・・・・・・・・ルー
ル変換ブロック特許出願人 東洋通信機株式会社、 株式会社佐々木彬夫事務所 第 図 (b) 第 図 第 図 (b) 第 図 第・9 図 第10 図 第11 図 (a) 第71 図(b) (a) 第 図 第15 図 第 図 (b) 第 」 (b) 1つ 囚

Claims (11)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123810A (ja) * 2005-02-18 2012-06-28 Qualcomm Inc 復帰スタックを管理する方法および装置

Families Citing this family (17)

* 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
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
WO2020051373A1 (en) * 2018-09-06 2020-03-12 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 松下電器産業株式会社 回路変換システムと回路変換方法と反転論理生成方法および論理設計システム
US5204941A (en) * 1987-09-30 1993-04-20 Sharp Kabushiki Kaisha Element checking system for use in forward inference system
US5006992A (en) * 1987-09-30 1991-04-09 Du Pont De Nemours And Company Process control system with reconfigurable expert rules and control modules
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123810A (ja) * 2005-02-18 2012-06-28 Qualcomm Inc 復帰スタックを管理する方法および装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0424826A (ja) プロダクションシステムとプロダクションシステムの変換装置
US5005119A (en) User interactive control of computer programs and corresponding versions of input/output data flow
Newell Some problems of basic organization in problem-solving programs
US7331037B2 (en) Static memory allocation in a graphical programming system
CN1804803B (zh) 具有对异步程序流程建模的软件工具
JP4346316B2 (ja) 複数の意味レベルによるアスペクト指向プログラミングのための方法
US5303380A (en) Object code processing system for forming an executable image by tranforming LISP-type object files into a format compatible for storage by a linker
JP2002334194A (ja) ワークフロー管理システムにおいて選択的コマンド制御を提供する方法、システム、プログラム
EP0297248B1 (en) Look-ahead inference-type rule-based system
JPH01147627A (ja) 質問応答装置
US20050165707A1 (en) Rule selection engine
JPH01147628A (ja) 質問応答装置
Milliken et al. Adding rule-based techniques to procedural languages
Leask et al. Programming agent deliberation using procedural reflection
JP2003076558A (ja) プログラム実行制御方法及びプログラム実行制御プログラム
EP0448641A1 (en) A modular blackboard-based expert system
Thomas A model for process representation and synthesis
JPH01277941A (ja) 推論ステップ方式
JPS6346453B2 (ja)
Carciofini et al. LogLisp Programming System Users Manual
JPH03138729A (ja) 項書き換えによるプログラム変換処理方式
PETROVIC Ivan OBRADOVIC
JPH01147629A (ja) 質問応答装置
Spaas et al. Decision Support Software for Assembly Line Balancing
Bukovics et al. Procedural Flow Control

Legal Events

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