I do not understand. You process one SPARQL query, and then the next
one. Of course you can reuse Java variables for QueryExecution and
Resultset but have to do the same steps

> Thank you Lorenz, let me try it. In my situation, the important is high
> score so even if is of multiple students, does not matter.
>
> If I run the query for each subject, the QueryExecution and Resultset will
> also be  separate or just two queries with same QueryExecution and
> Resultset?
>
> On Fri, Jan 27, 2017 at 2:33 PM, Lorenz B. <
> [email protected]> wrote:
>
>> Don't make it more complicated as necessary. Simply run the query for
>> each of your subjects. Otherwise something like
>>
>> SELECT ?subject ?student ?topScore WHERE {
>>   {
>>
>>         SELECT ?subject (MAX(?score) AS ?topScore) WHERE
>>         {  VALUES ?subject {dd:EnglishScore dd:MathScore}
>>            ?student ?subject ?score .
>>         } GROUP BY ?subject
>>   }
>>     ?student ?subject  ?topScore .
>>
>> }
>>
>> could work - it's untested
>>
>> Don't forget that there can be more than one student with the highest
>> score per subject.
>>
>>> Sorry Lorenz I did not check stack overflow as the response there comes
>>> very late. Therefore I prefer Jena mailing list because here the response
>>> comes quickly.
>>>
>>> It is the query in plain text: If I want to include another subject high
>>> score and its student, then how can I add it?
>>>
>>>
>>> SELECT ?student ?topScore WHERE {
>>>   {
>>>
>>>         SELECT (MAX(?score) AS ?topScore) WHERE
>>>         {
>>>           ?student dd:Englishscore ?score .
>>>         }
>>>
>>>     }
>>>     ?student dd:Englishscore  ?topScore .
>>>
>>> }
>>>
>>> On Fri, Jan 27, 2017 at 1:04 PM, Lorenz B. <
>>> [email protected]> wrote:
>>>
>>>> I tried to help you on StackOverflow, but no response from your side and
>>>> you posted something that can't compile in Java.
>>>>
>>>> Moreover, and that's a really sad point, you posted a different query
>>>> there, without the Mathscore triple patterns...
>>>>
>>>> Off-topic: It would be good if you close the question there if you found
>>>> the solution, that's one of the expected behaviors on a platform like
>>>> StackOverflow.
>>>>
>>>>
>>>> More comments, your query asks for the top English score - your message
>>>> tells the user that it's the top Physics score...
>>>>
>>>> And the exception is quite obvious, you called next() twice on a
>>>> resultset which might only return one student with the highest score.
>>>>> Hello, this is the query. How can we add high score of another subject
>>>> like
>>>>> Mathsscore, I simply add Mathscore after Englishscore, but not working
>>>>>
>>>>> "SELECT  *  +
>>>>>
>>>>>                    " WHERE {" + " {"+ "select  (max(?score) as
>>>> ?highScore)"
>>>>> + " { ?student dd:Englishscore ?score" +  "  ?student2 dd:Mathsscore
>>>>> ?score2"
>>>>> " }" +
>>>>> "  } " +
>>>>>         "?student dd:Englishscore ?highScore"   +     " ?student2
>>>>> dd:Mathsscore ?score2"
>>>>>
>>>>>
>>>>>           "}";
>>>>>
>>>>> On Thu, Jan 26, 2017 at 6:13 PM, javed khan <[email protected]>
>>>> wrote:
>>>>>> I am sorry Rob, I have posted this issue on Stack overflow yesterday,
>>>> and
>>>>>> I thought I have posted the details here.
>>>>>> Sorry and the problem is solved as I used QuerySolution in while loop.
>>>>>>
>>>>>> Thank you
>>>>>>
>>>>>> On Thu, Jan 26, 2017 at 5:12 PM, Rob Vesse <[email protected]>
>>>> wrote:
>>>>>>> Once again you have failed to provide a minimal complete example.
>> This
>>>>>>> means the minimal code needed to reproduce the problem and any extra
>>>>>>> resources needed e.g. your data. Complete means that your code should
>>>> be
>>>>>>> able to be copied and pasted and run.
>>>>>>>
>>>>>>> http://stackoverflow.com/help/mcve
>>>>>>>
>>>>>>> Note you haven’t actually told us what the problem is i.e. What is
>> the
>>>>>>> specific error message you got. It gets an exception is not a problem
>>>>>>> statement!
>>>>>>>
>>>>>>>  We have been telling you this for weeks, if you are not actually
>> going
>>>>>>> to make an effort then people are going to stop trying to help you
>>>>>>>
>>>>>>> Rob
>>>>>>>
>>>>>>> On 26/01/2017 13:06, "javed khan" <[email protected]> wrote:
>>>>>>>
>>>>>>>     *The following query works *   :
>>>>>>>
>>>>>>>     "SELECT  ?student ?highScore " +
>>>>>>>
>>>>>>>                        " WHERE {" + " {"+ "select  (max(?score) as
>>>>>>> ?highScore)"
>>>>>>>     + " { ?student dd:Englishscore ?score" +
>>>>>>>     " }" +
>>>>>>>     "  } " +
>>>>>>>             "?student dd:Englishscore ?highScore"   +
>>>>>>>
>>>>>>>
>>>>>>>               "}";
>>>>>>>
>>>>>>>                  Query query2 = QueryFactory.create(queryString2);
>>>>>>>     QueryExecution qexec = QueryExecutionFactory.create(query2,
>>>> model2) ;
>>>>>>>     ResultSet results2 = qexec.execSelect() ;
>>>>>>>
>>>>>>>           Literal r= results2.next().get("highScore").asLiteral();
>>>>>>>        String ss= r.getLexicalForm();
>>>>>>>        JOptionPane.showMessageDialog(null,"High score of Physics
>>>> is"+s +
>>>>>>> "by
>>>>>>>     Student");
>>>>>>>
>>>>>>>     This query now works but when I include also the student name, it
>>>>>>> gives me
>>>>>>>     exception again.
>>>>>>>
>>>>>>>      * Resource r2= results2.next().get("student").asResource();*
>>>>>>>     *       String s=r2.toString();*
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>> --
>>>> Lorenz Bühmann
>>>> AKSW group, University of Leipzig
>>>> Group: http://aksw.org - semantic web research center
>>>>
>>>>
>>>>
>> --
>> Lorenz Bühmann
>> AKSW group, University of Leipzig
>> Group: http://aksw.org - semantic web research center
>>
>>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to