> Date: Sat, 17 Nov 2012 21:36:53 +0000
> From: [email protected]
> To: [email protected]
> Subject: Re: Custom rule file - prefix to local file?
>
> 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
>
Thanks, that helped!