[rules-users] Iterative diagnosis - how to determine what is the next best fact?

Kal kalarhan at gmail.com
Mon Aug 22 08:22:27 EDT 2011


Thank you for the reply Wolfgang!

Altho this particular application involves a Expert System, I quite enjoyed
learning about drools and I intend to keep studying it in the following
months regardless if I end up using it or not right now.

A solution (far from ideal) that I came up with was to 'explode' my rules,
something like this:

/Group A:
RULE: if ~A, solution is: "text here 1"
RULE: if A => ask B1

Group B: 
RULE: if A,~B1 => ask C1
RULE: if A, B1 => ask B2
RULE: if A, B1, B2 => ask B3
RULE: if A, B1, ~B2 => solution is: "text here 2"
RULE: if A, B1, B2, B3 ou ~B3 => ask B4
RULE: if A, B1, B2, B3, B4 => solution is: "text here 3"
RULE: if A, B1, B2, B3, ~B4 => solution is: "text here 4"
RULE: if A, B1, B2, ~B3, B4 => solution is: "text here 5"
RULE: if A, B1, B2, ~B3, ~B4 =>  solution is: "text here 6"

Group C:
RULE: if A, ~C1 => ask D1
....

Groups D, E, F, G, .../

But that would means that a small sample with ~25 rules would have to be
'exploded' into ~50+ rules. The ASK command would represent a call to the
end user and it would be followed by a new Fact and fireRules.

Please note that a small sample with 25 rules has about 15 variables/facts
and altho I have one general goal: "is it a problem or not?", there are
about 17 unique answers (e.g: yes it is a problem, so do this.... to solve
it). 

With that in mind, I think that using a rules system like drools would be
perfect to keep my application simple to maintain and to expand later ... a
complete solution would involve more goals, maybe 200-300 rules.

Any suggestions on how to use Drools or other solution would be greatly
appreciated.

Thanks!

Kal


--
View this message in context: http://drools.46999.n3.nabble.com/Iterative-diagnosis-how-to-determine-what-is-the-next-best-fact-tp3271709p3274844.html
Sent from the Drools: User forum mailing list archive at Nabble.com.



More information about the rules-users mailing list