我正在提供一个数据集,其中包含来自 Fuseki 2 中的 TDB 数据集的 10-20 个命名图。我想使用推理器对我的数据进行推理。我希望看到的行为是在每个图中推断出的三元组应该出现在这些图中(尽管如果三元组也出现在默认图中也可以)。有没有一种简单的配置方法?我还没有找到任何符合我想要做的配置示例。
我尝试过的配置与以下标准示例非常相似。
DatasetTDB -> GraphTDB -> InfModel -> RDFDataset
我看到的数据的最终视图只是数据的一个很小的子集(似乎所有命名的图都被丢弃在这条管道的某个地方,只剩下很小的默认图)。使用 tdb:unionDefaultGraph 似乎对此没有影响。
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#> .
# Example of a data service with SPARQL query and update on an
# inference model. Data is taken from TDB.
## ---------------------------------------------------------------
## Service with only SPARQL query on an inference model.
## Inference model base data is in TDB.
<#service2> rdf:type fuseki:Service ;
fuseki:name "inf" ; # http://host/inf
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceUpdate "update" ;
fuseki:dataset <#dataset> ;
.
<#dataset> rdf:type ja:RDFDataset ;
ja:defaultGraph <#model_inf> ;
.
<#model_inf> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
] .
## Base data in TDB.
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "DB" ;
# If the unionDefaultGraph is used, then the "update" service should be removed.
# tdb:unionDefaultGraph true ;
.
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset> .
</code>
有人对此有任何想法吗?
此外,如果有办法使数据集可写,则可以加分。(在某种程度上,我试图做的是接近 Owlim/GraphDB 的默认行为,它保持持久的命名图,进行推理,还允许更新。)
提前致谢。