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

Add section describing the the relationship between Solid Protocol and LDP #539

Merged
merged 3 commits into from
Jul 14, 2023
Merged
Changes from all commits
Commits
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
30 changes: 30 additions & 0 deletions ED/protocol.html
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,7 @@ <h2 id="table-of-contents">Table of Contents</h2>
<li><a href="#terminology"><span class="secno">1.1</span> <span class="content">Terminology</span></a></li>
<li><a href="#namespaces"><span class="secno">1.2</span> <span class="content">Namespaces</span></a></li>
<li><a href="#conformance"><span class="secno">1.3</span> <span class="content">Conformance</span></a></li>
<li><a href="#relations"><span class="secno">1.4</span> <span class="content">Relations</span></a></li>
</ol>
</li>
<li class="tocline">
Expand Down Expand Up @@ -630,6 +631,30 @@ <h4 property="schema:name skos:prefLabel">Interoperability</h4>
</section>
</div>
</section>

<section id="relations" inlist="" rel="schema:hasPart" resource="#relations">
<h3 property="schema:name">Relations</h3>
<div datatype="rdf:HTML" property="schema:description">
<p><em>This section is non-normative.</em></p>

<section id="relationship-to-ldp" inlist="" rel="schema:hasPart" resource="#relationship-to-ldp">
<h3 property="schema:name">Relationship to LDP</h3>
<div datatype="rdf:HTML" property="schema:description">
<p><em>This section is non-normative.</em></p>

<p>The <a href="https://solidproject.org/TR/protocol" rel="cito:discusses">Solid Protocol</a> and the <a href="https://www.w3.org/TR/ldn/" rel="cito:discusses">Linked Data Platform</a> (<abbr title="Linked Data Platform">LDP</abbr>) [<cite><a class="bibref" href="#bib-ldp">LDP</a></cite>] both use relative referencing of URIs [<cite><a class="bibref" href="#bib-rfc3986">RFC3986</a></cite>].</p>

<p>As HTTP clients assign a URI to a resource when using <code>PUT</code> and <code>PATCH</code>, relative references in representation content are deterministic in both the Solid Protocol and LDP.</p>

<p>LDP does not specify URI patterns for resources when using the <code>POST</code> method, e.g., <code>POST http://example.org/foo/</code> may result in creating a resource with URI <code>http://example.org/foo/bar</code>, <code>http://example.org/baz/qux/quxx</code>, <code>http://example.org/{uuid}</code> or something else. In Solid Protocol, the URI of a new resource resulting from, e.g., <code>POST http://example.org/foo/</code>, is in context of the request URI, and therefore <code>http://example.org/foo/bar</code> will be created, and it is not possible to construct the new URI besides under the direct hierarchy of <code>http://example.org/foo/</code>.</p>

<p>Solid Protocol's <a href="#Server">server</a> behaviour in that regard is compatible with LDP even if only <code>ldp:Container</code> is advertised in the HTTP <code>Link</code> header of the request URI, i.e., <code>http://example.org/foo/</code> as the effective request URI of <code>POST</code>. Thus, it is possible to have a Solid Protocol server as a particular specialisation of LDP with respect to behaviours around <code>POST</code> to containers. Clients that are interoperable with LDP servers would also be interoperable with Solid Protocol servers with respect to relative referencing. Although LDP servers cannot guarantee the URI pattern resulting from <code>POST</code> requests, the fact that Solid Protocol servers can does not impact interoperability between Solid Protocol servers and LDP clients.</p>

<p>Solid Protocol <a href="#Client">clients</a> may not fully interoperate with LDP servers, e.g., it is possible for an LDP server implementation to assign URIs to new resources that are not compatible with Solid Protocol. An LDP server needs to also conform to Solid Protocol server requirements in order to participate in the Solid ecosystem.</p>
</div>
</section>
</div>
</section>
</div>
</section>

Expand Down Expand Up @@ -1444,6 +1469,11 @@ <h2 property="schema:name">Changelog</h2>
<td><a href="#server-content-type-payload" rel="spec:changeSubject">#server-content-type-payload</a></td>
<td property="spec:statement">Add requirement for server to include <code>Content-Type</code> in <a href="#server-content-type-payload">messages with payload</a>.</td>
</tr>
<tr about="#a91960b6-0543-4acc-8153-689c435c7659" typeof="spec:Change">
<td><a href="https://www.w3.org/2023/Process-20230612/#class-2" rel="spec:changeClass" resource="spec:ChangeClass2">2</a></td>
<td><a href="#relationship-to-ldp" rel="spec:changeSubject">#relationship-to-ldp</a></td>
<td property="spec:statement">Add section describing the <a href="#relationship-to-ldp">the relationship between Solid Protocol and LDP</a>.</td>
</tr>
</tbody>
<tfoot>
<tr>
Expand Down