- From: Sergio Fernández <sergio.fernandez@salzburgresearch.at>
- Date: Mon, 04 Feb 2013 09:35:21 +0100
- To: Raúl García Castro <rgarcia@fi.upm.es>
- CC: Henry Story <henry.story@bblfish.net>, "Linked Data Platform (LDP) Working Group" <public-ldp-wg@w3.org>
Hi,
On 30/01/13 18:30, Sergio Fernández wrote:
> On 30/01/13 09:17, Raúl García Castro wrote:
>> .- To include in 4.4.1 the following statement:
>> [[
>> However, BPR servers MAY ignore server-managed properties.
>> ]]
>>
>> One example of the need for this second statement is the following: I
>> upload a photo to flickr and later I try to update this photo saying
>> that the owner is another person. flickr business logic won't allow me
>> to do that.
>
> I see the use case. Let me think about it, and I'll come back with a
> more detailed proposal for sec. 4.4.1.
Based on what we discussed Raúl and me, here my proposal to replace the
current text at Section 4.4.1 [1]:
[[
If HTTP PUT is performed on an existing resource, LDPR servers must
replace the entire persistent state of the identified resource with the
entity representation in the body of the request. However, the only
recognized exception is that LDPR servers MAY ignore server-managed
properties under the normative ldp namespace. Any LDPR servers that wish
to support a more sophisticated merge of data provided by the client
with existing state stored on the server for a resource must use HTTP
PATCH, not HTTP PUT.
]]
Additionally, from my experience experimenting with this [2] and my
experimental implementation in Apache Marmotta, I'd like to ask about
the RDF payload in LDPx: do you plan to specify some constraints there?
I mean, common REST APIs usually define flat data structures for it; but
handle RDF is much more complex.
For instance, taking this request as example:
PUT /foo/bar
Host: example.org
Content-Length: x
Content-Type: text/turtle; charset=UTF-8
Handle payload like this:
@prefix ex: <http://example.org/ns#> .
:subject ex:prop "value" .
would be easy, because the server just needs to digest the data to get:
<http://example.org/foo/bar> ex:prop "value" .
But, what happens in the case where a named entity (with its URI) comes
at the body of the requests? Moreover, how to handle when several
entities are pushed to a single LDPR?
Use request's URI as base for parsing the body could be a valid approach
for PUT operations over LDPCs (Section 5.5 [3]), but IMO not enough for
LDPRs. So, at the end, there is a process to identify the subject of the
payload. And that's something that I missed in the current spec.
Cheers,
[1] https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#ldpr-4_4_1
[2]
http://code.google.com/p/djubby/wiki/ReadWriteLinkedData#RDF_payload_translation
[2] https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#http-put-1
--
Sergio Fernández
Salzburg Research
+43 662 2288 318
Jakob-Haringer Strasse 5/II
A-5020 Salzburg (Austria)
http://www.salzburgresearch.at
Received on Monday, 4 February 2013 08:36:12 UTC