[rules-users] Rules for Hierarchical Type Calculation Formulas

Anstis, Michael (M.) manstis1 at ford.com
Fri Nov 9 10:42:51 EST 2007


IMO, your (simplified) model should be no problem to use within Drools (you
can use contains or memberof depending upon how the relationships are
navigable); the others appear to be simple properties of the entities. Have
you analysed rule-flow to meet your process-flow requirements (looping has
been reported to be possible with rule-flow and the remainder appear an
almost sequential flow)?

Good luck.

Mike

-----Original Message-----
From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Don Cameron
Sent: 09 November 2007 14:56
To: Rules Users List
Subject: RE: [rules-users] Rules for Hierarchical Type Calculation Formulas

Mike, thanks for the detailed reply.  It looks like with your example, that
we can do this calculation portion with drools.  To answer your question,
the business entities are hierarchical.  Here is a simplified example:

Student
	Name
	Student Number
	Home Address -> Address Entity
	Email
	ApplicationCol -> Collection of Application Entities

Address
	Street
	City
	Province

Application
	Program 
	Period of Study
	Tuition Cost
	Scholarships
	IfMarried
       Number of Children
	Rent Cost

Assessment Results
	Total Need
	Total Resource
	Total Eligible Loan Amount
		



A second part to the process is a workflow like process that allocates the
money for the student loan from many grants and loan types.  Here is the
high level logic:


	For each pre-loan grant fund
		If learner has eligibility for the fund then
			Determine amount from fund
			Allocate amount to application
		Endif
	End-for

	Federal portion is minimum of assessed need and number of program
weeks * federal monthly amount
	Reduce federal portion if beyond lifetime maximums

	Calculate provincial portion as remaining portion of loan amount
	Reduce provincial portion if beyond lifetime maximums

	Do not distribute unless greater than minimum loan amount

	For each not pre-loan grant fund
		If application has eligibility for the fund then
			Determine amount from fund
			Allocate amount to application
		Endif
	End-for

	Calculate LRC Remission


It would be nice to keep this flow of logic in one place as this mimics how
the business does it today, and maintainability is one of the three major
objectives we are trying to accomplish.  The more I read about drools, the
more I believe it is not suitable for workflow type process.  What
open-source workflow products are people using that work well with Drools?

Thanks
Don





	
	
________________________________________
From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Anstis, Michael
(M.)
Sent: Friday, November 09, 2007 2:14 AM
To: Rules Users List
Subject: RE: [rules-users] Rules for Hierarchical Type Calculation Formulas

Are the parameters for the calculations hierarchical in your model or are
there just many components to each equation? For example:-
 
Rule "Total Resource"
when
$s : Student( $e : employmentEarnings, $ss : scholarships, $a : assets)
then
insert(new TotalResource($s, $e + $ss + $a);
end
 
Rule "Child Care Expenses"
when
$s : Student( $nc : numberOfChildren, $pca : perChildAmount)
then
insert(new ChildCareExpenses($s, $nc * $pca);
end
 
Rule "Total Need"
when
$s : Student( $t : tuition, $la : LivingAllowance, $cce : childCareExpenses)
ChildCareExpenses(student == $s, $cce : amount)
then
insert(new TotalNeed($s, $t + $la + $cce);
end
 
Rule "Total Eligible Loan Amount"
when
$s : Student($maa : maxAllowedAmount)
TotalNeed( student == $s, $n : amount)
TotalResource( student == $s, $r : amount)
then
insert(new TotalEligibleLoanAmount(Math.min($n - $r, $maa));
end
 
Possible? Yes. Performant? Performance depends upon many factors (number of
students, hardware, subjective definition of performant); but there have
been many postings suggesting Drools is as quick, if not quicker than other
commercial engines.
 
There are plenty of ways to skin an apple.
 
With kind regards,
 
Mike

________________________________________
From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Don Cameron
Sent: 08 November 2007 23:28
To: rules-users at lists.jboss.org
Subject: [rules-users] Rules for Hierarchical Type Calculation Formulas
We have been using a custom rules engine successfully for our 1000+
rules for our student loans application, but these rules are decision
based types rules (if then else).

For assessing loan amounts for our student loan application, we have
over 400+ calculation formulas plus decision logic.  These formulas are
mostly simple:

TotalEligilbleLoanAmount = Min(TotalNeed - TotalResource,
MaxAllowedAmount)
      TotalNeed = Tuition + LivingAllowance + ChildCareExpenses
            ChildCareExpenses = NumberOfChildren * PerChildAmount
      TotalResource = EmploymentEarnings + Scholarships + Assets

(however there are 400+ formulas and the hierarchy gets up to 20 deep)

Is it possible to implement something like this in Drools? Will it be
maintainable and performant?

Thanks
Don



This communication is intended for the use of the recipient to which it is
addressed, and may contain confidential, personal, and or privileged
information. Please contact us immediately if you are not the intended
recipient of this communication, and do not copy, distribute, or take action
relying on it. Any communication received in error, or subsequent reply,
should be deleted or destroyed. 

This communication is intended for the use of the recipient to which it is
addressed, and may contain confidential, personal, and or privileged
information. Please contact us immediately if you are not the intended
recipient of this communication, and do not copy, distribute, or take action
relying on it. Any communication received in error, or subsequent reply,
should be deleted or destroyed.

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4159 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20071109/0821113f/attachment.bin 


More information about the rules-users mailing list