<div dir="ltr">I wanted to circle back before this thread gets too far off the original topic and folks searching in the future don't get confused. I am still confused between the 'or' and '||' as explained here and in the documentation. I will attempt to review this in more detail. In the meantime, I have simplified my rules per the above comments and am able to run them with about 10M facts in under 3 hours. The system required more than 40GB of RAM. I am chunking the data and running multiple threads. I will look to reduce the overhead where possible as I am certain their are further improvements that can be made. Once I complete out my refactoring and reviews, I'll circle back again. Needless to say, things have moved in a very positive direction. I am not sure what memory expectations I should have so I'll take a complete run in this timeframe without errors as a win.<div>
<br></div><div>Thank you, Wolgang and Mark. You guys have been fantastic!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 25, 2013 at 3:13 AM, Mark Proctor <span dir="ltr"><<a href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On 25 Feb 2013, at 06:46, Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>> wrote:<br>
<br>
> On 24/02/2013, Mark Proctor <<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>> wrote:<br>
><br>
>>> when<br>
>>> $sv1 : SiteVisit( yearRecorded == durationCycleYear, !annualVisit )<br>
>>> FaultCode( $sv1.ID==svID, code matches "366.\\d+|743.3\\d?" )<br>
>>> $inspector: Insepector (ID == $sv1.insepectortID)<br>
>>><br>
>>> $sv2 : SitVisit( yearRecorded == durationCycleYear, !annualVisit )<br>
>>> #make sure we are dealing with the same inspector<br>
>>> Inspector (ID == $sv2.inspectorID, EUID == $inspector.EUID)<br>
>>><br>
>>> ( FaultCode( $sv2.ID == svID, code matches "45.61" ) or<br>
>>> ServiceCode($sv2.ID == svID, code matches<br>
>>> "66(8[4-9][0-9]|9([0-3][0-9]|40))|66982|66984|66983" ) )<br>
>>><br>
>> same here<br>
>><br>
>> Are you sure you want 'or' and not ||.<br>
><br>
> Mark, how would you suggest to avoid 'or' and use '||' (and I don't<br>
> mean the deprecated alternative to 'or')? You are beginning to confuse<br>
> (even) me!<br>
</div>Many people do not want CE 'or' they want infix '||' used in compound expressions. I later clarified the difference in the follow up email.<br>
<span class="HOEnZb"><font color="#888888"><br>
Mark<br>
</font></span><div class="HOEnZb"><div class="h5">><br>
> -W<br>
><br>
>> The 'or' CE can result in two rules<br>
>> firing, if they are not mutually exclusive logical conditions.<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>
<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>
</div></div></blockquote></div><br></div>