<br><br><div class="gmail_quote">On 9 February 2011 19:54, jwillans2 <span dir="ltr">&lt;<a href="mailto:james.willans@ceteva.com">james.willans@ceteva.com</a>&gt;</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;">
<br>
&gt; rule &quot;example&quot;<br>
&gt;  when<br>
&gt;    $op : ObjectProvider()<br>
&gt;    Object(slot = &quot;value&quot;) from op.eval()<br>
<br>
Because getting the value returned by op.eval() is extremely expensive and<br>
should only be done if this component of the rule is evaluated (assuming<br>
that the rule has a more complex pattern implicating other types).<br>
<br></blockquote><div><br>Calling $op.eval() (don&#39;t call it eval!) being expensive is a good reason for keeping the returned value in Working Memory :-)<br><br>You can have one rule that determines whether it is required to call $op.eval() and do the inserts and another one that uses the inserted facts.<br>
-W<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks,<br>
<br>
James<br>
<font color="#888888"><br>
--</font></blockquote></div><br>