- From: David Wood <david@3roundstones.com>
- Date: Mon, 9 Sep 2013 10:51:44 -0400
- To: James Leigh <james@3roundstones.com>
- Cc: Andy Seaborne <andy@apache.org>, public-ldp-patch@w3.org
- Message-Id: <F433C13E-7081-4742-91AD-541346A8861C@3roundstones.com>
On Sep 9, 2013, at 24:12, James Leigh <james@3roundstones.com> wrote: > 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. Thanks, James. Andy, a Callimachus template is processed on the server side and binds ?this to the currently requested URI. In that context, your query would work. However, issuing a query directly to the REST API that includes ?this does not bind that variable so it won't satisfy the requirement that every subject term is a URI. It would be possible to implement the processing of ?this into the requested URI at request time, but we haven't done it. Regards, Dave -- http://about.me/david_wood > > 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 > >> > > >
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Monday, 9 September 2013 14:52:13 UTC