I assume you are using Fusion, using a session clock so that temporal operators are available.<br><br>rule &quot;three A&quot;<br>when<br>  $a1: EventA( $index : index )<br>  $a2: EventA( index == $index )<br>  $a3: EventA( index == $index )<br>
  not EventB( this after[0ms] $a1 &amp;&amp; before[0ms] $a3, index == $index )<br>
then<br>  // ... match<br>  retract( $a1 );<br>  retract( $a2 );<br>  retract( $a3 );<br>end<br><br>-W<br><br><div class="gmail_quote">2010/10/25 赵侃侃 <span dir="ltr">&lt;<a href="mailto:kevin223@gmail.com" target="_blank">kevin223@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<div><br></div><div>I&#39;m still quite new to the drools stuffs just getting the examples running. I&#39;m sorry if my question is too basic.</div>

<div>I have a system that will continuously to receive events sent from some other system. Basically I have two types of events, eventA and eventB. </div>
<div>Both eventA and eventB have two properties, index and timestamp.</div><div><br></div><div>What I want is to capture a pattern to meet the following conditions</div><div><br></div><div>1. every 3 consecutive eventsA without any eventB in between having a same index value ordering by their timestamp. </div>


<div><br></div><div>2. all events in a matched pattern will have the same value of property index.</div><div><br></div><div>3. if a pattern is matched, any of the events in this pattern should not be used again for a new matching.</div>


<div><br></div><div>there are some examples below, the number after a colon stands for the value of its index number and assume those events are already ordered by their timestamp.</div><div><br></div><div>eventB:2    eventA:1     eventA:1     eventA:1  eventB:3      --------- one successful match, we have three eventA with same index value 1 in a row</div>


<div><br></div><div>eventB:2    eventA:1     eventA:1     eventB:1  eventA:1      --------- no match because there&#39;s an eventB in between</div><div><br></div><div>eventB:2    eventA:1     eventA:1     eventB:2  eventA:1      --------- one successful match because the in-between eventB has a different index value</div>


<div><br></div><div>eventA:1    eventA:1     eventA:1     eventA:1  eventA:1      --------- only one match, because once matched, the events can not be used for a second match again.</div><div><br></div><div><br></div><div>


I just don&#39;t know how to write a rule like this. Is there anyone who can shed some lights on?</div><div><br></div><div>Best Regards,</div><div>Kevin</div><div><br></div><div><br></div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>