Thanks Wolfgang,<div><br></div><div>It now starts to make sense to me. However, is it possible that I don't retract those matched eventA? All those events might be used to evaluate against other rules.</div><div><br></div>
<div>Thanks again,</div><div>Kevin Zhao</div><div><br><div class="gmail_quote">2010/10/25 Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I assume you are using Fusion, using a session clock so that temporal operators are available.<br><br>rule "three A"<br>when<br> $a1: EventA( $index : index )<br> $a2: EventA( index == $index )<br> $a3: EventA( index == $index )<br>
not EventB( this after[0ms] $a1 && 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"><<a href="mailto:kevin223@gmail.com" target="_blank">kevin223@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div></div><div class="h5">Hello,<div><br></div><div>I'm still quite new to the drools stuffs just getting the examples running. I'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'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'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></div></div>_______________________________________________<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>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">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></div>