class Family { contains Person[] members } class Person { refers Person[] children opposite parent refers Person parent opposite children } error loop(Person p) :- children+(p, p). error multipleRoots(Person p, Person q) :- !equals(p, q), !parent(p, _), !parent(q, _). Family('family'). members('family', anne). members('family', bob). members('family', ciri). children(anne, ciri). ?children(bob, ciri). scope Family = 1, Person += 5..10.