我在这里尝试耶拿的教程。我在这个问题上遇到了类似的问题,但它并没有解决我的问题。我已经将数据加载到 tdb 中,当我使用 查询时SELECT DISTINCT ?g {GRAPH ?g {}}
,结果如下:
-----------------
| g |
=================
| <ds-ng-1.ttl> |
| <ds-ng-2.ttl> |
-----------------
但是当我尝试在 tdb 中使用以下查询进行查询时,我没有得到任何结果。
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <.>
SELECT ?title
{
GRAPH :ds-ng-2.ttl
{ ?b dc:title ?title }
}
根据我上面提到的类似问题,@RobV 提到
如果您得到一个绝对 URI,那么您可以直接在原始查询中指定它,如果没有,则无法从命令行查询它。
我想问一下是真的吗?如果是这样,我如何使用 API 来执行这个查询?我的代码如下:
String directory = "path_to\\datasets\\data_graph\\tdbtest";
Dataset dataset = TDBFactory.createDataset(directory);
Model tdb = dataset.getDefaultModel();
String queryString = "PREFIX dc:<http://purl.org/dc/elements/1.1/> \nPREFIX : <.> \nSELECT ?title { GRAPH :ds-ng-2.ttl { ?b dc:title ?title }}";
Query query = QueryFactory.create(queryString);
try(QueryExecution qexec = QueryExecutionFactory.create(query, tdb)){
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query) ;
}
但我仍然得到现在的结果。我不确定如何选择多个模型,无论它是默认模型还是命名模型。