Server behaviour on PUT

Dear all,

[[
4.4.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.
]]

Currently there are no restrictions on the representation of resources 
allowed by a server. Therefore, an LDPR representation submitted by a 
client may include properties that will be ignored by the server and 
properties that will not be ignored by the server. Besides, the LDPR 
representation provided by a server may include properties submitted by 
the client and properties not managed by the client (e.g., timestamp). 
Right now it may happen that all the properties in the client 
representation are ignored and the server representation includes only 
server managed properties (i.e., the specification does not restrict this).

In summary, when a client updates a resource anything can happen. E.g., 
the server may ignore every property stated by the client. However, the 
specification seems to indicate the contrary, that all the properties 
exposed for an LDPR can be freely updated by a client.

While this can be the case for vanilla LDP servers, which don’t take 
into account the contents of resources, it does not hold for 
domain-dependent LDP servers that expose data for whom specific 
restrictions apply, i.e., certain properties are not under the control 
of the client.

At the same time, this MUST clause does not align with what is said in 
the next MAY clause on the same point, which asserts that LDP servers 
can ignore server managed properties.

A collateral effect in terms of testing is that, since LDP servers are 
not forced a minimum behaviour on PUT, no data validation is possible 
(e.g., we can only check that a different ETag is returned on the 
updated resource).

Proposal:

Rewrite clause 4.4.1 making clear that only the part of the LDPR state 
that is under the control of the client will be updated with the 
contents of the representation, and that it is the responsibility of the 
LDP server to define which parts of the representation are under its 
control.

Kind regards,

-- 

Dr. Raúl García Castro
http://delicias.dia.fi.upm.es/~rgarcia/

Ontology Engineering Group
Departamento de Inteligencia Artificial
Universidad Politécnica de Madrid
Campus de Montegancedo, s/n - Boadilla del Monte - 28660 Madrid
Phone: +34 91 336 36 70 - Fax: +34 91 352 48 19

Received on Thursday, 16 May 2013 14:22:04 UTC