为什么我得到这个sparql查询的单个结果?

Leo*_*uza 0 java semantic-web sparql jena dbpedia

我在sparql端点执行了查询并获得了多个结果.但是在Netbeans中执行它时,我只得到了一个结果.公共类FetchCountryData {

public void fetchData() {
    ParameterizedSparqlString qs = new ParameterizedSparqlString("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
            + "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n"
            + "PREFIX dbo: <http://dbpedia.org/ontology/>\n"
            + "\n"
            + "SELECT distinct ?country ?capital ?caplat ?caplong\n"
            + "WHERE {\n"
            + "  ?country rdf:type dbo:Country .\n"
            + "  ?country  dbo:capital ?capital .\n"
            + "  OPTIONAL {\n"
            + "    ?capital geo:lat ?caplat ;\n"
            + "      geo:long ?caplong .\n"
            + "  }\n"
            + "}\n"
            + "ORDER BY ?country");

    QueryExecution exec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", qs.asQuery());
    exec.setTimeout(10000000);
    ResultSet results = exec.execSelect();
    if (results.hasNext()) {
        System.out.println(results.next());
    }
}
Run Code Online (Sandbox Code Playgroud)

}

产量

(?capital = http://dbpedia.org/resource/Nicosia)(?caplong ="33.3667"^^ xsd:float)(?caplat ="35.1667"^^ xsd:float)(?country <= http:/ /dbpedia.org/resource/1974_Cypriot_coup_d'état >)

Dan*_*ijo 5

你没有迭代结果.将"if"更改为:

while (results.hasNext()){
System.out.println(results.next());
}
Run Code Online (Sandbox Code Playgroud)