[rules-users] RE: questions on guvnor and drools 5.0

2009-06-04 Thread Garner, Shawn
Sorry it's been a few days and I haven't gotten any response on any 
questions/statements below.  

I've used drools in the past but am pretty new to some features of drools still 
and new to Guvnor.  I wrote a proof of concept drools/Guvnor app and these are 
the things I don't like or have questions around.

I was wondering if other people have the same problems or am I going about 
things wrong?  Are there work arounds or is there plans to expand/change 
functionality?  Maybe I should ask the dev list?

SG

-Original Message-
From: G, S 
Sent: Monday, June 01, 2009 3:28 PM
To: 'rules-users@lists.jboss.org'
Subject: questions on guvnor and drools 5.0

I was wondering if somebody can help me with some questions:

1) Is there any more detail on how to setup Guvnor with a database?
2) How do you use the test scenarios with complex object structures?
-eg Create a fact in working memory that has another Object in it which 
in turn has a list of Objects in it.
-Seems like any Fact in working memory is assumed to only have only 
primitive values like Strings or numbers.
-We would like a more depth of objects where objects have a deep 
relationship to other objects at least 2-4 levels deep.
3) Why add ruleflow-group to the rule definition instead of adding the rule to 
a ruleflow-group?  If the ruleflow-group is part of the rule then you can't use 
the same rule in multiple ruleflow-groups and leads to copy and maintaining the 
rule in two different spots.
4)  DSL seems to be very inconvenient to edit in a text box especially when it 
wraps.  Why not a table where you can add rows and each row is a translation.  
Also there are no examples how to do translation into Drools syntax that is 
multiple lines long and not just a single line.
5) Is Java 5 Type Enumerations supported?  I was assuming I'd get a list of 
values if a field was an Enumeration.
6) There seems to be a vast functionality difference between the Guvnor 
decision tables and examples that use spreadsheets.
7) Guvnor lost the ability to select variables for use in other statements.  
Functionality was in BRMS of drools 4.0.7
8) I was not able to insert a fact using a constructor that needed parameter 
values.  Seems like it assumes everything is a bean but I couldn't find this 
requirement stated in the documentation anywhere.  Examples in documentation 
show inserting facts with constructor parameters.
9) It would be nice when you upload a domain model jar that you could explore 
the objects and fields somehow.
10) When you write a rule using one particular editor it would be nice if you 
could switch to another editor. Switch between Guided, DSL, Technical, etc.
11) It seems hard to reorder the statements in a when or then block.  If I put 
them in the wrong order I have to delete them all.  Would be nice if a 
statement could be moved up or down.
12) When calling a method on an object the choices only showed me public 
methods that take in one parameter.  I had a method with two parameters and it 
wouldn't show me the method.  I had to do a DSL or custom drools statement to 
get around it.
13) Guvnor seems to limit the drools syntax.  I couldn't do a from 
$collection statement without a custom drools statement line.
14) It would be nice if I could declare a global dialect java for all the 
rules.
15) It would be nice to define an existing agenda-group as part of a 
ruleflow-group without adding the ruleflow-group on the rules in that 
agenda-group.

Thanks,
SG


-Message Disclaimer-

This e-mail message is intended only for the use of the individual or
entity to which it is addressed, and may contain information that is
privileged, confidential and exempt from disclosure under applicable law.
If you are not the intended recipient, any dissemination, distribution or
copying of this communication is strictly prohibited. If you have
received this communication in error, please notify us immediately by
reply email to conn...@principal.com and delete or destroy all copies of
the original message and attachments thereto. Email sent to or from the
Principal Financial Group or any of its member companies may be retained
as required by law or regulation.

Nothing in this message is intended to constitute an Electronic signature
for purposes of the Uniform Electronic Transactions Act (UETA) or the
Electronic Signatures in Global and National Commerce Act (E-Sign)
unless a specific statement to the contrary is included in this message.

While this communication may be used to promote or market a transaction
or an idea that is discussed in the publication, it is intended to provide
general information about the subject matter covered and is provided with
the understanding that The Principal is not rendering legal, accounting,
or tax advice. It is not a marketed opinion and may not be used to avoid
penalties under the Internal Revenue Code. You should consult with
appropriate counsel or other advisors on all matters 

Re: [rules-users] RE: questions on guvnor and drools 5.0

2009-06-04 Thread Steve Ronderos
Hi Shawn,

I'm also currently evaluating Guvnor.  I certainly don't have all the 
answers but maybe I can share what I have learned so far.  I've put my 
comments below.

Steve Ronderos 

