我正在尝试将插槽绑定到全局变量,但似乎不起作用。
我尝试了以下操作,但是创建的规则不起作用。
*(defrule getusermalinfo
(user (usinfo ?usr))
=>
(bind ?usr ?*degreeofyes*)
)*
之后,我想使用广告位值做出一些决定。就像下面的规则一样:
*(defrule not-likely
(user {usinfo <= 10})
=>
(printout t "Not suffering from Kwashiorkor" crlf)
)*
答案 0 :(得分:2)
一个人不能使用(绑定)来修改事实的插槽值。您需要使用(修改)这样的内容:
(defrule getusermalinfo
?user <- (user)
=>
(modify ?user (usinfo ?*degreeofyes*))
)
但是,请注意,您可能必须在此规则的LHS中添加一些内容,以选择一些特定的用户事实和/或避免在修改后重复触发此规则。