Rdf Jena Fuseki汇编程序文件+;TDB&x2B;猫头鹰推理机

Rdf Jena Fuseki汇编程序文件+;TDB&x2B;猫头鹰推理机,rdf,sparql,jena,owl,fuseki,Rdf,Sparql,Jena,Owl,Fuseki,我在使用汇编文件配置Jena Fuseki时遇到问题。直到最近,我一直在从命令行启动服务器,如下所示: sudo ./fuseki-server --loc=la --port=3032 --update /ds 这将创建一个位于目录服务器\u ROOT/la中的持久TDB存储。服务器正确启动并显示以下输出: 14:30:55 INFO TDB dataset: directory=la 14:30:55 INFO Dataset path = /ds 14:30:55 INFO Fus

我在使用汇编文件配置Jena Fuseki时遇到问题。直到最近,我一直在从命令行启动服务器,如下所示:

sudo ./fuseki-server --loc=la --port=3032 --update /ds
这将创建一个位于目录服务器\u ROOT/la中的持久TDB存储。服务器正确启动并显示以下输出:

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
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
现在我想添加一个OWL推理程序,下面是我一直在尝试使用以下汇编程序文件运行服务器:

@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> .
服务器开始正确显示以下输出:

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
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
但是请注意,它不再打印“TDB-dataset:directory=la”状态。当我使用内置的Fuseki HTML接口查询服务器时,服务器在收到查询后挂起,并且不返回结果

有人能告诉我我的汇编文件有什么问题吗?我是否正确选择“la”目录作为TDB存储的位置

谢谢,
Frank

“TDB-dataset:directory=”在命令行有“-loc”时打印。它不是为汇编程序打印的。数据集有多大?您正在持久存储上运行推理程序。这可能很慢,它有一百万个三倍。那没那么大,是吗?是的,那就是问题所在。我尝试了一个包含两个三元组的数据集,结果很好。那么,这是否意味着OWL推理程序只适用于非常小的持久TDB?如果是这样的话,那就没什么用了。或者一般来说,在内存中运行大型数据集更好吗?一百万并不算大,但结合查询和前后推理器,在与数据库一起使用时,可能会有不利的访问模式。您需要OWLFBRuleReasoner的所有功能吗?越少越快。您可以将数据展开一次并加载该数据,以便在运行时不需要推理程序。