如何配置Fuseki Jena以使用推理机和TDB + tdb:UnionDefaultGraph

问题描述

上下文

我是不熟悉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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...