One of the things that you mentioned below, "One still needs perhaps to
organize groups of rules into distinct rule sets, perhaps using multiple
instances of the RETE engine, rather than running all rules in one engine.",
made me wonder if I had  not clarified well enough how to deal with distinct
rules sets. One could always use "Goals" (in the way James Owen speaks of
them) as control flags to definitively group and control rules.

I also found very interesting your "state machine" approach. Some years ago,
I built an agent system that was patterned after the ZEUS agent architecture
using the Java version of Robert Martins State Machine Compiler software. My
system was very similiar to yours except I used sub-classes of events for
the state machines to match on in the rules engines. This minimized the
matching for the Rete, but of course I had to do a lot of sub-classing (oh
well). Anyhoo, I found it interesting to experiment with.

----- Original Message -----
From: "griss" <[EMAIL PROTECTED]>
To: "Rich Halsey" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, February 20, 2004 10:03 AM
Subject: Re: JESS: A Different Rule Programming Technique


> Yes, I like this simplified, structured paradigm. One still needs perhaps
> to organize groups of rules into distinct rule sets, perhaps using
multiple
> instances of the RETE engine, rather than running all rules in one engine.
>
> In our context-aware agent work, we have used a very similar approach to
> integrating rules and UML statemachines for complex protocols in Jade
agent
> systems, and have also sketched a way to also include machine learning
(ala
> WEKA).
>
> In the statemachine case, incoming events (e.g., agent messages) trigger
> transitions to other states, if the event "matches" some template (match
is
> the predicate, on the event class). Jade provides a simple template
> language, allowing AND and OR of basic templates, which we have extended
by
> using Jess rules as predicates over the events. If the match predicate
> succeeds, than an action method is called on the body.
>
> In the machine learning case (applied to an email management system),
> incoming emails are classified into different sets, and a match predicate
> is defined for that class of email. This predicate is then used in a Jess
> rule to determine if an action (a tree of actions) is run.
>
> --On Friday, February 20, 2004 9:10 AM -0600 Rich Halsey
> <[EMAIL PROTECTED]> wrote:
>
> >
> > Hi All,
> >
> > I am looking at a new technique for rules programming where "mere
> > mortals" can build rule-based systems. Essentially, the technique uses
> > UML-defined base classes to define a core predicate (that can also call
> > other methods to define conditional tests) and a core action (that can
> > also call other methods to accomplish desired actions). This technique
> > relies on the Rete algorithm for matching of these rule objects and
> > user-defined "data objects" which are passed to the rule objects for
> > inspection. If the objects pass the conditional testing by the rule
> > object's predicate, then the RHS is invoked to call the rule object's
> > action method.
> > It would seem that this technique could be used by all the OPS-like
rules
> > engines (JESS/JRules/OPSJ/JEOPS) out there and would enable ordinary
Java
> > programmers to write rules in an object-oriented manner for a
> > Rete-enabled environment. This technique should not inhibit
> > forward/backward chaining in any way and also allow for control flow
> > logic to be incorporated into the system.
> > Anybody have any thoughts ?????
> >
> >
> >
> >
> >
> > "Life, liberty, and the pursuit of those who threaten it"
>
>
>
> Martin Griss, PhD
>
> Director, Software Engineering Program, CMU West Coast
> Adjunct Professor, UC Santa Cruz
>
> --------------------------------------------------------------------
> 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