class Family { contains Person[] members } class Person { Person[] children opposite parent Person parent opposite children TaxStatus[1] taxStatus } enum TaxStatus { child, student, adult, retired } error invalidTaxStatus(Person p) :- taxStatus(p, child), children(p, _q). Family('family'). members('family', anne). members('family', bob). members('family', ciri). children(anne, ciri). ?children(bob, ciri). taxStatus(anne, adult). scope Family = 1, Person += 5..10.