我想用TDB支持的推理模型来配置Fuseki。
我已经能够使用内存模型配置它,但不能使用可以更新三元组的 TDB 模型。
我正在使用以下汇编程序描述:
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#dataset> rdf:type ja:RDFDataset ;
ja:defaultGraph <#infModel> .
<#infModel> a ja:InfModel ;
ja:baseModel <#tdbGraph>;
ja:reasoner
[ja:reasonerURL <http://jena.hpl.hp.com/2003/RDFSExptRuleReasoner>].
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:location "DB" ;
.
它工作正常,能够进行RDFS推理,甚至可以插入新的三元组。但是,一旦我停止并重新启动服务器,它就会引发以下异常:
Error 500: Invalid id node for subject (null node): ([000000000000001D], [00000000000000AF], [000000000000003D])
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:location "DB" ;
.
去掉第二个语句后面的分号,用句号结尾,即:
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:location "DB".