Hey Daniel, My suggestion was that a single default rule could be fired to indicate that the prescription was invalid if all the matching rules failed to create a valid match.
Example: - Match Rule 1, Salience 50, Activation-group "Match Rules" - Match Rule 2, Salience 50, Activation-group "Match Rules" - Match Rule 3, Salience 50, Activation-group "Match Rules" - Match Rule 4, Salience 50, Activation-group "Match Rules" - Match Rule 5, Salience 50, Activation-group "Match Rules" - Match Rule 6, Salience 50, Activation-group "Match Rules" - Match Rule 7, Salience 50, Activation-group "Match Rules" - Match Rule 8, Salience 50, Activation-group "Match Rules" - Match Rule 9, Salience 50, Activation-group "Match Rules" - No Match Rule 1, Salience 0, Activation-group "Match Rules" Activation-group allows only one rule to fire from all the rules sharing that activation-group. By putting a positive salience (priority) on all the match rules, if any one of them matches, that's all that can fire per the activation-group. However, if the No Match rule is fired, that means that the prescription was not matched by any of the match rules. It is a default. The rule can be as simple as: Rule "No Match" salience 0 activation-group "Match Rules" When Eval(true) // Always true Then Do your "no match" logic End The activation-group is doing your "heavy lifting", so to speak.... jp ------------------------------------------------------------------------ ------------------------------------ Message: 3 Date: Wed, 19 May 2010 06:20:39 -0700 (PDT) From: djb <[email protected]> Subject: Re: [rules-users] Using Drools as a glorified Hashmap To: [email protected] Message-ID: <[email protected]> Content-Type: text/plain; charset=us-ascii Hi John, Wolfgang, Thanks for your suggestions. Though I didn't use either of your suggestions as described, it helped me work it out. I added tokens describing the prescriptions, then as they are matched (using RETE), the tokens are retracted. Then any tokens left over are invalid. It is probably as fast as a HashMap. I don't think John's solution would have worked, because no single rule can determine whether a prescription is invalid. Regards, Daniel -- View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Using-Drools-as-a-gl orified-Hashmap-tp825851p829059.html Sent from the Drools - User mailing list archive at Nabble.com.
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
