我在这里列出我的问题。
这是我的活动:
这些是我的规则。
现在我希望将1和3组合在一起 喜欢: 4.如果具有完成属性状态的学生进入房间,请提醒教师。
正如我之前所说的那样,两个事件分别来了。因此,在2个不同的规则中处理它更容易。但是当我想创建一个规则,它是规则4中的1和3的组合,那么我必须验证一个人进入一个房间是否是一个学生,如果他的属性“完整”。
但是,即使在验证他是否是学生之前加载状态属性,对我来说听起来也不好。所以,我想调用一个只在
时加载属性的方法“一个人是学生,并且有一条规则试图加载属性状态”。
我计划通过LHS中的方法调用来实现,这并不简单。
还有其他办法,我可以办理吗?
答案 0 :(得分:2)
在大多数时间内制定识别特定情况的小规则比使用复杂规则来识别混合情况要好。我不清楚的是你是否想用规则4取代规则3。我将离开规则3并创建规则4,如下所示:
when
PersonEnteringRoom($p: person, $r: room, person.type == "Student", person.status == "Complete") // status was set by rule 3.
Room(this == $r, $t: currentTeacher != null) //the relation could be stablished by rule 1
then
Notifier.notify($t, "The student has completed the course", $p);
end
当然,此规则是否适合您取决于其他因素,如执行周期。
希望它有所帮助,