Различные результаты запроса при использовании D2RQ из браузера и с использованием Jena API

Я пытаюсь выполнить запрос с помощью D2RQ. Когда я запускаю запрос с помощью браузера из http://localhost:2020/sparql, как описано в разделе Использование D2RQ Engine с Jena, все работает нормально, но с Jena API это не дает никаких результатов. Запрос

PREFIX vocab: <http://localhost:2020/resource/vocab/>
SELECT ?personName WHERE {
  ?person vocab:people_Name ?personName .
}

Вот код Java, который создает запрос и запускает его для модели:

ModelD2RQ m = new ModelD2RQ( "file:///C:/Users/sabse/Downloads/d2rq-0.8.1/d2rq-0.8.1/mapping-ontology.ttl");
String sparql =
  "PREFIX vocab: <http://localhost:2020/resource/vocab/>" +
  "SELECT ?personName WHERE {" +
  "  ?person vocab:people_Name ?personName . " +
  "}";
Query q = QueryFactory.create(sparql);
ResultSet rs = QueryExecutionFactory.create(q, m).execSelect();
ResultSetFormatter.out(System.out, rs, q);
m.close();

Данные начинаются со следующих объявлений префикса:

@prefix vocab: <vocab/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
@prefix jdbc: <http://d2rq.org/terms/jdbc/> .

person Keks    schedule 11.01.2014    source источник
comment
Какие результаты вы получаете от рабочего запроса? Префикс http://localhost:2020/resource/vocab/ меня удивляет; данные на самом деле не используют более значимый префикс IRI?   -  person Joshua Taylor    schedule 11.01.2014
comment
Я получаю имена всех людей в базе данных. Префикс тот же, что и в браузере.   -  person Keks    schedule 12.01.2014
comment
Можете ли вы показать часть содержимого файла .ttl? Там тоже используется префикс http://localhost:2020/resource/vocab/?   -  person Joshua Taylor    schedule 12.01.2014
comment
когда меняю префикс в .ttl файле становится еще хуже, получаю исключения.   -  person Keks    schedule 12.01.2014
comment
Я не уверен, что вы подразумеваете под изменением префикса, и вы не указали никаких исключений, поэтому я не могу с ними говорить. Однако префикс <vocab/> является относительным URL-адресом, поэтому механизмы SPARQL будут делать с ним что-то немного непредсказуемое. Если бы мне пришлось угадывать, я предполагаю, что когда вы загружаете данные из файла, вы получаете IRI таким образом, что vocab:People_name расширяется до чего-то вроде file:///C:/Users/sabse/Downloads/d2rq-0.8.1/d2rq-0.8.1/mapping-ontology.ttl/vocab/People_name, что объясняет, почему ваш запрос SPARQL не работает.   -  person Joshua Taylor    schedule 12.01.2014
comment
Если вы попробуете выполнить запрос SPARQL, например select * where { ?s ?p ?o } limit 10, к модели, загруженной из файла, какие виды IRI вы увидите в нем?   -  person Joshua Taylor    schedule 12.01.2014
comment
Для сравнения взгляните на этот вопрос, tbloader vs SPARQL INSERT - почему разное поведение с именованными графами?, где кто-то запустил в такую ​​же проблему из-за относительных IRI.   -  person Joshua Taylor    schedule 12.01.2014
comment
Большое спасибо! Я решил это сейчас с помощью ваших советов.   -  person Keks    schedule 12.01.2014