Thanks Andy! I guess then it may be somewhere in my implementation (since I 
implement OpExecutor interface)
That SELECT query will return ?old and ?new are referring to a same node.

________________________________________
From: Andy Seaborne <[email protected]>
Sent: Wednesday, March 16, 2016 11:45 AM
To: [email protected]
Subject: Re: delete insert where

Works for me.

What's SELECT * {
     ?new rdf:m "blah" .
     OPTIONAL
     {
       ?old rdf:b rdf:thing .
     }
}

On 16/03/16 15:18, Zen 98052 wrote:
> Hi,
>
> I am trying to understand how DELETE/INSERT WHERE query is working since I 
> see unexpected behavior.
>
> According to http://www.w3.org/TR/sparql11-update/#deleteInsert, the DELETE 
> will be executed before INSERT.
>
> In this simple Sparql query for example:
>
> DELETE
>
> {
>
>    ?old rdf:b rdf:thing .
>
> }
>
> INSERT
>
> {
>
>    ?new rdf:b rdf:thing .
>
> }
>
> WHERE
>
> {
>
>    ?new rdf:m "blah" .
>
>    OPTIONAL
>
>    {
>
>      ?old rdf:b rdf:thing .
>
>    }
>
> }
>
>
> Let say ?new and ?old are referring to same node, then what I see is triple 
> ?new rdf:b rdf:thing (in INSERT section above) never got added.
>
> I'd expect it first deletes that triple, and then add it back. Did I miss 
> something here?
>
>
>
> Thanks,
>
> Z
>

Reply via email to