CLIPs如何通过Defrule打印所有缺陷作为结果?或者能够插入多个特征作为答案?



我正在做一个项目,让用户根据花的颜色和盛开的季节找到茉莉的列表,但是我还没有找到一种有效的方法,能够通过使用一个默认

来一次打印当前程序中的所有茉莉。
(deftemplate jazmin 
(slot nombre) 
(slot color-flor
(allowed-values blanca amarilla)) 
(multislot floracion
(allowed-values invierno primavera verano otono)) 
)
(defrule in-color-flor
=>
(printout t "Inserte el color de la flor: ")
(assert (color-flor (read)))
)
(defrule in-floracion
=>
(printout t "Inserte en que mes florece: ")
(assert (floracion (read)))
)
(defrule buscar-jazmin
(color-flor ?color-flor)
(floracion ?floracion)
(jazmin (nombre ?nombre) (color-flor ?color-flor) (floracion $? ?floracion $?))
=>
(printout t "El nombre del jazmin descrito es: " ?nombre crlf)
)
(defrule jazmin-no-encontrado
(color-flor ?color-flor)
(floracion ?floracion)
(not (jazmin (nombre ?nombre) (color-flor ?color-flor) (floracion $? ?floracion $?)))
=>
(printout t "El jazmin descrito no se encuentra" crlf)
)
(deffacts jazmines
(jazmin (nombre Jazmin-Blanco) (color-flor blanca) (floracion primavera verano otono))
(jazmin (nombre Jazmin-Chino) (color-flor blanca) (floracion primavera))
(jazmin (nombre Jazmin-Silvestre) (color-flor amarilla) (floracion verano))
(jazmin (nombre Jazmin-Azor) (color-flor blanca) (floracion primavera))
(jazmin (nombre Jazmin-Espanol) (color-flor blanca) (floracion verano otono))
(jazmin (nombre Jazmin-Amarillo) (color-flor amarilla) (floracion invierno primavera))
)

我想知道是否有可能在一个规则中打印所有这些特征,或者能够在一次(运行)中指定多个特征。

打印所有这些的规则是:

(defrule jazmin
(jazmin (nombre ?nombre))
=>
(printout t "jazmin " ?nombre crlf)
)

你的规则已经允许你指定多个特征(颜色和花型)。

最新更新