@Override public synchronized void addClass(final ATermAppl c) { super.addClass(c); }
@Override public synchronized void addClass(final ATermAppl c) { super.addClass(c); }
@Test public void testGetInstances1() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl i = term("i"); kb.addClass(C); kb.addIndividual(i); kb.addType(i, C); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); // Named concept, all instances final Set<ATermAppl> actual = kb.getInstances(C); assertEquals(expected, actual); }
@Test public void testGetInstances6() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); final ATermAppl CoD = or(C, D); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(j, D); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); expected.add(j); final Set<ATermAppl> actual = kb.getInstances(CoD); assertEquals(expected, actual); }
@Test public void testGetInstances3() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addSubClass(C, D); kb.addType(i, C); kb.addType(j, D); final Set<ATermAppl> expectedD = new HashSet<>(); expectedD.add(i); expectedD.add(j); // Named concept, all instances final Set<ATermAppl> actualD = kb.getInstances(D); assertEquals(expectedD, actualD); final Set<ATermAppl> expectedC = new HashSet<>(); expectedC.add(i); // Named concept, all instances final Set<ATermAppl> actualC = kb.getInstances(C); assertEquals(expectedC, actualC); }
@Test public void testGetInstances4() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addSubClass(C, D); kb.addType(i, C); kb.addType(j, D); final Set<ATermAppl> expectedD = new HashSet<>(); expectedD.add(j); // Named concept, direct instances final Set<ATermAppl> actualD = kb.getInstances(D, true); assertEquals(expectedD, actualD); final Set<ATermAppl> expectedC = new HashSet<>(); expectedC.add(i); // Named concept, direct instances final Set<ATermAppl> actualC = kb.getInstances(C, true); assertEquals(expectedC, actualC); }
@Test public void testGetInstances9() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl E = term("E"); final ATermAppl p = term("p"); final ATermAppl D = some(p, E); final ATermAppl i = term("i"); kb.addClass(C); kb.addClass(E); kb.addObjectProperty(p); kb.addSubClass(D, C); kb.addIndividual(i); kb.addType(i, D); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); // Retrieve direct instance of anonymous concept final Set<ATermAppl> actual = kb.getInstances(D, true); assertEquals(expected, actual); }
@Test public void testGetInstances2() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); kb.addClass(C); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(j, C); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); expected.add(j); // Named concept, all instances final Set<ATermAppl> actual = kb.getInstances(C); assertEquals(expected, actual); }
@Test public void anyURI383() { final ATermAppl C = TermFactory.term("C"); final ATermAppl D = TermFactory.term("D"); final ATermAppl p = TermFactory.term("p"); final ATermAppl uri = TermFactory.literal(URI.create("http://www.example.org")); final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); kb.addClass(C); kb.addClass(D); kb.addDatatypeProperty(p); kb.addRange(p, ANY_URI); kb.addEquivalentClass(C, hasValue(p, uri)); kb.addEquivalentClass(D, min(p, 1, TOP_LIT)); assertSubClass(kb, C, D, true); assertSubClass(kb, D, C, false); }
@Test public void testGetInstances7() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); final ATermAppl CaD = and(C, D); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(i, D); kb.addType(j, D); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); final Set<ATermAppl> actual = kb.getInstances(CaD); assertEquals(expected, actual); }
@Test public void testGetInstances11() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); final ATermAppl CaD = and(C, D); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(i, D); kb.addType(j, D); final Set<ATermAppl> expected = new HashSet<>(); expected.add(i); final Set<ATermAppl> actual = kb.getInstances(CaD, true); assertEquals(expected, actual); }
@Test public void testGetInstances10() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); final ATermAppl CoD = or(C, D); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(j, D); final Set<ATermAppl> expected = new HashSet<>(); final Set<ATermAppl> actual = kb.getInstances(CoD, true); assertEquals(expected, actual); }
@Test public void testGetInstances8() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = TermFactory.term("C"); final ATermAppl E = TermFactory.term("E"); final ATermAppl p = TermFactory.term("p"); final ATermAppl D = TermFactory.some(p, E); final ATermAppl i = TermFactory.term("i"); kb.addClass(C); kb.addClass(E); kb.addObjectProperty(p); kb.addSubClass(D, C); kb.addIndividual(i); kb.addType(i, C); final Set<ATermAppl> expected = new HashSet<>(); // Retrieve direct instance of anonymous concept final Set<ATermAppl> actual = kb.getInstances(D, true); assertEquals(expected, actual); }
@Test public void testGetInstances5() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl i = term("i"); final ATermAppl j = term("j"); final ATermAppl CaD = and(C, D); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addIndividual(j); kb.addType(i, C); kb.addType(j, D); final Set<ATermAppl> expected = new HashSet<>(); // Anonymous concept, all instances final Set<ATermAppl> actual = kb.getInstances(CaD); assertEquals(expected, actual); }
@Test public void testRuleExplanation() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl C = ATermUtils.makeTermAppl("C"); final ATermAppl D = ATermUtils.makeTermAppl("D"); final ATermAppl i = ATermUtils.makeTermAppl("i"); final List<RuleAtom> body = new ArrayList<>(); final List<RuleAtom> head = new ArrayList<>(); body.add(new ClassAtom(C, new AtomIVariable("x"))); head.add(new ClassAtom(D, new AtomIVariable("x"))); final Rule rule = new Rule(head, body); kb.addClass(C); kb.addClass(D); kb.addIndividual(i); kb.addType(i, C); kb.addRule(rule); kb.setDoExplanation(true); assertTrue(kb.isConsistent()); assertTrue(kb.isType(i, D)); final Set<ATermAppl> actual = kb.getExplanationSet(); kb.setDoExplanation(false); final Set<ATermAppl> expected = new HashSet<>(); final ATermAppl x = ATermUtils.makeVar("x"); final ATermAppl[] b = new ATermAppl[] { ATermUtils.makeTypeAtom(x, C) }; final ATermAppl[] h = new ATermAppl[] { ATermUtils.makeTypeAtom(x, D) }; expected.add(ATermUtils.makeTypeAtom(i, C)); expected.add(ATermUtils.makeRule(h, b)); assertEquals(expected, actual); }
@Test public void userDefinedDatatypes303b() { final ATermAppl c = TermFactory.term("C"); final ATermAppl v = TermFactory.term("v"); final ATermAppl i = TermFactory.term("i"); final ATermAppl one = TermFactory.literal(1); final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); kb.addClass(c); kb.addDatatypeProperty(v); kb.addIndividual(i); kb.addSubClass(c, TermFactory.some(v, INTEGER)); kb.addRange(v, TermFactory.oneOf(one)); kb.addType(i, c); assertTrue(kb.hasPropertyValue(i, v, one)); }
@Test public void userDefinedDatatypes303a() { final ATermAppl c = TermFactory.term("C"); final ATermAppl v = TermFactory.term("v"); final ATermAppl i = TermFactory.term("i"); final ATermAppl one = TermFactory.literal(1); final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); kb.addClass(c); kb.addDatatypeProperty(v); kb.addIndividual(i); kb.addSubClass(c, TermFactory.min(v, 1, INTEGER)); kb.addRange(v, TermFactory.oneOf(one)); kb.addType(i, c); assertTrue(kb.hasPropertyValue(i, v, one)); }
@Test public void topObjectDomain() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl c = term("C"); final ATermAppl x = term("x"); final ATermAppl y = term("y"); final ATermAppl z = term("z"); kb.addClass(c); kb.addIndividual(x); kb.addIndividual(y); kb.addIndividual(z); kb.addDifferent(x, y); kb.addDifferent(x, z); kb.addSubClass(c, oneOf(x, y)); kb.addDomain(TOP_OBJECT_PROPERTY, c); assertTrue(kb.isSameAs(y, z)); }
@Test public void topObjectRange() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl c = term("C"); final ATermAppl x = term("x"); final ATermAppl y = term("y"); final ATermAppl z = term("z"); kb.addClass(c); kb.addIndividual(x); kb.addIndividual(y); kb.addIndividual(z); kb.addDifferent(x, y); kb.addDifferent(x, z); kb.addSubClass(c, oneOf(x, y)); kb.addRange(TOP_OBJECT_PROPERTY, c); assertTrue(kb.isSameAs(y, z)); }
@Test public void topObjectAllValues() { final KnowledgeBaseImpl kb = new KnowledgeBaseImpl(); final ATermAppl c = term("C"); final ATermAppl x = term("x"); final ATermAppl y = term("y"); final ATermAppl z = term("z"); kb.addClass(c); kb.addIndividual(x); kb.addIndividual(y); kb.addIndividual(z); kb.addDifferent(x, y); kb.addDifferent(x, z); kb.addSubClass(c, oneOf(x, y)); kb.addSubClass(TOP, all(TOP_OBJECT_PROPERTY, c)); assertTrue(kb.isSameAs(y, z)); }