yep, that's what I wanted to add - for pagination this returns a subset which you would have to sort in the client code then.
On 23.12.20 09:27, Martynas Jusevičius wrote: > Using OFFSET/LIMIT, that is. > > On Wed, Dec 23, 2020 at 9:24 AM Martynas Jusevičius > <[email protected]> wrote: >> True, but at least you get the right "window" of solutions, of which >> the triples are then unordered. >> >> On Wed, Dec 23, 2020 at 9:16 AM Lorenz Buehmann >> <[email protected]> wrote: >>> Given that CONSTRUCT returns a *set of triples*, I doubt that the >>> ordering will be preserved. At least it doesn't has to be preserved >>> according to the SPARQL standard. >>> >>> Indeed, you might get lucky but this is basically implementation specific >>> >>> On 23.12.20 08:21, Martynas Jusevičius wrote: >>>> If ordering is required, you can use a sub-SELECT in CONSTRUCT: >>>> >>>> CONSTRUCT >>>> { >>>> ?person :LastName ?LastName; :FirstName ?FirstName; :Address ?Address . >>>> ?Address :Street ?Street; :City ?City; :State ?State; :Zip ?Zip >>>> } >>>> { >>>> { >>>> SELECT ?person ?LastName ?FirstName ?Street ?City ?State ?Zip >>>> WHERE >>>> { >>>> ?person :LastName ?LastName; :FirstName ?FirstName; >>>> :Address ?Address . >>>> ?Address :Street ?Street; :City ?City; :State ?State; :Zip ?Zip >>>> } >>>> } >>>> ORDER BY ?LastName ?FirstName >>>> } >>>> >>>> On Tue, Dec 22, 2020 at 5:02 PM Erich Bremer <[email protected]> wrote: >>>>> The construct will give me the raw data, but the select will give me >>>>> distinct solutions (assuming I have DISTINCT specified) and even order >>>>> them >>>>> for me in various ways. My use case would be a grid that when I want to >>>>> trigger an edit of a particular address displayed. If I could access the >>>>> triple pattern to that specific QuerySolution, I could then construct a >>>>> sparql update query to modify said entry as I could get the complete >>>>> triple >>>>> associated with a particular city value. I could include a variable in >>>>> the >>>>> select for the address, however, then it leaves the coder to keep track of >>>>> what is what out of the variables. It doesn't seem like QuerySolution or >>>>> ResultSet exposes that information, but I would think that information is >>>>> buried somewhere below. - Erich >>>>> >>>>> On Tue, Dec 22, 2020 at 9:19 AM Nouwt, B. (Barry) >>>>> <[email protected]> wrote: >>>>> >>>>>> I agree with Lorenz that you probably want to look at SPARQL CONSTRUCT >>>>>> and >>>>>> more specifically CONSTRUCT *WHERE* ( >>>>>> https://www.w3.org/TR/sparql11-query/#constructWhere). >>>>>> >>>>>> Your query would become: >>>>>> >>>>>> CONSTRUCT WHERE { >>>>>> ?person :LastName; :FirstName ?FirstName; :Address ?Address . >>>>>> ?Address :Street ?Street; :City ?City; :State ?State; :Zip ?Zip >>>>>> } >>>>>> >>>>>> -----Original Message----- >>>>>> From: Lorenz Buehmann <[email protected]> >>>>>> Sent: dinsdag 22 december 2020 14:49 >>>>>> To: [email protected] >>>>>> Subject: Re: Returning a Triple from a QuerySolution for each Solution >>>>>> Variable >>>>>> >>>>>> Not sure if I understand your question, but should you just use SPARQL >>>>>> CONSTRUCT queries if you want to get triples? >>>>>> >>>>>> On 22.12.20 14:34, Erich Bremer wrote: >>>>>>> After executing a select statement like: >>>>>>> >>>>>>> select ?person ?LastName ?FirstName ?Street ?City ?State ?Zip where >>>>>>> {?person :LastName; :FirstName ?FirstName; :Address ?Address . >>>>>>> ?Address :Street ?Street; :City ?City; :State >>>>>>> ?State; :Zip ?Zip} >>>>>>> >>>>>>> and iterating through the ResultSet I can get (each person can have >>>>>>> multiple addresses linked via a blank node): >>>>>>> <person1> "Smith" "John" "3 RDF Road" "Semantic" "New York" "12345" >>>>>>> <person1> "Smith" "John" "22 Linked Lane" "Data City" "New York" "22113" >>>>>>> >>>>>>> Is there any way to get the underlying TriplePaths (defined in the >>>>>>> where clause of the Select) for each QuerySolution as I iterate >>>>>>> through the ResultSet, something like: >>>>>>> >>>>>>> qs.getTriple("City") ; >>>>>>> <_:b1> :City "Semantic" . >>>>>>> qs = rs.next(); >>>>>>> qs.getTriple("City"); >>>>>>> <_:b2> :City "Data City" . >>>>>>> >>>>>>> or possibly even iterators of Triples since each solution variable >>>>>>> could be part of multiple TriplePaths. >>>>>>> >>>>>>> - Erich >>>>>>> >>>>>> This message may contain information that is not intended for you. If you >>>>>> are not the addressee or if this message was sent to you by mistake, you >>>>>> are requested to inform the sender and delete the message. TNO accepts no >>>>>> liability for the content of this e-mail, for the manner in which you use >>>>>> it and for damage of any kind resulting from the risks inherent to the >>>>>> electronic transmission of messages. >>>>>>
