Maybe, what you may want is to group rules in winner take all sets, a
system where only one rule in a set is allowed to fire when the
patterns of multiple rules in the set are matched.
I'm not sure how you choose the winner. Here are some ideas:
A. if one rule extends another, the extender would win over the
extended, but if two rules both extend the same base rule and both are
matched then they both fire
B. among rules in a set, only the rule with the highest salience fires
C. among rules in a set, the rule with the most constraints fires
I don't know the answer here, but I think I like B better than A or C.
I actually like B a lot if you also add the "extends" syntax Ernest
described (its simpler and faster than adding intermediate rules to AND
with). You would also need a rule-set syntax for B or C to work.
-Alex-
On Sat, 22 Sep 2001, Rudolph George-P27574 wrote:
> One way to interpret this is that
> rule 2 adds additional constraints that rule 1 does not have.
> As you say, you could envision a family of rules like this,
> activated under similar, but not identical circumstances.
>
> But this would also mean that rule 1, would be activated any time
> rule 2 was activated--and under certain circumstances, you may
> want rule 1 NOT to be activated if rule 2 is.
>
> I'm not sure how you'd prevent that without additional extensions
> to the engine, off the top of my head, though.
>
>
> <*> -----Original Message-----
> <*> From: [EMAIL PROTECTED]
> <*> [mailto:[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]
> ---------------------------------------------------------------------
>
___________________________________________________________________
S. Alexander Jacobson Shop.Com
1-646-638-2300 voice The Easiest Way To Shop (sm)
---------------------------------------------------------------------
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]
---------------------------------------------------------------------