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]
