我使用Jess规则引擎,我有一些规则可以改变一些槽值作为结论。这是通过两种不同的方式实现的: 1.用Jess修改(例如=>修改事实) 2.具有jess功能(例如=> change(slotvalue)) 问题是当两个规则改变相同的slotvalue时。我使用Jess salience,它只适用于类型1 =>修改事实。 当我有一个带有该功能的规则时,规则每次都有规定。我怎么能解决这个问题?
以下是代码:
1)如果是学生=>(修改?fact(fredo 2))
2)如果一天是星期三=>(修改?fact(fredo(折扣(fact-slot-value?fact fredo)50)))
3)如果时间> 5 =>(修改?fact(fredo 5))
如果一个人是学生,那天是星期日,时间> 5,那么所有规则都会被解雇,而fredo slot值将是5,因为这条规则最后被解雇了。 在这种情况下,我如何解决优先权问题(例如,只触发第二条规则);可能吗; 谢谢你的回复。