ruleset ruleset1{ } rule parent1{ when{ ?p:parents(?C:p1;?M:p2;?D:p3); } then { insert ?xom.family.parent{p1 = ?C;p2 = ?M;} } } rule parent2{ when{ ?p:parents(?C:p1;?M:p2;?D:p3); } then { insert ?xom.family.parent{p1 = ?C;p2 = ?D;} } } rule sibling{ when{ ?ps1:parents(?X:p1;?M:p2;?D:p3;p2==?M;p3==?D;?X!=?Y); ?ps2:parents(?Y:p1;?X!=?Y); } then { insert ?xom.family.sibling{p1 = ?X;p2 = ?Y;} } } rule aORuDirect{ when{ ?p:parent(?C:p1;?P:p2;p1==?P); ?s:sibling(?A:p2); } then { insert ?xom.family.aORuDirect{p1 = ?C;p2 = ?A;} } } rule aORuMarriage1{ when{ ?ord:aORuDirect(?C:p1;?X:p2;p1==?X); ?m:married(?A:p2); } then { insert ?xom.family.aORuMarriage{p1 = ?C;p2 = ?A;} } } rule aORuMarriage2{ when{ ?ord:aORuDirect(?C:p1;?X:p2;p2==?X); ?m:married(?A:p1); } then { insert ?xom.family.aORuMarriage{p1 = ?C;p2 = ?A;} } } rule aORu1{ when{ ?ao1:aORuDirect(?C:p1;?A:p2); } then { insert ?xom.family.aORu{p1 = ?C;p2 = ?A;} } } rule aORu2{ when{ ?ao2:aORuMarriage(?C:p1;?A:p2); } then { insert ?xom.family.aORu{p1 = ?C;p2 = ?A;} } }