清空 TDB2 查询结果
Empty TDB2 Query Result
我对 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 文件),空的 table 将是结果。我的查询搜索具有 dblp:doi 属性 的所有实体,结果不应为空 table,如您在上面的示例中所见。我的查询文件如下所示:
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 |
=========
---------
如果我以与使用 tdb2.query 命令相同的方式直接使用 sparql 命令查询 .ttl 文件,我将得到一个合理的结果,其中包含一些条目。
不幸的是,无论是在 Jena 文档中还是在本论坛中,我都找不到我的问题的答案。有人可以给我一个答案或至少提示可能出了什么问题吗?
在此先感谢您的帮助!
您在查询中的 --loc
参数应该是您创建 TDB2 数据库的位置,即 ~/indexer
我对 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 文件),空的 table 将是结果。我的查询搜索具有 dblp:doi 属性 的所有实体,结果不应为空 table,如您在上面的示例中所见。我的查询文件如下所示:
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 |
=========
---------
如果我以与使用 tdb2.query 命令相同的方式直接使用 sparql 命令查询 .ttl 文件,我将得到一个合理的结果,其中包含一些条目。
不幸的是,无论是在 Jena 文档中还是在本论坛中,我都找不到我的问题的答案。有人可以给我一个答案或至少提示可能出了什么问题吗?
在此先感谢您的帮助!
您在查询中的 --loc
参数应该是您创建 TDB2 数据库的位置,即 ~/indexer