Production system
专利摘要:
公开号:WO1991018343A1 申请号:PCT/JP1991/000374 申请日:1991-03-20 公开日:1991-11-28 发明作者:Ichiro Ando;Akio Sasaki;Tomoyuki Minamiyama;Shoichi Maki;Siryo Yasui;Hiroshi Ichise 申请人:Toyo Communication Equipment Co., Ltd.;Sasaki & Associates Inc.; IPC主号:G06N5-00
专利说明:
[0001] 曰月糸田 β [0002] プロダクションシステム [0003] 技術分野 [0004] 本発明はプロダクションシステムに関し、 手続き型言語によるフローの記述と プロダクションルールを統合することによってプログラミングを簡素化する手法 及び、 該プログラムを従来のプロダクションシステムにて実行可能な形式のルー ルに変換する手法に関する。 [0005] 背景技術 [0006] 「もし Αならば Βせよ」 あるいは " I F A T H E N B " の形式で表現さ れる知識をプロダクションルール (以下ルールと称する) と呼び、 Aを条件部、 Bを動作部と呼ぶ。 条件部と動作部は与えられた問題領域における専門家の知識 に基づき問題解決のためにお互いに関連付けられたものである。 第 1 5図はル一 ルの集合の上で推論し、 知識処理を行うプロダクションシステムの概念図であ る。 [0007] 同図において 1はプロダクションメモリ (Production Memory) であり、 前記 ルールを複数個格納する。 2はワーキングメモリ (Working Memory:以下 WMと 称す) であり、 クラス名と複数の属性値の組とから成るデータ (Working Memory Element:以下 WM Eと称す) を複数個格納する。 推論部 3は上述した全てのル ールの条件部と全ての WM Eとを照らし合わせ、 該ルール群から条件が全て満足 されるものを選び出して競合集合 4を作り、 更にその中の 1つをある基準に従つ て選択し、 該ルールの動作部に記述してある動作を実行する。 このようにルール の動作部を実行することをそのルールをファイアするといい、 その結果 WMの内 容の変更が起こること力 s—般的であるが、 WMの内容に変更があるなしにかかわ らず上記のように競合集合を作り、 推論処理を行うことを繰り返す。 第 1 6図は上述の動作を示すフローチャートであり、 S T 1〜S T 3のステツ ブからなる。 [0008] ( S T 1 :照合) [0009] ルール群の条件とデータの突き合わせ [0010] ( S T 2 :競合解消) [0011] 実行するルールの選択 [0012] ( S T 3 :実行) [0013] 選択したルールの実行、 データの更新 [0014] プロダクションシステムは以上 S T 1〜3丁3のステップを一般に £を更 新しつつ繰り返して実行し所望の結果を得るものであるが、 結果の如何に関わら ず I Fの後の条件を全て満足するルールがなくなるかあるいは T H E Nの後の動 作部に停止する旨の記述がある場合は処理を終了する。 [0015] 上述したルールの条件部は複数の条件 (以下条件要素と称す) の組み合わせで あることが多いが、 プログラマは単にそのような条件要素を書き並べるだけでよ レ、。 又、 動作部には条件部に対応してどのような処理を行うかのみを処理を行う 順に書けばよく、 どのようにして競合集合を作るのか、 即ちルールの条件部と W M Eの照合をどのように行うかはどこにも書く必要はない。 これは、 上記ルール の実行順序はルールに含まれた専門的知識に基づき自動的に決定されるためであ つて、 選択された複数のルールのうちいずれを選ぶかはシステムによって予め定 めてある基準、 例えば最多数の条件要素を持つものから選択するといつた基準に 従うため、 プログラマはルールの記述順序を考慮する必要はなく、 ルールをどの ような順番で並べてもよい。 [0016] 以上のような点がルールベースの記述上の利点であり、 通常の手続き型の言語 ではプログラミングカ複雑かつ面倒な処理をいとも簡単に記述できる。 しかし、 上述した基本的なプロダクションシステムの考え方では次のような欠 点があった。 [0017] 即ち、 ルールがどのような順番で並んでいてもよいということは、 どのルール も選ばれる可能性は全て平等であるということであるが、 実際の処理においては 特定のルール群のみを選択の対象にしたり、 あるいは無視したりしたいこと力 s '頻 繁に発生する。 つまりある処理を行っている間はその処理に関連するルール群の みを選択候補としたい場合が多いが、 そのような場合でもルールベースでは特定 のルール群をプログラマが任意かつ明示的に選択することは非常に困難である。 換言すればルールベース.ではルール群の選択を制御すること力 s非常に難しく、 あ る特定の目的例えば入力、'計数、 印字等の処理 (以下サブタスクと称する) を順 次に実行するためのルール群のみを集めてモジュール化して選択することは難し い。 従って、 従来の手続き型の言語のように複数のサブタスクの分岐あるいはル 一ブ等を含む処理を行う際にはプログラミング上のテクニックが必要で、 例えば 「クラスタ制御」 と呼ばれる方法を用いていた。 [0018] クラスタ制御とは前記各々のサブタスクを実行するために必要なルール群それ ぞれをクラスタと定義し、 各ルールの条件部にはどのクラスタに属するかを記述 することをその内容とするルールベースのプログラミング技法である。 具体的に はどのクラスタを実行するかを指定する制御用 WM Eを用意し、 例えばそのクラ ス名を制御、 属性名を A n o w、 値をクラスタ Aとし、 条件部に " &制御 n o w =クラスタ A" なる条件要素を持ったもののみを選択の候補とする。 上例の 条件要素の意味は 「クラス名が制御の WM Eで、 属性' n o wの値が "クラスタ A" のものがあれば」 という意味である。 尚、 制御用 WM Eはクラス夕制御にお いては常に 1個だけ存在し、 あるクラスタ内の処理が終了する毎にその属性値を 次に起動すべきクラスタ名に書き換えることによって順次異なるクラスタを選択 することができるようにする。 - 以上のようなクラスタ制御を用いて処理を行う場合の実例を説明する。 [0019] 第 17図 (a) はサブタスク A及びサブタスク Bを順に実行する場合のフロー チャートであり、 同図 (b) はそれに対応したルール群である。 同図において 5 及び 6はサブタスク A及び Bであり、 Arl〜 Arnはクラスタ Aに属するルール群 、 Brl〜Brmはクラスタ Bに属するルール群である。 ルール Arlはルール Arlで ある旨を示す " DEF I NE RULE Arl" で始まり、 その後に条件部 7、 動作部 8を記述し、 ENDで終わる。 条件部 7は条件部である旨を示す "I F" の後にクラス名が制御、 属性名が n o w、 ^ n o wの値がクラスタ Aである W MEが存在するという条件要素 "&制御 now-クラスタ A" 、 及び複数の 条件要素をまとめて一般的に記した " Acl" という条件要素群から成り、 END で終わる。 動作部 8は "THEN" の後に複数の動作を一般的に記した Aalとい う動作群から成り、 ENDで終わる。 他のルールも同様に記述されている。 なお、 この例では上記 Arlの Aはクラスタ Aに関することを、 rはルールであ ることを、 Aclの cは条件であることを、 Aalの aは動作であることを示し、 そ の他のルールについても同様に rはルールであることを、 cは条件であることを 、 aは動作であることを示す。 また、 後に述べるが WMEが存在しないという条 件要素の場合は "&" に代わり "?" を用いる。 [0020] 第 17図のルール群を使用して処理を行うには同図 (c) に示すように制御用 WMEを用意する。 例えばそのクラス名を制御、 属性名を" nowとした時、 該 制御用 WMEの属性 Λ no wの値がクラスタ Aであるならば、 条件部に "&制御 now-クラスタ A" という条件要素を含むルールは選択されうるが、 その ような条件要素を含まないルールは選択されない。 これとは逆に制御用 WMEの 属性 Λ nowの値がクラスタ Βであるならば、 条件部に "&制御 now二ク ラスタ B" という条件を含むルールは選択されうるが、 その条件を含まないルー ルは選択されない。 [0021] 即ち上述の例の場合、 サブタスク Aに関する全てのルールの条件部にのみ "& 制御 A now =クラスタ A" という条件要素を記述し、 サブタスク Bに関する 全てのルールの条件部にのみ "&制御 now =クラスタ B" という条件要素 を記述する。 更に、 サブタスク Aの実行中一番最後にファイアするルール Arnの 動作部には前記制御用 WMEの属性' nowの値をクラスタ Βと書き直す "M0 DI FY 1 ' now クラスタ B" という動作 9を記述し、 またサブタスク Bの一番最後にファイアするルール B rmの動作部には S T 0 Pという動作 10を 記述する。 ここで MOD I FYの後の数字 1は条件部の何行目の条件要素とマツ チする WMEの属性値を書き換えるのかを示すもので、 このような記述法によつ て属性値を更新する WM Eのクラス名を省略することができる。 [0022] 以上第 17図 (b) に示したプログラミング技法によれば初期条件を "&制御 Λ no w =クラスタ A" とすればクラスタ Aの実行が終了したら制御用 WME の属性値がクラスタ Bに書き換えられ、 次にクラスタ Bを実行することができる 。 クラスタの数は 3以上であっても同様にそれらを順次選択し、 実行すること力 s できる。 [0023] 次に第 18図 (a) に分岐のある場合のフローチャートを、 同図 (b) にそれ に対応したルール群を示す。 第 18図において 1 1は分岐条件の判定処理で、 こ れに対応するクラスタ Jのルールの条件部に記述された "&制御 [0024] ラスタ J"及び Jclなる条件が満たされるか否かによって次にクラスタ C 12力 クラスタ D 13のいずれかを選択実行する手順を示すものである。 また Jrl、 J r2はクラスタ Jを構成するルール群であり、 その条件部には共に "&制御 一 n ow =クラスタ J" という条件を有し、 更にルール Jrlでは Jclが成立し、 ル一 ル J r2では J clが成立しないという条件を付加したものである。 [0025] 処理に当たってはまず初期条件が "&制御 Λ now =クラスタ J" を満たす こと及び WME中に Jclを満たすデータが存在するか否かによって前記ルール J rl又は Jr2のいずれかを選んでファイアする。 [0026] その結果該ルールの動作部に記載された動作に従い、 前記制御用 WMEの値を 書き換えることによってクラスタ C又は Dのいずれかに分岐して該クラスタを実 行できる。 処理。 12及び D 13に対応するルール群及びそれらの実行について は前記第 17図に示した例と同様であるので省略する。 [0027] 最後に第 19図 (a) にループを含む場合のフローチャートを、 同図 (b) に それに対応するルール群を示す。 第 19図において 14は分岐条件の判定を行う 処理で、 プロダクションシステム上でクラスタ Jのルール群の条件部に記述され た "&制御 now =クラスタ J" 及び Jclなる条件が満たされるか否かによ つて次にクラスタ E 15を実行するか処理を終了するかを選択実行する処理と対 応するものである。 Jrl、 Jr2ほクラスタ J内のルールであり、 この部分につい ては前記第 18図と同様であるので説明は省略する。 また、 ルール Ecnはクラス タ Eの実行中最後にファイアするもので、 処理が終了したら制御用のクラス制御 の WMEの属性一 no wの値をクラスタ Jに書き換え、 判定処理 14へ戻る。 処理に当たってはまず初期条件が "&制御 ' now =クラスタ J" であれば WM中に Jclを満たす WMEが存在するか否かによって前記ルール Jrl又は Jr2 のいずれかを選んでファイアする。 [0028] その結果該ルールの動作部に記載された動作に従い、 前記制御用 WMEの値を 書き換えることによってクラス夕 Eを実行するか、 あるいは書き換えずに処理を 終了するかを選択し、 クラスタ Eの処理が終了したら "&制御 ' now =クラ スタ J" と WMEの値を変更することによって判定を繰り返し、 分岐条件が満た されるまでループ処理を繰り返す。 · [0029] しかしながら、 上記 3つの例では当然ながらクラス名が制御で Λ n o wという 属性を持ったクラスタ制御用の WM E力必要である。 またこれと共に各ルールに おける条件部に A clのような本来の条件に加えて、 例えば " &制御 ~ n o w = クラスタ A " というクラスタ制御用条件要素も必要である。 更に、 例えばクラス 夕 Aの実行後クラスタ Bの実行を行うには最後に実行されるルール中に "M O D I F Y 1 ^ n o w クラスタ B " というように ' n o wの値をどう変更する かという制御動作の記述も必要である。 [0030] 第 1 8図に示した例では説明を簡単にするためにクラスタ制御用条件は " n o wの値がクラスタ J、 クラスタ(:、 クラスタ Dの 3種類とした力 実用的なプロ ダクシヨンシステムで所要の動作を行わせるためには多数のクラス夕が必要であ る。 しかし多数のクラスタ全てについて次に選択すべきクラスタを把握し、 分岐 あるいはループ毎に綿密に場合分けをした上でクラスタ制御用条件及び動作をル ールに付加することは実用上は不可能に近い位大変である。 即ち、 原理的にはプ ロダクシヨンシステムでもクラスタ制御を用いれば手続き型処理は可能ではある 力 人間のプログラム作成能力には限界があるため、 コンピュータの能力の大小 にかかわらず現状ではたかだか数百〜数千のルールから成るプロダクションシス テムしか実現していない。 つまり複雑な順序制御を必要とする大規模プロダクシ ヨンシステムを実現することは従来技術では非常に困難であった。 [0031] 本発明は上述したような従来のプロダクションシステムの問題を解決するため になされたものであって、 複雑な順序制御を含むプロダクションシステムのクラ スタ単位のフロー制御を手続き型言語同様に簡単に記述することを可能とし、 そ の結果大規模なプロダクションシステムの構築を可能としたプログラム記述方法 及びその変換手法を提供することを目的とする。 発明の開示 - 上記目的を達成するため本発明は以下のように構成する。 [0032] 即ち、 クラスタ制御を行うプロダクションシステムにおいて、 次に起動実行す べき処理用クラスタを指定する命令、 あるいはその他フロー制御に関する命令を 記述した制御表現要素を実行すべき順序に並べて上記処理用クラス夕とは別の制 御表現部を備えると共に、 所要プロダクションルールの動作部に記述すべき次に 起動実行する処理用クラスタ指定命令に代えて前記制御表現部に戻る旨の命令を 記述することによって、 制御表現部に記述された命令に従つて順次処理用クラス 夕の指定等の処理を行い得るよう構成する。 [0033] また、 前記制御表現部の各制御表現要素を 1以上のプロダクションルールに変 換して制御表現部を 1以上のプロダクションルールから成る制御用クラス夕に変 換すると共に、 各処理用クラスタの所要ルールの動作部に記述されている処理用 クラスタから制御表現部に戻る旨の記述をそれに相当する動作に変換し、 もって 制御表現部とプロダクションルールが一体となつて統合的に動作するルールべ一 スとなるよう変換する。 [0034] 図面の簡単な説明 [0035] 第 1図は本発明に係るプログラムの概要を示す図、 第 2図は制御表現要素の例 、 第 3図はクラスタ A、 Bを順に行う例、 第 4図は分岐のある例、 第 5図はルー プのある例、 第 6図はルール変換方法の概念図、 第 7図及び第 8図は制御表現を ルールに変換する例、 第 9図はルールを従来形式のルールに変換する例、 第 1 0 図〜第 1 4図は変換後のルールの例、 第 1 5図はプロダクションシステムの構成 例、 第 1 6図はプロダクションシステムの動作を示すフローチャート、 第 1 7図 〜第 1 9図は従来例である。 [0036] 発明を実施するための最良の形態 以下、 図示した実施例に基づいて本発明を詳細に説明する。 [0037] 第 1図は本発明に係るプログラムの概要を示す図である。 [0038] 同図において 1 6、 1 7、 1 8はサブタスク毎に集められた複数のルールから 成るクラスタで、 各々にクラスタ A, B , Nという名を付けたものであり [0039] 、 各クラスタに属するルールは従来のルールベースで記述する。 [0040] また 1 9は本発明において付加した制御表現でクラスタの実行順序を定義する ものであり、 従来技術に示したような順次処理、 分岐処理、 ループ処理等に関す るクラスタ制御に関する各クラス夕内の各ルールの条件部の制御条件、 動作部の 制御動作を不要とするものである。 [0041] 第 2図は制御表現を記述するための制御表現要素のいくつかを例示したもので 従来の手続き型言語である B A S I C等に類した形式をとつている。 それらは各 々異なった処理を行うための命令であって数十種類程度決めておけば、 ほぼ全て の手続き型の処理が可能である。 [0042] 制御表現の具体的な記述方法の詳細は後述するが、 本発明ではこのような制御 表現要素の中から処理すべき目的に応じて必要なものを選択使用して制御表現を 記述することによって任意のクラスタ制御を可能とする。 [0043] 次に従来技術にて説明した処理を前記制御表現を用いた本発明のプログラムで どのように記述するかを具体的に示す。 [0044] 第 3図 (a ) はクラスタ A、 Bを順に実行する際のフローチヤ一卜で、 同図 ( b ) はそのフ口一を実行するために本発明に基づいて作成したプログラムである 。 同図に示すプログラムは制御表現部 2 0、 クラスタ A 2 1、 クラスタ B 2 2力 ら成り、 これらは第 1図の制御表現 1 9、 クラスタ A 1 6、 クラスタ B 1 7に相 当する。 [0045] まず制御表現部について説明すると、 制御表現部は制御表現部である旨を示す "DEF I NE MAI " なる宣言文 23、 複数の制御表現要素を順次記述し たステップ 24〜26及び制御表現部の終了を示す ENDの宣言から成るもので ある。 前記のステップ 24、 25は該ステップ内で名前を指定したクラスタを起 動実行実行せしめる命令であつて、 制御表現部 20は全体として複数のクラスタ の実行順序を指定するものである。 なお、 本実施例に示す F I REとは、 第 2図 に示す制御表現要素の中の一つであつて所要のクラスタを名前で選択して起動す る記述子であり、 所要クラス夕に属するルール群のみをファィァの候補としてそ の他のルール群はフアイァの候補としないという命令である。 [0046] 次にクラスタ Aの説明をすると、 これはクラスタ Aである旨を示す "DEF I NE CLUSTER クラスタ A" なる宣言文 27を記述した後に、 ルール A rl' 〜Arn' を記述し、 更にクラスタの終了を示す E N Dの宣言を記述したもの で、 各ルールには条件部 28、 動作部 29があることは従来のルールと同様であ る。 また、 クラスタ Aの処理を終了すべくクラスタ A内で一番最後にファイアす るルール Arn' には DONE (Aexp) という記述 30を付カ卩する。 この DO NE (Aexp) とはクラスタ Aに於ける処理の終了後、 当該クラスタを選択し た制御表現部内のステップ 24の次のステップに制御を移すべき旨を指令し、 ま たクラス夕 Aの処理により得た A e X pという名前の情報の値を所定のメモリに 記録する旨指令する記述子である。 また、 クラスタ Bはクラスタ Aと同様に宣言 文、 ルール ΒΓΓ 〜: Brm, 及び ENDの宣言から成る。 [0047] 次に本実施例の動作を説明する。 本実施例はクラスタ A、 Bを順に実行するも のであり、 その実行手順は手続き型言語におけるメインルーチンとサブルーチン の関係に似ている。 即ち、 制御表現部 20の第 1ステップに基づきクラスタ Aが 駆動され、 クラスタ Aの処理の最後に選択されるルール中の動作部に記述してあ る DONE (Aexp) に従ってクラスタ Aの処理により得た情報 A e x pの値 を所定のメモリに記録した上で制御表現部の第 2ステツプに制御が戻る。 次にこ の第 2ステツプに基づきクラスタ Bが駆動され、 クラスタ Bの処理の最後のルー ル中の DONE (B exp) によってクラスタ Bの処理により得た情報 B e x p の値を所定のメモリに記録した上で前記同様に制御表現部の第 3ステップに制御 が戻る。 この戻ったステップには STOPの記述があり、 以上で処理は全て終了 する。 以上のように従来の手続き型のフ口一制御の記述に従つて複数のクラスタ を順に駆動することができる。 [0048] 一般にはあるクラスタの処理終了後は該クラスタの処理により得た情報に応じ て異なるクラスタを駆動し、 該クラスタ処理の最後のルール中の DONE (パラ メータ名) に基づき前記同様に制御表現部の次のステップに戻る、 あるいは制御 表現部のステップに記述されている内容によってはクラスタを選択するのに代え て次に実行するステップを選択し、 それら一連の手続きを継続することでクラス タレベルのフロー制御が進行する。 [0049] 従来技術で述べた通りのクラス夕制御の技法のみではクラスタ間で制御を受け 渡すことしかできない。 本実施例では各クラスタと制御表現の間で単に制御の受 け渡しを行うのみでなく、 各クラスタの処理によって得た情報をも制御表現に渡 している。 このようなことは従来のクラスタ制御の技法では大変複雑となり、 プ ログラミングに多大な工数を要するが本実施例では非常に簡単にプログラミング を行うことができる。 [0050] 同様にして他の例についても説明する。 [0051] 第 4図 (a) は分岐がある場合のフローチャートで、 同図 (b) はそれに対応 する本発明のプログラムである。 同図においてプログラムは制御表現部 31、 ク ラスタ C32、 クラス夕 D33から成る。 [0052] 制御表現部は宣言文、 複数のステツプ及び E N Dから成ることは前記実施例と 同様であり、 全体として分岐処理を行.うものである。 [0053] 第 1ステップに記述してある " WHEN Jcl THEN GOTO @L 1 " は、 Jclという条件が成立すれば、 詳しくは後述するが @L 1というラベルの ステップへジャンプする命令である。 ここで WHENは B AS I C、 FORTR AN等における I Fに相当する。 [0054] 第 3ステップの G 0' T 0はその後に記述してあるラベル @ L 2のステツプへ無 条件ジャンプする命令である。 [0055] 第 4ステップ、 第 6ステップに示す @L 1、 @L 2のようにその一番最初に " @" 力 己述してあるステップをラベル行と称す。 これらは制御表現部内で所望の ステップへジャンプする際に参照するための表記であって、 何かを行う命令では ない。 ラベルを使用するとループや分岐が多い際に所要箇所へジャンプすること が簡単にできる。 [0056] また、 クラスタ C、 クラスタ Dは上述の例と同様に宣言文、 ルール及び END の記述から成っている。 [0057] 本実施例は分岐のあるフローを実行するものであるが、 以下その動作を説明す る。 [0058] まず第 1ステツプで J clという条件が成立するか否かを判定し、 成立する場合 はラベル @L 1の第 4ステップへジャンプする。 これは単なるラベルであるので 次の第 5ステップへ制御を渡し、 クラスタ Dを実行する。 クラスタ Dの処理が終 了するとラベル @L2の第 6ステップを経て、 第 7ステップに制御を渡し、 ST 0 Pで全ての処理を終了する。 [0059] 第 1ステツプで J clという条件が成立しない場合は第 2ステツプへ制御を渡し 、 クラスタ Cを実行する。 クラスタ Cの処理が終了するとラベル @L 2の第 6ス テツブの @ L 1を経て第 7ステップの STOPに制御を渡し、 全ての処理を終了 する。 - 以上のように条件判定を行えば、 2つのクラス夕のいずれかに分岐して処理を 行うことが出来、 クラスタの数が 3以上であっても同様に分岐して処理を行うこ とが出来る。 [0060] 最後にループの例について説明する。 [0061] 第 5図 (a) はループ処理のフローチャートで、 同図 (b) はそれに対応する 本発明のプログラムである。 同図においてプログラムは前記実施例同様制御表現 部 34及びクラスタ E35から成る。 制御表現部は宣言文、 複数のステップ及 び ENDの記述から成り、 全体として繰り返し処理を行うものである。 [0062] 第 1ステップの @ S T A R Tはラベルであり、 その他は前記実施例にて説明し たのと同様の記述となっている。 [0063] 本実施例はループ処理を実行するものであるが、 その動作を説明すると、 まず 第 1ステップ @ S T A R Tでは何も行わずに第 2ステツプへ制御を渡して J clと いう条件が成立するか否かを判定し、 その結果 J clが成立する場合はラベル @ L 1へジャンプした後第 6ステップの STOPに基づき全ての処理を終了する。 第 2ステップで Jclという条件が成立しない場合は第 3ステップ "F I RE クラスタ E" へ制御が渡り、 クラスタ Eを実行する。 クラスタ Eの処理が終了す ると第 4ステップの "GOTO ©START" 力実行されて第 1ステップのラ ベル @ S T A R Tを経て、 第 2ステツプにて再び判定を行う。 [0064] 本実施例は以上説明したようにある条件が成立するか否か条件判定を行い、 そ の結果によって分岐先をクラスタ Eを起動するステップとするのか終了するステ ップとするのかを選択実行するもので、 分岐の重要な例であるループ処理も可能 となる。 [0065] ここで、 以上説明した本発明におけるルールの記述と従来の記述を比較してみ る。 まずクラスタ A、 Bを順に駆動する場合について考えると、 本発明に基づき 作成した第 3図のプログラムではルール中に "&制御 _ now =クラスタ A" といった制御用条件の記述はなく、 "MOD I FY 1 " now クラスタ B " といった制御用動作の記述も必要ない。 分岐がある場合やループがある場合に ついても同様にルール群中に制御用条件、 制御用動作の記述を行うことはいずれ も不要であり、 これらに相当する処理は全て制御表現部で手続き的に記述されて いる。 [0066] 即ち、 本発明に係るプロダクシヨンシステムは上述の如き制御表現部とクラス 夕群の組合せから成るプログラムで動作するものであり、 その一番のボイン卜は 、 制御表現部に制御順序を従来の手続き型言語と同様の感覚で記述し、 ルール群 を然るべきクラスタ群に命名分割した上、 各クラスタ内で制御表現部へ戻るべき ルールの動作部には単に "DONE (パラメ一夕) " なる記述をすれば十分な点 で、 プログラマは前述のような従来のクラスタ制御に比べると非常に簡単に制御 表現部を記述することによってクラスタ制御できる。 従って従来は制御用条件、 動作の記述が複雑であつたため実現し得なかつた大規模のプロダクションシステ ムが、 上述の如きプログラムの記述方法により簡単に実現できる。 以上説明し たように本発明によれば複数のクラスタの実行順序を極めて簡単なプログラミン グで制御することができる。 即ち本発明は制御表現部に従来の手続き型言語同様 の GO TOによる分岐、 REPEATZUNT I Lのループ等の記述を行い、 任 意のステップへ制御を渡すことによってルール内の制御動作の記述を不要にした ものである。 従って、 これらを適当に組み合わせることによってクラスタ単位の 手続き的なフロ一制御を非常に簡単に記述することができる。 [0067] 本発明のプロダクシヨンシステムにおいては上述のようにプログラマは制御表 現部とルールを分けて記述するだけでよく、 各ルール内の制御条件の記述を考慮 する必要は全くない。 - しかしこのように記述された制御表現部とルール群の組合せから成るプログラ ムを従来からあるプロダクションシステムで使用しようとしても、 そのプログラ ムをそのまま使用することはできない。 その理由は従来のプロダクションシステ ムには制御表現という概念はないためその記述は何ら意味をなさず、 また制御表 現を用いることによってルール中からクラスタ制御に関する条件と動作の記述を 削除したため、 そのままでは従来のプロダクションシステムによるクラスタ制御 が不可能である。 そこで次に、 従来のプロダクションシステムとの互換性を確保 するため上述の如きプログラムを従来一般に用いられていたルールベースのプロ ダクシヨンシステムの記述に変換する手法を説明する。 その基本的な考え方は制 御表現部の各ステツプを 1個又は複数のルールに変換すると共に、 各クラスタ内 の各ルールには制御用条件と制御用の動作を付加して従来のルールと同じ形式の 記述に変換し、 更に D O N E (パラメータ) もそれに対応する動作に変換すると いうことである。 [0068] 第 6図は本発明に基づいて作成した制御表現部とルール群から成るプログラム を、 両者を統合した従来のプロダクションシステムで駆動しうるルールべ一スに 変換する方法及び装置の概念図である。 [0069] 同図において 3 6は読み取り部で、 制御表現部とルール群で記述された上記本 発明のプログラム 3 7を読み取り、 各部の最先頭部に記述された制御表現部であ るかクラスタであるかを示す宣言文及び E N Dの宣言を参照して制御表現部とル ールに分ける。 [0070] 制御表現部は上述したように数十種類の制御表現要素のうちいくつかを組み合 わせ、 かつそれらに変数を含めて記述したステップの集合であるが、 それら各ス テップを従来のプロダクシヨンシステムを駆動しうる形式の 1個または複数個の 従来形式のルールに変換する。 即ち、 制御表現変換プロック 3 8は前記読み取り 部 3 6で分離された制御表現部の各ステップを読み出し、 第 2図右欄に示した命 令に対応するような機能を持つ従来のルール形式に変換する。 また、 前記読み取 り部 3 6で分離されたルール群もルール変換ブロック 3 9にて従来の形式で記述 したルール群に変換する。 [0071] 以上の結果プログラム 3 7は従来のプロダクションシステムで実行可能な形式 のルール群 4 0に変換され、 制御表現部は制御用クラスタとなる。 なお、 制御表 現部及び各ルール中に記述されている変数部分はそれぞれのステップあるいはル ールによつて異なるが、 その対応については後述するよう変換の際に注意を要す る。 [0072] 以上が変換の基本的な思想であるが、 具体的には以下のような手法を用いれば よい。 [0073] 第 7図は制御表現部を従来のプロダクシヨンシステムにて駆動可能な形式のル —ルに変換する手法の例を示す図で、 ここでは " F I R E クラスタ A" の変換 例を示す。 [0074] 同図において 4 1は制御表現部のある 1ステップの先頭に、 当該ステップがそ の制御表現部内で何番目であるかを示す論理行番号を付加したものである。 この 論理行番号は実際は付いていないが変換に使用する便宜的なもので、 番号 B A S [0075] I Cの記述にならい、 例えば 1 0番毎の行番号とする。 4 2は該ステップの制御 表現に対応して予め用意されているテンプレートであり、 そのステップにて実行 すべき内容を従来のルールの形式で記述したものである力、 可変部分 (ここでは α、 β、 ァの欄) を空欄としたものである。 該テンプレート 4 2の前記可変部分 にステップ 4 1を構成する文字列の然るべき部分を切り取ってはめ込むことによ り、 ルール 4 3が作成される。 まず制御用 WM Eとしてクラス名が制御で属性 ' nowを有するもの、 及びク ラス名が行番で属性 NOを有するものの 2つを用意する。 そして F I R Eに対 応したテンプレートは同図に示すようにルール名が L I NE αである旨を示す宣 言で始まり、 次に条件部である旨を示す I Fに続いてクラスタを制御する "&制 御 * n o w =メイン"、 該ステツプの論理行番号を示す "行番 Ν 0 = α " 及び E N Dの宣言があり、 その後に動作部である旨を示す THENに続いて制御 用 WMEを書き換える命令 " MOD I FY 1 " now )3 " 、 次に実行すベ き制御表現部の論理行番号をクラス行番の WMEの属性 N 0に書き込むための [0076] "MOD I FY 2 " O 丫 " 及び E N Dを宣言し、 最後にルールの終了を 示す E N Dの宣言を上記の順に書き並べたものである。 上記は一例であるが全て の種類の制御表現のステップに対応するテンプレートが前記第 6図の制御表現変 換ブロック 38に付属するメモリ内に記憶されている。 [0077] 上例のような 2つの条件 "&制御 Λ no w =メイン" 及び "&行番 一 NO = " は F I RE以外の場合であっても必ず付加する。 [0078] 従って変換は、 上述のテンプレート 42中の αに当該ステップの論理行番号 " 20" を、 3には選択起動すべきクラスタの名前である "クラスタ Α" を制御表 現から切り取ってはめ込み、 更に丫には次に戻るべき制御表現部のステップの論 理行番号、 "30" を入れて 43に示すような従来形式のルールを得る。 [0079] 以上のような手法により制御表現部のステップは従来のプロダクシヨンシステ ムで駆動可能な形式のルールに変換される。 [0080] 次に、 前のクラスタ処理によって得た値が 35であれば @LAB E Lのステツ プへジャンプする命令である " WHEN D0NE= 35 THEN GOTO [0081] ©LABEL" をルールに変換する例を第 8図に示す。 [0082] 同図において 44は上記のような制御表現の 1ステツプの先頭に該ステツブの 論理行番号例えば 40を付加したもの、 45は該ステップに対応して用意され たテンプレートであり、 46は変換した結果作成される従来形式のルールであ る。 [0083] このテンプレート 46が前記第 7図と違うところは第 1に条件部に " &結杲 " y p e = J3 " D 0 N E = δ " の記述があること、 第 2に動作部に "Μ 0 D I FY 1 ' now " の記述がなく "MOD I FY 1 " NO ' の 記述のみであること、 第 3に制御表現部の 1ステップを 2個のルールに変換する という点である。 [0084] まず第 1の点につき説明すると、 各クラスタ中のルールから DONE (パラメ 一夕) で制御表現部に受け渡される情報はクラス名が結果、 属性名が type 及び DONEの 2つである WMEに記述されていることを示す。 なお、 上記一 t y p eとは前記情報の型、 D 0 N Eはその値を示す。 [0085] 第 2の点につき説明すると、 該ステップでは別のクラスタを選択起動するクラ スタ制御はしないから ~ nowの値に変更はなく、 制御表現部内で別のステップ にジャンプするのであるから論理行番号を表す属性の値のみに変更を行うことを 示す。 [0086] 第 3の点につき説明すると、 該ステップを 2個のルールに変換するのは "前の クラスタ処理によつて得た値が 35である" という条件が成立したときと不成立 のときの両方の動作を記述するためである。 [0087] 従って上記テンプレー卜の αには当該ステ、ソプの行番号を、 βには条件判定に 用いる値の型を、 δにはその値 35を、 εには GO TOでジャンプする先のラベ ルのステツプの論理行番号を、 には制御表現部の次のステツプの論理行番号を 揷入する。 [0088] なお、 この例のように GO TOや、 GO SUBのように次に実行するステップ の順番を飛び越したり戻ったりする場合は @L 1のようなラベルを用いるが、 ラ ベルを用いているステップをルールに変換する際には、 当該ステップの記述のみ をもってはラベル行の論理行番号が分からず変換できない。 そこで各ステップに 論理行番号を付する時点でラベルの行があつた場合はそのラベル名と論理行番号 の対応関係をメモリ上に記憶しておけばラベル名と論理行番号を対照でき、 上記 問題は解決し、 ラベル行をルールに変換できる。 [0089] 次にルール部の変換について説明すると、 第 9図は本発明に基づき制御表現部 とクラスタ群とに分けたルール群内の各ルールを従来一般に用いられていたルー ルの記述に変換する様子を示す図である。 [0090] 同図において 47は本発明に基づいて記述したクラス夕 Aのルール群であって 該ルール群の各ルールが従来と異なる点は条件部にクラスタ制御用の条件要素 " &制御 now =クラスタ A" を欠くこと及び一番最後にファイアするルール の動作部に次に選択すべきクラスタ名の代わりに制御表現部に戻るべき旨を示す ズ、 [0091] ΠΡ令 "DONE (パラメータ) " の記述があることである。 これを従来形式のル [0092] —ルに変換するには単に "&制御 A now =クラスタ A" という条件を当該ク ラスタ内の全ルールの条件部に付加し、 一番最後にファィァするルールの動作部 に記述された動作 DONE (パラメータ) を " MOD I FY 1 " now メ イン" と変換した上で "パラメータ" の型と実行時の値を前記制御用のクラス結 果の WMEの属性 t ypeと D 0 N Eに書き込むような動作に変換すればよ い。 この操作は公知のテキスト処理の技法によれば容易に実現できる。 その結果 ルール 47は従来形式のルール 48に変換される。 [0093] 上述のような手法により、 本発明に基づいて作成した制御表現部とルール群か らなるプログラムを、 両者を統合した従来のプロダクションシステムで駆動しう るルールベースに変換することができる。 具体的には第 3図に示す順序処理を行 うプログラムは第 10図に示すルールベースに、 第 4図に示す分岐処理を行うプ ログラムは第 1 1図に示すルールベースに、 第 5図に示すループ処理を行うプロ グラムは第 12図に示すルールベースに各々変換される。 これらは従来のルール ベースプログラムとは若干異なる点はあるが、 両者は全く同一の処理を行うもの であることは自明である。 [0094] 上述のように変換されたルールは第 15図に示す従来のプロダクションシステ ムのプロダクションメモリ 1に格納され、 プロダクションシステムとして動作す る。 [0095] 以上本発明の原理を説明したが、 上述のような形態のルール群から成るクラス タ群を用いて手続き型言語同様の形で記述した制御表現により前記クラスタ群を 簡単に所望の順序で動作させることができる。 [0096] このように本発明では制御表現部とルールを分けて書くだけでよく、 各クラス タの中では制御のための条件を意識せずにプログラミングができる。 [0097] 従って分岐が多い、 あるいはループが何重にもなつていて複合している場合の ようにクラスタ制御の記述が複雑なために従来は実現が困難だった大規模なプロ ダクションシステムを構築すること力容易となる。 [0098] さて、 上述した以外の制御表現要素も同様の手法で従来形式のルールに変換す ることができる力 s'、 特に GOSUBZRETURN及び REPEATZUNT I Lについて説明する。 [0099] GO SUBはサブルーチンを呼ぶ命令で、 RETURNはそのサブルーチンを 呼んだ行の次の行へ戻る命令である。 サブルーチンの中でサブルーチンを呼ぶ、 つまりサブルーチン呼び出しのネスティングを行う際に本質的に必要なことは、 最初のメインルーチンから数えて何度目のサブルーチン呼び出しであるか、 及び 当該サブルーチンを呼び出したサブルーチンの何行目に戻るのかをメモリ上のス タックで管理把握することである。 このためにスタックボインタ及びスタックと して働く 2種類の WMEを用いる。 [0100] スタックボイン夕として使用するのは最初のメインルーチンから数えて連続何 度目のサブルーチン呼び出しであるかを示すための WMEで、 例えばそのクラス 名を深さ、 属性名を s pとし、 常に 1個しか存在しないようにする。 またス夕 ックとして使用するのは R ET URNによって元のルーチンのどこの行に戻るベ きかを記憶しておくための WMEで、 例えばそのクラス名をコールスタック、 属 性名を" 1¾ 61及び' de p t hとし、 サブルーチンを呼び出す毎に 1つずつ生 成され、 R E TURNで元のルーチンに戻る毎に 1つずつ削除されるようにす る。 [0101] 第 13図 (a) は GO SUBをルールに変換するテンプレー卜である。 [0102] 同図において " &深さ s p I S /3" はメインルーチンから数えて連続 何度目のサブルーチン呼び出しであるか、 即ちどの深さにいるかをその値のいか んによらず変数 βにコピーする処理である。 "LET 3 = )3 + 1 " は i3の値を 1増す命令である。 MAKEは WMEを生成する命令で、 前記スタック、 即ちク ラス名がコールスタック、 属性名が Λ 61;及び d e p t hである WMEを生 成する。 ここで丫は当該サブルーチンを呼び出した元のルーチンのどの行へ戻る のかを示す論理行番号、 /3はスタックボインタ s pの現在の値のコピーであ る。 "MOD I FY 2 Λ NO 5 " は論理行番号 δに当たるサブルーチンの ラベルへジャンプするための動作である。 "MOD I FY 3 " s p j3 " は サブルーチンを呼び出す毎にスタックの深さを示すスタックボインタ ~ s pの値 を 1增やすことを意味する。 [0103] 同図 (b) は RETURNをルールに変換するテンプレートである。 "LET 3 = )3— 1 " は )3の値を 1減らす命令である。 "MOD I FY 2 " NO r" は元のル一チンの戻るべき行番号.了へジャンプするための動作である。 "M OD I FY 3 " s 3" はサブルーチンからそれを呼んだ元のルーチンへ 戻る毎にサブルーチン呼び出しの深さの記録値を 1減らすことを意味する。 R E MO V Eは WMEを削除する命令で、 コールスタック上で元のルーチンのどこの 行へ戻るかを属性 Λ R e tに記述してある情報は、 元のルーチンに戻った後は不 要となるために削除するものである。 [0104] 以上のように現在どの深さにいるのかということと、 元のルーチンの何行目に 戻るのかを示す WMEを用い、 該 WMEの値を変更あるいは WMEを生成、 削除 することによって GOSUBZRETURNのネスティングが可能となる。 同 様にネスティングをした REPEATZUNT I Lも何段目か、 どこの行に戻る のか、 値が何であるのかを制御する WMEとそれら WMEを生成、 削除、 あるい は値を変更することによりルールに変換できる。 [0105] ところで、 本発明は上述のような実施例に限らず種々の変形をしてもよい。 上記実施例では制御表現部の記述をを手続き型言語としたが、 手続き型言語に 限らず単に実行順序を記載した表でもよい。 [0106] また、 クラスタから制御表現部に戻るための記述子 "DONE (パラメータ) " はクラスタ内で一番最後にファイアするルールに付加するとしたが、 複数のル ールに付加してもよい。 即ち、 クラスタ内の処理の状況によって第 1のルールあ るいは第 2のルールのいずれかがフアイァしたら制御表現部に戻したい場合は " DONE (パラメ一夕) " を両方のルールに記述しておけばよい。 もちろん、 必 要に応じて 3つ以上のルールに記述してもよく、 DONE (パラメータ) の記述 してあるいずれかのルールがファイアした後にクラスタ処理は終了して、 制御表 現部に戻る。 [0107] また、 いずれのルールにも記述されていない場合はいずれかのルールに自動的 に付加するよう構成してもよい。 . [0108] なお、 複数のルールの動作部に D O N E (パラメータ) を記述する場合、 ルー ル毎に異なる "パラメ一夕" を使用して D O N E (パラメ一夕) と書いてよいこ とはいうまでもない。 [0109] 更に、 クラスタ内の処理によって得た情報は必要に応じてルール中の "D O N E (パラメ一夕) " という記述によりクラス名が結果、 属性名が t y p e及び " D 0 N Eの 2つであるデータ受渡し用の WMEに記憶することは前述した通り である。 その場合に該ルールを従来の形式に変換する際には、 制御表現部に戻る ために - n o wをメインと書き換えるのに加えてデータ受渡し用の WMEの属性 t y p e及び D O N Eをも書き換えることが必要となる。 [0110] 具体的なテンプレー卜は第 1 4図に示すように、 "MO D I F Y 結果 一 t y P e a " D O N E β" という動作を付加したものとなる。 ここで αは情 報の型、 )3は情報の値である。 [0111] これとは逆に制御表現部にて得たパラメータをクラスタに渡すよう構成しても よい。 [0112] 更にまた、 本発明のように記述したプログラムを従来形式のルールに変換した 後には制御用 WMEとしてクラス名が制御で属性名が n o wのもの及びクラス 名が行番で属性名が Ν 0のもの の 2つを用いたが、 制御用 WMEは 1つでも よい。 例えば上記のデ一タ受渡し用のクラス結果の WM Εが 2個の属性を持つて いるようにクラス名が制御で ' n o wと Λ NOの 2個の属性を有する WMEを用 いれば制御用 WMEは 1つで済む。 [0113] なお、 ルールの実行順序を手続き的に制御する方法としては上述した方法の 他、 特開昭 6 1 — 5 0 2 3 5 9 (U S P 4 , 5 6 8 , 3 7 0 ) に開示される方 法もある。 これは制御知識に基づき言語ィン夕プリタを用いて制御手続きを変更 する、 即ち競合集合の中からルールを選択する基準そのものを変更するものであ る。 従ってプログラムを制御部分とルール部分に分けて記述するという点におい て両者は類似するものの、 本発明は言語インタプリタを必要とせず、 また競合集 合の中からルールを選択する基準そのものを変更することもない等構成が全く異 なり、 両者は直接は関係ない。 [0114] 本発明は以上説明したように構成し、 動作するものであるから手続き型言語同 様フロ一制御を取り扱い易くしつつ大規模なプロダクシヨンシステムを提供する うえで著しい効果がある。
权利要求:
Claims請求の範囲 ( 1 ) 複数のプロダクションルールを複数の処理用クラスタに区分してクラス夕 制御を行うプロダクションシステムにおいて、 次に起動実行すべき処理用クラス タを指定する命令、 あるいはその他フロー制御に関する命令を記述した制御表現 要素を実行すべき順序に並べて上記処理用クラスタとは別の制御表現部を備える と共に、 所要プロダクションルールの動作部に記述すべき次に起動実行する処理 用クラスタ指定命令に代えて前記制御表現部に戻る旨の命令を記述することによ つて、 制御表現部に記述された命令に従って順次処理用クラスタの指定等の処理 を行い得るようにし、 もって各プロダクションルールの所要動作部に次に起動実 行すべきクラスタ名の指定の記述を不要としたことを特徴とするプロダクション システム。 ( 2 ) 前記処理用クラス夕には宣言文によってクラスタ名を付し、 処理用クラス タの指定は前記クラスタ名を用いて行うことを特徴とする特許請求の範囲 1項記 載のプロダクションシステム。 ( 3 ) 前記制御表現部の記述形式が条件処理、 繰り返し処理、 サブルーチン呼び 出し処理のいずれか又はそれらの組み合せを含む手続き型言語であることを特徴 とする特許請求の範囲 1項又は 2項記載のプロダクションシステム。 ( 4 ) 制御表現部にて所望処理用クラスタの実行を指定する際に、 該処理用クラ スタにて参照可能なパラメータをも同時に指定する記述形式を有することを特徴 とする特許請求の範囲 1項乃至 3項記載のプロダクシヨンシステム。 ( 5 ) 処理用クラスタから制御表現部に戻る際に、 制御表現部にて参照可能なパ ラメ一タをも同時に指定する記述形式を当該処理用クラスタ内の所要ルール中に 有することを特徴とする特許請求の範囲 1項乃至 4項記載のプロダクシヨンシス テム。 ( 6 ) 前記制御表現部における手続き的処理を前記パラメータを参照することに よって行うことを特徴とする特許請求の範囲 3項記載のプロダクションシステ ム。 ( 7 ) 処理用クラスタから制御表現部に戻る旨の記述がいずれのプロダクシヨン ルールにもない場合は、 いずれかのプロダクシヨンルールにその旨の記述を自動 的に挿入することを特徴とする特許請求の範囲 1項乃至 6項記載のプロダクショ ンシステム。 ( 8 ) 前記制御表現部の各制御表現要素を 1以上のプロダクションルールに変換 して制御表現部を 1以上のプロダクションルールから成る制御用クラス夕に変換 すると共に、 各処理用クラスタの所要ルールの動作部に記述されている処理用ク ラスタから制御表現部に戻る旨の記述をそれに相当する動作に変換し、 もって制 御表現部とプロダクションルールが一体となつて統合的に動作するルールベース となるよう変換することを特徴とした特許請求の範囲 1項乃至 7項記載のプロダ クションシステム。 ( 9 ) 前記制御表現部を以下の手段にてプロダクションルールに変換することを 特徴とする特許請求の範囲 2項記載のプロダクションシステム。 1)制御表現部の各制御表現要素に論理行番号を付加する手段 2)制御表現部の制御表現要素を読み出す手段 3)制御表現要素に相当するプロダクションルールであってその可変部分を空欄 としたものを記憶する手段 4)制御表現部の制御表現要素を解析し、 その結果によつて該制御表現要素に相 当するプロダクションルールであってその可変部分を空欄としたものを前記 記憶手段から選択する手段 5)前記制御表現部の所要箇所から所要情報を読み出し、 必要に応じて加工する 手段 - 6)前記選択されたプロダクションルールの可変部分に前記読み出された情報又 は加工した情報を書き込む手段 7)制御用クラスタの起動実行が指定されている間は制御用クラスタに属するプ ロダクシヨンルールのみが選択実行される候補となるよう制御用クラスタ内 の全プロダクションルールの条件部に所定の条件を付加する手段。 8)上記条件部に制御表現部のどの論理行番号に相当するプロダクションルール を実行するのかを指定する条件を付加する手段 9 )ある処理用クラスタの実行後、 制御用クラスタのどの論理行番号と対応する 制御表現要素に制御を戻すのかを指定する動作を制御用クラスタ内の所要プ ロダクシヨンルールの動作部に付加する行う手段 ( 1 0 ) 制御用クラスタに戻ることを記述する際に、 制御用クラスタにて参照可 能なパラメータをも同時に指定する記述形式を有することを特徴とする特許請求 の範囲 8項又は 9項記載のプロダクションシステム。 i l l ) 特許請求の範囲 1項乃至 1 0項記載のプロダクションシステムにて用し られるプログラムを格納したことを特徴とする磁気的、 光学的、 電気的、 あるい はそれらを複合した記憶媒体。
类似技术:
公开号 | 公开日 | 专利标题 Thatcher et al.1981|More on advice on structuring compilers and proving them correct Parnas1976|On the design and development of program families Farber et al.1964|SNOBOL, a string manipulation language JP3488019B2|2004-01-19|制御設計用コンフィギュレーション・ツールの部品再利用方法 US5542024A|1996-07-30|Graphically used expert system tool background of the invention US5978582A|1999-11-02|Method and system for implementing software objects US4435753A|1984-03-06|Register allocation system using recursive queuing during source code compilation Teitelman1984|A tour through Cedar Newell et al.1957|Programming the logic theory machine CA1304515C|1992-06-30|Software management structure US5897636A|1999-04-27|Distributed object computer system with hierarchical name space versioning CA2039334C|1998-01-20|System and method for editing a structured document to preserve the intended appearance of document elements Broersen et al.2001|The BOID architecture: conflicts between beliefs, obligations, intentions and desires US5821926A|1998-10-13|Method of generating an operating button for computer processing, method of retrieving data with the operating button and method of displaying the operating button JP4669788B2|2011-04-13|制約条件解決方法、制約条件解決装置、及び制約条件解決システム US6038539A|2000-03-14|Job scheduling system for designating procedure start times US4890240A|1989-12-26|Coalescing changes in pattern-directed, rule-based artificial intelligence production systems Knuth et al.1983|The WEB system of structured documentation US5485544A|1996-01-16|History sensitive help control method and system EP0400328B1|1997-02-19|Program parallelizing apparatus CA2201276C|2000-01-25|Indirect hierarchical views for software application management US6854111B1|2005-02-08|Library manager for automated programming of industrial controls Sandewall1978|Programming in an Interactive Environment: the``Lisp''Experience US7293264B2|2007-11-06|Method and a device for abstracting instruction sequences with tail merging Barstow1979|An experiment in knowledge-based automatic programming
同族专利:
公开号 | 公开日 EP0483359A4|1992-11-19| US5452453A|1995-09-19| JP3049561B2|2000-06-05| JPH0424826A|1992-01-28| US5615308A|1997-03-25| EP0483359A1|1992-05-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
1991-11-28| AK| Designated states|Kind code of ref document: A1 Designated state(s): US | 1991-11-28| AL| Designated countries for regional patents|Kind code of ref document: A1 Designated state(s): DE FR GB | 1992-01-23| WWE| Wipo information: entry into national phase|Ref document number: 1991905903 Country of ref document: EP | 1992-05-06| WWP| Wipo information: published in national office|Ref document number: 1991905903 Country of ref document: EP | 1996-06-06| WWW| Wipo information: withdrawn in national office|Ref document number: 1991905903 Country of ref document: EP |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 JP2/130695||1990-05-21|| JP2130695A|JP3049561B2|1990-05-21|1990-05-21|プロダクションシステムとプロダクションシステムの変換装置|US08/327,230| US5452453A|1990-05-21|1994-10-21|Rule based production system adapted for complex procedural flow| US08/486,936| US5615308A|1990-05-21|1995-06-07|Rule-based production system adapted for complex procedures flow| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|