Fedora's alignment with each category of the Fedora API Specification needs to be verified for completeness and correctness. Below is a listing of the specification categories, the person/people taking the lead on ensuring alignment, and the current status of alignment.
Legend
Environment
- Version of Fedora: 6034a73
- Version of Fedora Specification: e6fc281
- Version of script: 9d20fad (repo and usage here: https://github.com/rotated8/fedora-spec-testing)
...
3 Resource Management
Lead
Expand |
---|
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 |
4 Versioning
Leads
5 Resource Authorization
Leads
6 Notifications
Lead
7 Binary Resource Fixity
Lead