From a8b67aea2444046cf5bd7419ec75b310c9cf25c3 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 3 Jul 2023 12:26:11 +0200 Subject: [PATCH 1/3] Add relationship-to-ldp --- ED/protocol.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ED/protocol.html b/ED/protocol.html index 6c4d1c65..ebe4575d 100644 --- a/ED/protocol.html +++ b/ED/protocol.html @@ -353,6 +353,7 @@

Table of Contents

  • 1.1 Terminology
  • 1.2 Namespaces
  • 1.3 Conformance
  • +
  • 1.4 Relations
  • @@ -630,6 +631,30 @@

    Interoperability

    + +
    +

    Relations

    +
    +

    This section is non-normative.

    + +
    +

    Relationship to LDP

    +
    +

    This section is non-normative.

    + +

    The Solid Protocol and the Linked Data Platform (LDP) [LDP] both use relative referencing of URIs [RFC3986].

    + +

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

    + +

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

    + +

    Solid Protocol's server behaviour in that regard is compatible with LDP even if only ldp:Container is advertised in the HTTP Link header of the request URI, i.e., http://example.org/foo/ as the effective request URI of POST. Thus, it is possible to have a Solid Protocol server as a particular specialisation of LDP with respect to behaviours around POST 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 POST requests, the fact that Solid Protocol servers can does not impact interoperability between Solid Protocol servers and LDP clients.

    + +

    Solid Protocol clients may not fully interoperate with LDP servers, e.g., it is possible for an LDP server implementation to assign URIs to new resources that is not compatible with Solid Protocol's. An LDP server needs to also conform to Solid Protocol server requirements in order to participate in the Solid ecosystem.

    +
    +
    +
    +
    From 01d409b3f0e7eb8f28ffe2738bf4c365e06dd9f9 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 3 Jul 2023 12:31:30 +0200 Subject: [PATCH 2/3] Add relationship-to-ldp entry to changelog --- ED/protocol.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ED/protocol.html b/ED/protocol.html index ebe4575d..dc46808d 100644 --- a/ED/protocol.html +++ b/ED/protocol.html @@ -1469,6 +1469,11 @@

    Changelog

    #server-content-type-payload Add requirement for server to include Content-Type in messages with payload. + + 2 + #relationship-to-ldp + Add section describing the the relationship between Solid Protocol and LDP. + From 3ea57778e2c129d0b03367702bbd63deded327f4 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 6 Jul 2023 21:01:19 +0300 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Ted Thibodeau Jr --- ED/protocol.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ED/protocol.html b/ED/protocol.html index dc46808d..789f3cb1 100644 --- a/ED/protocol.html +++ b/ED/protocol.html @@ -646,11 +646,11 @@

    Relationship to LDP

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

    -

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

    +

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

    Solid Protocol's server behaviour in that regard is compatible with LDP even if only ldp:Container is advertised in the HTTP Link header of the request URI, i.e., http://example.org/foo/ as the effective request URI of POST. Thus, it is possible to have a Solid Protocol server as a particular specialisation of LDP with respect to behaviours around POST 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 POST requests, the fact that Solid Protocol servers can does not impact interoperability between Solid Protocol servers and LDP clients.

    -

    Solid Protocol clients may not fully interoperate with LDP servers, e.g., it is possible for an LDP server implementation to assign URIs to new resources that is not compatible with Solid Protocol's. An LDP server needs to also conform to Solid Protocol server requirements in order to participate in the Solid ecosystem.

    +

    Solid Protocol clients 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.