Seems to be DROOLS-430 <http://jira.codehaus.org/browse/DROOLS-430>.
On 11/20/05, Michael Neale <[EMAIL PROTECTED]> wrote: > > I have been out of the loop for the past few weeks, but I believe a bug > was > found in the xor group feature, which has been fixed and should be out > with > "2.5". Perhaps this is showing the bug... (can't remember the jira off the > top of my head). > > -----Original Message----- > From: Karr, David [mailto:[EMAIL PROTECTED] > Sent: Monday, 21 November 2005 3:07 AM > To: [email protected] > Subject: [drools-user] RE: [spam]::RE: [drools-user] Is order of "rule" > elements in "rule-set" the load-order? > > I think I understand salience, but I still don't understand xor-groups. > From what I thought I understood, what I described doesn't match your > description, particularly related to your statement "then the other rule > will not as it is in the same XOR group". In my test case, it executed the > consequence for both rules in the same xor-group. How does that jive with > your statement? > > Perhaps my misunderstanding about this has to do with what "fire" means. > I thought this referred to the checking of the parameters and conditions > on > a rule. Your statements seem to imply that's not the case. > > > -----Original Message----- > > From: Michael Neale [mailto:[EMAIL PROTECTED] > > > > Salience "2" will fire first, as salience is priority (numerically). > > XOR means that once rule with salience 2 fires, then the other rule > > will not as it is in the same XOR group. > > > > Salience and XOR have no direct interaction, you only need salience if > > order of firing is important (order of firing > > *consequences* of course - it is hard to predict when conditions will > > be evaluated). > > > > Make sense? (ie what you described is to be expected). > > > > -----Original Message----- > > From: Karr, David [mailto:[EMAIL PROTECTED] > > > > I just tried to set this up in a prototype, and I must be > > misunderstanding something about xor-group, because it didn't work the > > way I expected. > > > > I defined two rules, both of which would match the input based on > > their parameters and conditions. I set the first one to salience "1" > > and the second to "2". I set them both to have the same xor-group > > value. In my consequence, I just added a print statement, so I would > > know which one it matched. > > > > What I saw is that it matched both rules, and it matched the one with > > salience "2" first. > > > > What do I have to do to have it match only a single rule (or > > none) in an xor-group? > > > > > -----Original Message----- > > > From: Michael Neale [mailto:[EMAIL PROTECTED] > > > Sent: Saturday, November 19, 2005 5:59 PM > > > To: [email protected] > > > Subject: [spam]::RE: [drools-user] RE: [spam]::RE: > > > [drools-user] RE: [spam]::Re: [drools-user] Is order of "rule" > > > elements in "rule-set" the load-order? > > > > > > > > > No if salience (priority) is not set, then it is not necessarily as > > > simple as top to bottom in the XML (as I am sure you read > > in the doco > > > on it). > > > > > > If you care about the order in the xor group, you need to > > set salience > > > accordingly. > > > > > > If you have very special needs for ordering, you can write > > and plug in > > > your own conflict resolver of course. > > > > > > -----Original Message----- > > > From: Karr, David [mailto:[EMAIL PROTECTED] > > > Sent: Sunday, 20 November 2005 11:53 AM > > > To: [email protected] > > > Subject: [drools-user] RE: [spam]::RE: [drools-user] RE: > > > [spam]::Re: [drools-user] Is order of "rule" elements in "rule-set" > > > the load-order? > > > > > > So are you saying that rules definitely fire (checking > > > conditions) in the order they are in in the XML, ignoring for the > > > moment any conflict resolution settings (like salience)? > > > If that's the case, then that might give me what I need, if I order > > > the rules in order of priority in each xor-group. > > > > > > > -----Original Message----- > > > > From: Michael Neale [mailto:[EMAIL PROTECTED] > > > > > > > > No the ordering works over the whole ruleset with nothing > > to do with > > > > xor grouping. > > > > > > > > The rules inside an xor group would follow the ordering of > > > rule firing > > > > of the whole rule set, the xor group having no effect on > > > this (the xor > > > > group simply only allows one of the rules to fire). > > > > > > > > -----Original Message----- > > > > From: Karr, David [mailto:[EMAIL PROTECTED] > > > > > > > > > -----Original Message----- > > > > > From: Geoffrey Wiseman [mailto:[EMAIL PROTECTED] > > > > > > > > > > On 11/19/05, Karr, David <[EMAIL PROTECTED]> wrote: > > > > > > I'm trying to figure out how I can make only one rule > > > in a set of > > > > > > rules fire, and have it check the rules in a certain order. > > > > > > > > > > > > I see that using the "xor-group" attribute deals with the > > > > > "only one" > > > > > > part, but I'm not sure how to specify the order it checks > > > > > the rules in > > > > > > an xor-group. Is that what "salience" is for? In a particular > > > > > > xor-group, will the rule with the highest salience be > > > > checked first? > > > > > > > > > > Salience is a factor, yes; that's the easiest way to control the > > > > > firing of rules. There's a page on the Drools site > > about Conflict > > > > > Resolution that should help clarify somewhat. > > > > > > > > Yes, I saw that section. I wasn't certain from that > > > exactly what the > > > > semantics would be in the context of xor-groups. > > > > Would the saliency ordering in a particular xor-group be > > completely > > > > independent of the saliency ordering in a different > > xor-group, even > > > > for identical saliency values across xor-groups? > > > > > > > > I want to use salience within xor-groups because I want > > each rule in > > > > an xor-group to have a condition which checks to see whether a > > > > particular code value "isPresent()" in a list, but each > > particular > > > > code value has a "priority", so I'll set the salience for > > > that rule to > > > > the priority for the code value. > > > > > > > > > > > > -- Geoffrey Wiseman
