I have actually used this approach by integrating Java-based state machines
with
rules (in systems other than JESS). The resulting system has a fundamental
set of rules which call methods (for conditional testing) and actions of
some base class
in the class O-O sense.

Multiple assertions of facts based on derived classes are then tested by the
same rules
in a polymorphic manner which may result in transitions to other states with
(again)
polymorphic entry/exit actions from the state classes.

Obviously, I am pushing some of the logic out to the application, but the
complexity
of an integrated application/rule system needs to be thoroughly understood
beforehand
anyhow. I tend to use "inferencing network maps" when designing these
systems so that
I can understand the complex chaining interactions between the rules and the
application
(it also helps when I am trying to explain to others how the system works).

I had looked at the possibility of using JESS some years ago, and it looks
like I may
have to spend some time coming back up to speed on it for a future project.
I would hope
that you and Bob Orchard may be able to continue your good work on JESS and
its Fuzzy
Logic extension.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On
Behalf Of [EMAIL PROTECTED]
Sent: Saturday, September 22, 2001 7:24 PM
To: Rich Halsey
Cc: [EMAIL PROTECTED]; Jess Mailing List
Subject: Re: JESS: Some Ideas for Jess 6.1 ...



Jess actually already has this kind of polymorphism -- deftemplates
(and defclasses) can extend each other in the classic O-O sense. This
"rules extending rules" thing is a different kind of beast, I think --
it's more about groups of similar actions than it is about
polymorphism. It's to prevent you from having to write six rules that
all duplicate the first five patterns but all differ on the sixth;
then if the first five need to change, you can change them all in the
same place.

Note that although Jess does have polymorphic templates, it's somewhat
rare that I ever hear of someone using that feature.


I think Rich Halsey wrote:
> Not being a JESS expert, please excuse my (possible) ignorance - but, if
the
> test on
> rule-1 is based on some base class X with  method A and we extend X,
modify
> the method
> A to test some other set of circumstances (a la polymorphism), then we
have
> "extended"
> rule-1 (without it being intuitively obvious). I would think that this
> approach has
> far more value and lends itself to "polymorphic rules" (if there is such a
> critter).
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On
> Behalf Of [EMAIL PROTECTED]
> Sent: Saturday, September 22, 2001 4: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]
> ---------------------------------------------------------------------
>
>



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