- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 Clipspy 从 Python 函数中撤回 CLIPS 中的事实。我尝试使用 build()
但事实仍然存在。
;;--KB.clp--;;
(defrule main-intent
(initial-fact)
=>
(assert (fact one))
(assert (fact two))
)
(defrule rule_1
?p <- (fact one)
?q <- (fact two)
=>
(py_pfact)
(py_retract ?p ?q)
(py_pfact)
)
从 python 运行
# run.py
import clips
clips_env = clips.Environment()
def py_pfact():
for fact in clips_env.facts():
print(fact)
def py_retract(p, q):
clips_env.build('retract '+str(p))
clips_env.define_function(py_retract)
clips_env.define_function(py_pfact)
clips_env.load("KB.clp")
clips_env.reset()
clips_env.run()
输出为:
(initial-fact)
(fact one)
(fact two)
(initial-fact)
(fact one)
(fact two)
(事实一)未撤回。看起来 ?p 不包含事实标识符,而是包含整个事实本身。过去我就以这种方式使用过 PyCLIPS 并且它有效。是否可以使用 ClipsPy 撤回事实?
最佳答案
在clipspy
中environment.build
method类似于 CLIPS C API EnvBuild
,它允许在引擎内将定义模板和规则等构造构建为字符串。
clips_env.build("(deftemplate foo (slot bar) (slot baz))")
如果您想撤回事实,只需调用its method即可.
def py_retract(p, q):
p.retract()
关于python - 如何使用 Clipspy 撤回事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53959559/
documentation包含以下示例代码: ... klass = env.find_class('MyClass') instance = klass.new_instance('instance
如何使用 Clipspy 从 Python 函数中撤回 CLIPS 中的事实。我尝试使用 build() 但事实仍然存在。 ;;--KB.clp--;; (defrule main-intent
刚刚安装clipspy在 Windows-10 64 位上;并在 Jupyter notebook 中进行测试我有; from clips import Environment, Symbol imp
刚刚安装clipspy在 Fedora 26 上。我可以这样断言简单的事实: >>> from clips import Environment >>> env = Environment() >>>
是否可以使用clipspy从剪辑中读取ErrorStream?使用pyclips,它的工作方式如下:clips.ErrorStream.Read()。 使用 clipspy 执行此操作是否有意义,或者
我已经从 git 存储库安装了 CLIPSpy,并按照说明使用源文件进行安装。然而,在安装并运行 python shell 之后,我得到了这个错误: `import clips .
有人可以提供有关如何在 linux 环境中安装 clips 和 clipspy 的分步过程。 pip install clipspy 对我不起作用,因为我的组织不允许使用 pip。我需要从源代码构建。
我是一名优秀的程序员,十分优秀!