This question is related to application of rule engines in general, not
specifically to drools.
Typically, rule engines provide an API to insert facts to working-memory and
then executes the rules. In most of the applications, this data originates
from a data-source. It is the application responsibility to retrieve the
relevant data and to insert in to the engine. If for some reason the query
for data is too selective, the engine may end-up with wrong conclusions.
So, it is not enough to maintain the business-logic as rules only, there is
a need to maintain also the query.
What are the common patterns used by applications?
* retrieve all data regarding a subject (e.g., in the case of a clinical
application - the complete set of patient data). this may cause the
collection of large quantities of data (we know that the 'data-gathering'
step is much longer than processing it in a rule-engine)
* to retrieve only relevant data. Here we will try to restrict the data
retrieval only to data that may affect the rules. For example, in the case
of a clinical application, only the hemoglobin laboratory results from the
last 4 months. The issue here is that query is affected from the rules.
We'd like to automatically generate/ validate the data query according to
the rules logic.
I imagine is an analyzer that receives as input a knowledge-base and returns
the greatest-common-query (like GCD). The returned query can be expressed in
OCL for example.
Does drolls provides a meta-data API to analyze the rule WHEN part?
View this message in context:
Sent from the drools - user mailing list archive at Nabble.com