Hi,

I have just reproduced the example of section 6.10 of the Jess manual:

    (defrule forall-example
        (not (and (a ?x)
                  (not (b ?x)) ) )
        =>
        (printout t "whassup?" crlf) )
   
    (deffacts qwe
        (a 1)
    ;    (a 2)
        (b 1) )
   
    (reset) (facts) (run)

So in this case, if I comment out fact (a 2), the rule stops firing.
But then I tried to implement the following rule:

    (defrule r
        (not (and ?x <- (a ?)   ; variable binding
                  (not (b ?x)) ) )   ; check if there is a b referring
to the a fact
        =>
        (printout t "sure thing!" crlf) )
   
    (deffacts qwe
        (a 1)
    ;    (a 2)
        (b (fact-id 1)) )   ; fact b referring to fact (a 1)
  
    (reset) (facts) (run)

It's quite similar to the previous one, but now I am inspecting if fact
b contains a reference to fact a.
In this case the rule does not cease to fire when I comment out (a 2).

Am I missing something?

Thanks,

Henrique



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