Hi everybody ...
Let assume the following rule base rb, function "save", and working memory wm:
rb = {
(defrule r1
(foo ?x ?y)
(bar ?y ?z)
=>
(save ?x ?y ?z))
}wm = {(foo p q), (bar q w), (bar q t)}.
Now, it is easy to see that the first and second facts in wm, (foo p q) (bar q w), filter all the way down to the bottom of the rete network, associated to this example, and then become a new activation record. In other words when rule r1 fires, then the tuple {p,q,w} is going to be saved. Right ... based on the current example:
Q1. What kind of data structure Jess uses for partially storing the facts (foo p q) (bar q w) activating r1?
Q2. Given that the facts (foo p q) (bar q t) activate r1 as well, which Jess' method (class) is in charge of iterating over the working memory for finding more facts, like (bar q t), that activate r1 as well?
Q3. How, tecnically speaking, Jess manages for not testing again facts which were already used for activating a rule?
Q4. By looking at this example one can see that the fact (foo p q) is in some sense partially kept in Jess' mind in order to test facts like (bar q w) and (bar q t) which can activate rule r1. Therefore my question is which strategy, tecnically speaking, is implemented in Jess for partially keeping in mind facts such as (foo p q) in order to test complementary facts such as (bar q w), (bar q t) that could potencially activate a given rule?
Finally, regarding Q4 I know that the overall proccess can be explained via a forward chaining. Nevertheless, how Jess under the hood deals with this issues?
thank you Jose Antonio
-------------------------------------------------------------------- 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] --------------------------------------------------------------------
