I think that Jess in Action is the best available as far as learning rules
based (though not necessarily declarative) programming.

I definitely think that using JIA to learn Drools is a reasonable approach;
it is the path that I took.

JIA does focus on the Jess language syntax, but it's not a huge leap from
Jess syntax to Drools (3.x anyways).

-Mitch

-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of Russ Egan
Sent: Tuesday, April 11, 2006 10:57 AM
To: [email protected]
Subject: Re: [drools-user] How to express conditional logic via DRL - ?

Those are good documents.  I'd read through them a couple times.  I just 
more :)

Is "Jess in Action" good?  Is it generally applicable to rules engines, or 
is it pretty much just Jess mechanics?  One of the Amazon reviews indicated 
this.

Hello Peter,

> About the high-level question I remember reading an essay on the Jess
> webpage that might help:
> 
> Some Guidelines For Deciding Whether To Use A Rules Engine (
> http://www.jessrules.com/jess/guidelines.shtml )
> 
> Another paper from the Jess community that might be helpfull is:
> 
> The Zen of Jess
> ( http://www.jessrules.com/jess/zen.shtml )
> There should be more information out there on the Internet, but
> nothing comes to mind directly.
> 
> Regards,
> Peter
> Russ Egan wrote:
> 
>> That's fair, and Mark's comment about the drools manual is
>> encouraging as well.  Maybe I just haven't found really illustrative
>> reading on declarative programming yet.  I've looked into it from
>> time to time, but never found enough guidance to figure out how it
>> applies to real-world use cases.
>> 
>> I feel like a cookbook would be very useful though.  Some common
>> patterns in procedural programming, why they are good candidates for
>> accomplishing with declarative programming, how they translate into
>> rules, patterns, anti-patterns...practical stuff.  Seems like much of
>> the lit on declarative programming is very academic...hard to boil
>> that down to tools I can use in my work.  The anti-patterns would be
>> a big help actually, both high-level "this problem isn't suited to
>> rules" and low-level "don't write rules like this" stuff.
>> 
>> I'm really surprised there isn't more of this out there, or at least
>> that I haven't found it yet.
>> 
>> Hello Dave,
>> 
>>> Before you try to tackle a rules engine, you should definitely have
>>> a good understanding of declarative programming languages.
>>> Declarative programming is very different from functional
>>> programming a la Java, C++, C#, Visual Basic, Fortran, Cobol, etc.
>>> To build your fundamentals in declarative programming, you should
>>> attempt to master a language like Prolog or Lisp.  These languages
>>> were the inspiration for many of the rules engines that we have
>>> today.  These were the tools that Charles Forgy and others
>>> experimented with before they developed the technologies that we
>>> leverage today in the rules community.  I would be hesitant to put a
>>> warning label on a Rules Engine as we would on cigarettes.  However,
>>> let me say this: "WARNING: The surgeon general cautions users of
>>> rules engines that dabbling with rules engines without a core
>>> understanding of declarative programming may be hazardous to your
>>> sanity."
>>> 
>>> Best Regards,
>>> 
>>> Dave
>>> 
>>> -----Original Message-----
>>> 
>>>> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Russ Egan
>>>> Sent: Tuesday, April 11, 2006 8:25 AM
>>>> To: [email protected]
>>>> Subject: Re: [drools-user] How to express conditional logic via DRL
>>>> -
>>>> ?
>>>> Speaking of which, I've tried to find good, in-depth guides for
>>>> rules
>>>> engine usage.  Best practices, rules writing guidelines, cookbooks,
>>>> advanced use cases, patterns, etc...  All I've found are very
>>>> shallow
>>>> "introductions"
>>>> to rules engines.  Does anyone know of good, educational materials
>>>> of
>>>> this nature on the web?  Or good books?
>>>> It's tough to avoid using rules engines "the wrong way" when this
>>>> is
>>>> little guidance for using them "right way", and when rules engines
>>>> are so conceptually different from procedural programming.
>>>> Hello Mark,
>>>> 
>>>> 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