@Test public void testSelf() { final StringWriter s = new StringWriter(); final ATermRenderer r = new ATermManchesterSyntaxRenderer(); r.setWriter(new PrintWriter(s)); final ATermAppl p = term("p"); r.visit(self(p)); final String expected = "(p Self)"; final String actual = s.toString(); assertEquals(expected, actual); }
@Test public void testSelf() { final StringWriter s = new StringWriter(); final ATermRenderer r = new ATermManchesterSyntaxRenderer(); r.setWriter(new PrintWriter(s)); final ATermAppl p = term("p"); r.visit(self(p)); final String expected = "(p Self)"; final String actual = s.toString(); assertEquals(expected, actual); }
@Test public void testDisjointSelf() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl A = term("A"); final ATermAppl p = term("p"); kb.addClass(A); kb.addObjectProperty(p); kb.addDisjointClasses(Arrays.asList(A, self(p))); kb.classify(); assertTrue(kb.isSatisfiable(A)); }
@Test public void testSelfRestrictionRestore() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl C = term("c"); final ATermAppl D = term("d"); final ATermAppl p = term("p"); final ATermAppl q = term("q"); final ATermAppl a = term("a"); kb.addClass(C); kb.addClass(D); kb.addObjectProperty(p); kb.addObjectProperty(q); kb.addSubClass(C, or(not(self(p)), not(self(q)))); kb.addIndividual(a); kb.addType(a, C); assertTrue(kb.isConsistent()); assertFalse(kb.isType(a, not(self(p)))); assertFalse(kb.isType(a, not(self(q)))); }
@Test public void testReflexive3() { classes(_C); objectProperties(_r); individuals(_a, _b, _c); _kb.addEquivalentClass(_C, self(_r)); _kb.addPropertyValue(_r, _a, _a); _kb.addType(_b, _C); _kb.addPropertyValue(_r, _c, _a); _kb.addPropertyValue(_r, _c, _b); assertTrue(_kb.hasPropertyValue(_a, _r, _a)); assertTrue(_kb.hasPropertyValue(_b, _r, _b)); assertFalse(_kb.hasPropertyValue(_c, _r, _c)); final Map<ATermAppl, List<ATermAppl>> allRs = _kb.getPropertyValues(_r); assertIteratorValues(allRs.get(_a).iterator(), new ATermAppl[] { _a }); assertIteratorValues(allRs.get(_b).iterator(), new ATermAppl[] { _b }); assertIteratorValues(allRs.get(_c).iterator(), new ATermAppl[] { _a, _b }); assertTrue(_kb.isType(_a, _C)); assertTrue(_kb.isType(_b, _C)); assertFalse(_kb.isType(_c, _C)); assertEquals(_kb.getInstances(_C), SetUtils.create(_a, _b)); }
@Test public void testReflexiveSubPropertyImplicit() { classes(_C); objectProperties(_p, _q); _kb.addSubClass(TOP, self(_p)); _kb.addSubProperty(_p, _q); assertTrue(_kb.isConsistent()); assertTrue(_kb.isReflexiveProperty(_p)); assertTrue(_kb.isReflexiveProperty(_q)); }
kb.addClass(sup); kb.addSubClass(sub, sup); kb.addSubClass(some(weakR, TOP), self(weakR)); kb.addType(x, self(p)); kb.addType(x, not(some(weakR, value(x)))); kb.addIndividual(y); assertTrue(kb.isSubClassOf(and(c, self(p)), some(p, c))); assertTrue(kb.isSubClassOf(and(c, min(r, 1, not(c))), min(r, 2, TOP))); assertTrue(kb.isSubClassOf(min(r, 1, c), d)); assertTrue(kb.isDifferentFrom(y, x)); assertTrue(kb.isType(x, some(r, value(x)))); assertTrue(kb.isSatisfiable(and(self(p), self(inv(p)), max(p, 1, TOP))));
@Test public void testSelfRestrictions() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl c = term("c"); final ATermAppl d = term("d"); final ATermAppl p = term("p"); kb.addClass(c); kb.addClass(d); kb.addObjectProperty(p); kb.addRange(p, d); kb.addSubClass(c, and(self(p), some(p, TOP))); assertTrue(kb.isConsistent()); assertTrue(kb.isSatisfiable(c)); assertTrue(kb.isSubClassOf(c, d)); }
@Test public void testFindPrimitives() { testFindPrimitives(some(_p, not(_c)), new ATermAppl[] { _c }); testFindPrimitives(and(_c, _b, all(_p, _a)), new ATermAppl[] { _a, _b, _c }); testFindPrimitives(max(_p, 1, not(some(_p, or(_a, _b)))), new ATermAppl[] { _a, _b }); testFindPrimitives(min(_p, 2, or(_a, and(_b, not(_c)))), new ATermAppl[] { _a, _b, _c }); testFindPrimitives(and(some(_p, ATermUtils.TOP), all(_p, _a), and(some(_p, value(_r)), or(self(_p), max(_p, 1, _b)))), new ATermAppl[] { ATermUtils.TOP, _a, _b }); testFindPrimitives(and(_d1, _d2, _d3), new ATermAppl[] { _d3 }); testFindPrimitives(not(and(not(_d1), _d2, _d3)), new ATermAppl[] { _d3 }); testFindPrimitives(some(_p, and(_d1, _d3)), new ATermAppl[] { _d3 }); }
@Test public void testFindPrimitives() { testFindPrimitives(some(_p, not(_c)), new ATermAppl[] { _c }); testFindPrimitives(and(_c, _b, all(_p, _a)), new ATermAppl[] { _a, _b, _c }); testFindPrimitives(max(_p, 1, not(some(_p, or(_a, _b)))), new ATermAppl[] { _a, _b }); testFindPrimitives(min(_p, 2, or(_a, and(_b, not(_c)))), new ATermAppl[] { _a, _b, _c }); testFindPrimitives(and(some(_p, ATermUtils.TOP), all(_p, _a), and(some(_p, value(_r)), or(self(_p), max(_p, 1, _b)))), new ATermAppl[] { ATermUtils.TOP, _a, _b }); testFindPrimitives(and(_d1, _d2, _d3), new ATermAppl[] { _d3 }); testFindPrimitives(not(and(not(_d1), _d2, _d3)), new ATermAppl[] { _d3 }); testFindPrimitives(some(_p, and(_d1, _d3)), new ATermAppl[] { _d3 }); }