Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Authoritative Contained Resource Data #352

Merged
merged 24 commits into from
Dec 15, 2021
Merged
Changes from 4 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f07d1ee
Add dc-terms iana-media-types to References
csarven Nov 17, 2021
de6eb1c
Add definition for authoritative-information
csarven Nov 17, 2021
0d10299
Add dcterms and stat to namespaces
csarven Nov 17, 2021
2e70f8f
Add section on Authoritative Resource Data
csarven Nov 17, 2021
294245e
Add reference to RFC 6570
csarven Nov 23, 2021
5ea32a4
Update authoritative resource type. Refer to RFC 6570
csarven Nov 23, 2021
630861c
Minor
csarven Nov 23, 2021
c0d8d4c
Update inapplicable condition and logically-part-of note
csarven Nov 23, 2021
91a77cb
Minor
csarven Nov 23, 2021
f599dd5
Update authoritative-resource-data-considerations
csarven Dec 3, 2021
4734bbf
Mention date as part of dcterms:modified
csarven Dec 3, 2021
98d2db4
Remove advisement on omitting data from unauthorized agents
csarven Dec 3, 2021
4eaf345
Add determining server-container-last-modified
csarven Dec 3, 2021
f2c8c8b
Remove contained-resource-state-cascading in favour of server-contain…
csarven Dec 3, 2021
30eee02
Add dcterms-modified-corresponds-last-modified
csarven Dec 3, 2021
1727bb8
Use resource-metadata instead of authoritative-information
csarven Dec 5, 2021
64d4841
Minor
csarven Dec 5, 2021
0b6db97
Add contained-resource-metadata-statements as Collection
csarven Dec 5, 2021
64e3738
Update protocol.html
csarven Dec 5, 2021
a1222a2
Update protocol.html
csarven Dec 5, 2021
746520d
Constrain server-container-last-modified. Add container-last-modified…
csarven Dec 15, 2021
c33e386
Minor
csarven Dec 15, 2021
4ebdc4d
Merge branch 'main' into feature/authoritative-contained-resource-data
csarven Dec 15, 2021
29b7094
Use 'SHOULD, unless' for server-contained-resource-metadata
csarven Dec 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 54 additions & 1 deletion protocol.html
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ <h3 property="schema:name skos:prefLabel">Terminology</h3>

<p property="skos:definition">The Solid Protocol specification defines the following terms. These terms are referenced throughout this specification.</p>

<span rel="skos:hasTopConcept"><span resource="#data-pod"></span><span resource="#solid-app"></span><span resource="#uri"></span><span resource="#resource"></span><span resource="#container-resource"></span><span resource="#root-container"></span><span resource="#agent"></span><span resource="#owner"></span><span resource="#origin"></span><span resource="#read-operation"></span><span resource="#write-operation"></span><span resource="#append-operation"></span></span>
<span rel="skos:hasTopConcept"><span resource="#data-pod"></span><span resource="#solid-app"></span><span resource="#uri"></span><span resource="#resource"></span><span resource="#container-resource"></span><span resource="#root-container"></span><span resource="#authoritative-information"></span><span resource="#agent"></span><span resource="#owner"></span><span resource="#origin"></span><span resource="#read-operation"></span><span resource="#write-operation"></span><span resource="#append-operation"></span></span>

<dl>
<dt about="#data-pod" property="skos:prefLabel" typeof="skos:Concept"><dfn id="data-pod">data pod</dfn></dt>
Expand All @@ -369,6 +369,9 @@ <h3 property="schema:name skos:prefLabel">Terminology</h3>
<dt about="#root-container" property="skos:prefLabel" typeof="skos:Concept"><dfn id="root-container">root container</dfn></dt>
<dd about="#root-container" property="skos:definition">A root container is a container resource that is at the highest level of the collection hierarchy.</dd>

<dt about="#authoritative-information" property="skos:prefLabel" typeof="skos:Concept"><dfn id="authoritative-information">authoritative information</dfn></dt>
<dd about="#authoritative-information" property="skos:definition">Authoritative information encompasses data about resources described by means of RDF statements [<cite><a class="bibref" href="#bib-rdf11-concepts">RDF11-CONCEPTS</a></cite>] supplied by clients, servers, and intermediaries</dd>
csarven marked this conversation as resolved.
Show resolved Hide resolved

