Ernest,

   seems to me a useful interpretation of rule-1 extends rule-2 is that they
are related as
follows:

(defrule rule-1
        (a b c)
        =>
        (do-something useful)
        (assert (rule-1-fired-meta-fact))
)

(defrule rule-2 extends rule 1
        (d e f)
        (rule-1-fired-meta-fact)
        =>
        (do-something-useful-for-thisrule)
        (but-do-not-implicitly-do-the-action-from-rule-1)
)


So a chain of extensions maps in some sense to a sequence of execution.
This has, dare I say it, a procedural feel for it without the convolutions
one has
to go through if, dare I say it again, you want some procedural determinism
....

Tnx
Alanl

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On
Behalf Of [EMAIL PROTECTED]
Sent: Saturday, September 22, 2001 2:15 PM
To: Jess Mailing List
Subject: JESS: Some Ideas for Jess 6.1 ...



Someone posted a question recently about "calling one rule from
another," an interesting idea that doesn't hold up too well to
scrutiny (how does the rule compiler determine if it's OK to pass the
facts that matched one rule on to another rule as arguments?) But it's
made me think of a related concept: one rule could -extend-
another. Imagine something like

(defrule rule-1
  (a b c)
  =>
  (do-something))

(defrule rule-2 extends rule-1
  (d e f)
  =>
  (do-something-else))

What would this syntax mean? My idea is that it means that rule-2 is
equivalent to

(defrule rule-3
  (a b c)
  (d e f)
  =>
  (do-something)
  (do-something-else))

but there are other possible interpretations. Anyone care to comment
on this? This seems like a really useful way to express the idea of
having a family of rules that are all activated under similar, but not
necessarily identical, circumstances.

---------------------------------------------------------
Ernest Friedman-Hill
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9012                  [EMAIL PROTECTED]
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550

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


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