Re: ldp-ISSUE-11 (Server-managed properties): Do we need to define server-managed properties or do we leave them to applications? [Linked Data Platform core]

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