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.
>>>>>>

Reply via email to