I am sorry Andy I did not understand what you mentioned.
The problem still there, though I have made several changes: and the
problem points here
Literal r= results2.next().get("highScore").asLiteral();
or
RDFNode r2= results2.next().get("student").asResource();
The error message is
*Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException:
QueryIteratorCloseable*
* at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.nextBinding(QueryIteratorBase.java:9*
3
On Mon, Jan 9, 2017 at 6:53 PM, Andy Seaborne <[email protected]> wrote:
> That is not the error in the query I pointed out. It makes a difference
> in the query.
>
>
> On 09/01/17 15:45, javed khan wrote:
>
>> I used std:Englishscore in my query and is also in my ontology. If I
>> wrote
>> somewhere EnglishScore, it will be a typo error.
>>
>> On Mon, Jan 9, 2017 at 6:41 PM, Andy Seaborne <[email protected]> wrote:
>>
>>
>>>
>>> On 09/01/17 15:05, javed khan wrote:
>>>
>>> Hello Lorenz, I think the problem is in the query itself inside Jena
>>>> code(probably the syntax of the query). Because a very simple query
>>>> like *?student
>>>> std:EnglishScore ?score*
>>>> works.
>>>> The querystring is:
>>>>
>>>> prefix std:<http://www.semanticweb.org/ontologies#>PREFIX rdfs:<
>>>> http://www.w3.org/2000/01/rdf-schema#> PREFIX rdf:<
>>>> http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>>> SELECT * WHERE { {select (max(?score) as ?highScore) { ?student
>>>> std:Englishscore ?score } } ?student std:Englishsscore ?highScore}
>>>>
>>>>
>>> std:Englishscore vs std:Englishsscore
>>>
>>> spelt differently.
>>>
>>>
>>>
>>>
>>>>
>>>> On Mon, Jan 9, 2017 at 5:40 PM, Lorenz Buehmann <
>>>> [email protected]> wrote:
>>>>
>>>> Inline images are not allowed here, thus we can't see anything. And a
>>>>
>>>>> screenshot of Protege is not really helpful.
>>>>>
>>>>> Prefixes might be wrong. We neither know the final query, nor your
>>>>> code.
>>>>>
>>>>> Please show a sample of the data in best case in Turtle format. And the
>>>>> final query - please not again as Java concatenated String but as the
>>>>> output from System.out.println(query2)
>>>>>
>>>>>
>>>>>
>>>>> On 09.01.2017 15:06, javed khan wrote:
>>>>>
>>>>> Inline image 1
>>>>>>
>>>>>>
>>>>>> It shows the result in Protege: Mac is student name and 6 is highscore
>>>>>> of English category scored by him.
>>>>>>
>>>>>> On Mon, Jan 9, 2017 at 4:34 PM, Andy Seaborne <[email protected]
>>>>>> <mailto:[email protected]>> wrote:
>>>>>>
>>>>>> Maybe there are no results.
>>>>>>
>>>>>> This is not a complete, minimal example. Unseen details probably
>>>>>> matter.
>>>>>>
>>>>>> Andy
>>>>>>
>>>>>>
>>>>>> On 09/01/17 13:28, javed khan wrote:
>>>>>>
>>>>>> Hello Lorenz, yes I need student and highscore.
>>>>>>
>>>>>> I just tried this , no exception but it does not display the
>>>>>> message in
>>>>>> JOptionPane.showMessageDialog()
>>>>>>
>>>>>> Query query2 = QueryFactory.create(queryString2);
>>>>>> QueryExecution qexec = QueryExecutionFactory.create(query2,
>>>>>> model) ;
>>>>>> ResultSet results2 = qexec.execSelect() ;
>>>>>>
>>>>>> RDFNode r;
>>>>>> while(results2.hasNext()){
>>>>>>
>>>>>> QuerySolution sol= results2.nextSolution();
>>>>>> r=sol.get("student");
>>>>>> JOptionPane.showMessageDialog(null,"high score is" + r
>>>>>> );
>>>>>> }
>>>>>>
>>>>>> On Mon, Jan 9, 2017 at 1:42 PM, Lorenz Buehmann <
>>>>>> [email protected]
>>>>>> <mailto:[email protected]>> wrote:
>>>>>>
>>>>>> @ 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.Lite
>>>>>> ralRequiredException:
>>>>>> http://www.semanticweb.org/t/ontologies#Smith
>>>>>> <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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>