public static void assertUnsatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, false); }
public static void assertSatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, true); }
public static void assertSatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, true); }
public static void assertUnsatisfiable(final KnowledgeBase kb, final ATermAppl c) { assertSatisfiable(kb, c, 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 testReflexive2() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl a = term("a"); final ATermAppl c = term("c"); final ATermAppl r = term("r"); kb.addIndividual(a); kb.addClass(c); kb.addSubClass(c, all(r, BOTTOM)); kb.addSubClass(c, oneOf(a)); kb.addObjectProperty(r); kb.addReflexiveProperty(r); assertSatisfiable(kb, c, false); }
@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)); }
@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)); }