2013-03-27 4 views
4

Я просто пытаюсь запустить небольшой запрос на DBpedia, сам запрос работает, см. Его here, но я не понимаю, почему его возвращение при выполнении этого с Jena, я получаю null.DBpedia Jena Query возвращает null

String service = "http://dbpedia.org/sparql"; 
String queryString = ""; 
queryString = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?label" + 
     "WHERE {" + 
     "<http://dbpedia.org/resource/Quatre_Bornes> <http://dbpedia.org/ontology/country> ?y ."+ 
     "?y rdfs:label ?label ."+ 
     "FILTER (LANG(?label) = 'en')"+ 
     "}"; 

Query query = QueryFactory.create(queryString); 
QueryEngineHTTP qexec = QueryExecutionFactory.createServiceRequest(service, query); 
ResultSet results = qexec.execSelect(); 
for (; results.hasNext() ;) { 
    QuerySolution soln = results.nextSolution() ; 
    System.out.println(soln.getLiteral("label")); 
} 

Любое предложение?

+1

Ваш ответ имеет смысл, и это полезно для других. (У меня эта проблема возникает и в других вопросах.) Вы должны принять свой ответ, чтобы другие знали, что это сработало, и уменьшить количество вопросов без принятых ответов. –

ответ

5

, что так смущают, есть место проблема в запросе:

String service = "http://dbpedia.org/sparql"; 
     String queryString = ""; 
     queryString = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?label " + 
      "WHERE {" + 
      "<http://dbpedia.org/resource/Quatre_Bornes> <http://dbpedia.org/ontology/country> ?y ."+ 
      "?y rdfs:label ?label ."+ 
      "FILTER (LANG(?label) = 'en')"+ 
      "}"; 
+2

Слово WHERE является необязательным в запросах. Простое решение для строк для запросов - это не использовать его. – AndyS