public void ParsingN3Reasoner() { String rules = "@prefix rdfs: <" + NamespaceMapper.RDFS + "> . { ?s rdfs:subClassOf ?class } => { ?s a ?class } ."; Graph rulesGraph = new Graph(); StringParser.Parse(rulesGraph, rules, new Notation3Parser()); Graph data = new Graph(); FileLoader.Load(data, "resources\\InferenceTest.ttl"); Console.WriteLine("Original Graph - " + data.Triples.Count + " Triples"); int origCount = data.Triples.Count; foreach (Triple t in data.Triples) { Console.WriteLine(t.ToString()); } SimpleN3RulesReasoner reasoner = new SimpleN3RulesReasoner(); reasoner.Initialise(rulesGraph); reasoner.Apply(data); Console.WriteLine("Graph after Reasoner application - " + data.Triples.Count + " Triples"); foreach (Triple t in data.Triples) { Console.WriteLine(t.ToString()); } Assert.True(data.Triples.Count > origCount, "Number of Triples should have increased after the reasoner was run"); }
static public void Init() { if (rs == null) { rs = new VDS.RDF.Query.Inference.SimpleN3RulesReasoner(); var ruleGraph = LoadN3(AppDomain.CurrentDomain.BaseDirectory + "LinkedData/N3Rules/test.n3"); rs.Initialise(ruleGraph); } }