[rules-dev] Rule Parameters/Aliases

Yoni Mazar y.mazar at gmail.com
Wed Jul 9 07:51:05 EDT 2008


Hi all, 

We are at the begining of a new clinical decision-support project. 
We plan using drools (using Eclipse) in order to manage and execute our
business logic. 
As part of our research, we also evaluated JRules which has a feature that
is very important to us and we could not find in Drools. 
Unless we missed it out, we will probably try and add this functionality
ourselves.

In JRules, one can define a ruleset (corresponds to a package) with
parameters. Each parameter has a datatype (a class), a direction
(in/out/inout), and an alias. 
Then, within the rules, the user can refer to the parameter alias. For
example, a user can define a ruleset with the following parameters: 

*class=LabResult, direction=in, alias=hemoglobin 
*class=LabResult, direction=in, alias=creatinin 

Then, within a rule, one can write: 
when hemoglobin.value<10 and creatinin.value>34 
then... 

Now, the application retrieves the patient data accordingly (hemoglobin and 
creatinine data separetly - even though they are of the same type) and sets
the ruleset parameters: 
ruleset.parameters.add("hemoglobin",hemoglobinFact) 
ruleset.parameters.add("creatinin",creatininFact) 

It is important that the definition of the aliases will be done outside of
the rule (and not by defining in-rule variables)

This approach simplifies the rules since some of the filtering is being
applied externally (not in the rule itself)

Does someone has an idea how to bridge this gap using Drools? 
Are there any workarounds that can be used in order to avoid changes in
code?

And here we can use your help:
We are new to Drools (and still have to dive into the big ocean of code that
exists). 
The following features

1) defining parameters (in the package level...something like import)
2) adding in/out modifiers (can be used in LHS, RHS, or both)
3) allowing assignment of aliases to parameters 
4) adding such functionality to the rule editor (auto-complete ,type safety)

Where should we start?
Do you have any ideas that can help start this process (e.g. relevant
classes, modules)?
We would appreciate any help regarding any of the items in the list above.
Any hints, suggestions, directions, referals and so on.

Thanks a lot.

Yoni

-- 
View this message in context: http://www.nabble.com/Rule-Parameters-Aliases-tp18359434p18359434.html
Sent from the drools - dev mailing list archive at Nabble.com.




More information about the rules-dev mailing list