Запросы SPARQL не дают результатов
Я сообщил о проблеме при выполнении запроса SPARQL в коде Java с использованием Jena. Онтология доступна здесь (пожалуйста, исправьте дополнительный пробел в строке 798545). После загрузки онтологии из файла N-Triples на модель Jena, используя
Model model=ModelFactory.createDefaultModel();
model.read("minerva-dataset.nt");
Я попытался сделать запрос по модели, используя SPARQL:
String queryString = "PREFIX owl: <http://www.w3.org/2002/07/owl#> \n"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
+ "PREFIX dcterms:<http://purl.org/dc/terms/>\n"
+ "SELECT ?title WHERE { \n" + "?book rdf:type owl:Thing .\n" + "?book dcterms:title ?title.\n"+"}";
System.out.println(queryString); //I used this to see if the query was correctly parsed
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet rs = qe.execSelect();
ResultSetFormatter.out(System.out, rs);
но даже при попытке другого запроса ResultSet приводит к пустым результатам. Я уверен, что запрос получен, потому что я также запустил его на Protegé на той же онтологии, которую я загрузил в Jena Model. Затем я искал ошибку в процессе загрузки, но с помощью
FileOutputStream test=new FileOutputStream("test.txt");
model.write(test,"N-TRIPLES");
Я видел, что в выходном файле число аксиом было таким же, как и в исходном файле онтологии (даже если порядок не был тем же).
Поэтому я думаю, что ошибка заключается в выполнении запроса (также учитывая, что в консоли Eclipse не появляется никакой ошибки синтаксического анализа), но я не могу понять, с чем это связано.