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

ringsah at comcast.net ringsah at comcast.net
Thu Jul 31 13:29:40 EDT 2008


Ingomar,

I tried this, and indeed that worked. I was surprised, as I thought "not" was meant more to mean that a fact inside its parentheses did not exist, rather than a logical negation, which is the way you used it in your example. However, if I do what you said, it does work exactly how I expected "not" alone to work.

Thanks!
-Hans

-------------- Original message -------------- 
From: Ingomar Otter <iotter at mac.com> 

> 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 
> 
> _______________________________________________ 
> rules-users mailing list 
> rules-users at lists.jboss.org 
> https://lists.jboss.org/mailman/listinfo/rules-users 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080731/65b4c5f2/attachment.html 


More information about the rules-users mailing list