<dt about="#agent" property="skos:prefLabel" typeof="skos:Concept"><dfn id="agent">agent</dfn></dt>
<dd about="#agent" property="skos:definition">An agent is a person, social entity, or software identified by a URI; e.g., a WebID denotes an agent [<cite><a class="bibref" href="#bib-webid">WEBID</a></cite>].</dd>

Expand Down Expand Up @@ -428,6 +431,16 @@ <h3 property="schema:name">Namespaces</h3>
<td>http://www.w3.org/ns/auth/acl#</td>
<td>ACL Ontology</td>
</tr>
<tr>
<td>dcterms</td>
<td>http://purl.org/dc/terms/</td>
<td>[<cite><a class="bibref" href="#bib-dc-terms">DC-TERMS</a></cite>]</td>
</tr>
<tr>
<td>stat</td>
<td>http://www.w3.org/ns/posix/stat</td>
<td>POSIX File Status</td>
</tr>
</tbody>
</table>
</div>
Expand Down Expand Up @@ -559,6 +572,40 @@ <h3 property="schema:name">Resource Containment</h3>
<p id="server-hierarchical-containment">There is a 1-1 correspondence between containment triples and relative reference within the path name hierarchy. [<a href="https://github.com/solid/specification/issues/98#issuecomment-547506617" rel="cito:citesAsSourceDocument">Source</a>]. It follows that all resources are discoverable from a container and that it is not possible to create orphan resources. [<a href="https://github.com/solid/specification/issues/97#issuecomment-547459396" rel="cito:citesAsSourceDocument">Source</a>]</p>

<p><span about="" id="server-basic-container" rel="spec:requirement" resource="#server-basic-container"><span property="spec:statement">The representation and behaviour of containers in Solid corresponds to LDP Basic Container and <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> be supported by <span rel="spec:requirementSubject" resource="spec:Server">server</span>.</span></span> [<a href="https://github.com/solid/specification/issues/47#issuecomment-561675764" rel="cito:citesAsSourceDocument">Source</a>]</p>

<section id="authoritative-resource-data" inlist="" rel="schema:hasPart" resource="#authoritative-resource-data">
<h4 property="schema:name">Authoritative Resource Data</h4>
<div datatype="rdf:HTML" property="schema:description">
<p>Container descriptions are not limited to containment triples. To further support client navigation and application interaction, servers can include <a href="#authoritative-information">authoritative information</a> about contained resources as part of the container description.</p>

<p><span about="" id="authoritative-contained-resource-data" rel="spec:requirement" resource="authoritative-contained-resource-data"><span property="spec:statement"><span rel="spec:requirementSubject" resource="spec:Server">Servers</span> <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> include the following information about contained resources as part of the container description, unless that information does not exist or is expensive to determine:</span></span></p>
csarven marked this conversation as resolved.
Show resolved Hide resolved

<dl>
<dt><code>rdf:type</code></dt>
<dd>A class whose URI formed by concatenating <code>http://www.w3.org/ns/iana/media-types/</code>, the IANA Media Type [<cite><a class="bibref" href="#bib-iana-media-types">IANA-MEDIA-TYPES</a></cite>] of the resource, and <code>#Resource</code>.</dd>
csarven marked this conversation as resolved.
Show resolved Hide resolved
<dt><code>stat:size</code></dt>
<dd>A non-negative integer giving the size of the resource in bytes.</dd>
<dt><code>dcterms:modified</code></dt>
<dd>The time when the resource was last modified.</dd>
<dt><code>stat:mtime</code></dt>
<dd>The Unix time when the resource was last modified.</dd>
csarven marked this conversation as resolved.
Show resolved Hide resolved
</dl>
RubenVerborgh marked this conversation as resolved.
Show resolved Hide resolved

<div class="note" id="authoritative-resource-data-logically-part-of-container-description" inlist="" rel="schema:hasPart" resource="#authoritative-resource-data-logically-part-of-container-description">
<h5 property="schema:name"><span>Note</span>: Authoritative Resource Data Logically Part of Container Description</h5>
<div datatype="rdf:HTML" property="schema:description">
<p>Authoritative data about contained resources is logically part of the container. Servers are encouraged to consider omitting authoritative data about a contained resource when agent is unauthorized to read the contained resource.</p>
csarven marked this conversation as resolved.
Show resolved Hide resolved
</div>
</div>

