private void testLoadsRulesViaRuleSetStrings( String ns ) { String ruleA = "[R: (?x rdf:type eg:Thing) -> (?x eg:thing true)]"; String ruleB = "[S: (?x rdf:type eg:Thung) -> (?x eg:thing false)]"; Set<Rule> rules = rulesFromTwoStrings( ruleA, ruleB ); String modelString = "x <ns>:ruleSet _x; _x <ns>:hasRule '<A>'; _x <ns>:hasRule '<B>'" .replaceAll( "<ns>", ns ) .replaceAll( "<A>", ruleA.replaceAll( " ", "\\\\\\\\s" ) ) .replaceAll( "<B>", ruleB.replaceAll( " ", "\\\\\\\\s" ) ) ; Resource r = resourceInModel( modelString ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, new HashSet<>( grr.getRules() ) ); }
private void testLoadsMultipleRuleSetsViaRuleSetNode( String ns ) { String whereA = "file:testing/modelspecs/example.rules"; String whereB = "file:testing/modelspecs/extra.rules"; Resource r = resourceInModel( "x <ns>:ruleSet _a; _a <ns>:ruleSetURL <whereA>; _a <ns>:ruleSetURL <whereB>".replaceAll( "<ns>", ns ).replaceAll( "<whereA>", whereA ).replaceAll( "<whereB>", whereB ) ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rulesFromTwoPlaces( whereA, whereB ), new HashSet<>( grr.getRules() ) ); }
private void testLoadsRulesViaRuleSetStrings( String ns ) { String ruleA = "[R: (?x rdf:type eg:Thing) -> (?x eg:thing true)]"; String ruleB = "[S: (?x rdf:type eg:Thung) -> (?x eg:thing false)]"; Set<Rule> rules = rulesFromTwoStrings( ruleA, ruleB ); String modelString = "x <ns>:ruleSet _x; _x <ns>:hasRule '<A>'; _x <ns>:hasRule '<B>'" .replaceAll( "<ns>", ns ) .replaceAll( "<A>", ruleA.replaceAll( " ", "\\\\\\\\s" ) ) .replaceAll( "<B>", ruleB.replaceAll( " ", "\\\\\\\\s" ) ) ; Resource r = resourceInModel( modelString ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, new HashSet<>( grr.getRules() ) ); }
private void testLoadsMultipleRuleSetsViaRuleSetNode( String ns ) { String whereA = "file:testing/modelspecs/example.rules"; String whereB = "file:testing/modelspecs/extra.rules"; Resource r = resourceInModel( "x <ns>:ruleSet _a; _a <ns>:ruleSetURL <whereA>; _a <ns>:ruleSetURL <whereB>".replaceAll( "<ns>", ns ).replaceAll( "<whereA>", whereA ).replaceAll( "<whereB>", whereB ) ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rulesFromTwoPlaces( whereA, whereB ), new HashSet<>( grr.getRules() ) ); }
private void testLoadsSingleRuleFromString( String ns ) { String rule = "[R: (?x rdf:type eg:Thing) -> (?x eg:thing true)]"; List<Rule> rules = Rule.parseRules( rule ); Resource r = resourceInModel( "x <ns>:hasRule '<it>'".replaceAll( "<ns>", ns ).replaceAll( "<it>", rule.replaceAll( " ", "\\\\\\\\s" ) ) ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, grr.getRules() ); }
private void testLoadsSingleRuleFromString( String ns ) { String rule = "[R: (?x rdf:type eg:Thing) -> (?x eg:thing true)]"; List<Rule> rules = Rule.parseRules( rule ); Resource r = resourceInModel( "x <ns>:hasRule '<it>'".replaceAll( "<ns>", ns ).replaceAll( "<it>", rule.replaceAll( " ", "\\\\\\\\s" ) ) ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, grr.getRules() ); }
private void testLoadsSingleRuleViaURL( String ns ) { String where = "file:testing/modelspecs/example.rules"; Resource r = resourceInModel( "x <ns>:ruleSetURL <where>".replaceAll( "<ns>", ns ).replaceAll( "<where>", where ) ); List<Rule> rules = Rule.rulesFromURL( where ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, grr.getRules() ); }
private void testLoadsSingleRuleViaURL( String ns ) { String where = "file:testing/modelspecs/example.rules"; Resource r = resourceInModel( "x <ns>:ruleSetURL <where>".replaceAll( "<ns>", ns ).replaceAll( "<where>", where ) ); List<Rule> rules = Rule.rulesFromURL( where ); GenericRuleReasoner grr = new GenericRuleReasoner( null, r ); assertEquals( rules, grr.getRules() ); }
public void testSingleRules() { Resource root = resourceInModel( "x rdf:type ja:ReasonerFactory; x ja:rules S" ); String ruleStringA = "[rdfs2: (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)]"; final RuleSet rules = RuleSet.create( ruleStringA ); Assembler mock = new AssemblerBase() { @Override public Object open( Assembler a, Resource root, Mode irrelevant ) { assertEquals( root, resource( "S" ) ); return rules; } }; ReasonerFactory r = (ReasonerFactory) ASSEMBLER.open( mock, root ); GenericRuleReasoner grr = (GenericRuleReasoner) r.create( null ); assertEquals( new HashSet<>( rules.getRules() ), new HashSet<>( grr.getRules() ) ); }
public void testSingleRules() { Resource root = resourceInModel( "x rdf:type ja:ReasonerFactory; x ja:rules S" ); String ruleStringA = "[rdfs2: (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)]"; final RuleSet rules = RuleSet.create( ruleStringA ); Assembler mock = new AssemblerBase() { @Override public Object open( Assembler a, Resource root, Mode irrelevant ) { assertEquals( root, resource( "S" ) ); return rules; } }; ReasonerFactory r = (ReasonerFactory) ASSEMBLER.open( mock, root ); GenericRuleReasoner grr = (GenericRuleReasoner) r.create( null ); assertEquals( new HashSet<>( rules.getRules() ), new HashSet<>( grr.getRules() ) ); }
public void testMultipleRules() { Resource root = resourceInModel( "x rdf:type ja:ReasonerFactory; x ja:rules S; x ja:rules T" ); String ruleStringA = "[rdfs2: (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)]"; String ruleStringB = "[rdfs9: (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)]"; final RuleSet rulesA = RuleSet.create( ruleStringA ); final RuleSet rulesB = RuleSet.create( ruleStringB ); Assembler mock = new AssemblerBase() { @Override public Object open( Assembler a, Resource root, Mode irrelevant ) { if (root.equals( resource( "S" ) )) return rulesA; if (root.equals( resource( "T" ) )) return rulesB; throw new RuntimeException( "unknown resource in mock: " + root ); } }; ReasonerFactory r = (ReasonerFactory) ASSEMBLER.open( mock, root ); GenericRuleReasoner grr = (GenericRuleReasoner) r.create( null ); HashSet<Rule> wanted = new HashSet<>(); wanted.addAll( rulesA.getRules() ); wanted.addAll( rulesB.getRules() ); assertEquals( wanted, new HashSet<>( grr.getRules() ) ); }
public void testMultipleRules() { Resource root = resourceInModel( "x rdf:type ja:ReasonerFactory; x ja:rules S; x ja:rules T" ); String ruleStringA = "[rdfs2: (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)]"; String ruleStringB = "[rdfs9: (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)]"; final RuleSet rulesA = RuleSet.create( ruleStringA ); final RuleSet rulesB = RuleSet.create( ruleStringB ); Assembler mock = new AssemblerBase() { @Override public Object open( Assembler a, Resource root, Mode irrelevant ) { if (root.equals( resource( "S" ) )) return rulesA; if (root.equals( resource( "T" ) )) return rulesB; throw new RuntimeException( "unknown resource in mock: " + root ); } }; ReasonerFactory r = (ReasonerFactory) ASSEMBLER.open( mock, root ); GenericRuleReasoner grr = (GenericRuleReasoner) r.create( null ); HashSet<Rule> wanted = new HashSet<>(); wanted.addAll( rulesA.getRules() ); wanted.addAll( rulesB.getRules() ); assertEquals( wanted, new HashSet<>( grr.getRules() ) ); }