[rules-users] some pointers for solution

Wishing Carebear wishing.carebear at gmail.com
Mon Nov 16 12:48:32 EST 2009


Thanks Greg.

On Fri, Nov 13, 2009 at 7:56 AM, Greg Barton <greg_barton at yahoo.com> wrote:

> It should be possible to define rules in a decision table that have "true"
> as their condition, though since I don't use decision tables I can't say for
> sure.  Then in the action just insert the data.
>
> --- On Thu, 11/12/09, Wishing Carebear <wishing.carebear at gmail.com> wrote:
>
> > From: Wishing Carebear <wishing.carebear at gmail.com>
> > Subject: Re: [rules-users] some pointers for solution
> > To: "Rules Users List" <rules-users at lists.jboss.org>
> > Date: Thursday, November 12, 2009, 12:05 AM
>  > Hi Greg:
> > Looks like Excel may hep to pppulate the data objects
> > but running into only problem. Don't know how to insert
> > and update the dataobject in the same excel file.
> >
> > In other words, want to write the following rule in
> > Excel:
> >
> > if
> >     eval(true)
> > then
> >      Data d = new Data();
> >      d.setAttr1("attr1");
> >      d.setAttr2("attr1");
> >      insert(d);
> >
> > Thanks,
> > cabear
> >
> >
> > On Wed, Nov 11, 2009 at 3:42 PM,
> > Wishing Carebear <wishing.carebear at gmail.com>
> > wrote:
> >
> >
> > Thanks for your reply Greg.
> >
> > Actually I have 2 requirements:
> >
> > 1) Define the data objects in the rule itself so that
> > the business user can define\modify the data
> > objects
> > 2) have a rule that can evalaute the data objects
> > against the criteria the user requests..
> >
> > It is my bad I started with the 2nd requirement
> > :(
> >
> > Regards,
> > cabear
> >
> >
> >
> >
> > On Wed, Nov 11, 2009 at 1:50 PM,
> > Greg Barton <greg_barton at yahoo.com>
> > wrote:
> >
> > Funny you should bring
> > that up, I was just having this debate with a co-worker. :)
> >
> > A decision table is a means for defining rules, not working
> > memory objects.  So no, out of the box a decision table as
> > it's defined in drools (and other rule management
> > systems) would not serve that purpose.  However,
> > there's no reason why you couldn't parse a
> > spreadsheet (or other tabular data format) to generate Data
> > objects.
> >
> >
> > Now, are you sure it's Data objects you want to
> > generate?  I'm guessing from how your question was
> > phrased that it's Query objects you'd like to
> > generate.  In that case the answer to the question is still
> > no, but...if you use Wolfgang's approach to solve the
> > problem (i.e. defining the queries in the rules themselves,
> > and not in a working memory object) then using a decision
> > table is appropriate.  In fact, it's probably the best
> > way to define the rules. (It's most compact and readable
> > when you have many rules with a repetitive structure.)
> >
> >
> >
> > --- On Wed, 11/11/09, Wishing Carebear <wishing.carebear at gmail.com>
> > wrote:
> >
> > > From: Wishing Carebear <wishing.carebear at gmail.com>
> >
> > > Subject: Re: [rules-users] some pointers for
> > solution
> > > To: "Rules Users List" <rules-users at lists.jboss.org>
> > > Date: Wednesday, November 11, 2009, 3:38 PM
> >
> >
> >
> >
> > > Hi Greg:
> > > Is it possible to use decision table to populate the
> > > Data object that contains the criteria list
> > > information.
> > >
> > > Thanks,
> > > Ravi
> > >
> > >
> > > 2009/11/8 Greg Barton <greg_barton at yahoo.com>
> >
> > >
> > > There
> > > are a couple of ways to do this.  I'm sure
> > there's
> > > a bit more clean way than the example I'm
> > providing, but
> > > this should get you in the right direction.  It's
> > not
> >
> > > 100% rules, because it involves a bit of java
> > collections
> > > trickery. (See attached project,
> > > collection_DroolsCriteriaMatch.tar.gz)
> > >
> > >
> > > The heart of it is a single rule:
> > >
> > > rule "Match"
> >
> > >  when
> > >    d : Data()
> > >    q : Query( size <= d.size )
> > >    Number( intValue == q.size )
> > >    from accumulate(
> > >      Criteria( this memberOf d, this memberOf q ),
> > >
> > >      init( int total = 0; ),
> >
> > >      action( total ++; ),
> > >      reverse( total --; ),
> > >      result( total )
> > >    )
> > >  then
> > >    System.out.println("Match: " + d +
> > "
> > > and " + q) ;
> > > end
> >
> > >
> > > The Data object holds data to be queried, Query
> > objects are
> > > asserted to match the Data, and Criteria objects can
> > be
> > > contained in either. (With the aforementioned
> > collections
> > > trickery that if a Criteria is contained in a Query it
> > can
> >
> > > be found in a Data object, but the reverse isn't
> > true.
> > >  See the Query.contains(Object) method for how
> > that's
> > > implemented.)
> > >
> > >
> > > So the rule above basically says "There's a
> > Data
> >
> > > object, and all of the Query objects Criteria are
> > contained
> > > in the Data object."
> > >
> > > There's an alternate way of doing this using eval
> > and a
> > > bit more java fu.  See the
> > eval_DroolsCriteriaMatch.tar.gz
> >
> > > project attached.  This one's probably not
> > optimal,
> > > though, as it's basically a brute force check of
> > all
> > > Data objects against the asserted Query.
> > >
> > >
> > > I tried for a while to get a solution working with
> >
> > > different criteria types from both Data and Query
> > objects
> > > being asserted into working memory, but I couldn't
> > get
> > > the accumulate syntax right.  Anyone know of a way to
> > do
> > > that? (I figure that would get a "pure
> > rules"
> >
> > > solution.)
> > >
> > >
> > > --- On Sat, 11/7/09, Wishing Carebear <wishing.carebear at gmail.com>
> > > wrote:
> > >
> > > > From: Wishing Carebear <wishing.carebear at gmail.com>
> >
> > >
> > > > Subject: [rules-users] some pointers for
> > solution
> > > > To: rules-users at lists.jboss.org
> > > > Date: Saturday, November 7, 2009, 10:19 PM
> >
> > >
> > >
> > >
> > > > Hello:
> > > > There are n selection criteria from s1 .. sn for
> > each
> > > > item i1.. in. Each item can have a subset of
> > criteria
> > > which
> > > > applies to them.
> >
> > > >
> > > > The end user, can choose a subset of criteria
> > like c1
> > >
> > > > and c5 and only the item that has c1 and c5
> > valid
> > > should be
> > > > returned. For example: if item i1 and i2 have
> >
> > > criterias
> > > > valid for c1, c2, c5, c6, c8 since the request is
> > only
> > > for
> > > > criteria c1 and c5, i1 and i2 must be returned.
> > >
> > > >
> > > >
> > > > Is it possible to write a rule using drools for
> > this
> >
> > > > requirement.
> > > >
> > > > Thanks for your help and time,
> > > > cabear
> > > >
> > > > -----Inline Attachment Follows-----
> > >
> > > >
> > > > _______________________________________________
> >
> > > > rules-users mailing list
> > > > rules-users at lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> > >
> > > >
> > >
> > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users at lists.jboss.org
> >
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> > >
> > >
> > >
> > > -----Inline Attachment Follows-----
> >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> > >
> >
> >
> >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
> >
> >
> >
> > -----Inline Attachment Follows-----
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091116/0fa1dd22/attachment.html 


More information about the rules-users mailing list