In the spirit of the production-rules-practical-pattern-cookbook, could anyone elaborate on why a xorGroup is this powerful? Why and where would it be used?

Thanks,
Peter

Ho, Alan 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