[rules-users] "Not" Non-Existential Quantifier

Ingomar Otter iotter at mac.com
Thu Jul 31 12:26:17 EDT 2008


Hans,
If you change "not NegativeResult()"  to "not (exits  
NegativeResult())" this should result in the expected behaviour.

Cheers,
   Ingomar

Am 31.07.2008 um 17:19 schrieb ringsah at comcast.net:

> How is "not" supposed to work with insertLogical? Assume I have two  
> different rules whose conditions are mutually exclusive, like the  
> following:
> rule "Rule One"
> when
> not NegativeResult()
> then
> insertLogical(new ApplicantStatus("Approved"));
> end
> rule "Rule Two"
> when
> NegativeResult()
> then
> insertLogical(new ApplicantStatus("Denied"));
> end
> Assume that the above two rules are the only way an ApplicantStatus  
> fact can be inserted into working memory. I would expect, after all  
> rules are run, that it would be impossible for there to be one  
> ApplicantStatus with "Approved" as its reason, and another with  
> "Denied" as its reason, in the working memory.
> I would expect that, before any NegativeResult is inserted, that  
> rule one could run, and insert an ApplicantStatus fact with an  
> "Approved" reason. Then, after a NegativeResult is inserted, that  
> rule two could run, and insert an ApplicantStatus fact with a  
> "Denied" reason. At this point I would expect that the original  
> ApplicantStatus fact, with an "Approved" reason, would be retracted,  
> since the conditions under which it was inserted are no longer true.
> This is not what I am observing, however. I am finding  
> ApplicantStatus facts with both reasons in working memory at the end  
> of the rules run. Should "not" work as I expect with regard to  
> inserting a fact via insertLogical()? Or is this a known limitation,  
> or simply the way it is designed to work?
> Thanks,
> -Hans_______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users




More information about the rules-users mailing list