That has nothing to do with SPARQL syntax. This is how you concatenate
String object in Java.

String s = "abc"
String s = "ab" + "c"


And again, what is the error message?
> Hello Lorenz, usually we use " " signs and + sign inside our query in Jena
> syntax
>
>  "SELECT  ?student " +
>
> " WHERE {   ?student rdf:type std:Student}"; //In simple query
>
>  But that query has two select statements and where clause, I am confused
> where to put the " " and + signs in the query.
>
> I have tried this but it gives me syntax error,
>
>
>
>    *  "SELECT  ?student ?topScore " +*
>
> *                   " WHERE {   {select  (max(?score) as ?highScore)" +
>  "WHERE  { ?student std:Englishscore ?score + "*
>
> *" }" +*
> *"  } " +*
> *       "?student std:Englishscore ?highScore"           *
>
> *          "}";*
What is the asterisk * used for here? I don't get your problem. This is
simple Java code. You can split any String object into two at any position
>
>
>
> On Sat, Jan 7, 2017 at 5:30 PM, Lorenz B. <
> buehm...@informatik.uni-leipzig.de> wrote:
>
>> This query is syntactically correct once you add the prefix declaration
>> in front of the query. I used ex: here but indeed I don't know the
>> namespace and omitted the prefix declaration for brevity. I don't
>> understand what you meant with the usage of a comma.
>>
>>> Hi Lorenz, I am asking about the query you provided to be used in Jena
>>> syntax like below I used in Jena
>>>
>>> SELECT ?student ?topScore WHERE {
>>>  {SELECT (MAX(?score) AS ?topScore) WHERE
>>>         {?student ex:CryptographyScore ?score .
>>>         } }
>>> ?student ex:CryptographyScore ?topScore .}
>>>
>>>
>>> ___________________________________________________________
>>>
>>> String queryString= "PREFIX mo:<http://www.semanticweb.org/t/ont#> "+
>>>  "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
>>>
>>>                       "SELECT  ?std " +
>>>                 " WHERE {   ?std rdf:type std:Student }";
>>>
>>> On Sat, Jan 7, 2017 at 3:17 PM, Lorenz B. <
>>> buehm...@informatik.uni-leipzig.de> wrote:
>>>
>>>> Which query do you mean and which error do you get? There is no need for
>>>> a comma when using a nested query
>>>>
>>>>> Thanks a lot Lorenz, yes the query you provided perfectly works. Kindly
>>>> one
>>>>> last cooperation, I have never tried nested queries in Jena code and it
>>>>> gives me error, so if you provide the correct syntax i-e where to use
>> the
>>>>> commas and where not?
>>>>>
>>>>> Thanks again.
>>>>> Regards
>>>>>
>>>>> On Fri, Jan 6, 2017 at 5:23 PM, Lorenz B. <
>>>>> buehm...@informatik.uni-leipzig.de> wrote:
>>>>>
>>>>>>> This query now display both student and highscore
>>>>>>>
>>>>>>> select ?subject ?student ?highScore where {
>>>>>>> {select ?subject (max(?score) as ?highScore) { ?student
>>>> ont:Englishsscore
>>>>>>> ?score
>>>>>>>  }
>>>>>>>     group by ?subject
>>>>>>>   }
>>>>>>> ?student ont:Englishscore ?highScore
>>>>>>> }
>>>>>> Doesn't make sense. Don't copy answers from Stackoverflow if the data
>>>>>> doesn't match the suggested solution by Joshua Taylor! You're grouping
>>>>>> by a variable ?subject that is nowhere assigned in the query.
>>>>>>
>>>>>> I already gave you the alternative query yesterday in one of my
>>>>>> responses. Would be good if you read them carefully and also try to
>>>>>> understand what's happening there.
>>>>>>> On Fri, Jan 6, 2017 at 4:39 PM, javed khan <javedbtk...@gmail.com>
>>>>>> wrote:
>>>>>>>> Hi Lorenz, I uses this
>>>>>>>>
>>>>>>>> SELECT  (max(?score) as ?highScore)
>>>>>>>> WHERE { ?std ont:Englishscore ?score }
>>>>>>>>
>>>>>>>> And it gives me the highscore of subject English as 77
>>>>>>>>
>>>>>>>> When I use this
>>>>>>>>
>>>>>>>> SELECT ?std (max(?score) as ?highScore)
>>>>>>>> WHERE { ?std ont:Englishscore ?score } GROUP BY ?std
>>>>>>>>
>>>>>>>> It gives me all the students with the scores like:
>>>>>>>> Jim 60
>>>>>>>> Kane 77
>>>>>>>> Smith 57 etc
>>>>>>>>
>>>>>>>> I want result like *Kane 77*
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jan 6, 2017 at 1:45 PM, Lorenz B. <buehm...@informatik.uni-
>>>>>>>> leipzig.de> wrote:
>>>>>>>>
>>>>>>>>> Yes, that would be the easiest solution.
>>>>>>>>>
>>>>>>>>>> Hello Lorenz, thanks a lot for kind cooperation.
>>>>>>>>>>
>>>>>>>>>>  It means I will have three queries for NetworkingScore,
>>>>>>>>> Cryptographyscore
>>>>>>>>>> and SEscore?
>>>>>>>>>>
>>>>>>>>>> On Thu, Jan 5, 2017 at 1:27 PM, Lorenz B. <
>>>>>>>>>> buehm...@informatik.uni-leipzig.de> wrote:
>>>>>>>>>>
>>>>>>>>>>> The query I showed returns the highest value for one subject as I
>>>>>> said.
>>>>>>>>>>> Executing three SPARQL queries should therefore be rather simple.
>>>>>>>>>>>
>>>>>>>>>>> PREFIX ex: <http://example.com/ns/>
>>>>>>>>>>> SELECT (MAX(?score) AS ?topScore)
>>>>>>>>>>> WHERE
>>>>>>>>>>> {
>>>>>>>>>>>   ?student ex:CryptographyScore ?score .
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> So what's wrong with this query? If you also want to have the
>>>>>>>>> student(s)
>>>>>>>>>>> with this score, try
>>>>>>>>>>>
>>>>>>>>>>> PREFIX ex: <http://example.com/ns/>
>>>>>>>>>>> SELECT ?student ?topScore WHERE {
>>>>>>>>>>>
>>>>>>>>>>>     #-- Find the high score in the subject
>>>>>>>>>>>     {
>>>>>>>>>>>
>>>>>>>>>>>         SELECT (MAX(?score) AS ?topScore) WHERE
>>>>>>>>>>>         {
>>>>>>>>>>>           ?student ex:CryptographyScore ?score .
>>>>>>>>>>>         }
>>>>>>>>>>>
>>>>>>>>>>>     }
>>>>>>>>>>>
>>>>>>>>>>>     #-- Then find the student(s) that had that high score in the
>>>>>>>>> subject
>>>>>>>>>>>     ?student ex:CryptographyScore ?topScore .
>>>>>>>>>>>
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> Or you can use SPARQL 1.1 aggregate function SAMPLE.
>>>>>>>>>>>
>>>>>>>>>>> Otherwise you can also use a single SPARQL query and put, but it
>>>>>> looks
>>>>>>>>>>> like you have to learn SPARQL and we're doing your homework -
>> this
>>>> is
>>>>>>>>>>> obviously the wrong direction when you want to lean something
>> about
>>>>>>>>>>> Semantic Web...
>>>>>>>>>>>
>>>>>>>>>>> By the way, I wouldn't create a data property for each subject
>> but
>>>>>>>>>>> attach the subject to the score. But that's how I would do it and
>>>> out
>>>>>>>>> of
>>>>>>>>>>> scope here.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Let me explain : There are 4 students, having scores of three
>>>>>> subjects
>>>>>>>>>>>> (1) Bob:  Cryptographyscore 50, SE score 58, *Networking score
>> 70*
>>>>>>>>>>>>  (2) Jim:  *Cryptographyscore 86*, SEscore 55, Networkingscore
>> 48
>>>>>>>>>>>> (3)  Smith: Cryptographyscore 78, *SEscore 79*, Networkingscore
>> 60
>>>>>>>>>>>> (4) David: Cryptographyscore 50, SEscore 66, Networkingscore 55
>>>>>>>>>>>>
>>>>>>>>>>>> I want the highest score of each category any user has scored,
>>>> like
>>>>>> in
>>>>>>>>>>>> cryptography the highest score is 86 scored by Jim, in SE
>> highest
>>>>>>>>> score
>>>>>>>>>>> is
>>>>>>>>>>>> 79 scored by Smith and so on.
>>>>>>>>>>>>
>>>>>>>>>>>> So I want the maximum score in each of the three categories,
>> which
>>>>>> are
>>>>>>>>>>> our
>>>>>>>>>>>> data properties in the rdf file and this is why I thought we
>>>> should
>>>>>>>>> use
>>>>>>>>>>>> three variables for Max.
>>>>>>>>>>>>
>>>>>>>>>>>> Lorenz still I achieve this with the query you and Rob have
>>>>>> suggested?
>>>>>>>>>>>> Thank you
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Jan 4, 2017 at 6:38 PM, Lorenz Buehmann <
>>>>>>>>>>>> buehm...@informatik.uni-leipzig.de> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>> Hello Rob,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> We are in a group and we discussed it.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> We have three data properties , CryptographyScore,
>>>>>>>>> SoftwareEngineering
>>>>>>>>>>>>>> score and NetworkingScore and we need the maximum of these
>> three
>>>>>>>>> scores
>>>>>>>>>>>>> for
>>>>>>>>>>>>>> a student.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Can we do it like this
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> SELECT ?student (MAX(?score1, ?score2, ?score3) AS ?topScore)
>>>>>>>>>>>>>>
>>>>>>>>>>>>> No, Rob almost showed the solution. It's not allowed and I also
>>>>>> don't
>>>>>>>>>>>>> see why you want to use 3 variables in the MAX function.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Again, we assume that you want to get the maximum score among
>> all
>>>>>>>>>>>>> students for a particular subject!
>>>>>>>>>>>>>
>>>>>>>>>>>>> That means, the query would be (for CryptographyScore here
>> only)
>>>>>>>>>>>>> PREFIX ex: <http://example.com/ns/>
>>>>>>>>>>>>> SELECT (MAX(?score) AS ?topScore)
>>>>>>>>>>>>> WHERE
>>>>>>>>>>>>> {
>>>>>>>>>>>>>   ?student ex:CryptographyScore ?score .
>>>>>>>>>>>>> }
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> You asked the same question on Stackoverflow by the way and I
>>>> told
>>>>>>>>> you
>>>>>>>>>>>>> there to use SPARQL qith aggregate functions. I assume that
>>>> you're
>>>>>> a
>>>>>>>>>>>>> group of CS students, so you should know about SQL which also
>>>>>>>>> supports
>>>>>>>>>>>>> GROUP BY + aggregate functions. The principle is the same.
>>>>>>>>>>>>>> On Wed, Jan 4, 2017 at 5:05 PM, Rob Vesse <
>> rve...@dotnetrdf.org
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> Most likely not
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You seem to be running into the XY problem a lot (
>>>>>>>>>>> http://xyproblem.info
>>>>>>>>>>>>> )
>>>>>>>>>>>>>>> You keep asking how to do things with rules for which rules
>> are
>>>>>> not
>>>>>>>>>>>>> really
>>>>>>>>>>>>>>> designed. And from some of your responses it sounds like the
>>>>>>>>> problems
>>>>>>>>>>>>>>> you’re trying to solve don’t actually need rules at all.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> For example finding the top score for a student would be much
>>>>>> more
>>>>>>>>>>>>> easily
>>>>>>>>>>>>>>> done with a SPARQL query although from what little I have
>> seen
>>>> of
>>>>>>>>> your
>>>>>>>>>>>>> data
>>>>>>>>>>>>>>> model it looks like it would make it even that quite awkward.
>>>>>> But
>>>>>>>>> in
>>>>>>>>>>>>>>> general terms something like the following would work:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> PREFIX ex: <http://example.com/ns/>
>>>>>>>>>>>>>>> SELECT ?student (MAX(?score) AS ?topScore)
>>>>>>>>>>>>>>> WHERE
>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>   ?student ex:score ?score .
>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>> GROUP BY ?student
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Rob
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 04/01/2017 13:25, "javed khan" <javedbtk...@gmail.com>
>>>> wrote:
>>>>>>>>>>>>>>>     Thanks Dave and Lorenz for your response.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     What if we have entered the score for a student in
>>>>>> Cryptography
>>>>>>>>>>> and
>>>>>>>>>>>>>>>     SoftwareEngineering and did not entered for Networking
>>>>>> subject
>>>>>>>>> and
>>>>>>>>>>>>>>> stored
>>>>>>>>>>>>>>>     something like this in our owl file:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Student1
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>      Name: Bob
>>>>>>>>>>>>>>>      CryptographyScore: 60
>>>>>>>>>>>>>>>      SoftwareEngineeringScore: 80
>>>>>>>>>>>>>>>      //NetworkingScore, not mentioned here
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     Then will the above rule fires?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     On Wed, Jan 4, 2017 at 11:35 AM, Lorenz B. <
>>>>>>>>>>>>>>>     buehm...@informatik.uni-leipzig.de> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>     > Inline comments:
>>>>>>>>>>>>>>>     > > I have three subjects marks for a student.
>>>>>>>>>>>>>>>     > >  Cryptography, Networking, Software Engineering with
>>>>>>>>> different
>>>>>>>>>>>>>>> marks for
>>>>>>>>>>>>>>>     > > each student.
>>>>>>>>>>>>>>>     > > I want to calculate in which subject a student got
>>>>>> maximum
>>>>>>>>>>> marks
>>>>>>>>>>>>>>> using
>>>>>>>>>>>>>>>     > Jena
>>>>>>>>>>>>>>>     > > rule and will set that subject as HighScoreSubject of
>>>> the
>>>>>>>>>>>>> student (
>>>>>>>>>>>>>>>     > > HighScoreSubject is data propety) whose values will
>> be
>>>>>> one
>>>>>>>>> of
>>>>>>>>>>>>>>> these three
>>>>>>>>>>>>>>>     > > subjects.
>>>>>>>>>>>>>>>     > >
>>>>>>>>>>>>>>>     > > Is this rule correct to get the required result ( I
>> am
>>>>>>>>> asking
>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>     > because
>>>>>>>>>>>>>>>     > > I am not getting the result required)
>>>>>>>>>>>>>>>     > Without seeing the data, it's always difficult to say
>> if
>>>>>>>>>>>>> something is
>>>>>>>>>>>>>>>     > correct or not. Sample data makes things easier.
>>>>>>>>>>>>>>>     > And without knowing how you apply the rules (in a
>> correct
>>>>>>>>>>> syntax)
>>>>>>>>>>>>>>> it's
>>>>>>>>>>>>>>>     > even harder. That means, it's always good to show the
>>>>>>>>> relevant
>>>>>>>>>>>>> code.
>>>>>>>>>>>>>>>     > >
>>>>>>>>>>>>>>>     > > ?x rdf:type std:Student + ?x std:CryptographyScore
>>>>>> ?score1
>>>>>>>>> +
>>>>>>>>>>> ?x
>>>>>>>>>>>>>>>     > > std:NetworkingScore ?score2 + ?x std:SEScore ?score3
>> +
>>>>>>>>>>>>>>>     > > greaterThan(?score1,?score2), greaterThan(?score1,
>>>>>> ?score3)
>>>>>>>>>>> -->
>>>>>>>>>>>>>>>     > > ?x std:HighScoreSubject std:Cryptography
>>>>>>>>>>>>>>>     > >
>>>>>>>>>>>>>>>     > This rule covers only the case when the score for
>>>>>>>>> Cryptography
>>>>>>>>>>> is
>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>     > highest. If your data doesn't contain a student that
>>>>>> matches
>>>>>>>>> the
>>>>>>>>>>>>>>> rule,
>>>>>>>>>>>>>>>     > nothing will happen.
>>>>>>>>>>>>>>>     >
>>>>>>>>>>>>>>>     >
>>>>>>>>>>>>>>>     > Cheers,
>>>>>>>>>>>>>>>     > Lorenz
>>>>>>>>>>>>>>>     >
>>>>>>>>>>>>>>>     > --
>>>>>>>>>>>>>>>     > 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
>>>>>>>>>
>>>>>>>>>
>>>>>> --
>>>>>> 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
>>
>>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to