Hi,

thanx for your response.
Yes. Jess has to root through all your data to find anything.
  

That may well be, but it won't impact performance at all. Your
performance issue is in pattern matching, not in rule firing. Rule
firing is rarely the issue.

  

When I run the RuleEngine using only rule1 or rule 2 it takes about 300 ms (each). Like I said in my first email, you get corerct results if you would run rule1 first, get new facts, then run rule2 and then get the final results. Now, you could assume that rule1 creates so many new assertions that rule2 gets slowed down. In the isolated test (while testing only rule2) I put much more facts inside then in the rule1 test. It didn´t take more then 700 ms. This means for me: 300 + 700 = about 1000 ms.

But, when I ran it with both rules it takes more then 3 secs. I understand why this happens (pattern mathing problem), but I dont understand why I face the same problem while using Modules. The docs say, that rules contained in a Module do not consider information in other modules, unless they are referensed directly over their Modules namespace. Maybe I missunderstood ?

So that means, if I have the following code, rule1 get fired on every appliable fact and if the agenda is empty, then rule2 will be activated. I would be very thankful if you could help me achiving this, if possible.

(defmodule M-RULE-1)
(defrule RULE-1
    ...)

(defmodule M-RULE-2)
(defrule RULE-2
    ...)

(focus M-RULE-2)
(focus M-RULE-1)



  
So I need an execution Control.
    

No, you need better data structures! Define separate templates for
"weblog entries" and "entry tags" and "weblog tags" and such.
  
I will try your suggestion. But in general I´m interessted to see whether it is possible to solve the performance issue using the more generic triple Fact.


best regards,
Andreas

Reply via email to