Skip to content

Commit

Permalink
Add section describing the the relationship between Solid Protocol an…
Browse files Browse the repository at this point in the history
…d LDP (#539)

* Add relationship-to-ldp

* Add relationship-to-ldp entry to changelog

* Apply suggestions from code review

Co-authored-by: Ted Thibodeau Jr <[email protected]>

---------

Co-authored-by: Ted Thibodeau Jr <[email protected]>
  • Loading branch information
csarven and TallTed authored Jul 14, 2023
1 parent 06690d5 commit 456ec84
Showing 1 changed file with 30 additions and 0 deletions.
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

0 comments on commit 456ec84

Please sign in to comment.