I am sure you (in the meantime) can have a XorGroup object in WM, and revoke
it when a rule fires.
Then each rule just has
when xor : XorGroup(name=="foo") ... then ... retract(xor); end

not quite the same, but can achieve similar in the meantime. I guess the
trick is then when to put the xor back in.. yes its a handy thing though...
more important the "else" probably.



On 4/13/06, Ho, Alan <[EMAIL PROTECTED]> wrote:
>
> Doh !!! That was one of my favorite features :)
>
> I found the concept of a "xorGroup" is a powerful replacement for the
> strategy design pattern. In this case, every consequence is a concrete
> strategy. Based on the condition, the rule engine selects one consequence (
> a.k.a a specific strategy) to use.
>
> Regards,
> Alan Ho
>
> -----Original Message-----
> From: Mark Proctor [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, April 12, 2006 11:32 AM
> To: [email protected]
> Subject: Re: [drools-user] How to express conditional logic via DRL - ?
>
> There is no xor-group for 3.0. will be in 3.1
>
> Mark
> Ho, Alan wrote:
> > I vote no on having 'else'.
> >
> > The switch statement is exactly the same as the "xorGroup" concept in
> DROOLS (aka mutually exclusive rules). In DROOLs 3, how do you make a set of
> rules to be part of an XOR group ?
> >
> > Regards,
> > Alan Ho
> >
> > -----Original Message-----
> > From: Dmitry Goldenberg [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, April 11, 2006 7:57 AM
> > To: [email protected]
> > Subject: RE: [drools-user] How to express conditional logic via DRL - ?
> >
> > This is actually the reasong I went through- wanting to use Drools as a
> script execution framework.  Ideally, I'd like to see support for
> IF-THEN-ELSE and possibly SWITCH.  As of now, I don't see a need for any
> other "procedural" constructs but it seems to me that IF-THEN-ELSE would be
> an immediate need for our users.  It would be nice to have explicit support
> for it, rather than a whole chapter in our doc explaining how to achieve it
> with multiple rules in a rule-set.
> >
> > Thanks,
> > - Dmitry
> >
> > ________________________________
> >
> > From: Mark Proctor [mailto:[EMAIL PROTECTED]
> > Sent: Tue 4/11/2006 10:46 AM
> > To: [email protected]
> > Subject: Re: [drools-user] How to express conditional logic via DRL - ?
> >
> >
> >
> > Unfortunately I'm finding that many people just cannot adjust to the
> declarative and coupletely decoupled nature of a rule engine. The end result
> is that Drools is used as a script execution framework.
> >
> > Felipe Piccolini wrote:
> >
> >> Mark,
> >>
> >>   I could vote on this, I would vote no to the 'else'. The declarative
> >>   thing about rule engines is that: no procedural code. So if you
> >>   wanna do an 'else' condition you should re-think your rule and chack
> >>   if its well writen. Of course this is just MHO.
> >>
> >>   :)
> >>
> >> Tuesday, April 11, 2006, 6:09:22 AM, you wrote:
> >>
> >>
> >>
> >>> I thought about adding 'else' but I couldn't decide on the best way
> >>> to implement it, as there are several possabilities. Also 'else' is
> >>> not considered declarative, so its a kinda of code smell. I'll llook
> >>> into this again in 3.1
> >>>
> >>>
> >>
> >>
> >>> Mark
> >>> Geoffrey Wiseman wrote:
> >>>
> >>>
> >>>> On 4/10/06, Dmitry Goldenberg <[EMAIL PROTECTED]>
> wrote:
> >>>>
> >>>>
> >>>>
> >>>>> What is the timeframe for 3.1?  Else/else if are very important to
> >>>>> what we're trying to do.
> >>>>>
> >>>>> I can see how I can to the following with the method described by
> >>>>> Geoffrey:
> >>>>>
> >>>>> if (A) then B else if (C) then D endif
> >>>>>
> >>>>> I also want to be able to do the following:
> >>>>>
> >>>>> if (A) then B else D endif
> >>>>>
> >>>>> I imagine that the rule would have to be written as a combo of
> >>>>>
> >>>>> if (A) then B endif
> >>>>> if (!A) then D endif
> >>>>>
> >>>>> so that the conditions are complimentary...
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>> Indeed, yes, that's how you'd handle it.
> >>>>
> >>>> If it does make it into 3.1, that's a good thing in terms of
> >>>> supporting the way people think, talk, and work in other languages,
> >>>> but fundamentally, the same capabilities are there now -- they just
> require more typing.
> >>>>
> >>>>   - Geoffrey
> >>>> --
> >>>> Geoffrey Wiseman
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> >> --------------------------
> >> Felipe Piccolini
> >> [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> >
> >
> >
>
>

Reply via email to