Hi, I am little confused about the equals implementation in the jess. Is the
symmetric rule violated?
Thanks.
Yuping
import jess.*;
public class EqualTest
{
public static void main(String[] args) throws JessException
{
Rete r = new Rete();
r.eval("(deftemplate a (slot x (default 0)))");
r.eval("(deftemplate b (slot x (default 0)))");
r.eval("(deftemplate c (slot x (default 0)))");
r.eval("(deftemplate d (slot x (default 0)))");
ValueVector f = new ValueVector();
f.add(new Value(0, RU.INTEGER));
ValueVector f1 = new Fact("a", r);
ValueVector f2 = new Fact("b", r);
Object vv = new ValueVector();
((ValueVector) vv).add(new Value(0, RU.INTEGER));
Object vv1 = new Fact("c", r);
Object vv2 = new Fact("d", r);
System.out.println(f.equals(f1));
System.out.println(f1.equals(f));
System.out.println(f2.equals(f));
System.out.println(vv.equals(vv1));
System.out.println(vv1.equals(vv));
System.out.println(vv1.equals(vv));
}
}