空TDB2查询结果

时间:2018-04-25 13:03:18

标签: sparql jena tdb

Apache Jena的命令行工具有问题。我想为一个大龟文件创建一个tdb2数据库。出于这个原因,我使用 tdb2.loader 命令,如下所示:

tdb2.tdbloader --loc ~/indexer ~/indexer/test.ttl

我的 test.ttl 文件包含以下格式的条目:

@prefix bbase: <http://data.bibbase.org/ontology/#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix dblp:  <https://dblp.org/rdf/schema-2017-04-18#> 

<https://dblp.org/rec/conf/romoco/Siegwart13>
    a                              dblp:Publication ;
    owl:sameAs                     <http://dx.doi.org/10.1109/RoMoCo.2013.6614591> ;
    dblp:authoredBy                <https://dblp.org/pers/s/Siegwart:Roland> ;
    dblp:bibtexType                bbase:Inproceedings ;
    dblp:listedOnTocPage           <https://dblp.org/db/conf/romoco/romoco2013> ;
    dblp:pageNumbers               "98" ;
    dblp:primaryElectronicEdition  <https://doi.org/10.1109/RoMoCo.2013.6614591> ;
    dblp:doi                       "10.1109/RoMoCo.2013.6614591";
    dblp:publicationType           dblp:Inproceedings ;
    dblp:publishedAsPartOf         <https://dblp.org/rec/conf/romoco/2013> ;
    dblp:publishedInBook           "RoMoCo" ;
    dblp:title                     "Design and navigation of wheeled, running, swimming and flying robots." ;
    dblp:yearOfPublication         "2013" .
...

现在我的问题是,如果我通过使用 tdb2.tdbquery 命令查询输出(tdb2文件),结果将是一个空表。我的查询搜索具有 dblp:doi 属性的所有实体,结果不应该是空表,如上面的示例所示。我的查询文件如下所示:

PREFIX dblp:  <https://dblp.org/rdf/schema-2017-04-18#>

SELECT *
WHERE{
  ?s dblp:doi ?o .
}

我的 tdb2.query 命令如下所示:

./tdb2.tdbquery --loc=~/indexer/Data-0001 --query=~/indexer/query.rq

无论我做什么,我的结果总是如此:

---------
| s | o |
=========
---------

如果我使用sparql命令直接查询.ttl文件的方式与我使用 tdb2.query 命令的方式相同,我将得到包含一些条目的合理结果。

不幸的是,我无法在Jena文档或本论坛中找到我的问题的答案。有人可以给我一个答案,或者至少暗示可能会出现什么问题吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

查询中的<img/>参数应该是您创建TDB2数据库的位置,即〜/ indexer