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]
--------------------------------------------------------------------



Reply via email to