Re: LDPR Interaction Model on Create

Hi,

On 10/09/2014 09:10 AM, Steve Speicher wrote:
> Hi,
> 
> Thanks,
> Steve Speicher
> http://stevespeicher.me
> 
> On Tue, Oct 7, 2014 at 3:48 PM, James Leigh <james@3roundstones.com> wrote:
> 
>> Hello,
>>
>> Section 5.2.3.4 (copied below) could use some more explanation. In
>> particular the first bullet point is not clear. The example given is
>> when the created content contains an rdf:type triple indicating a type
>> of LDPC, but specifies a LDPR interaction model.
>>
>> Given section 5.2.1.1 (each LDPC MUST also be a conforming LDPRS) and
>> section 4.3.11 (each LDPRS MUST also be a conforming LDPR), I don't
>> understand under what conditions a LDPC could NOT also be a LDPR
>> interaction model.
>>
>> Furthermore given the LDP schema, I would expect a POST to a container
>> with a Link:<http://www.w3.org/ns/ldp#Resource>;rel="type" that created
>> a LDPC member to be successful, since ldp:Container rdfs:subClassOf+
>> ldp:Resource and with RDFS entailment all ldp:Container members are also
>> ldp:Resource members.
>>
> 
> Perhaps it could be clarified that specifying the "interaction model" on
> creation of the resource using
> Link:<http://www.w3.org/ns/ldp#Resource>;rel="type",
> that the created resource will ONLY have LDPR interaction model and not
> LDPC (ie containment and membership triples will not be affected by POSTing
> to it or DELETE'ing any of the member resources) even though the entity
> body may have a triple where rdf:type of ldp:Container [1].

I also have a small comment that I've been meaning to send regarding the
interaction model.

5.2.3.4 states that "Clients use the same syntax, that is HTTP Link
headers, to specify the desired interaction model when creating a
resource as servers use to advertise it on responses."

I noticed that in the primer, the POST request to an LDP-BC does not
contain a link header expressing the type of the resource to be created.
That also seems to be the behaviour of test suite. However, the POST
request to an LDP-DC *contains* the Link header Link:
<http://www.w3.org/ns/ldp#Resource>; rel="type", while *none* of the
examples in the LDP spec show a Link header being sent with POST requests.

Is there any reason for this behaviour? I would expect that clients
would normally send a Link header with the type of resource to be
created with every POST request. The way it is now, a person
implementing the spec will assume that by default, a POST request will
only create LDPRs (maybe that was intended but it never got documented?).

Oh, and one more comment -- the LDP spec does not contain any examples
covering the creation of containers.

In conclusion, going through the spec again, I have the feeling that it
is heavily oriented/documented towards "read" operations where "write"
operations look more like an afterthought.

-- Andrei


> 
> - Steve
> 
> [1]: http://lists.w3.org/Archives/Public/public-ldp/2014Oct/0002.html
> 
> 
>>
>> Regards,
>> James Leigh
>> ---
>> http://www.w3.org/TR/ldp/#h5_ldpc-post-createrdf
>>
>> 5.2.3.4 LDP servers that successfully create a resource from a RDF
>> representation in the request entity body MUST honor the client's
>> requested interaction model(s). If any requested interaction model
>> cannot be honored, the server MUST fail the request.\
>>
>>       * If the request header specifies a LDPR interaction model, then
>>         the server MUST handle subsequent requests to the newly created
>>         resource's URI as if it is a LDPR (even if the content contains
>>         an rdf:type triple indicating a type of LDPC).
>>       * If the request header specifies a LDPC interaction model, then
>>         the server MUST handle subsequent requests to the newly created
>>         resource's URI as if it is a LDPC.
>>       * This specification does not constrain the server's behavior in
>>         other cases.
>>
>>     Clients use the same syntax, that is HTTP Link headers, to specify
>> the desired interaction model when creating a resource as servers use to
>> advertise it on responses.
>>
>>     Note: A consequence of this is that LDPCs can be used to create
>> LDPCs, if the server supports doing so.
>>
>>
>>
>>
>>
> 

Received on Thursday, 9 October 2014 14:10:27 UTC