On Tue, 4 Mar 2003 [EMAIL PROTECTED] wrote:
>
> Jess does this to prevent endless loops. Basically, a need-foo rule
> has to advertise the kind of foo it's going to produce, or Jess will
> not know that firing the rule would do any good. So, for instance,
> although get-a-foo will still be incorrect in some sense, it would
> fire when you expected it to if you changed it to
>
> > (defrule get-a-foo
> >    ?fact <- (need-foo (bar ?x))
> >    =>
>
> Because then it will get compiled to
>
>  (defrule get-a-foo
>     ?fact <- (need-foo (bar ?x))
>     (not (foo (bar ?x)))
>     =>
>
> i.e., we need a fact that currently doesn't exist. Of course, for this
> to be a "correct" rule, it should assert precisely the fact that it
> advertises it will -- i.e., (foo (bar ?x)).

Thanks, this explanation heled solved my problem.


- Bob

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to