diff --git a/protocol.html b/protocol.html index f9cdd114..ad629b10 100644 --- a/protocol.html +++ b/protocol.html @@ -161,7 +161,7 @@

Solid Protocol

-

Editor’s Draft, 2021-12-14

+

Editor’s Draft, 2021-12-15

This version
@@ -192,7 +192,7 @@

Editor’s Draft, 2021-12-14

Modified
-
+
@@ -350,7 +350,7 @@

Terminology

The Solid Protocol specification defines the following terms. These terms are referenced throughout this specification.

- +
data pod
@@ -371,6 +371,9 @@

Terminology

root container
A root container is a container resource that is at the highest level of the collection hierarchy.
+
resource metadata
+
Resource metadata encompasses data about resources described by means of RDF statements [RDF11-CONCEPTS].
+
agent
An agent is a person, social entity, or software identified by a URI; e.g., a WebID denotes an agent [WEBID].
@@ -430,6 +433,16 @@

Namespaces

http://www.w3.org/ns/auth/acl# ACL Ontology + + dcterms + http://purl.org/dc/terms/ + [DC-TERMS] + + + stat + http://www.w3.org/ns/posix/stat + POSIX File Status + @@ -561,6 +574,51 @@

Resource Containment

There is a 1-1 correspondence between containment triples and relative reference within the path name hierarchy. [Source]. It follows that all resources are discoverable from a container and that it is not possible to create orphan resources. [Source]

The representation and behaviour of containers in Solid corresponds to LDP Basic Container and MUST be supported by server. [Source]

+ +

Servers can determine the value of the HTTP Last-Modified header field in response to HEAD and GET requests targeting a container based on changes to containment triples.

+ +
+

Note: Container Last-Modified Comparison

+
+

The Last-Modified of a container will not change when other parts of the container changes. This is to avoid instant propagation of changes all the way to the root container. As Last-Modified cannot be reliably used to check whether the container representation has changed in any way. In future versions of this specification, this design may be revisited.

+
+
+ +
+

Contained Resource Metadata

+
+

Container descriptions are not limited to containment triples. To further support client navigation and application interaction, servers can include resource metadata about contained resources as part of the container description, as described below.

+ +

Servers SHOULD include resource metadata about contained resources as part of the container description, unless that information is inapplicable to the server.

+ +

Contained resource metadata statements include the properties:

+ +
+
rdf:type
+
A class whose URI is the expansion of the URI Template [RFC6570] http://www.w3.org/ns/iana/media-types/{+iana-media-type}#Resource, where iana-media-type corresponds to a value from the IANA Media Types [IANA-MEDIA-TYPES].
+
stat:size
+
A non-negative integer giving the size of the resource in bytes.
+
dcterms:modified
+
The date and time when the resource was last modified.
+
stat:mtime
+
The Unix time when the resource was last modified.
+
+ +

The dcterms:modified value of a contained resource corresponds with the Last-Modified header value of the contained resource. If one were to perform HEAD or GET requests on the URI of the contained resource at the time of the HTTP message’s generation, then a response with the 200 status code including the Last-Modified header would indicate the same date and time.

+ +
+
Note: Contained Resource Metadata Considerations
+
+

The generation of contained resource metadata may be inapplicable to some servers, for example, when that information does not exist or is expensive to determine.

+
+
+ +

Contained resource metadata is protected by the server.

+ +

[Source] + [Source] [Source]

+
+
@@ -710,6 +768,8 @@

Writing Resources

Servers MUST NOT allow HTTP PUT or PATCH on a container to update its containment triples; if the server receives such a request, it MUST respond with a 409 status code. [Source]

+

Servers MUST NOT allow HTTP POST, PUT and PATCH to update a container’s resource metadata statements; if the server receives such a request, it MUST respond with a 409 status code. [Source]

+

Note: Conditional Update

@@ -1054,8 +1114,12 @@

References

Normative References

+
[DC-TERMS]
+
Dublin Core Metadata Terms, version 1.1. DCMI Usage Board. DCMI. 11 October 2010. DCMI Recommendation. URL: http://dublincore.org/documents/2010/10/11/dcmi-terms/
[FETCH]
Fetch Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://fetch.spec.whatwg.org/
+
[IANA-MEDIA-TYPES]
+
Media Types. IANA. URL: https://www.iana.org/assignments/media-types/
[JSON-LD11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11/
[LDN]
@@ -1080,6 +1144,7 @@

Normative References

The Web Origin Concept. A. Barth. IETF. December 2011. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc6454
[RFC6455]
The WebSocket Protocol. I. Fette; A. Melnikov. IETF. December 2011. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc6455
+
[RFC6570]
URI Template. J. Gregorio; R. Fielding; M. Hadley; M. Nottingham; D. Orchard. IETF. March 2012. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc6570
[RFC6892]
The 'describes' Link Relation Type. E. Wilde. IETF. March 2013. Informational. URL: https://datatracker.ietf.org/doc/html/rfc6892
[RFC7230]