Как запросить конкретный именованный граф в Jena TDB?

Я пробую уроки Йены здесь. С этим вопросом я сталкиваюсь с подобной проблемой, но она не решает мою проблему. Я уже загрузил свои данные в 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) ;
    }

Но я все еще получаю сейчас результаты. Я не уверен, как выбрать несколько моделей, неважно, модель по умолчанию или названная модель.

0 ответов

Другие вопросы по тегам