R1: CreateKB response KB
name(/ResponseMessage[1]/*[1]) = 'KB' and count(/ResponseMessage[1]/*[1][@kb='http://www.owllink.org/ont/families']) = 1

R2: LoadOntologies response OK
name(/ResponseMessage[1]/*[2]) = 'OK'

R3: IsEntailed owl:EquivalentClasses response is BooleanResponse true
name(/ResponseMessage[1]/*[3]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[3][@result='true'])=1

R4: IsEntailed owl:DisjointClasses response is BooleanResponse true
name(/ResponseMessage[1]/*[4]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[4][@result='true'])=1

R5: IsEntailed owl:Declaration owl:NamedIndividual response is BooleanResponse true
name(/ResponseMessage[1]/*[5]) = name(/ResponseMessage[1]/*[5][@result='true'])

R6: IsEntailed owl:DisjointObjectProperties response is BooleanResponse true
name(/ResponseMessage[1]/*[6]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[6][@result='true'])=1 or count(/ResponseMessage[1]/*[position()=6 and (contains(@error, 'supported') or contains(@error, 'implemented'))])=1

R7: IsEntailed owl:Declaration owl:Class response is BooleanResponse true
name(/ResponseMessage[1]/*[7]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[7][@result='true'])=1

R8: IsEntailed owl:SubObjectPropertyOf owl:Class response is BooleanResponse true
name(/ResponseMessage[1]/*[8]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[8][@result='true'])=1

R9: IsEntailedDirect owl:SubObjectPropertyOf owl:Class response is BooleanResponse false
name(/ResponseMessage[1]/*[9]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[9][@result='false'])=1

R10: IsEntailedDirect owl:ClassAssertion owl:Class response is BooleanResponse true
name(/ResponseMessage[1]/*[10]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[10][@result='true'])=1

R11: ReleaseKB response OK
name(/ResponseMessage[1]/*[11]) = 'OK'