在使用clipspy的输出python代码中不生成任何内容



我正在使用clipspy创建一个专家系统,当我在Python中运行代码时,它在输出中没有抛出任何东西,我无法找到原因。

Python代码:

import clips
DEFTEMPLATE_STRING = """
(deftemplate dormitorio
(slot Presencia (type STRING))
(slot Iluminación (type STRING)))
"""
env = clips.Environment()
env.build(DEFTEMPLATE_STRING)
env.load('test.CLP')
Dormitorio = env.find_template('dormitorio')
fact_Dormitorio = Dormitorio.assert_fact(Presencia = 'Si',
Iluminación = 'Apagada')
env.reset()
env.run()    

视频文件:

(defrule dormitorio
(Presencia Si)
(Iluminación Apagada)
=>
(printout t "Encender la iluminación del dormitorio." crlf)
(modify 1 (Iluminación Encendida))
)

期望输出打印并修改变量(Iluminación)?

当需要出现在规则名称和事实模式的左括号之后时,您使用了dorm作为规则名称。

不要在规则的操作中使用整型常量和modify命令。将与模式匹配的事实绑定到一个变量,并与modify命令一起使用。

(defrule r1
?d <- (dormitorio
(Presencia Si)
(Iluminación Apagada))
=>
(printout t "Encender la iluminación del dormitorio." crlf)
(modify ?d (Iluminación Encendida)))

相关内容

最新更新