CLIPS 系统暂停,不再继续执行

CLIPS system halted and not continuing to execute

我正在按照 APG 文档集成 CLIPS 专家系统,感谢伟大的文档,我成功地将 CLIPS 集成到我的 C++ 项目中,我的应用程序持续运行并使用 EnvAssert 方法将事实提供给 CLIPS 系统并调用 Env运行,一切正常,直到我收到此错误。

[PRNTUTIL7] Attempt to divide by zero in / function.

[DRIVE1] This error occurred in the join network
   Problem resides in associated join
      Of pattern #1 in rule RULE-1

[PRCCODE4] Execution halted during the actions of defrule RULE-2.

一旦我收到此错误,进一步的 Assert 正在工作,但 运行 似乎不起作用,但我确信有明确的匹配规则可用,但仍然没有规则在下一个 运行 上触发。

我理解错误并且可以修复它,但我无法理解该行为。所以我在 CLIPS 控制台中测试了它,当连续报告错误时 运行 似乎按我预期的那样工作,但不是我的应用程序,我想知道潜在的区别。

参考应用伪代码:

<code to create and initialize CLIPS environment>
EnvReset()
While(true)
{
   <my code to get facts>
   EnvAsset(Fact)
   EnvRun(-1)
   <my code to receive the generated result facts>
}

注意:我不会在每个 运行 之前调用 RESET。

用于重置 API 调用的错误标志的修复程序已签入 sourceforge 上的颠覆存储库:https://sourceforge.net/p/clipsrules/code/HEAD/tree/branches/