@ As per the previous discussion, I guess he also wants to have the student - and of course the highest score,
As Chris said, you have to distinguish between literals and URIs/blank nodes. Which finally leads me to the suggestion to read an RDF tutorial + SPARQL tutorial first. Most questions are really basic. On 09.01.2017 09:38, Chris Dollin wrote: > > > On 08/01/17 18:32, javed khan wrote: >> This query gives me exception: >> >> Exception in thread "AWT-EventQueue-0" >> com.hp.hpl.jena.rdf.model.LiteralRequiredException: >> http://www.semanticweb.org/t/ontologies#Smith >> >> "SELECT * " + >> >> " WHERE {" + " {"+ "select (max(?score) as >> ?highScore)" >> + " { ?student std:Englishscore ?score" + >> " }" + >> " } " + >> "?student std:Englishscore ?highScore" + >> >> "}"; > > The variable ?subject will be the subject of a triple. > Subjects may be blank nodes or resources with URIs. > >> Query query2 = QueryFactory.create(queryString2); >> QueryExecution qexec = QueryExecutionFactory.create(query2, model) ; >> ResultSet results2 = qexec.execSelect() ; >> >> Literal l2=results2.next().get("student").asLiteral(); > > get("student") will return the value of "student", which will > be a resource or blank node, but NOT a literal. asLiteral > expects a Literal. > > BOOM. > > My pre-caffeine guess is that you want "highscore" not "student". > As others have said, offer complete minimal examples. > > Chris >
