[rules-users] Cannot work out how to get created fact to retract on change of 'when' conditions - help!

Wolfgang Laun wolfgang.laun at gmail.com
Wed Aug 4 07:01:43 EDT 2010


If you have *either*
   Fact1( $m : month, $s1 : score )
   Fact2( month == $m, $s2 : score )

*or*
   Fact1( $m : month, $s1 : score )
   Fact2( month == $m, $s2 : score )
   Fact3( month == $m, score == $1 + $2 )

then you can easily write two rules that (a) detect the
first case and progress to the second one (without insertLogical),
and (b) detect an aberration from the second one and fix the
score sum.

-W



On 4 August 2010 12:28, Stephen Mcgruer <s0840449 at sms.ed.ac.uk> wrote:

> Hey,
>
> We have the following situation: Fact1 and Fact2 both have a 'score'
> property. They also both have a 'month' property. When a Fact1 and a
> Fact2 have the same month (at most there will only be one such pairing
> for each month), a Fact3 is created with a score made from adding the
> two base Facts scores:
>
> rule "ExampleRule"
>        dialect "mvel"
>        when
>             Fact1( fact1Month : month, fact1Score : score > 0)
>             Fact2( month == fact1Month, fact2Score : score > 0)
>         then
>             Fact3 fact3 = new Fact3();
>             fact3.setScore( fact1Score + fact2Score);
>             insertLogical(fact3);
> end
>
> Our problem is that if fact1Score or fact2Score is now changed, a new
> Fact3 with a new score is created, *but* the old Fact3 is of course
> not removed - the conditions in its when still hold true as well (the
> new score is still above 0).
>
> Can anyone think of a way to make sure that if either fact1Score or
> fact2Score is changed, then the old fact3 is removed from memory?
>
> The only way we could at all think to do this is to add a timestamp to
> fact3, and to have another rule that retracts old fact3s if there is
> one with a newer timestamp and the same month... but it seems horribly
> messy.
>
> Thanks,
> Stephen
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
>
> _______________________________________________
> 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/20100804/667a3b01/attachment.html 


More information about the rules-users mailing list