1

我是 Jenna TDB 和 Fuseki 的新手。我想将使用他们的数据生成器(ver.1.7)生成的 Lehigh University Benchmark (LUBM) 数据加载到 Fuseki。这大约是 400 个 .owl 文件。使用 Fuseki 附带的以下配置文件进行推理:

<#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> .

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

./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。请让我知道我在这里缺少什么以及如何正确地做到这一点。

在此先感谢您的帮助。

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

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 构建为数据库的目录。这里也有描述

    $ tdbloader2 --loc tdb PATH_TO_DIR_or_OWL_Files

当前的问题是,当我运行一个简单的查询时,例如以下查询,我得到了内存不足错误。

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-Server(服务器脚本)的内存增加到了 5GB,但对于这个简单的查询,仍然会出现内存不足的错误。知道为什么会发生这种情况吗?

4

1 回答 1

0

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

使用 s-post 添加到图表。

LUBM 在结构上足够简单,(1)它不是很现实,(2)推理可以单独应用于每所大学,并且在查询时加载的数据,它都被扩展了。

于 2014-07-02T21:37:46.940 回答