Hi,
Perhaps this question only shows my lack of knowledge, but I've been playing for a while with Jess and have found that rules are re-activated too easily for me. Any change in a fact that matches any condition on the LHS part of the rule gets the rule activated again. This ends up in a doubled LHS part of the rule. First the real conditions and after no loop conditions each one. Worse, the no loop conditions often have to be like (test (not ...)) which is against the performarce.
For example, if I have a rule with a LHS like following:
(defrule three-condition-rule
(view (name "X") (id ?id))
(list (name "Y")(parent ?id) (id ?lid))
(field (name "Z") (parent ?lid))
=>
....
)
The rule will be re-activated (and eventually fired) for any modify or assert of a fact that matches any of the LHS conditions.


The (single-slot-activation) and (no-loop) features of Charlemagne engine helps, but are not enough for me.
Is possible to change the activation behaviour so the rules only be re-activated by changes on facts that affect the FIRST LHS condition?
From my point of view that will make the rules more clear (the LHS part less cluttered with no loop conditions), and also improves the performance (less LHS processing, less not conditions).


Regards

Rodolfo Martin.


-------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------



Reply via email to