Thanks, Andy, Now my config file looks like this:
@prefix : <#> . @prefix fuseki: <http://jena.apache.org/fuseki#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . @prefix ao: <http://ao.com> . [] rdf:type fuseki:Server ; fuseki:services ( <#mainservice> ) . <#mainservice> rdf:type fuseki:Service ; fuseki:name "mainservice" ; fuseki:serviceQuery "sparql" ; fuseki:serviceQuery "query" ; fuseki:serviceUpdate "update" ; fuseki:serviceUpload "upload" ; fuseki:serviceReadWriteGraphStore "data" ; fuseki:serviceReadGraphStore "get" ; fuseki:dataset <#ao> ; . ### In-memory, initially empty. ## This database set-up allows OWL inference. <#ao> rdf:type ja:RDFDataset ; ja:defaultGraph <#infGraph> . <#infGraph> rdf:type ja:InfModel ; ja:reasoner [ ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ; ja:rulesFrom <file:Data/inference_rules.rules> ; ] . <#data> rdf:type ja:MemoryModel ; ja:content [ja:externalContent <file:Data/graph.nt>] ; . Unfortunately, it doesn’t work. Both files inference_rulesss.rules and graph.nt are being ignored. (I’ve put them into: <fuseki_home>/Data folder). I tried different formats for <file:Data/inference_rulesss.rules>, like <file://Data/inference_rulesss.rules> or <Data/inference_rulesss.rules>, but it didn’t work. Also, you said that in the command line: ./fuseki-server --update --file=config_new.ttl /mainservice I don’t not need the /mainservice, but when I try to start the service with: ./fuseki-server --update --file=config_new.ttl I get: No dataset path name given and the server doesn’t start. Regards, Stefan On 3/23/17, 1:43 AM, "Andy Seaborne" <[email protected]> wrote: On 22/03/17 20:07, Dimov, Stefan wrote: > Hi all, > > I'm new to Apache Jena and Fuseki. I've installed Apache Jena Fuseki as a standalone server and I'm trying to define a very simple inference rule and seemingly, I'm not configuring it correctly. My configuration file config_new.ttl looks like this: > > > @prefix : <#> . > @prefix fuseki: <http://jena.apache.org/fuseki#> . > @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . > > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . > @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> . > @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . > @prefix ao: <http://ao.com> . > > [] rdf:type fuseki:Server ; > fuseki:services ( > <#mainservice> > ) . > > <#mainservice> rdf:type fuseki:Service ; > fuseki:name "mainservice" ; > fuseki:serviceQuery "sparql" ; > fuseki:serviceQuery "query" ; > fuseki:serviceUpdate "update" ; > fuseki:serviceUpload "upload" ; > fuseki:serviceReadWriteGraphStore "data" ; > fuseki:serviceReadGraphStore "get" ; > fuseki:dataset <#ao> ; > . > > ### In-memory, initially empty. > ## This database set-up allows OWL inference. > <#ao> rdf:type ja:MemoryModel ; > ja:defaultGraph <#infGraph> . As already mentioned on StackOverflow, this is wrong. You must put graphs in a dataset. <#ao> rdf:type ja:RDFDataset ; > > <#infGraph> rdf:type ja:InfModel ; > ja:reasoner [ ja:rulesFrom <file:inference_rules.rules> ; ] . Try adding a reasoner: ja:reasoner [ ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ; ja:rulesFrom <inference_rules.rules> ] ; and make sure inference_rules.rules is accessible in the right location to the server. and put in a base graph: <#infGraph> rdf:type ja:InfModel ; ja:baseModel <#data> ; ja:reasoner [ ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ; ja:rulesFrom <...> ] ; . <#data> rdf:type ja:MemoryModel ; ja:content [ja:externalContent <initial_data.ttl>] ; . > > > I'm starting the server from a console with: > > ./fuseki-server --update --file=config_new.ttl /mainservice You do not need the /mainservice -- it is in the config file at fuseki:name (examples not checked - hopefully someone can confirm/correct them) Andy > > > It's starting and I am able to upload some data and query it successfully from the web-page, but seemingly it doesn't read the file inference_rules.rules. Even if the file name is wrong or the file doesn't exist or the contents of the file is incorrect, I don't get any errors and the rule is not working. > What am I missing? > There's a second question here. Apparently, I'm not there yet, but let me put here the contents of inference_rules.rules. I'm trying to define a simple transitive rule - if (A is a B) and (B is a C), then A is a C: > > > @prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# > @prefix ex: http://example.com/ > @prefix xs: http://www.w3.org/2001/XMLSchema# > @prefix ao: http://ao.com/ > > [isA: > (?a ao:isA ?b) > (?b ao:isA ?c) > -> > (?a ao:isA ?c) > ] > > > Did I define it correctly? > > Regards, > S. >
