Hi Wolfgang,<div><br></div><div>I'd assume your assumption to be correct.<div><br></div><div>Cloud Mode's definition in the Fusion manual includes:-</div><div><br></div><div>"When running in CLOUD mode, the engine sees all facts in the working memory, does not matter if they are regular facts or events, as a whole" and "There is no notion of time....There is no requirement on event ordering. The engine looks at the events as an unnordered cloud against which the engine tries to match rules"</div>
<div><br></div><div>So "before" has no meaning.</div><div><br></div><div>Edson will have to advise how CLOUD mode affects pattern matching and node propagation though! My assumption, based on your results, is that patterns including temporal operators are unmatched by default - but probably a little more to it than that.</div>
<div><br></div><div>With kind regards,</div><div><br></div><div>Mike</div><div> </div><div><br><div class="gmail_quote">2010/11/4 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;">In STREAM mode, the clock may have to have advanced beyond the latest fact so<br>that certain conditions can be evaluated safely.<br>
<br>For instance, another event could still be inserted at the same millisecond. If<br>a condition such as <br>
not Event( this coincides $event )<br>were evaluated prematurely, it would produce an incorrect result.<br><br>Is this the explanation?<br><font color="#888888">-W</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">
On 4 November 2010 10:09, Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">The .drl:<br><br>declare Leave<br> @role( event )<br> @timestamp( timestamp )<br>end<br><br>
rule "XXX Leave not !="<br>when<br> $leave: Leave()<br> not Leave( this != $leave )<br>then<br> System.out.println( "XXX only one Leave - not !=" );<br>
end<br><br>rule "YYY Leave not after"<br>when<br> $leave: Leave()<br> not Leave( this before $leave )<br>then<br> System.out.println( "YYY only one Leave - not before" );<br>end<br><br><br>A) The pseudo-clock is advanced according to the timestamp; then<br>
exactly one event Leave is inserted; then fireAllRules() is called.<br><br>1) Running in CLOUD mode, both rules fire.<br>2) But running in STREAM mode, ONLY rule XXX fires.<br><br>B) Like A, but the session clock is advanced by (at least) 1ms<br>
prior to calling fireAllRules().<br><br>3) Either mode, both rules fire.<br><br>I think that A2) is incorrect; why should passing another msec change the logic?<br><br>JIRA?<br><font color="#888888"><br>Wolfgang<br><br><br>
<br>
</font></blockquote></div><br>
</div></div><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></div>