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] --------------------------------------------------------------------
