我使用PyCLIPS将CLIPS集成到一个应该充当ECA-Server的程序中(事件条件 - 动作)。 有些传入事件与系统状态一起可能触发或不触发规则,然后在消息总线上发出操作。
系统状态以实例的形式显示,其实例的插槽根据传入的事件进行修改。
该软件旨在成为一种长期服务,但在执行规则期间发生错误时,例如通过错误命名的处理程序:
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'>
>>>
有没有可能避免这种情况或从这种状态中恢复过来?