问题描述
上下文
我是不熟悉Fusionki的人,我目前正在一个项目中使用它,主要思想是:
- 使用预定义的本体(turtle文件)+推理程序启动服务器
- 我使用python处理文件,并为每个文件生成一个rdf图,并将其放置在命名图中
- 最后,我想查询所有子图
我当前的配置
@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#> .
[] rdf:type fuseki:Server ;
fuseki:services (
<#lmdrservice>
) .
# TDB
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#lmdrservice> rdf:type fuseki:Service ;
fuseki:name "lmdr" ; # http://host/inf
fuseki:serviceQuery "query","sparql" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" ;
fuseki:serviceReadWriteGraphStore "data" ;
fuseki:serviceReadGraphStore "get" ;
fuseki:dataset <#dataset> ;
.
<#dataset> rdf:type ja:RDFDataset ;
ja:defaultGraph <#model> ;
ja:namedGraph
[ ja:graphName <http://www.example.com/ontology> ;
ja:graph <#ontology> ] ;
.
<#ontology> rdf:type ja:MemoryModel ;
ja:content [ja:externalContent <file:/fuseki/lmdr.ttl> ] ;
.
<#model> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
ja:reasoner [
ja:rulesFrom <file:/fuseki/configuration/lmdr_rules.rules> ;
] ;
.
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset>
.
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "/fuseki/databases/lmdr" ;
tdb:unionDefaultGraph true
.
什么不起作用
不是在所有命名图上都执行Sparql查询,问题可能出在参数上:
tdb:unionDefaultGraph true
我尝试过的事情
我尝试了许多其他不同的配置,例如:
- 在服务器描述部分进行指定
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "sparql-union" ;
ja:context [ ja:cxtName "tdb:unionDefaultGraph" ; ja:cxtValue true ] ;
] ;
- 使用urn:x-arq:UnionGraph作为图的名称,这意味着它是命名图的并集
:g rdf:type tdb:GraphTDB ;
tdb:dataset :tdbDataset ;
tdb:graphName <urn:x-arq:UnionGraph> ;
.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)