[rules-users] accumulate over multiple types

Mark Proctor mproctor at codehaus.org
Sat Jul 28 10:26:07 EDT 2007


'accumulate' currently can only take a single Pattern, multiple 
correlated Patterns is scheduled for a future release (hopefully next 
one). Also don't use semi colons they just aren't needed and in some 
places break things.

Mark
Geoffrey De Smet wrote:
> I 'd like to get the number of queens which have the same y.
>
> I used to do this with a query:
>    query "multipleQueensHorizontal"
>        Queen($id : id, $y : y);
>        Queen(id > $id, y == $y);
>    end
> And then ask the size() of it.
>
> But now I should be able to do this with the accumulate function:
>     $multipleQueensHorizontal : Integer()
>     from accumulate(
>         $q1 : Queen($id : id, $y : y);
>         Queen(id > $id, y == $y);
>       , count($q1)
>     );
>
> However, I get a parsing error on it:
>   Caused by: org.drools.rule.InvalidRulePackage: [31,37]: 
> unknown:31:37 Unexpected token ';'[33,6]: unknown:33:6 mismatched 
> token: [@123,814:814=',',<12>,33:6]; expecting type THEN
>
> Apparently the ; in of "$q1 : Queen($id : id, $y : y);" is inacceptable?
>




More information about the rules-users mailing list