Re: PATCH Use Case and Implemented Proposal

On Sun, 2013-09-08 at 19:03 +0100, Andy Seaborne wrote:
> On 08/09/13 16:37, David Wood wrote:
> 
> > On Sep 7, 2013, at 22:39, Sandro Hawke <sandro@w3.org> wrote:
> > > 
> > > On 09/07/2013 09:09 PM, David Wood wrote:
> > > > 
> > > > Callimachus further restricts the SPARQL Update spec such that
> > > > all nodes are connected and all URIs, in the subject position,
> > > > before a '#' (if present), are the same.
> > > 
> > > What's the reasoning behind this?   I've always assumed that a
> > > basic requirement of Patch was that it be able to patch any RDF
> > > graph to any other RDF graph (given enough computing resources).
> > > Is there some other requirement that necessitates this
> > > restriction?
> > 
> > 
> > It seems obvious to me that in the context of a REST API you don't
> > want to be able to allow the addressing of one resource to be be
> > able to be used to update another.  So, security and the making of
> > intention concrete are good reasons.  Another is that this approach
> > is easier to validate against the target URI.
> 
> That makes sense for LDP.
> 
> Does the format allow finding that resource by pattern, not just with
> a URI?
> 
> INSERT { ?this : 123  }
> WHERE { ?this   :InverseFunctionalProperty "key" }
> 

Every term in the subject position must either be a URI or also appear
at least once in an object position. So the above would not be accepted.
However, one could modify a resource identified by a hash URI or blank
node by pattern, so long as the pattern is connected to either the
target URI or one of its hash URIs explicitly.

In the below example, ?core is never identified explicitly, but instead
identified by it's radius within the sun.

INSERT { ?core :density 150 }
WHERE { <sun> :hasMember ?core . ?core :radius 182 }

Regards,
James

> 

Received on Monday, 9 September 2013 04:12:50 UTC