[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