rules-users-boun...@lists.jboss.org wrote on 06/04/2009 08:14:30 AM:

 [image removed] 
 
 [rules-users] RE: questions on guvnor and drools 5.0
 
 Garner, Shawn 
 
 to:
 
 rules-users@lists.jboss.org
 
 06/04/2009 08:19 AM
 
 Sent by:
 
 rules-users-boun...@lists.jboss.org
 
 Please respond to Rules Users List
 
 Sorry it's been a few days and I haven't gotten any response on any 
 questions/statements below. 
 
 I've used drools in the past but am pretty new to some features of 
 drools still and new to Guvnor.  I wrote a proof of concept drools/
 Guvnor app and these are the things I don't like or have questions 
around.
 
 I was wondering if other people have the same problems or am I going
 about things wrong?  Are there work arounds or is there plans to 
 expand/change functionality?  Maybe I should ask the dev list?
 
 SG
 
 -Original Message-
 From: G, S 
 Sent: Monday, June 01, 2009 3:28 PM
 To: 'rules-users@lists.jboss.org'
 Subject: questions on guvnor and drools 5.0
 
 I was wondering if somebody can help me with some questions:
 
 1) Is there any more detail on how to setup Guvnor with a database?

Guvnor uses Apache Jackrabbit for persistence.  You can find a pretty good 
walk through on the Drools blog 
http://blog.athico.com/2008/08/tuning-guvnor.html.  Additional information 
about configuring the repository can be found on the Apache Jackrabbit 
site.  http://jackrabbit.apache.org/jackrabbit-configuration.html

 2) How do you use the test scenarios with complex object structures?
-eg Create a fact in working memory that has another Object in it
 which in turn has a list of Objects in it.
-Seems like any Fact in working memory is assumed to only have 
 only primitive values like Strings or numbers.
-We would like a more depth of objects where objects have a deep 
 relationship to other objects at least 2-4 levels deep.

I'm not sure, haven't used that feature of Guvnor much yet.

 3) Why add ruleflow-group to the rule definition instead of adding 
 the rule to a ruleflow-group?  If the ruleflow-group is part of the 
 rule then you can't use the same rule in multiple ruleflow-groups 
 and leads to copy and maintaining the rule in two different spots.

Should probably ask the dev group this one.

 4)  DSL seems to be very inconvenient to edit in a text box 
 especially when it wraps.  Why not a table where you can add rows 
 and each row is a translation.  Also there are no examples how to do
 translation into Drools syntax that is multiple lines long and not 
 just a single line.

I haven't used DSLs much either yet.  Maybe ask the dev group this one 
also.

 5) Is Java 5 Type Enumerations supported?  I was assuming I'd get a 
 list of values if a field was an Enumeration.

Not sure

 6) There seems to be a vast functionality difference between the 
 Guvnor decision tables and examples that use spreadsheets.

I believe that Guvnor decision tables are not as full featured as the 
spreadsheet based version, but you can still upload spreadsheets to Guvnor 
as decision tables.

 7) Guvnor lost the ability to select variables for use in other 
 statements.  Functionality was in BRMS of drools 4.0.7

I don't understand the question.  Are you talking about assigning a 
pattern or an attribute in a pattern to a variable for use in another 
statement in the LHS or RHS?  If so clicking on the fact type or field 
restriction that gives you that option.

 8) I was not able to insert a fact using a constructor that needed 
 parameter values.  Seems like it assumes everything is a bean but I 
 couldn't find this requirement stated in the documentation anywhere.
 Examples in documentation show inserting facts with constructor 
parameters.

Are you talking about in the Guided Rules Editor? I haven't tried this, 
but it sounds like a bug.  Maybe ask the dev team.

 9) It would be nice when you upload a domain model jar that you 
 could explore the objects and fields somehow.

I agree, being able to traverse the model that you include would be nice. 
Maybe ask the dev team if there are plans for such a feature or create a 
request in the Guvnor JIRA. https://jira.jboss.org/jira/browse/JBRULES

 10) When you write a rule using one particular editor it would be 
 nice if you could switch to another editor. Switch between Guided, 
 DSL, Technical, etc.

Agreed.  Some other posters on the email group have discussed this before. 
 As it stands the different editors aren't equally as powerful.  Some 
rules can not be represented in the Guided editor since it does not have 
anything capable of from (I think).  Maybe ask the dev team about this 
and possibly create a feature request.

 11) It seems hard to reorder the statements in a when or then block.
 If I put them in the wrong order I have to delete them all

Re: [rules-users] RE: questions on guvnor and drools 5.0

2009-06-04 Thread Wolfgang Laun
On 6/4/09, Garner, Shawn garner.sh...@principal.com wrote:
 2) How do you use the test scenarios with complex object structures?
-eg Create a fact in working memory that has another Object in it 
 which in turn has a list of Objects in it.
