在 CLIPS 中获取规则体

Get rule body in CLIPS

我是 CLIPS 开发的新手,我需要检索规则主体并将其存储在字符串中以便解析它。我试图重定向 defrule 流但没有成功。 有什么办法可以做到这一点,或者它是否存在一个我会忘记的特殊命令。

(defrule one
  (fact a)
  =>
  (assert (fact b)))


 (bind ?str (ppdefrule one))

一条规则显示但 ?str 为空

感谢您的时间和考虑。

没有开箱即用的干净方法,但有一个 C API 用于检索文本,因此您可以使用用户定义的函数扩展 CLIPS 以允许您执行此操作。另一种方法是使用 dribble-on/dribble-off 来捕获文件中的输出,但这也会在您每次检索规则文本时将输出显示到屏幕上。