Jena 语法中的 SPARQL 查询

SPARQL query in Jena Syntax

我有这个 SPARQL 查询,它在 Protege SPARQL 选项卡中运行良好,但在 Jena 代码中不起作用。 如果有人以正确的 Jena 语法提供它,请提供它,因为我从未在 Jena 代码中使用过嵌套的 SELECT 子句。

SELECT ?student ?topScore WHERE {
   {
    SELECT (MAX(?score) AS ?topScore) WHERE {
         ?student dd:EnglishPercentage ?score .
    }
   }
    ?student dd:EnglishPercentage  ?topScore .
}

这是整个查询。我正在使用 3.x 版本的 Jena

String queryString2 = 
                   "prefix dd:<http://www.semanticweb.org/t/ontologies/2016/7/myOWL#>"+
         "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> "  +

          "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
                     "SELECT  ?student ?highScore " +
          " WHERE {" + " {"+ "select  (max(?score) as ?highScore)" + " { ?student dd:Englishscore ?score" + 
" }" +
"  } " +Englishscore ?highScore"   +     
         "}";    
Query query2 = QueryFactory.create(queryString2);
QueryExecution qexec = QueryExecutionFactory.create(query2, model) ;
ResultSet results2 = qexec.execSelect() ;

Literal r= results2.next().get("highScore").asLiteral();
    JOptionPane.showMessageDialog(null,r.toString());