-Seems like any Fact in working memory is assumed to only have only 
 primitive values like Strings or numbers.
-We would like a more depth of objects where objects have a deep 
 relationship to other objects at least 2-4 levels deep.

Any object that is inserted as a fact may contain references to other
objects, which, in turn, may contain references, and so on.

The main thing to consider with complex object structures is, which of
the objects should be inserted as facts. The distinction should be
made according to whether an object's properties participate in rule
patterns and whether this object will change during the (stateful)
session. If so, make it a fact.

Referring to object properties via one or more levels of dereferencing
when using them in patterns won't be possible except in inline evals
or eval patterns.

Notice that LHS patterns may be written so that additional levels of
objects are included in the reasoning, letting you access their
non-reference fields in field constraints, e.g.:

rule x
when
   $p : Person( $name : name, $f : father )
   Person( this == $f, name == Joe )
then
   // $name is a child of Joe
end

-W
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


RE: [rules-users] RE: questions on guvnor and drools 5.0

2009-06-04 Thread Garner, Shawn
We have lists of objects and I was talking about how you do it with the test 
scenario in Guvnor.

The fact is in working memory but I need to be able to create the object so it 
has a list of objects.

Because the rule matches if it is in working memory and party of another 
object's list.

So if I have a School and Children for example

Then I write a rule that says if School and Child where child is a member of 
the School

[when]
$child : Child(readyForRegistration == true)
$school : School($child memberof children)
[then]
$school.registerChild($child);
[end]

So in Guvnor I need to create a test scenario where School has a list of 
Children objects.  But Guvnor only shows me a textfield so I assume it wants a 
value like Bob or 1.  

I don't see the option or an example how to create a Child fact with a name of 
Bob and readyForRegistration = true.  

Then another child with name of Nancy which readyForRegistration = false.

Then I want to put them in both into a collection and create a new School 
object using the collection of Bob and Nancy.


I can do this type of thing easily with a JUnit test creating and inserting 
facts into working memory.  It would be nice if business users could write test 
scenarios just as easy with Guvnor.

If you haven't checked out that part of Guvnor it might help if you take a peek.

SG

-Original Message-
From: rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Wolfgang Laun
Sent: Thursday, June 04, 2009 11:59 AM
To: Rules Users List
Subject: Re: [rules-users] RE: questions on guvnor and drools 5.0

On 6/4/09, Garner, Shawn garner.sh...@principal.com wrote:
 2) How do you use the test scenarios with complex object structures?
-eg Create a fact in working memory that has another Object in it 
 which in turn has a list of Objects in it.
-Seems like any Fact in working memory is assumed to only have only 
 primitive values like Strings or numbers.
-We would like a more depth of objects where objects have a deep 
 relationship to other objects at least 2-4 levels deep.

Any object that is inserted as a fact may contain references to other
objects, which, in turn, may contain references, and so on.

The main thing to consider with complex object structures is, which of
the objects should be inserted as facts. The distinction should be
made according to whether an object's properties participate in rule
patterns and whether this object will change during the (stateful)
session. If so, make it a fact.

Referring to object properties via one or more levels of dereferencing
when using them in patterns won't be possible except in inline evals
or eval patterns.

Notice that LHS patterns may be written so that additional levels of
objects are included in the reasoning, letting you access their
non-reference fields in field constraints, e.g.:

rule x
when
   $p : Person( $name : name, $f : father )
   Person( this == $f, name == Joe )
then
   // $name is a child of Joe
end

-W
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


-Message Disclaimer-

This e-mail message is intended only for the use of the individual or
entity to which it is addressed, and may contain information that is
privileged, confidential and exempt from disclosure under applicable law.
If you are not the intended recipient, any dissemination, distribution or
copying of this communication is strictly prohibited. If you have
received this communication in error, please notify us immediately by
reply email to conn...@principal.com and delete or destroy all copies of
the original message and attachments thereto. Email sent to or from the
Principal Financial Group or any of its member companies may be retained
as required by law or regulation.

Nothing in this message is intended to constitute an Electronic signature
for purposes of the Uniform Electronic Transactions Act (UETA) or the
Electronic Signatures in Global and National Commerce Act (E-Sign)
unless a specific statement to the contrary is included in this message.

While this communication may be used to promote or market a transaction
or an idea that is discussed in the publication, it is intended to provide
general information about the subject matter covered and is provided with
the understanding that The Principal is not rendering legal, accounting,
or tax advice. It is not a marketed opinion and may not be used to avoid
penalties under the Internal Revenue Code. You should consult with
appropriate counsel or other advisors on all matters pertaining to legal,
tax, or accounting obligations and requirements.


___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users