New feature overview : PMML

Today, I’ll introduce a new 6.1 experimental feature, just being released from our incubator: Drools-PMML. I’ll spend the next days trying to describe this new module from the pages of this blog. Some of you, early adopters of Drools-Scorecards, will probably have heard the name. Thanks to the great work done by Vinod Kiran, PMMLRead more →

Dynamic typing in rules : Traits (part 2)

In a previous post, we discussed the experimental feature called “traits”, a way to combine strong and weak typing in Drools. A trait is an interface which can be attached (“donned”), even temporarily, to a fact. It is particularly suitable to model roles or temporary behaviors. Let’s take, for example, the following fact model: declareRead more →

New feature spotlight: Traits (part 1)

We all know that Drools is Java-oriented, so its fact model is object-oriented, in the sense of what Java makes of classes and objects. Leaving academic discussions out, let’s focus on a great advantage and disadvantage: strong typing. Patterns and constraints have to be written against available classes and fields, and the compiler can checkRead more →

Complex Logic Formulas #3

In my previous two posts I introduced configurable operators, but maybe some of you noticed that I (willingly) left one out: the negation NOT. In Drools, negation appears essentially in three places, with slightly different semantics: relational evaluators have their negated counterpart: Person( age == 18 , age != 18 ) custom evaluators support theRead more →

Complex Logic Formulas #2

In the last post, I introduced logic operators in boolean rules. Drools, in its standard form, supports AND and, in a limited way, OR. In fact, these operators are sufficient to write a number of rules. The addition of the other common logic operators (XOR, EQUIV,IMPLY) is more syntactic sugar than a real valuable featureRead more →

Complex logic formulas #1

Dear all, after some days spent between papers, code and travels, I am back with a new post! Today, the topic is operators. Look at a simple rule: when $p : Person ( name == “sotty” , age >= 27 , ) $m : Message ( sender == $p , length < 160 , $bRead more →

Imperfect Evaluations #2

I had an interesting discussion today, and one of the topics was operator usability: even if the 4 steps described in the previous blog (http://blog.athico.com/2009/05/imperfect-evaluations.html) allow to define a custom evaluator quickly, will a user have to repeat them for every custom operator/evaluator they want to use? The answer is no… Many Operators, One Definition,Read more →

Imperfect Evaluations

This is my first technical dive into Drools Chance and is a follow up to my posting “Take your Chance”. The first step in adding imperfection to a rule is to give up its “boolean” nature. Consider again the example: $r : Room ( $temp : temperature > 25 ) //r1 The (literal) restriction onRead more →

Take your Chance

If you read a paper, or a journal, or an article, or a note recommending NOT to use a Production Rule System, you will find that one of their strongest point is that Rule Systems are too… logical. In fact, a Rule Base must be built with complete and correct Knowledge of its domain, andRead more →