3.1 General3.1.1 LDP-NR creation - SHOULD create an LDP-NR if creation request includes NonRDFSource type Link in headers, regardless of Content-Type headers: Untested
3.1.2 LDP Containers - MUST be able to create LDP Containers: Tested in 3.3
- MUST distinguish between triple types
- MUST return 409 with constrainedBy Link in headers for ldp:contains membership predicate if server cannot distinguish between triple types (Contradictory?)
- MAY permit ldp:contains membership predicate if server can distinguish between triple types
- SHOULD allow Prefer header in request to distinguish triple types if server can distinguish triple types
3.2 HTTP PATCH- MUST be supported on LDP-RSs
- MUST support sparqlupdate
- MAY support other update types
- MUST return 4xx (409), with more info in body and constrainedBy Link in headers when modifying protected resource statements
- MUST return 2xx if successful
3.2.1 Interaction models - MUST return 409 when modifying the interaction model to a type that is not a subtype of the current type (LDP-NR to LDP-RS or opposite?)
3.3 HTTP POST- MUST be supported on LDP Collections
- MUST include default interaction model in constrainedBy Link header (LDP-RS only)
- MUST support creation of LDP-NRs
- MUST create and associate an LDP-RS when an LDP-NR is created
3.3.1 LDP-NRs - MUST return 409 if request Digest header does not match calculated value for content of new LDP-NR
- SHOULD return 400 if request Digest header's type is not supported (Should 'type' be 'algorithm', like the RFC?)
3.4 HTTP PUT- MAY include type Link header in request
- MUST return 409 if request's type Link is not resource's current type or subtype thereof, or not in LDP namespace
- MUST change resource's type if request's type Link is a subtype of resource's current type
- MUST change resource's interaction model if request's type Link has an LDP interaction model
3.4.1 LDP-RSs - MUST be supported on LDP-RSs for non-server-managed triples
- MUST return 4xx (409), with more info in body and constrainedBy Link in headers if request modifies server-managed triples (Are triples different than resource statements?) on a LDP-RS
3.4.2 LDP-NRs - MUST be supported on LDP-NRs to replace binary content
- MUST return 409 if request Digest header does not match calculated value for new content of target LDP-NR
- SHOULD return 400 if request Digest header's type is not supported (Should 'type' be 'algorithm', like the RFC?)
3.4.3 Creating resources with HTTP PUT 3.5 HTTP GET- MUST return describes Link to LDP-NR if request is to associated LDP-RS
3.5.1 Additional values for the Prefer header - MAY support PreferContainedDescriptions URI in Prefer header
- SHOULD support PreferInboundReferences URI in Prefer header
3.5.2 LDP-RSs - MUST return Preference-Applied header if request's Prefer header is honored (Always applied)
3.5.3 LDP-NRs - MUST return Digest header as directed by request's Want-Digest header
3.6 HTTP HEAD- MUST NOT return a body
- SHOULD return same headers as if the request was a GET
- MUST return a Digest header if the same request as a GET would have
- MAY omit payload headers from response
3.7 HTTP DELETE- MAY be supported
3.7.1 Depth header - MUST support a Depth header in the request, if DELETE is implemented
- MAY support only certain Depth header values: (How to query?)
- MUST return 400 if request includes Depth header and unsupported Depth header value: (How to query?)
- MUST use LDP containment relations for recursive deletion, if recursive deletion is supported: (How to query?)
3.8 External Binary Content- MUST return message/external-body in Accept-Post header (for each supported access-type param of supported Content-Types) if external binary content is supported (In response to what?)
- MUST return 415 for LDP-NR create or update if request has message/external-body and an unsupported access-type, or if external binary content is not supported
- MUST NOT accept request (return 4xx???) for LDP-NR create or update if request has message/external-body and the server cannot return all the required response headers
- SHOULD return a Content-Location header for LDP-NR GET or HEAD (read? to match create or update above) with a URI to the content if the server is proxying: (How to query for proxying?)
- MAY support an expiration parameter (for LDP-NR create or update?) if the request has a message/external-body Content-Type header
- SHOULD copy content (for LDP-NR create or update?) if the request has a message/external-body Content-Type header and the expiration parameter is set
- MUST return 4xx or 5xx (for LDP-NR create or update?) if the request has a message/external-body Content-Type header and the expiration parameter cannot be accommodated
- MUST return a contrainedBy Link header (for LDP-NR create or update?) if the response status is 4xx: Tested in 3.2 and 3.3
3.8.1 Referenced RDF content in mandataory LDP serializations 3.8.2 Proxied content vs. redirected content |