Legend
- Untested
- Tested, working
- Tested, not working
- Needs review
Environment
- Version of Fedora: 6034a73
- Version of Fedora Specification: e6fc281
- Version of script: 9d20fad (repo here: https://github.com/rotated8/fedora-spec-testing)
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 (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
- 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 (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
- Non-normative section
3.8.2 Proxied content vs. redirected content
- Non-normative section