首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Jena Fuseki +推理和TDB?

配置Jena Fuseki +推理和TDB?
EN

Stack Overflow用户
提问于 2014-07-02 18:07:36
回答 1查看 1.6K关注 0票数 1

我是詹娜·TDB和Fuseki的新手。我想加载(LUBM)用它们的数据生成器(ver.1.7)生成的数据到Fuseki。这是大约400个.owl文件。使用Fuseki附带的用于推断的以下配置文件:

代码语言:javascript
复制
<#service1>  rdf:type fuseki:Service ;
    fuseki:name              "inf" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    #fuseki:serviceUpdate     "update" ;
    fuseki:serviceReadWriteGraphStore      "data" ;
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore       "get" ;
    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>
     ] .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
    tdb:location "myDB" ;
    tdb:unionDefaultGraph true ;
    .

<#tdbGraph> rdf:type tdb:GraphTDB ;
    tdb:dataset <#tdbDataset> .

一开始没有任何问题。但是,当我执行以下命令时:

代码语言:javascript
复制
./s-put http://localhost:3030/inf/data default ~/Owl/univ-bench.owl

我得到了一个错误:405 HTTP method PUT is not supported by this URL http://localhost:3030/inf/data?default

我有几个问题:

1.配置文件中的更新显然没有禁用,所以我为什么要得到这条消息。2.为了将所有400个.owl文件作为一个图形加载,显然我必须禁用更新并启用tdb:unionDefaultGraph true(在Fuseki附带的配置文件中提到了这一点),如果是这样的话,我到底应该如何将数据加载到Fuseki。请让我知道我在这里错过了什么,我如何才能正确地做到这一点。

提前谢谢你的帮助。

编辑:我发现您需要添加以下内容:

代码语言:javascript
复制
fuseki:serviceReadWriteGraphStore      "data" ;
# A separate read-only graph store endpoint:
fuseki:serviceReadGraphStore       "get" ;

为了能够使用s-put加载数据,但是每次我添加一个新文件时,它都会覆盖来自前一个文件的数据,因此推理无法工作。我在这里做错了什么?如何正确地加载所有文件被加载到同一个图形和推断工作中的数据?

编辑,所以深入研究这个问题,我发现有两种方法来加载数据。

  1. 您可以在配置文件中定义模型的地方添加以下内容: ja:content [ja:externalContent <file://// Path_to_owl_file >] ; 因此,对于我来说,我在<#model_inf> a ja:InfModel ;下添加了它,但是,如果您有400个文件,这将非常乏味。
  2. 您可以使用tdbloader2单独加载数据,并将配置文件指向tdbload作为数据库构建的目录。它也被描述为here $ tdbloader2 --loc tdb PATH_TO_DIR_or_OWL_Files

当前的问题是,当我运行一个简单的查询(例如,下面的查询)时,会出现内存不足的错误。

代码语言:javascript
复制
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>   
PREFIX ub: <http://cs.uga.edu#>  
SELECT *  
WHERE 
{
    ?X rdf:type ub:GraduateStudent . 
    ?X ub:takesCourse <http://www.Department0.University0.edu/GraduateCourse0>
}

我将Fuseki (int服务器脚本)的内存增加到了5GB,但是对于这个简单的查询,仍然有一个内存不足的错误。知道为什么会发生这种事吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-02 21:37:46

s-put执行PUT -这被定义为“替换内容”。

使用s-post添加到图形中。

LUBM结构简单,(1)不太现实;(2)推理可以单独应用于各大学,并且在查询时加载数据,对其进行了扩展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24538094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档