Comme le titre le décrit clairement, nous resultset.hasNext()
retourne false
de façon inattendue.Wikidata - resultset.hasNext() renvoie false bien que les résultats soient récupérés
Voici mon code source SPARQL et Java basée sur Jena:
SELECT ?s ?label WHERE { ?s rdfs:label ?label. FILTER(CONTAINS(LCASE(?label), "university"@en)). } LIMIT 5
Query query = QueryFactory.create(PREFIX + sparqlQuery);
QueryExecution queryExecution = QueryExecutionFactory.sparqlService("https://query.wikidata.org/sparql", PREFIX + sparqlQuery);
try {
ResultSet results = queryExecution.execSelect();
ResultSetFormatter.out(System.out, results, query);
while (results.hasNext()) { // returns false
QuerySolution querySolution = results.next();
System.out.println(querySolution.getResource("s"));
}
} catch (Exception ex) {
System.err.println(ex.getMessage());
} finally {
queryExecution.close();
}
est ici la sortie:
------------------------------------------------------
| s | label |
======================================================
| wd:Q1060 | "Technical University of Hamburg"@en |
| wd:Q1060 | "Technical University of Hamburg"@en-ca |
| wd:Q1060 | "Technical University of Hamburg"@en-gb |
| wd:Q1060 | "Technical University of Hamburg"@nl |
| wd:Q4027 | "Jean Moulin University Lyon 3"@en |
------------------------------------------------------
Je ne savais pas que le curseur est pas remis à zéro après l'appel 'ResultSetFormatter.out()' méthode. – talha06