1

PyCLIPS を使用して、ECA サーバー (event-conditon-action) として機能するプログラムに CLIPS を統合しています。システム状態とともに、メッセージ バスでアクションを発行するルールをトリガーする場合とトリガーしない場合がある受信イベントがあります。

システム状態は、受信イベントに応じてスロットが変更されるインスタンスの形で現れます。

このソフトウェアは長寿命のサービスであることを意図していますが、ルールの実行中にエラーが発生した場合、たとえば名前の誤ったハンドラーによって次のようになります。

ERROR: [MSGFUN1] No applicable primary message-handlers found for event-handler.
[PRCCODE4] Execution halted during the actions of defrule event-rule.

クリップ セッションが新しいメッセージに応答しなくなります。スロットは次を使用して更新されなくなりました:

clips_instance.Send(event, event_args)

clips.DebugConfig.WatchAll()デバッグ出力がない場合でも、クリップでは何も起こりません。

例:

>>> import clips
>>> clips.Build("(defclass POINT (is-a USER) (slot x) (slot y))")
>>> clips_instance = clips.BuildInstance("p1","POINT","(x 3) (y 5)")
>>> clips_instance.Send("get-x","")
<Integer 3>
>>> clips_instance.Send("get-z","")
<Symbol 'FALSE'>
>>> clips_instance.Send("get-y","")
<Symbol 'FALSE'>
>>> 

これを回避したり、この状態から回復したりする可能性はありますか?

4

0 に答える 0