Legend
- Untested
- Tested, working
- Tested, not working
Environment
- Version of Fedora: <git-hash>
- Version of Fedora Specification: <git-hash>
- Version of script: <git-hash>
3 Resource Management
3.1 General
- Empty section
3.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
- 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
- Non-normative section
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
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
- Non-normative section
3.8.2 Proxied content vs. redirected content
- Non-normative section