- 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