- 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