@SuppressWarnings("unchecked") public static <T> void assertIteratorValues(final Iterator<? extends T> it, final Iterator<? extends T> expected) { assertIteratorValues(it, (T[]) IteratorUtils.toList(expected).toArray()); }
private static void testFindPrimitives(final ATermAppl c, final ATermAppl[] expected) { OpenlletComparisonsChecker.assertIteratorValues(ATermUtils.findPrimitives(c).iterator(), expected); } }
@SuppressWarnings("unchecked") public static <T> void assertIteratorValues(final Iterator<? extends T> it, final Iterator<? extends T> expected) { assertIteratorValues(it, (T[]) IteratorUtils.toList(expected).toArray()); }
private static void testFindPrimitives(final ATermAppl c, final ATermAppl[] expected) { OpenlletComparisonsChecker.assertIteratorValues(ATermUtils.findPrimitives(c).iterator(), expected); } }
public void testVariableUtils1() { final AtomIVariable var1 = new AtomIVariable("var1"), var2 = new AtomIVariable("var2"); final RuleAtom atom = new SameIndividualAtom(var1, var2); assertIteratorValues(VariableUtils.getVars(atom).iterator(), new Object[] { var1, var2 }); }
public void testVariableUtils2() { final ATermAppl p = term("p"); final AtomIVariable var1 = new AtomIVariable("var1"), var2 = new AtomIVariable("var2"); final RuleAtom atom = new IndividualPropertyAtom(p, var1, var2); assertIteratorValues(VariableUtils.getVars(atom).iterator(), new Object[] { var1, var2 }); }
@Test public void testObjectVariableBindingGenerator() { _kb.addIndividual(mary); _kb.addIndividual(robert); _kb.addIndividual(victor); final BindingHelper genHelper = new ObjectVariableBindingHelper(_kb.getABox(), _x); final BindingGenerator gen = new BindingGeneratorImpl(new VariableBinding(_kb.getABox()), Collections.singletonList(genHelper)); assertIteratorValues(new BindingToMapIterator(gen.iterator()), new Object[] { Collections.singletonMap(_x, mary), Collections.singletonMap(_x, robert), Collections.singletonMap(_x, victor), }); }
@Test public void testTopBottom() { _kb = new KnowledgeBaseImpl(); _kb.addSubClass(ATermUtils.TOP, ATermUtils.BOTTOM); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeSub(ATermUtils.TOP, ATermUtils.BOTTOM), }); }
@Test public void testDatavalueBindingGeneratorObjects() { final DatavaluedPropertyAtom pattern = new DatavaluedPropertyAtom(dp2, new AtomIConstant(mary), _z); final BindingHelper genHelper = new DatavaluePropertyBindingHelper(_kb.getABox(), pattern); final BindingGenerator gen = new BindingGeneratorImpl(new VariableBinding(_kb.getABox()), Collections.singletonList(genHelper)); assertIteratorValues(new BindingToMapIterator(gen.iterator()), new Object[] { Collections.singletonMap(_z, data1), Collections.singletonMap(_z, data2), }); }
@Test public void testDatavalueBindingGeneratorSubjects() { final DatavaluedPropertyAtom pattern = new DatavaluedPropertyAtom(dp2, _x, new AtomDConstant(data2)); final BindingHelper genHelper = new DatavaluePropertyBindingHelper(_kb.getABox(), pattern); final BindingGenerator gen = new BindingGeneratorImpl(new VariableBinding(_kb.getABox()), Collections.singletonList(genHelper)); assertIteratorValues(new BindingToMapIterator(gen.iterator()), new Object[] { Collections.singletonMap(_x, mary), Collections.singletonMap(_x, robert), }); }
@Test public void testDatatypeHierarchy() { final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "all_datatypes.owl"); final OntModel hierarchy = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM); model.read(_base + "datatype_hierarchy.owl"); final Iterator<?> i = hierarchy.listClasses(); while (i.hasNext()) { final OntClass cls = (OntClass) i.next(); assertIteratorValues(model.getOntClass(cls.getURI()).listSubClasses(true), cls.listSubClasses()); } }
@Test public void testIrreflexive() { _kb.addObjectProperty(mbox); _kb.addIrreflexiveProperty(mbox); _kb.addIndividual(robert); _kb.addPropertyValue(mbox, robert, robert); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeIrreflexive(mbox), ATermUtils.makePropAtom(mbox, robert, robert), }); }
@Test public void testDataRangeBindingHelper() { final DatavaluedPropertyAtom pattern = new DatavaluedPropertyAtom(dp2, _x, _z); final DataRangeAtom atom = new DataRangeAtom(ATermUtils.makeTermAppl(Namespaces.XSD + "integer"), _z); final BindingHelper patternHelper = new DatavaluePropertyBindingHelper(_kb.getABox(), pattern); final BindingHelper rangeHelper = new DataRangeBindingHelper(_kb.getABox(), atom); final BindingGenerator gen = new BindingGeneratorImpl(new VariableBinding(_kb.getABox()), Arrays.asList(new BindingHelper[] { patternHelper, rangeHelper, })); final VariableBinding expectedBinding = new VariableBinding(_kb.getABox()); expectedBinding.set(_x, _kb.getABox().getIndividual(victor)); expectedBinding.set(_z, _kb.getABox().getLiteral(data4)); final List<VariableBinding> expected = new LinkedList<>(); expected.add(expectedBinding); assertIteratorValues(gen.iterator(), expected.iterator()); }
@Test public void testFunctionalDataProp2() { _kb.addDatatypeProperty(ssn); _kb.addFunctionalProperty(ssn); _kb.addIndividual(robert); final ATermAppl ssn1 = ATermUtils.makePlainLiteral("012345678"); final ATermAppl ssn2 = ATermUtils.makePlainLiteral("123456789"); _kb.addPropertyValue(ssn, robert, ssn1); _kb.addPropertyValue(ssn, robert, ssn2); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makePropAtom(ssn, robert, ssn1), ATermUtils.makePropAtom(ssn, robert, ssn2), ATermUtils.makeFunctional(ssn), }); assertTrue(explanation.size() == 3); }
@Test public void testEscher1() { final String ns = "foo://bla/names#"; final String source = "@prefix owl: <http://www.w3.org/2002/07/owl#>.\r\n" + "@prefix owl11: <http://www.w3.org/2006/12/owl11#>.\r\n" + "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\r\n" + "@prefix : <foo://bla/names#>.\r\n" + "\r\n" + ":Corner owl:oneOf (:a :b :c);\r\n" + " rdfs:subClassOf\r\n" + " [a owl:Restriction; owl:onProperty :higher; owl:cardinality 1].\r\n" + "owl:AllDifferent owl:distinctMembers (:a :b :c).\r\n" + ":higher rdfs:domain :Corner; rdfs:range :Corner.\r\n" + ":higher a owl:FunctionalProperty. ## redundant, note cardinality 1\r\n" + ":higher a owl:AsymmetricProperty.\r\n" + ":higher a owl11:IrreflexiveProperty.\r\n" + ":a :higher :b.\r\n"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(new StringReader(source), "", "N3"); model.prepare(); final Resource a = model.getResource(ns + "a"); final Resource b = model.getResource(ns + "b"); final Resource c = model.getResource(ns + "c"); final OntProperty higher = model.getOntProperty(ns + "higher"); assertIteratorValues(model.listStatements(null, higher, (RDFNode) null), new Statement[] { model.createStatement(a, higher, b), model.createStatement(b, higher, c), model.createStatement(c, higher, a), }); }
@Test public void testTransitive2() { final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "cyclic_transitive.owl"); model.prepare(); final String ns = "http://www.example.org/test#"; final OntClass Probe = model.getOntClass(ns + "Probe"); final Individual Instance1 = model.getIndividual(ns + "Instance1"); final Individual Instance2 = model.getIndividual(ns + "Instance2"); final Individual Instance3 = model.getIndividual(ns + "Instance3"); assertIteratorValues(Probe.listInstances(), new Resource[] { Instance1, Instance2, Instance3 }); }
@Test public void testSubProp1() { final ATermAppl noRelatives = ATermUtils.makeMax(relative, 0, ATermUtils.TOP); _kb.addIndividual(mary); _kb.addIndividual(bob); _kb.addObjectProperty(relative); _kb.addObjectProperty(sibling); _kb.addSubProperty(sibling, relative); _kb.addType(bob, noRelatives); _kb.addPropertyValue(sibling, bob, mary); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeSubProp(sibling, relative), ATermUtils.makePropAtom(sibling, bob, mary), ATermUtils.makeTypeAtom(bob, noRelatives), }); }
@Test public void testRestrictedDatatypeRange() { classes(_C, _D); dataProperties(_p); individuals(_a, _b, _c); _kb.addRange(_p, restrict(Datatypes.INTEGER, minInclusive(literal(10)))); _kb.addPropertyValue(_p, _a, literal(5)); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeRange(_p, restrict(Datatypes.INTEGER, minInclusive(literal(10)))), ATermUtils.makePropAtom(_p, _a, literal(5)) }); }
@Test public void testTransitive1() { final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "agencies.owl"); model.prepare(); final String ns = "http://www.owl-ontologies.com/unnamed.owl#"; final Individual Forest_Service = model.getIndividual(ns + "Forest_Service"); final ObjectProperty comprises = model.getObjectProperty(ns + "comprises"); final Individual Executive = model.getIndividual(ns + "Executive"); final Individual USDA = model.getIndividual(ns + "USDA"); assertTrue("Forest_Service, comprises, Executive", model.contains(Forest_Service, comprises, Executive)); assertIteratorValues(model.listObjectsOfProperty(Forest_Service, comprises), new Resource[] { USDA, Executive }); assertIteratorValues(model.listSubjectsWithProperty(comprises, Executive), new Resource[] { model.getIndividual(ns + "USDA"), model.getIndividual(ns + "DOE"), model.getIndividual(ns + "DHS"), model.getIndividual(ns + "HHS"), model.getIndividual(ns + "HUD"), model.getIndividual(ns + "DOC"), model.getIndividual(ns + "DOD"), model.getIndividual(ns + "DOI"), model.getIndividual(ns + "Research__Economics___Education"), model.getIndividual(ns + "Forest_Service"), model.getIndividual(ns + "Rural_Development"), model.getIndividual(ns + "Natural_Resources_Conservation_Service"), model.getIndividual(ns + "Economic_Research_Service"), model.getIndividual(ns + "Farm_Service_Agency"), model.getIndividual(ns + "Cooperative_State_Research__Education__and_Extension_Service"), model.getIndividual(ns + "Animal___Plant_Health_Inspection_Service"), model.getIndividual(ns + "Agricultural_Research_Service"), model.getIndividual(ns + "National_Agricultural_Library"), }); }
@Test public void testDuplicateLiterals() { final String ns = "http://www.example.org/test#"; final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); final DatatypeProperty dp = model.createDatatypeProperty(ns + "dp"); final OntClass C = model.createClass(ns + "C"); final Individual a = model.createIndividual(ns + "a", C); final Literal one = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.positiveInteger.getURI())); a.addProperty(dp, one); model.prepare(); final Literal oneDecimal = model.createTypedLiteral("1", TypeMapper.getInstance().getTypeByName(XSD.decimal.getURI())); assertIteratorValues(a.listPropertyValues(dp), new Literal[] { one }); assertTrue(a.hasProperty(dp, oneDecimal)); }