RE: JESS: Help on Jess under the hood! :) ..
Not to be a nit-picker, but the Ph.D. dissertation was 1979. The 1982 reference is a four-pager in AI magazine that had, basically, the same title. Since then, to my knowledge, Dr. Forgy has not published anything on the subject of the Rete algorithm. SDG jco -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dusan Sormaz Sent: Wednesday, November 05, 2003 6:40 PM To: [EMAIL PROTECTED] Subject: Re: JESS: Help on Jess under the hood! :) .. Mechanism for saving patterns and matchings is rete network. Done by Charels Forgy in his dissertation (1982-3). Good explanation in JIA book, chapter 8. Dusan Sormaz At 05:56 PM 11/5/2003 -0600, you wrote: 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] *** * Duan ormaz, PhD, Associate Professor * Ohio University * Industrial and Manufacturing Systems Engineering Department * 277 Stocker Center, Athens, OH 45701-2979 * phone: (740) 593-1545 * fax: (740) 593-0778 * e-mail: [EMAIL PROTECTED] * url: http://www.ent.ohiou.edu/~sormaz ***
Re: JESS: Help on Jess under the hood! :) ..
I think =?ISO-8859-1?Q?Antonio_Avi=F1a?= wrote: First, let me suggest you read chapter 8 of the manual or (coincidentally) the chapter with the same number in Jess in Action, because they answer all these questions. The rest of the manual (and especially of the book) contains lots more information about how Jess works. Q1. What kind of data structure Jess uses for partially storing the facts (foo p q) (bar q w) activating r1? The jess.Token class; this is why when you do a query, you get back Tokens, and why the Strategy interface deals in Tokens, etc. The jess.Activation class associates a Token and a Defrule activated by it. 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? Nothing ever iterates over all of working memory. Jess uses the Rete algorithm, as described in the above-mentioned references. Q3. How, tecnically speaking, Jess manages for not testing again facts which were already used for activating a rule? Ch. 8, Op Cit. 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? Ibid. 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? Forward chaining has nothing to do with pattern-matching, so I don't understand this last question. Anyway, go read the manual. - Ernest Friedman-Hill Science and Engineering PSEsPhone: (925) 294-2154 Sandia National LabsFAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov 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]
Re: JESS: Help on Jess under the hood! :) ..
Mechanism for saving patterns and matchings is rete network. Done by Charels Forgy in his dissertation (1982-3). Good explanation in JIA book, chapter 8. Dusan Sormaz At 05:56 PM 11/5/2003 -0600, you wrote: 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] *** * Duan ormaz, PhD, Associate Professor * Ohio University * Industrial and Manufacturing Systems Engineering Department * 277 Stocker Center, Athens, OH 45701-2979 * phone: (740) 593-1545 * fax: (740) 593-0778 * e-mail: [EMAIL PROTECTED] * url: http://www.ent.ohiou.edu/~sormaz ***
Re: JESS: Help on Jess under the hood! :) ..
Let me make acomment on Rete network. Though, algorithm is rather old, 20 years, not many books gave examples and graphs of the network. Few exceptions are: Brownston at all, Programming Expert Systems in OPS5, Addison, 1985 Russel, Norvig, AIMA, Prentice, 1995 Freidman, JIA, Manning, 2003 Dusan Sormaz At 04:15 PM 11/5/2003 -0800, you wrote: I think =?ISO-8859-1?Q?Antonio_Avi=F1a?= wrote: First, let me suggest you read chapter 8 of the manual or (coincidentally) the chapter with the same number in Jess in Action, because they answer all these questions. The rest of the manual (and especially of the book) contains lots more information about how Jess works. [.. rest omitted ...] *** * Duan ormaz, PhD, Associate Professor * Ohio University * Industrial and Manufacturing Systems Engineering Department * 277 Stocker Center, Athens, OH 45701-2979 * phone: (740) 593-1545 * fax: (740) 593-0778 * e-mail: [EMAIL PROTECTED] * url: http://www.ent.ohiou.edu/~sormaz ***
RE: JESS: Help on Jess under the hood! :) ..
For a graphical view of a modern Rete network try: (load-package jess.ViewFunctions) (view) alan -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dusan Sormaz Sent: Wednesday, November 05, 2003 4:50 PM To: [EMAIL PROTECTED] Subject: Re: JESS: Help on Jess under the hood! :) .. Let me make acomment on Rete network. Though, algorithm is rather old, 20 years, not many books gave examples and graphs of the network. Few exceptions are: Brownston at all, Programming Expert Systems in OPS5, Addison, 1985 Russel, Norvig, AIMA, Prentice, 1995 Freidman, JIA, Manning, 2003 Dusan Sormaz At 04:15 PM 11/5/2003 -0800, you wrote: I think =?ISO-8859-1?Q?Antonio_Avi=F1a?= wrote: First, let me suggest you read chapter 8 of the manual or (coincidentally) the chapter with the same number in Jess in Action, because they answer all these questions. The rest of the manual (and especially of the book) contains lots more information about how Jess works. [.. rest omitted ...] *** * Dusan Sormaz, PhD, Associate Professor * Ohio University * Industrial and Manufacturing Systems Engineering Department * 277 Stocker Center, Athens, OH 45701-2979 * phone: (740) 593-1545 * fax: (740) 593-0778 * e-mail: [EMAIL PROTECTED] * url: http://www.ent.ohiou.edu/~sormaz *** 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]