Well, it really doesn't work that way; Jess doesn't "check" rules, nor
activate them in any specific order save what's determined by the
order in which facts appear, and salience. If a rule C won't fire
unless facts asserted by A and B are present, then C obviously won't
fire until after A and B have fired (if they're going to at all.)
If C fired due to the *absence* of facts that could be asserted by A
and B, then yes, you'd want to do something to control C's firing. You
could use salience; you could put C in a different module, and only
focus that module until after A and B's module has run; or you could
us explicit phase facts -- i.e., make C dependent on a fact you don't
assert until you know A and B have had a chance to run.
But in any case, there's no magic, and furthermore, most of the time
if you're worrying about making rules fire in a given order, you're
thinking about the problem wrong.
On May 19, 2009, at 10:50 AM, Joao Antunes Mourao wrote:
Hello,
I have a problem with the use of dependencies between different rules.
For example rule C use two facts that are given by rule A and B. In
this
sense, before fire rule C, i would like to be sure, that rule A and B
were checked, because otherwise i will have erroneous conclusions. Is
there any possible way to make this?
Moreover, i think the required statement is not sufficient, because
only
make visible other rules, but don't oblige the rules to be fired
first.
To handle this problem i'm currently using the salience parameter,
which
also is not the best way, as is easy to imagine. Do you know a way to
enforce this condition?
Regards,
Joao
----------
unclassified email
------------------------------------------------------------------------------------------------------------
Disclaimer:
If you are not the intended recipient of this email, please notify
the sender and delete it.
Any unauthorized copying, disclosure or distribution of this email
or its attachment(s) is forbidden.
Thales Nederland BV will not accept liability for any damage caused
by this email or its attachment(s).
Thales Nederland BV is seated in Hengelo and is registered at the
Chamber of Commerce under number 06061578.
------------------------------------------------------------------------------------------------------------
<joao.mourao.vcf>
---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, Livermore, CA 94550
http://www.jessrules.com
--------------------------------------------------------------------
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].
--------------------------------------------------------------------