我正在尝试编写一个基于时间运算符收集/累积值的规则。
rule "Zone6 Overlap"
when
$i1 : Instance ($e1 : event == " Vel : 20.99-23.98 km/h : " && $name1 : name) from entry-point "Stream"
$i2 : Instance ($e2 : event && $name2 : name && $e2 == $e1 && $name2 != $name1
&& this overlaps $i1) from entry-point "Stream"
then
System.out.println("** Overlap Event: Velocity Zone 6 ** \nPlayer1: " + $i1.getName() + "\nPlayer2: "
+ $i2.getName() + "\nEvent: " + $i1.getEvent() + "\n" + "Start Time (P1): "
+ $i1.getStart() + " - End Time: " + $i1.getEnd() + "\nStart Time (P2): "
+ $i2.getStart() + " - End Time: " + $i2.getEnd() + "\n");
end
这是我最初的规则,它设法使两个持续时间重叠。
我要创建的规则的想法是查看足球比赛中球员的持续时间是否存在任何集体重叠。我想看看场上最多 9 名球员中是否有任何一名球员以事件变量中指定为字符串的速度范围移动,这些速度都同时重叠。
我已经尝试了一些关于累积和收集的事情,但是在这些事件发生时如何收集它们并将它们返回到规则的右侧以便它们可以打印到标准输出时遇到了困难。
请帮忙。
谢谢。