@SuppressWarnings("unchecked") public static <T> void assertIteratorValues(final Iterator<? extends T> it, final Iterator<? extends T> expected) { assertIteratorValues(it, (T[]) IteratorUtils.toList(expected).toArray()); }
public static void assertSatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, true); }
public static void assertNotSubClass(final KnowledgeBase kb, final ATermAppl c1, final ATermAppl c2) { assertSubClass(kb, c1, c2, false); }
@Test /** * Test for the enhancement required in #252 */ public void testBooleanDatatypeConstructors() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl nni = Datatypes.NON_NEGATIVE_INTEGER; final ATermAppl npi = Datatypes.NON_POSITIVE_INTEGER; final ATermAppl ni = Datatypes.NEGATIVE_INTEGER; final ATermAppl pi = Datatypes.POSITIVE_INTEGER; final ATermAppl f = Datatypes.FLOAT; final ATermAppl s = term("s"); kb.addDatatypeProperty(s); assertSatisfiable(kb, some(s, pi)); assertSatisfiable(kb, some(s, not(pi))); assertUnsatisfiable(kb, some(s, and(pi, ni))); assertUnsatisfiable(kb, some(s, and(f, or(pi, ni)))); assertSatisfiable(kb, some(s, and(npi, ni))); assertSatisfiable(kb, some(s, and(nni, pi))); assertSatisfiable(kb, some(s, or(nni, npi))); assertSatisfiable(kb, some(s, and(nni, npi))); }
@Test public void testQualifiedCardinalityObjectProperty() { final ATermAppl sub = term("sub"); final ATermAppl sup = term("sup"); classes(_c, _d, sub, sup); objectProperties(_p, _f); _kb.addFunctionalProperty(_f); _kb.addSubClass(sub, sup); assertSatisfiable(_kb, and(min(_p, 2, and(_c, _d)), max(_p, 2, _c), some(_p, or(and(_c, not(_d)), _c)))); assertSubClass(_kb, min(_p, 4, TOP), min(_p, 2, TOP)); assertNotSubClass(_kb, min(_p, 1, TOP), min(_p, 2, TOP)); assertNotSubClass(_kb, min(_p, 1, _c), min(_p, 1, _d)); assertNotSubClass(_kb, and(some(_p, _c), some(_p, not(_c))), min(_p, 2, _d)); assertSubClass(_kb, min(_p, 3, _c), min(_p, 2, _c)); assertSubClass(_kb, min(_p, 3, _c), min(_p, 2, TOP)); assertSubClass(_kb, min(_p, 2, _c), min(_p, 2, TOP)); assertNotSubClass(_kb, min(_p, 2, _c), min(_p, 2, _d)); assertSubClass(_kb, min(_p, 2, and(_c, _d)), some(_p, _c)); assertSubClass(_kb, max(_p, 1, sup), max(_p, 2, sub)); assertSubClass(_kb, and(max(_f, 1, TOP), all(_f, _c)), max(_f, 1, _c)); assertSubClass(_kb, and(min(_p, 2, _c), min(_p, 2, not(_c))), min(_p, 4, TOP)); }
assertIteratorContains(o1.listPropertyValues(p3), s1); assertTrue(ont.contains(stmt)); assertIteratorContains(ont.listStatements(null, p3, (RDFNode) null), stmt); assertIteratorContains(ont.listStatements(o1, null, (RDFNode) null), stmt); assertIteratorContains(ont.listStatements(), stmt); assertFalse(ont.contains(o3, p1, s3)); assertTrue(p3.isInverseOf(p2)); assertIteratorValues(p2.listInverseOf(), new Property[] { p3 }); assertIteratorValues(p3.listInverseOf(), new Property[] { p2 });
@Test public void testAnnotationPropertyQuery() { final String ns = "http://www.example.org#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); final Property p = model.createAnnotationProperty(ns + "p"); model.prepare(); assertTrue(model.contains(p, RDF.type, OWL.AnnotationProperty)); assertIteratorContains(model.listObjectsOfProperty(p, RDF.type), OWL.AnnotationProperty); assertIteratorContains(model.listObjectsOfProperty(p, null), OWL.AnnotationProperty); assertTrue(model.contains(RDFS.label, RDF.type, OWL.AnnotationProperty)); assertIteratorContains(model.listObjectsOfProperty(RDFS.label, RDF.type), OWL.AnnotationProperty); assertIteratorContains(model.listObjectsOfProperty(RDFS.label, null), OWL.AnnotationProperty); }
@Test public void roleAbsorptionWithQCR() { classes(_A, _B, _C); objectProperties(_p); _kb.addSubClass(_A, _B); _kb.addEquivalentClass(_A, min(_p, 1, _B)); _kb.addSubClass(_C, min(_p, 1, TOP)); assertNotSubClass(_kb, _C, _A); }
@Test public void testQualifiedCardinalityDataProperty() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl c = restrict(Datatypes.INTEGER, minInclusive(literal(10))); final ATermAppl d = restrict(Datatypes.INTEGER, maxInclusive(literal(20))); final ATermAppl p = term("p"); final ATermAppl f = term("f"); final ATermAppl sub = Datatypes.SHORT; final ATermAppl sup = Datatypes.INTEGER; kb.addDatatype(sub); kb.addDatatype(sup); kb.addDatatypeProperty(p); kb.addDatatypeProperty(f); kb.addFunctionalProperty(f); assertSatisfiable(kb, and(min(p, 2, and(c, d)), max(p, 2, c), some(p, or(and(c, not(d)), c)))); assertSubClass(kb, min(p, 4, TOP_LIT), min(p, 2, TOP_LIT)); assertNotSubClass(kb, min(p, 1, TOP_LIT), min(p, 2, TOP_LIT)); assertNotSubClass(kb, min(p, 1, c), min(p, 1, d)); assertNotSubClass(kb, and(some(p, c), some(p, not(c))), min(p, 2, d)); assertSubClass(kb, min(p, 3, c), min(p, 2, c)); assertSubClass(kb, min(p, 3, c), min(p, 2, TOP_LIT)); assertSubClass(kb, min(p, 2, c), min(p, 2, TOP_LIT)); assertNotSubClass(kb, min(p, 2, c), min(p, 2, d)); assertSubClass(kb, min(p, 2, and(c, d)), some(p, c)); assertSubClass(kb, max(p, 1, sup), max(p, 2, sub)); assertSubClass(kb, and(max(f, 1, TOP_LIT), all(f, c)), max(f, 1, c)); assertSubClass(kb, and(min(p, 2, c), min(p, 2, not(c))), min(p, 4, TOP_LIT)); }
@Test public void testQualifiedCardinality1() { final String ns = "http://www.example.org/test#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "qcr.owl"); final OntClass sub = model.getOntClass(ns + "sub"); final OntClass sup = model.getOntClass(ns + "sup"); assertTrue(sub.hasSuperClass(sup)); assertIteratorContains(sub.listSuperClasses(), sup); assertIteratorContains(sup.listSubClasses(), sub); }
assertNotSubClass(kb, C, A); assertNotSubClass(kb, C, B); assertNotSubClass(kb, A, C); assertNotSubClass(kb, B, C); assertFalse(kb.isType(a, C)); assertFalse(kb.isType(b, C));
private static void testFindPrimitives(final ATermAppl c, final ATermAppl[] expected) { OpenlletComparisonsChecker.assertIteratorValues(ATermUtils.findPrimitives(c).iterator(), expected); } }
public static void assertNotSubClass(final KnowledgeBase kb, final ATermAppl c1, final ATermAppl c2) { assertSubClass(kb, c1, c2, false); }
public static void assertUnsatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, false); }
@Test public void testTransitiveSubProperty2() { final String ns = "http://www.co-ode.org/ontologies/test/pellet/transitive.owl#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "transitiveSub.owl"); final OntClass ThingsThatpSomeC = model.getOntClass(ns + "ThingsThatpSomeC"); final OntClass A = model.getOntClass(ns + "A"); final OntClass B = model.getOntClass(ns + "B"); assertTrue(A.hasSuperClass(ThingsThatpSomeC)); assertTrue(B.hasSuperClass(ThingsThatpSomeC)); assertIteratorContains(A.listSuperClasses(), ThingsThatpSomeC); assertIteratorContains(B.listSuperClasses(), ThingsThatpSomeC); }
@SuppressWarnings("unchecked") public static <T> void assertIteratorValues(final Iterator<? extends T> it, final Iterator<? extends T> expected) { assertIteratorValues(it, (T[]) IteratorUtils.toList(expected).toArray()); }
public static void assertSubClass(final KnowledgeBase kb, final ATermAppl c1, final ATermAppl c2) { assertSubClass(kb, c1, c2, true); }
public static void assertUnsatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, false); }
@Test public void testUntypedProperty() { final String ns = "http://www.example.org#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); final Resource C = model.createResource(ns + "C"); final Resource p = model.createResource(ns + "p"); model.add(p, RDFS.domain, C); assertIteratorContains(model.listStatements(p, null, (RDFNode) null), model.createStatement(p, RDF.type, OWL.ObjectProperty)); }
private static void testFindPrimitives(final ATermAppl c, final ATermAppl[] expected) { OpenlletComparisonsChecker.assertIteratorValues(ATermUtils.findPrimitives(c).iterator(), expected); } }