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: IsKBSatisfiable response is BooleanResponse true
name(/ResponseMessage[1]/*[3]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[3][@result='true'])=1 or count(/ResponseMessage[1]/*[position()=3 and (contains(@error, 'supported') or contains(@error, 'implemented'))])=1

R4: IsKBConsistentlyDeclared response is BooleanResponse true
name(/ResponseMessage[1]/*[4]) = 'BooleanResponse' and count(/ResponseMessage[1]/*[4][@result='true'])=1 or /ResponseMessage[1]/*[position()=4 and contains(@error, 'implemented')] or count(/ResponseMessage[1]/*[position()=4 and (contains(@error, 'supported') or contains(@error, 'implemented'))])=1

R5: GetKBLanguage response is BooleanResponse true
name(/ResponseMessage[1]/*[5]) = 'StringResponse' and count(/ResponseMessage[1]/*[5])=1 or count(/ResponseMessage[1]/*[position()=5 and (contains(@error, 'supported') or contains(@error, 'implemented'))])=1

R6: ReleaseKB response OK
name(/ResponseMessage[1]/*[6]) = 'OK'