<p><span about="" id="contained-resource-state-cascading" rel="spec:requirement" resource="#contained-resource-state-cascading"><span property="spec:statement">When the state of a contained resource changes, the <span rel="spec:requirementSubject" resource="spec:Server">servers</span> <span rel="spec:requirementLevel" resource="spec:MUST-NOT">MUST NOT</span> expose any authoritative information that has a cascading potential to its immediate container.</span></span></p>
csarven marked this conversation as resolved.
Show resolved Hide resolved

<p>Authoritative data about contained resources is <a href="#server-protect-authoritative-resource-data">protected by the server</a>.</p>

<p>[<a href="https://github.com/solid/specification/issues/227" rel="cito:citesAsSourceDocument">Source</a>]
[<a href="https://github.com/solid/specification/issues/343" rel="cito:citesAsSourceDocument">Source</a>]</p>
</div>
</section>
</div>
</section>

Expand Down Expand Up @@ -708,6 +755,8 @@ <h3 property="schema:name">Writing Resources</h3>

<p><span about="" id="server-protect-containment" rel="spec:requirement" resource="#server-protect-containment"><span property="spec:statement"><span rel="spec:requirementSubject" resource="spec:Server">Servers</span> <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> NOT allow HTTP <code>POST</code>, <code>PUT</code> and <code>PATCH</code> to update a container’s containment triples; if the server receives such a request, it <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> respond with a <code>409</code> status code.</span></span> [<a href="https://github.com/solid/specification/issues/40#issuecomment-573358652" rel="cito:citesAsSourceDocument">Source</a>]</p>

<p><span about="" id="server-protect-authoritative-resource-data" rel="spec:requirement" resource="#server-protect-authoritative-resource-data"><span property="spec:statement"><span rel="spec:requirementSubject" resource="spec:Server">Servers</span> <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> NOT allow HTTP <code>POST</code>, <code>PUT</code> and <code>PATCH</code> to update the <a href="#authoritative-resource-data">authoritative resource data</a>; if the server receives such a request, it MUST respond with a <code>409</code> status code.</span></span> [<a href="https://github.com/solid/specification/issues/227#issuecomment-919312592" rel="cito:citesAsSourceDocument">Source</a>]</p>
csarven marked this conversation as resolved.
Show resolved Hide resolved

<div class="note" id="conditional-update" inlist="" rel="schema:hasPart" resource="#conditional-update">
<h4 property="schema:name"><span>Note</span>: Conditional Update</h4>
<div datatype="rdf:HTML" property="schema:description">
Expand Down Expand Up @@ -1052,8 +1101,12 @@ <h2 property="schema:name">References</h2>
<h3 property="schema:name">Normative References</h3>
<div datatype="rdf:HTML" property="schema:description">
<dl class="bibliography" resource="">
<dt id="bib-dc-terms">[DC-TERMS]</dt>
<dd><a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/" rel="cito:citesAsAuthority"><cite>Dublin Core Metadata Terms, version 1.1</cite></a>. DCMI Usage Board. DCMI. 11 October 2010. DCMI Recommendation. URL: <a href="http://dublincore.org/documents/2010/10/11/dcmi-terms/">http://dublincore.org/documents/2010/10/11/dcmi-terms/</a></dd>
<dt id="bib-fetch">[FETCH]</dt>
<dd><a href="https://fetch.spec.whatwg.org/" rel="cito:citesAsAuthority"><cite>Fetch Standard</cite></a>. Anne van Kesteren. WHATWG. Living Standard. URL: <a href="https://fetch.spec.whatwg.org/">https://fetch.spec.whatwg.org/</a></dd>
<dt id="bib-iana-media-types">[IANA-MEDIA-TYPES]</dt>
<dd><a href="https://www.iana.org/assignments/media-types/" rel="cito:citesAsAuthority"><cite>Media Types</cite></a>. IANA. URL: <a href="https://www.iana.org/assignments/media-types/">https://www.iana.org/assignments/media-types/</a></dd>
<dt id="bib-json-ld11">[JSON-LD11]</dt>
<dd><a href="https://www.w3.org/TR/json-ld11/" rel="cito:citesAsAuthority"><cite>JSON-LD 1.1</cite></a>. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: <a href="https://www.w3.org/TR/json-ld11/">https://www.w3.org/TR/json-ld11/</a></dd>
<dt id="bib-ldn">[LDN]</dt>
Expand Down