grr.setTraceOn(traceOn); grr.setTransitiveClosureCaching(enableTGCCaching); grr.setFunctorFiltering(filterFunctors); if (preprocessorHooks != null) { for ( RulePreprocessHook preprocessorHook : preprocessorHooks )
grr.setTraceOn(traceOn); grr.setTransitiveClosureCaching(enableTGCCaching); grr.setFunctorFiltering(filterFunctors); if (preprocessorHooks != null) { for ( RulePreprocessHook preprocessorHook : preprocessorHooks )
/** * Test control of functor filtering */ public void testHybridFunctorFilter() { Graph data = Factory.createGraphMem(); data.add(new Triple(a, r, b)); data.add(new Triple(a, p, s)); List<Rule> rules = Rule.parseRules( "[r0: (?x r ?y) (?x p ?z) -> (?x q func(?y, ?z)) ]" ); GenericRuleReasoner reasoner = (GenericRuleReasoner)GenericRuleReasonerFactory.theInstance().create(null); reasoner.setRules(rules); reasoner.setMode(GenericRuleReasoner.HYBRID); InfGraph infgraph = reasoner.bind(data); TestUtil.assertIteratorValues(this, infgraph.find(null, q, null), new Object[] { } ); reasoner.setFunctorFiltering(false); infgraph = reasoner.bind(data); TestUtil.assertIteratorValues(this, infgraph.find(null, q, null), new Object[] { new Triple(a, q, Functor.makeFunctorNode("func", new Node[]{b, s})) } ); }
/** * Test control of functor filtering */ public void testHybridFunctorFilter() { Graph data = Factory.createGraphMem(); data.add(new Triple(a, r, b)); data.add(new Triple(a, p, s)); List<Rule> rules = Rule.parseRules( "[r0: (?x r ?y) (?x p ?z) -> (?x q func(?y, ?z)) ]" ); GenericRuleReasoner reasoner = (GenericRuleReasoner)GenericRuleReasonerFactory.theInstance().create(null); reasoner.setRules(rules); reasoner.setMode(GenericRuleReasoner.HYBRID); InfGraph infgraph = reasoner.bind(data); TestUtil.assertIteratorValues(this, infgraph.find(null, q, null), new Object[] { } ); reasoner.setFunctorFiltering(false); infgraph = reasoner.bind(data); TestUtil.assertIteratorValues(this, infgraph.find(null, q, null), new Object[] { new Triple(a, q, Functor.makeFunctorNode("func", new Node[]{b, s})) } ); }