Thanks Edson! The rule pattern you suggested works for me. Any such pattern to simulate "accumulate" in 3.0.x?

Jeevan

Edson Tirelli wrote:


   Jeevan,

You are right: the simplest way would be use "forall". Unfortunatelly it is only available in trunk. To do it in 3.0.x you will need either a helper attribute or a helper class. For instance, you may add a "branchLength" attribute to the tree and define 2 rules:

rule "define length"
when
    $t : Tree( branchLength == -1 )
    Branch( mytree == $t, $bl : branch_length )
then
    $t.setBranchLength( $bl.intValue() );
    modify( $t );
end

rule "check length"
when
   $t : Tree( $bl : branchLength != -1 )
   exists Branch( mytree == $t, branch_length != $bl )
then
   // do something because the branch has a different length
end

  There are several variations but you will need 2 rules to emulate this.
Hopefully the new version will be out soon solving this kind of problem.

  []s
  Edson

Jeevan Tambuluri wrote:

Hello all,

I am looking for a way to define rules for the following problem:

class Tree {
...
}

class Branch {
   Tree  mytree;
    int     branch_length;
...
}

Let's say I have a fact called Tree and another fact called Branch. Brach identifies which tree it belongs to. Now, I want to write a rule to say that all branches in a tree must be of same length.
How do I do this with/without using accumulate or forall?

Thanks a lot for any help,

J

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





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

Reply via email to