Mark,
forall() is an essential and powerful mechanism. Will you also
be implementing the Prolog cut() notion? Essential for limiting
recursion in rule solutions.
However - I suspect for most of our applications in CAM - the mundane
will be more than enough.
The multi-partner / multi-task collaborations in BPSS / jBPM
obviously require much more state management and dynamic ruleset
management. The concept of a state machine.
CAM is designed as a single threaded process that performs a descreet
task around a particular business transaction.
Within a transaction I can forsee need for DROOLS to manage state -
again lookiing at our grant applciations - we have budget years and
line items within budget - so a lot of facts can be asserted there -
and then crosschecked once all budget items have been accumulated.
I like the idea of being able to separate the DROOLS into partions -
however - I'm thinking this should work already with v2 - if we persist
the DROOLS engine across invokations from CAM - and then have functions
that perform the assertions and the comparisons in separate DROOLS
scripts - collaborating but independently performed.
Cheers, DW
-------- Original Message --------
Subject: Re:
[cam] RE: Drools and CAM
From: Mark Proctor
<>
Date: Mon, January 02, 2006 12:57
pm
To: "David Webber (XML)" <>
Cc:
,
,
Some of the
more advanced features with rule engines are the checks for
the
existence and non existence of facts and constraints, via NOT and
EXIST - this is more than a standard boolean !. Also we later hope
to
improve that further to support forall and accumulate
functionality,
which makes it easier dealing with quantities and
sets of data.
ark,There is
also a paper on temperal rules, that
jrules is based on, that we want to
eventually integrate. Finally
its wort mentioning that rule engines
allow rules to be added and
removed at runtime, without the need to
repopulate a working
memory.
Mark
David Webber (XML) wrote:
>
Martin,
>
> I look forward to Marks'
comments.
>
> I'm wondering if he is west coast based -
giving us an 8 hour time spread
> here...
>
> What
I'm envisioning using DROOLS for is complex business logic.
For
> example - in the grants application processing we
have implemented in java -
> an applicant can resubmit their
application. Then the validation runs
> something like this
-
>
> if (resubmission) and (prior grant # entered) and
(phase2 submission)
> check prior grant
> if (for
this applicants organization) and
> if (not awarded) and
(pending or in review)
> and (was submitted in previous
council round)
> then
> accept
> action
- mark prior application as superceded
>
> Needless to say
this is not doable with XPath alone - requiring queries to
> the
database - and checking of various conditions and values between
the
> backend data and the XML data.
>
>
DW
>
> ----- Original Message -----
> From:
<>
> To:
<>; <>
> Cc:
<>;
<>
> Sent: Monday, January 02, 2006
7:36 AM
> Subject: [cam] RE: Drools and
CAM
>
>
> Hi,
>
> In JCAM I have
built in a mechanism to have DROOLS perform the
> DataValidation
section of the CAM Spec. The idea is that by passing in a
>
set of nodes described by an XPath it would be posible to invoke a
script
> that would then work with the nodes supplied.
>
This is done by describing a Java Class that allows the nodes to be
added to
> the DROOLS working memory and allow the consequences
to interact with the
> nodes by changing values etc.
> It
seems to work reasonably well and is very simple to
implement.
>
> I am also toying with the idea of using the
DROOLS ApplicationData construct
> to allow the rules engine to
be passed the either the template or the
> xmlfile. This
would enable DROOLS to manipulate the complete tree and
>
possibly transform the output based on the rules. The other
extension would
> be to allow the DROOLS to be passed an empty
document that it could use to
> hang new constructs off based on
the rules firing.
>
> One of the questions I have is what
rules might be applied. Without some
> clear examples it if
not easy to know how to integrate the tool. It seems
> to me
that DROOLS could be used in two parts of the CAM template -
>
DataValidations and External Mappings.
>
> One further
thing I am investigating for jCAM is the use of PicoContainer
as
> a method to allow the other processors to be included into
the processor.
> The idea being that for each section of the CAM
template a processor would
> be passed three possible things -
the XML file being processed, the Assembly
> Structure after the
Business Rules hade been applied and the section of the
> CAM
template the applied to the processor being plugin. The advantage
of
> this method is that we can get the whole of the CAM Spec done
by different
> people yet all work with the same tool. It
also means that somebody can
> change the default processor with
another without affecting the other bits.
> For example if I get
the split right we should be able to allow schema based
>
includes without disrupting the rest of the tool.
>
> Happy
New Year
>
> Martin
>
>
________________________________
>
> From: Mark Proctor
[mailto:]
> Sent: Mon 02/01/2006
05:46
> To: David RR Webber (XML)
> Cc:
; CAM TC; Roberts,MME,Martin,XBX R
>
Subject: Re: Drools and CAM
>
>
> Sure no problem, we
are always there - just letting you know, in case you
> need any
help with Drools.
>
> Mark
> David RR Webber (XML)
wrote:
>
> Mark,
>
> We'll see who it goes.
My time is extremely short this week - will attend
> to the
PPT first. Maybe some of the other folks on the list may want to
hop
> over for a chat....
>
> Thanks,
DW
>
>
>
>
> -------- Original Message
--------
> Subject: Re: Drools and CAM
> From: Mark Proctor
<>
<mailto:>
> Date: Sun, January 01,
2006 10:38 pm
> To: "David Webber (XML)" <>
<mailto:>
> Cc: , CAM
TC <>
>
<mailto:> , Martin
> Roberts
<>
<mailto:>
>
> IRC isn't a
list it's a live chat room where you can talk to me and the
>
other developers - no need to subscribe, just pop in and have a chat
:)
>
> Mark
> David Webber (XML)
wrote:
>
> Mark,
>
> Your PPT is a great
introduction to the world of rule engines and
>
methods.
>
> My own background is heavily Prolog - for 15
years. I missed seeing
> constraint based solutioning - but
I guess DROOLS has to leave
> somethings to
> those old
purpose built engines! And besides DROOLS could always
>
collaborate with a Prolog engine as a close cousin.... ;
-)
>
> On to CAM and DROOLS. I have some PPT slides I
will share during the
> week
> once I've cleaned them up for
external perusal.
>
> Basically the notion is to use the
mechanisms in CAM - that is
> essentially a
> domain expert
agent in XML structures and metadata - and provide an
> interface
directly in CAM to DROOLS and back again. Then we're
adding
> the
> ability to persist to SQL databases in CAM
directly from the XML source
> -
> using simple XML syntax
based assignment instructions.
>
> This should allow people
who are not DROOLS experts - to create a
> business-centric
solution that quickly handles basic ebusiness
> transactions -
while allowing extended rules to be layered into this -
>
by
> software staff - that handle decreet rules and tests that
are beyond the
> scope of the base CAM function
set.
>
> This gives people the best of both worlds - a
purpose built business XML
> expert agent - coupled to the
extensible DROOLS engine.
>
> Your snippet of DROOLS V3
shows that this is all heading in the right
>
direction.
>
> We've been experimenting with:
>
<as:includeScript location="{url/my.drl}"/>
> and
>
<as:executeScript name="{name.drl}"
parm="\\xpath\locator\*"/>
>
> as a first pass to
provide linkage between the two.
>
> I am definately
interested in discussing this with the DROOLS community
>
-
> where CAM can provide a pluggable XML handler toolkit for
DROOLS users?
>
> Beyond all this - DROOLS also looks like
a good means to implement a
> state
> machine for BPSS (and
JBOSS driven BPM) as envisioned in our BCM
> architecture work -
but we'll solve one problem at a time here!
>
> I'm a bit
allergic to signing up for IRC lists - my daily bandwidth is
>
severally constrained already - but we can definately look at
sharing
> some
> collaboration resources - possibly a wiki
area - where ideas and test
> components can be
posted..?
>
> Thanks, DW
>
> ----- Original
Message -----
> From: "Mark Proctor"
<>
<mailto:>
> To:
<> <mailto:> ;
<>
>
<mailto:>
> Sent: Sunday, January
01, 2006 2:24 PM
> Subject: Drools and
CAM
>
>
>
>
> David,
Tanveer,
>
> GoogleAlert brought your postings to my
attention. We have big plans for
> Drools 3.0, which will be
available at the end of Q1 - see the slides
at
>
>
>
>
http://drools.org/download/attachments/20545/Business+Rules+Engines.ppt?version=1
>
>
>
for more details.
>
> In the mean time if there is anything
more we can do to assist or you
> just want a general chat, we
are always on the irc server #drools at
> irc.codehaus.org - we
provide a web gateway at http://irc.codehaus.org
>
<http://irc.codehaus.org/>
> if you do not want to install
an IRC client.
>
>
Mark
>
>
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
>
To unsubscribe from this mail list, you must leave the OASIS TC
that
> generates this mail. You may a link to this group
and all your TCs in OASIS
> at:
>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>
>
>
>
>