On 17/11/12 19:23, Marco Knietzsch wrote:

Date: Sat, 17 Nov 2012 19:09:17 +0000
From: [email protected]
To: [email protected]
Subject: Re: Custom rule file - prefix to local file?

On 17/11/12 18:32, Marco Knietzsch wrote:

Hi, I want to have a custom reasoner that uses a local file to make inferences, 
without having to set up a server. Is this possible?I thought something like this 
would work:@prefix this: <file:///C:/myontologgy.rdf#>
But it doesnt. Can someone help?ThxMarco                                        

Sorry but it is hard to understand your question. In particular I've no
idea *where* you are putting that @prefix declaration, and what you are
expecting it to do.

If by "customer reasoner" you mean the GenericRuleReasoner and by "uses
a local file" you mean a file containing Jena Rules then sure that's
possible.

If you are doing all this in Java then when you create the reasoner
instance you do something like:

          List<Rule> rules = Rule.rulesFromURL("file:myrules.rules");
          GenericRuleReasoner reasoner = new GenericRuleReasoner(rules);

If you are doing this in an assembler definition then that is possible
and should be described in the assembler documentation.

Dave

OK, I try to make myself clearer. I define my reasoner like this:FileReader f = 
new FileReader (ruleFile);BufferedReader b = new BufferedReader (f);Rule.Parser 
p = Rule.rulesParserFromReader (b);java.util.List rules = Rule.parseRules 
(p);Reasoner reasoner = new GenericRuleReasoner (rules);OntModelSpec s = new 
OntModelSpec (OntModelSpec.OWL_MEM);s.setReasoner (reasoner);
So it gets the rules from "ruleFile". The file looks like this:@prefix this: 
<file:///C:/trpg.rdf#>@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>@prefix owl: 
<http://www.w3.org/2002/07/owl#>@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
[inverse: (?x owl:inverseOf ?y) (?a ?x ?b) -> (?b ?y ?a)] <-- works![rule: (?x 
this:property ?y) -> something] <-- doesnt work
In the rules I want to access properties from "this", but it doesnt work. It 
works fine for owl and the others. Hope thats clear enough.
Marco                                   


Probably a mismatch in definition of this. Without seeing your data, how you are reading your data and your rule file (the above has no white spaces and is missing terminators and so won't parse) it to say more than that.

General advice is to avoid using things like file: for namespaces. Invent a base URI for your data, declare that in your data file and in your rule file. The data doesn't have to physically be at that URI for the reasoner to work.

Dave

Reply via email to