/** * Test remove operations on an RDFS reasoner instance. * This is an example to test that rebing is invoked correctly rather * than an RDFS-specific test. */ public void testRDFSRemove() { InfModel m = ModelFactory.createRDFSModel(ModelFactory.createDefaultModel()); String NS = PrintUtil.egNS; Property p = m.createProperty(NS, "p"); Resource D = m.createResource(NS + "D"); Resource i = m.createResource(NS + "i"); Resource c = m.createResource(NS + "c"); Resource d = m.createResource(NS + "d"); p.addProperty(RDFS.domain, D); i.addProperty(p, c); i.addProperty(p, d); TestUtil.assertIteratorValues(this, i.listProperties(), new Object[] { m.createStatement(i, p, c), m.createStatement(i, p, d), m.createStatement(i, RDF.type, D), m.createStatement(i, RDF.type, RDFS.Resource), }); i.removeAll(p); TestUtil.assertIteratorValues(this, i.listProperties(), new Object[] { }); }
/** * Test remove operations on an RDFS reasoner instance. * This is an example to test that rebing is invoked correctly rather * than an RDFS-specific test. */ public void testRDFSRemove() { InfModel m = ModelFactory.createRDFSModel(ModelFactory.createDefaultModel()); String NS = PrintUtil.egNS; Property p = m.createProperty(NS, "p"); Resource D = m.createResource(NS + "D"); Resource i = m.createResource(NS + "i"); Resource c = m.createResource(NS + "c"); Resource d = m.createResource(NS + "d"); p.addProperty(RDFS.domain, D); i.addProperty(p, c); i.addProperty(p, d); TestUtil.assertIteratorValues(this, i.listProperties(), new Object[] { m.createStatement(i, p, c), m.createStatement(i, p, d), m.createStatement(i, RDF.type, D), m.createStatement(i, RDF.type, RDFS.Resource), }); i.removeAll(p); TestUtil.assertIteratorValues(this, i.listProperties(), new Object[] { }); }
/** * RETE incremental processing bug. */ public void testRETEInc() { String rule = "(?x ?p ?y) -> (?p rdf:type rdf:Property) ."; Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule)); InfModel m = ModelFactory.createInfModel(r, ModelFactory.createDefaultModel()); Resource source = m.createResource("urn:alfie:testResource"); Property prop = m.createProperty("urn:alfie:testProperty"); Statement s1=m.createStatement(source, prop, "value1"); Statement s2=m.createStatement(source, prop, "value2"); m.add(s1); assertIsProperty(m, prop); m.add(s2); m.remove(s1); assertIsProperty(m, prop); }
/** * RETE incremental processing bug. */ public void testRETEDec() { String rule = "(?x ?p ?y) -> (?p rdf:type rdf:Property) ."; Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule)); InfModel m = ModelFactory.createInfModel(r, ModelFactory.createDefaultModel()); Resource source = m.createResource("urn:alfie:testResource"); Property prop = m.createProperty("urn:alfie:testProperty"); Statement s1=m.createStatement(source, prop, "value1"); m.createStatement(source, prop, "value2"); m.add(prop, RDF.type, RDF.Property); m.add(s1); m.prepare(); m.remove(s1); assertIsProperty(m, prop); }
/** * RETE incremental processing bug. */ public void testRETEInc() { String rule = "(?x ?p ?y) -> (?p rdf:type rdf:Property) ."; Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule)); InfModel m = ModelFactory.createInfModel(r, ModelFactory.createDefaultModel()); Resource source = m.createResource("urn:alfie:testResource"); Property prop = m.createProperty("urn:alfie:testProperty"); Statement s1=m.createStatement(source, prop, "value1"); Statement s2=m.createStatement(source, prop, "value2"); m.add(s1); assertIsProperty(m, prop); m.add(s2); m.remove(s1); assertIsProperty(m, prop); }
/** * RETE incremental processing bug. */ public void testRETEDec() { String rule = "(?x ?p ?y) -> (?p rdf:type rdf:Property) ."; Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule)); InfModel m = ModelFactory.createInfModel(r, ModelFactory.createDefaultModel()); Resource source = m.createResource("urn:alfie:testResource"); Property prop = m.createProperty("urn:alfie:testProperty"); Statement s1=m.createStatement(source, prop, "value1"); m.createStatement(source, prop, "value2"); m.add(prop, RDF.type, RDF.Property); m.add(s1); m.prepare(); m.remove(s1); assertIsProperty(m, prop); }
/** * Test bug with leaking variables which results in an incorrect "range = Nothing" deduction. */ public void testRangeBug() { Model model = FileManager.get().loadModel("file:testing/reasoners/bugs/rangeBug.owl"); // Model m = ModelFactory.createDefaultModel(); Reasoner r = ReasonerRegistry.getOWLReasoner(); InfModel omodel = ModelFactory.createInfModel(r, model); String baseuri = "http://decsai.ugr.es/~ontoserver/bacarex2.owl#"; // Resource js = omodel.getResource(baseuri + "JS"); Resource surname = omodel.getResource(baseuri + "surname"); Statement s = omodel.createStatement(surname, RDFS.range, OWL.Nothing); assertTrue(! omodel.contains(s)); }
/** * Test bug with leaking variables which results in an incorrect "range = Nothing" deduction. */ public void testRangeBug() { Model model = FileManager.get().loadModel("file:testing/reasoners/bugs/rangeBug.owl"); // Model m = ModelFactory.createDefaultModel(); Reasoner r = ReasonerRegistry.getOWLReasoner(); InfModel omodel = ModelFactory.createInfModel(r, model); String baseuri = "http://decsai.ugr.es/~ontoserver/bacarex2.owl#"; // Resource js = omodel.getResource(baseuri + "JS"); Resource surname = omodel.getResource(baseuri + "surname"); Statement s = omodel.createStatement(surname, RDFS.range, OWL.Nothing); assertTrue(! omodel.contains(s)); }
/** * test remove operator in case with empty data. */ public void testEmptyRemove() { List<Rule> rules = Rule.parseRules( "-> (eg:i eg:prop eg:foo) ." + "(?X eg:prop ?V) -> (?X eg:prop2 ?V) ." + "(?X eg:prop eg:foo) noValue(?X eg:guard 'done') -> remove(0) (?X eg:guard 'done') ." ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); InfModel im = ModelFactory.createInfModel(reasoner, ModelFactory.createDefaultModel()); Resource i = im.createResource(PrintUtil.egNS + "i"); Property guard = im.createProperty(PrintUtil.egNS + "guard"); TestUtil.assertIteratorValues(this, im.listStatements(), new Object[] {im.createStatement(i, guard, "done")}); }
/** * test remove operator in case with empty data. */ public void testEmptyRemove() { List<Rule> rules = Rule.parseRules( "-> (eg:i eg:prop eg:foo) ." + "(?X eg:prop ?V) -> (?X eg:prop2 ?V) ." + "(?X eg:prop eg:foo) noValue(?X eg:guard 'done') -> remove(0) (?X eg:guard 'done') ." ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); InfModel im = ModelFactory.createInfModel(reasoner, ModelFactory.createDefaultModel()); Resource i = im.createResource(PrintUtil.egNS + "i"); Property guard = im.createProperty(PrintUtil.egNS + "guard"); TestUtil.assertIteratorValues(this, im.listStatements(), new Object[] {im.createStatement(i, guard, "done")}); }
/** * Test chainging rules from axioms which broke while trying to * fix about test case. */ public void testFactChainRules() { Model facts = ModelFactory.createDefaultModel(); String NS = PrintUtil.egNS; Property mother = facts.createProperty(NS + "mother"); Resource female = facts.createProperty(NS + "Female"); mother.addProperty(RDFS.range, female); List<Rule> rules = Rule.parseRules( "-> tableAll(). \n" + "[rdfs6: (?p rdfs:subPropertyOf ?q), notEqual(?p,?q) -> [ (?a ?q ?b) <- (?a ?p ?b)] ] \n" + "-> (eg:range rdfs:subPropertyOf rdfs:range). \n" + "-> (rdfs:range rdfs:subPropertyOf eg:range). \n" ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); reasoner.setTransitiveClosureCaching(true); InfModel inf = ModelFactory.createInfModel(reasoner, facts); Property egRange = inf.createProperty(NS + "range"); TestUtil.assertIteratorValues(this, inf.listStatements(null, egRange, (RDFNode)null), new Object[] {inf.createStatement(mother, egRange, female)} ); }
/** * Test chainging rules from axioms which broke while trying to * fix about test case. */ public void testFactChainRules() { Model facts = ModelFactory.createDefaultModel(); String NS = PrintUtil.egNS; Property mother = facts.createProperty(NS + "mother"); Resource female = facts.createProperty(NS + "Female"); mother.addProperty(RDFS.range, female); List<Rule> rules = Rule.parseRules( "-> tableAll(). \n" + "[rdfs6: (?p rdfs:subPropertyOf ?q), notEqual(?p,?q) -> [ (?a ?q ?b) <- (?a ?p ?b)] ] \n" + "-> (eg:range rdfs:subPropertyOf rdfs:range). \n" + "-> (rdfs:range rdfs:subPropertyOf eg:range). \n" ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); reasoner.setTransitiveClosureCaching(true); InfModel inf = ModelFactory.createInfModel(reasoner, facts); Property egRange = inf.createProperty(NS + "range"); TestUtil.assertIteratorValues(this, inf.listStatements(null, egRange, (RDFNode)null), new Object[] {inf.createStatement(mother, egRange, female)} ); }