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文档或本论坛中找到我的问题的答案。有人可以给我一个答案,或者至少暗示可能会出现什么问题吗?
提前感谢您的帮助!
答案 0 :(得分:4)
查询中的<img/>
参数应该是您创建TDB2数据库的位置,即〜/ indexer