0

我在这里尝试耶拿的教程。我在这个问题上遇到了类似的问题,但它并没有解决我的问题。我已经将数据加载到 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) ;
    }

但我仍然得到现在的结果。我不确定如何选择多个模型,无论它是默认模型还是命名模型。

4

0 回答 0