我使用Jena Fuseki加载Jena TDB文件以构建SPARQL服务。 fuseki谐振器配置如下:
<#inf_model> a ja:InfModel ;
ja:baseModel <#union_model>;
ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>] ;
现在,我还想编写一些规则并为Fuseki服务器设置一个规则谐振器。我应该如何配置Fuseki以结合所有OWL谐振器和规则谐振器?我尝试了以下配置,但失败了。
<#inf_model> a ja:InfModel ;
ja:baseModel <#union_model>;
ja:reasoner [ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>] ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner> ;
ja:rulesFrom <file://D:/Program%20Files/apache-jena-fuseki-3.13.1/run/rule.ttl>; ]
Fuseki可以有多个共振器吗?
inference documentation具有称为“将RDFS / OWL与自定义规则组合”的部分。他们提出的第一个建议是“使用另一个InfModel作为基础数据来构造一个InfModel。”
他们没有提供示例,但基于此我可以使以下内容起作用:
config:dataset a ja:RDFDataset ;
ja:defaultGraph <#model_inf2> ;
.
<#model_inf2> a ja:InfModel ;
ja:baseModel <#model_inf1> ;
ja:reasoner [
ja:rulesFrom <file:/my-rules.rules> ;
ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner>
] .
<#model_inf1> a ja:InfModel ;
ja:baseModel <#graph> ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
] .
<#graph> rdf:type tdb:GraphTDB ;
tdb:dataset config:tdb_dataset_readwrite .
config:tdb_dataset_readwrite
a tdb:DatasetTDB ;
tdb:location "<path-to-tbd-dataset>"
.