Jena Fuseki assembler file + TDB + OWL reasoner

2020-07-25 06:59发布

问题:

I am having a problem configuring Jena Fuseki using an assembler file. Up until recently I had been starting the server from the command line as follows:

sudo ./fuseki-server --loc=la --port=3032 --update /ds

This creates a persistent TDB store located in the directory SERVER_ROOT/la. The server starts correctly and displays the following output:

14:30:55 INFO  TDB dataset: directory=la
14:30:55 INFO  Dataset path = /ds
14:30:55 INFO  Fuseki 1.0.1 2014-01-18T19:01:20+0000
14:30:55 INFO  Started 2015/02/02 14:30:55 GMT on port 3032

Now I want to add in an OWL reasoner and following baach.de's article, I have been trying to run the server with the following assembler file:

@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 sdb: <http://jena.hpl.hp.com/2007/sdb#> .

[] rdf:type fuseki:Server ;

fuseki:services ( <#tdb> ) .

<#tdb> rdf:type fuseki:Service ;
    fuseki:name "ds" ; # http://host/inf
    fuseki:serviceQuery "sparql" ; # SPARQL query service
    #fuseki:serviceUpdate     "update" ;
    fuseki:dataset <#dataset2> ; #select which set to use
    .

[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .

tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .

<#dataset2> rdf:type ja:RDFDataset ;
    ja:defaultGraph <#model2> .

<#model2> a ja:InfModel ;
    ja:baseModel <#tdbGraph> ;
    ja:reasoner [ ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>] .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
    tdb:location "la" ;
    tdb:unionDefaultGraph true .

<#tdbGraph> rdf:type tdb:GraphTDB ;
    tdb:dataset <#tdbDataset> .

Using this command:

sudo ./fuseki-server --port=3032 --config=fuseki-la-cfg.ttl

The server starts correctly displaying the following output:

14:29:52 INFO  Dataset path = /ds
14:29:52 INFO  Fuseki 1.0.1 2014-01-18T19:01:20+0000
14:29:52 INFO  Started 2015/02/02 14:29:52 GMT on port 3032

Notice however, how it no longer prints the 'TDB dataset: directory=la' status. When I query the server using the built-in Fuseki HTML interface, the server hangs after it receives the query and does not return a result.

Can anyone point out to me what is wrong with my assembler file? Am I selecting the 'la' directory correctly to act as my TDB store's location?

Thanks, Frank