R1: CreateKB response is KB name(/ResponseMessage[1]/*[1]) = 'KB' R1: CreateKB response KB is named correctly count(/ResponseMessage[1]/*[1][@kb='http://www.owllink.org/examples/KB_1']) = 1 R2: Tell response OK name(/ResponseMessage[1]/*[2]) = 'OK' R3: GetAllClasses response is a SetOfClasses element name(/ResponseMessage[1]/*[3]) = 'SetOfClasses' R3: SetOfClasses contains 5 owl:Class elements count(/ResponseMessage[1]/*[3]/owl:Class)=5 R3: GetAllClasses response contains A name(/ResponseMessage[1]/*[3]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[1]/owl:Class[@IRI='A' or @IRI='http://www.owllink.org/examples/myOntology#A']) R3: GetAllClasses response contains B name(/ResponseMessage[1]/*[3]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[1]/owl:Class[@IRI='B' or @IRI='http://www.owllink.org/examples/myOntology#B']) R3: GetAllClasses response contains C name(/ResponseMessage[1]/*[3]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[1]/owl:Class[@IRI='C' or @IRI='http://www.owllink.org/examples/myOntology#C']) R3: GetAllClasses response contains D name(/ResponseMessage[1]/*[3]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[1]/owl:Class[@IRI='D' or @IRI='http://www.owllink.org/examples/myOntology#D']) R3: GetAllClasses response contains E name(/ResponseMessage[1]/*[3]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[1]/owl:Class[@IRI='E' or @IRI='http://www.owllink.org/examples/myOntology#E']) R4: GetEquivalentClasses response is SetOfClasses element name(/ResponseMessage[1]/*[4]) = 'SetOfClasses' R4: SetOfClasses element contains 2 owl:Class elements count(/ResponseMessage[1]/*[4]/owl:Class)=2 R4: GetEquivalentClasses response contains D name(/ResponseMessage[1]/*[4]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[2]/owl:Class[@IRI='D' or @IRI='http://www.owllink.org/examples/myOntology#D']) R4: GetEquivalentClasses response contains E name(/ResponseMessage[1]/*[4]/owl:Class) = name(/ResponseMessage[1]/SetOfClasses[2]/owl:Class[@IRI='E' or @IRI='http://www.owllink.org/examples/myOntology#E']) R5: IsClassSubsumedBy (IsEntailedDirect) respose is BooleanResponse element name(/ResponseMessage[1]/*[5]) = 'BooleanResponse' R5: IsClassSubsumedBy (IsEntailedDirect) response negative count(/ResponseMessage[1]/*[position()=5 and @result='false']) = 1 R6: GetSubClasses response is SetOfClassSynsets name(/ResponseMessage[1]/*[6]) = 'SetOfClassSynsets' R6 SetOfClassSynset contains one ClassSynset count(/ResponseMessage[1]/*[6]/ClassSynset)=1 R6: This ClassSynset contains one owl:Class count(/ResponseMessage[1]/*[6]/ClassSynset[1]/owl:Class)=1 R6: This owl:Class is owl:Nothing count(/ResponseMessage[1]/*[6]/ClassSynset[1]/owl:Class[@abbreviatedIRI='owl:Nothing' or @IRI='http://www.w3.org/2002/07/owl#Nothing'])=1 R7: CreateKB response KB name(/ResponseMessage[1]/*[7]) = 'KB' R7: CreateKB response KB is named correctly count(/ResponseMessage[1]/*[7][@kb='http://www.owllink.org/examples/KB_2']) = 1 R8: Tell 2 response OK name(/ResponseMessage[1]/*[8]) = 'OK' R9: ReleaseKB 1 response OK name(/ResponseMessage[1]/*[9]) = 'OK' R10: ReleaseKB 2 response OK name(/ResponseMessage[1]/*[10]) = 'OK' R11: GetAllClasses 2 response invokes KBError name(/ResponseMessage[1]/*[11]) = 'KBError'