Я пытаюсь написать правило, которое собирает / накапливает значения на основе временного оператора.
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 игроков на поле с диапазоном скоростей, указанным в виде строки в переменной события, и все они перекрываются одновременно.
Я пробовал несколько вещей относительно накопления и сбора, но борюсь с тем, как собирать эти события, когда они происходят, и возвращать их в правую часть правила, чтобы их можно было распечатать в стандартном виде.
Пожалуйста помоги.
Спасибо.