|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
JESS: Rule conflict resolutionHello,
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. ------------------------------------------------------------------------------------------------------------ begin:vcard fn;quoted-printable:Jo=C3=A3o Mour=C3=A3o n;quoted-printable;quoted-printable:Mour=C3=A3o;Jo=C3=A3o org:Thales;Above Water Systems adr:;;;Hengelo;;;Netherlands email;internet:joao.mourao@... title:THALES NETHERLANDS B.V. tel;work:2640 note:-unclassified mail- version:2.1 end:vcard |
|
|
Re: JESS: Rule conflict resolutionWell, 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 you@...' in the BODY of a message to majordomo@..., NOT to the list (use your own address!) List problems? Notify owner-jess-users@.... -------------------------------------------------------------------- |
|
|
Re: JESS: Rule conflict resolutionYes, i forgot to say that i use not(s) CE in my rules, in the example
rule C i mean, so i'm talking about a rule that fires in the absence of facts. Obviously, if i fire rules only in the presence of facts, there is no problem. I had been using salience, but doesn't seem to me a nice technique. But you mentioned something that might work, the modules. I haven't used them until now, but it seems a very good alternative to make restriction on firing rules. Thanks. Joao On 20-05-2009 03:45, Ernest Friedman-Hill wrote: > 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 you@...' > in the BODY of a message to majordomo@..., NOT to the list > (use your own address!) List problems? Notify > owner-jess-users@.... > -------------------------------------------------------------------- > ------------------------------------------------------------------------------------------------------------ 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. ------------------------------------------------------------------------------------------------------------ begin:vcard fn;quoted-printable:Jo=C3=A3o Mour=C3=A3o n;quoted-printable;quoted-printable:Mour=C3=A3o;Jo=C3=A3o org:Thales;Above Water Systems adr:;;;Hengelo;;;Netherlands email;internet:joao.mourao@... title:THALES NETHERLANDS B.V. tel;work:2640 note:-unclassified mail- version:2.1 end:vcard |
| Free embeddable forum powered by Nabble | Forum Help |