/** * Listeners on deductions graph should be preserved across rebind operations */ public void testDeductionListener() { final String NS = PrintUtil.egNS; // Data: (eg:i eg:p 'foo') Model base = ModelFactory.createDefaultModel(); Resource i = base.createResource(NS + "i"); Property p = base.createProperty(NS + "p"); i.addProperty(p, "foo"); // Inf model List<Rule> rules = Rule.parseRules( "(?x eg:p ?y) -> (?x eg:q ?y). " ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); InfModel infModel = ModelFactory.createInfModel(reasoner, base); TestListener listener = new TestListener(); infModel.getDeductionsModel().register(listener); infModel.rebind(); infModel.prepare(); assertEquals("foo", listener.getLastValue()); i.removeAll(p); i.addProperty(p, "bar"); infModel.rebind(); infModel.prepare(); assertEquals("bar", listener.getLastValue()); }
/** * Listeners on deductions graph should be preserved across rebind operations */ public void testDeductionListener() { final String NS = PrintUtil.egNS; // Data: (eg:i eg:p 'foo') Model base = ModelFactory.createDefaultModel(); Resource i = base.createResource(NS + "i"); Property p = base.createProperty(NS + "p"); i.addProperty(p, "foo"); // Inf model List<Rule> rules = Rule.parseRules( "(?x eg:p ?y) -> (?x eg:q ?y). " ); GenericRuleReasoner reasoner = new GenericRuleReasoner(rules); InfModel infModel = ModelFactory.createInfModel(reasoner, base); TestListener listener = new TestListener(); infModel.getDeductionsModel().register(listener); infModel.rebind(); infModel.prepare(); assertEquals("foo", listener.getLastValue()); i.removeAll(p); i.addProperty(p, "bar"); infModel.rebind(); infModel.prepare(); assertEquals("bar", listener.getLastValue()); }
@Test public void testRemovalWithInference() { final Model model = ModelFactory.createDefaultModel(); final InputStream is = AddDelTripleInferenceTest.class.getResourceAsStream(fname); assert is != null; assert model.size() == 0; model.read(is, null, "TURTLE"); final PelletReasoner reasoner = PelletReasonerFactory.theInstance().create(null); final InfModel inf = ModelFactory.createInfModel(reasoner, model); { final long count = printIndividualStatements(inf); assertTrue("expected 0 but get " + count, 0 == count); } addIndividualStatementToModel(model); { final long count = printIndividualStatements(inf); assertTrue("expected 4 but get " + count, 4 == count); } removeIndividualStatementToModel(model); inf.rebind(); inf.reset(); { final long count = printIndividualStatements(inf); assertTrue("expected 0 but get " + count, 0 == count); } }
/** * Test that reset does actually clear out all the data. * We use the RDFS configuration because uses both TGC, forward and backward * rules and so is a good check. */ public void testRebind2() { String NS = "http://jena.hpl.hp.com/test#"; Model base = ModelFactory.createDefaultModel(); Resource A = base.createResource(NS + "A"); Resource B = base.createResource(NS + "B"); Resource I = base.createResource(NS + "i"); A.addProperty(RDFS.subClassOf, B); I.addProperty(RDF.type, A); InfModel inf = ModelFactory.createInfModel(ReasonerRegistry.getRDFSReasoner(), base); assertTrue(inf.containsResource(A) && inf.containsResource(I)); base.removeAll(); inf.rebind(); assertFalse(inf.containsResource(A) || inf.containsResource(I)); }
/** * Test that reset does actually clear out all the data. * We use the RDFS configuration because uses both TGC, forward and backward * rules and so is a good check. */ public void testRebind2() { String NS = "http://jena.hpl.hp.com/test#"; Model base = ModelFactory.createDefaultModel(); Resource A = base.createResource(NS + "A"); Resource B = base.createResource(NS + "B"); Resource I = base.createResource(NS + "i"); A.addProperty(RDFS.subClassOf, B); I.addProperty(RDF.type, A); InfModel inf = ModelFactory.createInfModel(ReasonerRegistry.getRDFSReasoner(), base); assertTrue(inf.containsResource(A) && inf.containsResource(I)); base.removeAll(); inf.rebind(); assertFalse(inf.containsResource(A) || inf.containsResource(I)); }