我具有以下定义]
(deftemplate potential (multislot values (type INTEGER)) )
并且我想删除此deftemplate的实例,如果其中仅出现整数。例:事实1:潜力1 2 3事实2:潜力2 3 4事实3:潜力2 3 4 5
我想撤消事实1和事实3,因为它们分别包含1和5。
我正在尝试使用如下规则来实现它:
1 (defrule remove_if_only_option 2 ?p<-(potential (values $? ?value $? )) 3 (not (exists (potential (values $? ?value $?) ))) 4 => 5 (retract ?p) 7 )
显然,它不起作用,因为第3行可以匹配初始事实。是否有任何方法可以使该规则以其余规则不考虑?p的方式运行?
谢谢。
我具有以下deftemplate(潜在的deftemplate(多时隙值(INTEGER类型))),如果仅在整数中出现,我想删除此deftemplate的实例。例如:fact-1:...
您的规则中的任何一种模式都不会受到初始事实的影响,因为它们都与潜在事实相匹配。存在条件元素在第二种模式中是多余的,因此您的规则等效于