Hi, I am trying to get Jena.NET up and running but I got stuck trying to build
a custom reasoner.I have the following rules-File:@prefix this:
<URI:/TRPG-Ontology#>.@include <RDFS>.@include <OWL>.
[OwnsContainerOwnsInsides: (?owner this:owns ?container), (?item this:insideOf
?container) -> (?owner this:owns ?item)]
I try to extend the standard OWL-reasoner like this:
//first create a default model from my ontologyInputStream inputStream =
FileManager.get ().open (inputFileName);if (inputStream == null) { throw new
ArgumentException ("File: " + inputFileName + " not found");}Model read =
ModelFactory.createDefaultModel ();read.read (new InputStreamReader
(inputStream), "");
//read the rules fileStringReader f = new StringReader(ruleFile);BufferedReader
b = new BufferedReader(f);Rule.Parser p =
Rule.rulesParserFromReader(b);java.util.List rules = Rule.parseRules(p); //this
throws ParserExceptionReasoner reasoner = new GenericRuleReasoner
(rules);OntModelSpec s = new OntModelSpec (OntModelSpec.OWL_MEM);s.setReasoner
(reasoner);model = ModelFactory.createOntologyModel (s, read);
When I run the code I get the following exception:ParserException: Expected '('
at start of clause, found Projects/TRPG/Assets/rules.txtAt
'C:/Users/shiroto/Documents/Unity Projects/TRPG/Assets/rules.txt
'com.hp.hpl.jena.reasoner.rulesys.Rule+Parser.parseNodeList
()com.hp.hpl.jena.reasoner.rulesys.Rule+Parser.parseClause
()com.hp.hpl.jena.reasoner.rulesys.Rule+Parser.doParseRule (Boolean
)com.hp.hpl.jena.reasoner.rulesys.Rule+Parser.parseRule
()com.hp.hpl.jena.reasoner.rulesys.Rule.parseRules
(com.hp.hpl.jena.reasoner.rulesys.Parser parser)BaseModel.GetModel () (at
Assets/Scripts/Components/BaseModel.cs:86)BaseModel.Awake () (at
Assets/Scripts/Components/BaseModel.cs:26)
I spent hours searching for a solution but found nothing that helped. If noone
here can help me Im afraid I have to look for another framework :/So, any ideas?
Regards,Marco