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