diff --git a/protocol.html b/protocol.html index 9c719122..b2b49200 100644 --- a/protocol.html +++ b/protocol.html @@ -367,10 +367,11 @@

Table of Contents

  • - 3 Uniform Resource Identifier + 3 Resource Identifiers
      -
    1. 3.1 URI Slash Semantics
    2. -
    3. 3.2 URI Persistence
    4. +
    5. 3.1 Internationalized Resource Identifiers
    6. +
    7. 3.2 URI Slash Semantics
    8. +
    9. 3.3 URI Persistence
  • @@ -498,8 +499,11 @@

    Terminology

    Solid app
    A Solid app is an application that reads or writes data from one or more storages.
    +
    IRI
    +
    An Internationalized Resource Identifier (IRI) is an identifier as defined in [RFC3987], which identifies an entity in a global context, using a Unicode character sequence [UNICODE].
    +
    URI
    -
    A Uniform Resource Identifier (URI) provides the means for identifying resources [RFC3986].
    +
    A Uniform Resource Identifier (URI) is an identifier as defined in [RFC3986], which identifies an entity in a global context, using an ASCII character sequence [ASCII]. Every URI is also an IRI.
    resource
    A resource is the target of an HTTP request identified by a URI [RFC7231].
    @@ -672,8 +676,8 @@

    HTTP Client

    -
    -

    Uniform Resource Identifier

    +
    +

    Resource Identifiers

    Note: Storage Owner and URI Ownership

    @@ -682,6 +686,35 @@

    Note: Storage Owner and URI Ownership

    +
    +

    Internationalized Resource Identifiers

    +
    +

    All resources provided by a Solid server are identified by an IRI with the http or https scheme, in the following normal form:

    + +
      +
    • The IRI is a Unicode string in Normalization Form C (NFC) [UAX15].
    • + +
    • The IRI does not contain percent-encoding triplets corresponding to unreserved characters.
    • + +
    • Hexadecimal digits within percent-encoding triplets corresponding to reserved characters are represented using uppercase letters.
    • + +
    • The http or https scheme of the IRI is represented using lowercase characters.
    • + +
    • The host of the IRI is represented using lowercase characters.
    • + +
    • If the port of the IRI is the default port for its scheme, the port subcomponent is left out.
    • + +
    • The path of the IRI does not contain dot-segments.
    • +
    + +

    A Solid server MUST NOT create IRIs that do not conform to this normal form.

    + +

    When using an IRI in an HTTP message, except in the content, a Solid server MUST map the IRI to a URI according to the algorithm provided by [RFC3987] (section 3.1).

    + +

    When interpreting a URI in an HTTP message, except in the content, as a resource identifier, a Solid server MUST map the URI to an IRI according to the algorithm provided by [RFC3987] (section 3.2), and normalize the resulting IRI to the normal form provided in this section.

    +
    +
    +

    URI Slash Semantics

    @@ -1482,6 +1515,8 @@

    Normative References

    Registration Procedures for Message Header Fields. G. Klyne; M. Nottingham; J. Mogul. IETF. September 2004. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc3864
    [RFC3986]
    Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: https://datatracker.ietf.org/doc/html/rfc3986
    +
    [RFC3987]
    +
    Internationalized Resource Identifiers (IRIs). M. J. Dürst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc3987
    [RFC4918]
    HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). L. Dusseault, Ed. IETF. June 2007. Proposed Standard. URL: https://datatracker.ietf.org/doc/html/rfc4918
    [RFC5023]
    @@ -1521,6 +1556,8 @@

    Normative References

    SPARQL 1.1 Query. Steve Harris; Andy Seaborne; Eric Prud'hommeaux. W3C. 21 March 2013. W3C Recommendation. URL: https://www.w3.org/TR/sparql11-query/
    [Turtle]
    RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
    +
    [UAX15]
    +
    Unicode Normalization Forms. K. Whistler, Ed.. The Unicode Consortium. 12 August 2023. Unicode Standard Annex #15. URL: https://www.unicode.org/reports/tr15/
    [W3C-HTML]
    HTML. W3C. 28 January 2021. W3C Recommendation. URL: https://www.w3.org/TR/html/
    [WAC]
    @@ -1537,6 +1574,8 @@

    Normative References

    Informative References

    +
    [ASCII]
    +
    Information technology — ISO 7-bit coded character set for information interchange. ISO/IEC. December 1991. Published. URL: https://www.iso.org/standard/4777.html
    [ATAG20]
    Authoring Tool Accessibility Guidelines (ATAG) 2.0. Jan Richards; Jeanne F Spellman; Jutta Treviranus. W3C. 24 September 2015. W3C Recommendation. URL: https://www.w3.org/TR/ATAG20/
    [COGA-USABLE]
    @@ -1555,6 +1594,8 @@

    Informative References

    Solid WebSockets API. Nicola Greco; Dmitri Zagidulin; Ruben Verborgh. W3C Solid Community Group. 17 June 2020. Unofficial Draft. URL: https://github.com/solid/solid-spec/blob/master/api-websockets.md
    [UAAG20]
    User Agent Accessibility Guidelines (UAAG) 2.0. James Allan; Greg Lowney; Kimberly Patch; Jeanne F Spellman. W3C. 15 December 2015. W3C Note. URL: https://www.w3.org/TR/UAAG20/
    +
    [UNICODE]
    +
    The Unicode Standard. The Unicode Consortium. URL: https://www.unicode.org/versions/latest/
    [WAI-ARIA-1.2]
    Accessible Rich Internet Applications (WAI-ARIA) 1.2. Joanmarie Diggs; James Nurthen; Michael Cooper. W3C. 2 March 2021. W3C Candidate Recommendation. URL: https://www.w3.org/TR/wai-aria-1.2/
    [WCAG-3.0]