[core] Review of CIRIs (was: Review of CoRAL)
Klaus Hartke <hartke@projectcool.de> Tue, 22 January 2019 14:54 UTC
Return-Path: <hartke@projectcool.de>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0439D12872C; Tue, 22 Jan 2019 06:54:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_FAIL=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id X9O447qu6hIt; Tue, 22 Jan 2019 06:54:43 -0800 (PST)
Received: from wp382.webpack.hosteurope.de (wp382.webpack.hosteurope.de [IPv6:2a01:488:42:1000:50ed:8597::]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C6B11286D9; Tue, 22 Jan 2019 06:54:39 -0800 (PST)
Received: from mail-qt1-f176.google.com ([209.85.160.176]); authenticated by wp382.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) id 1glxRl-0003mb-61; Tue, 22 Jan 2019 15:54:37 +0100
Received: by mail-qt1-f176.google.com with SMTP id n32so27785362qte.11; Tue, 22 Jan 2019 06:54:37 -0800 (PST)
X-Gm-Message-State: AJcUukcIty1lKqfTpkn/dYBcqh3NBodcFM2rUnTD8MRaE1GdOEHQG++V BL8RR7zXnyYvzQegZHYlEux2e2PSGO0J9WQQtKE=
X-Google-Smtp-Source: ALg8bN4q+K/4PejuNiud3LjkTav8LGW8JOHPYeynDOS99Ai95DMBG+z0SFC6QaR0DbE4YhOT9HRMa90EQGUTcH8GR34=
X-Received: by 2002:aed:35c5:: with SMTP id d5mr31288978qte.212.1548168876122; Tue, 22 Jan 2019 06:54:36 -0800 (PST)
MIME-Version: 1.0
References: <20181031164534.GA4995@hephaistos.amsuess.com>
In-Reply-To: <20181031164534.GA4995@hephaistos.amsuess.com>
From: Klaus Hartke <hartke@projectcool.de>
Date: Tue, 22 Jan 2019 15:53:59 +0100
X-Gmail-Original-Message-ID: <CAAzbHvaBZLDyU2nZ726ZXDddDqq8Fg0ObyPAAx3aQOhH4yuDfw@mail.gmail.com>
Message-ID: <CAAzbHvaBZLDyU2nZ726ZXDddDqq8Fg0ObyPAAx3aQOhH4yuDfw@mail.gmail.com>
To: Christian Amsüss <christian@amsuess.com>
Cc: T2TRG@irtf.org, draft-hartke-t2trg-coral@ietf.org, "core@ietf.org WG" <core@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-bounce-key: webpack.hosteurope.de; hartke@projectcool.de; 1548168882; 5da94e1f;
X-HE-SMSGID: 1glxRl-0003mb-61
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/ITSAbkgxMhlgzwn-20Jtk6mfN04>
Subject: [core] Review of CIRIs (was: Review of CoRAL)
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Jan 2019 14:54:46 -0000
Hi Christian, thanks again for your review. Here's the next batch of replies, this time related to CIRIs. Christian Amsüss wrote: > * Appendix C: Do I understand correctly that there are some CBOR encoded > relative references that can not (even when knowing the rel in > append-relation) be expressed in a relative-ref? In particular, those > would be the append-* types. If so, it would be prudent to point out > right next to where it says that "CBOR-encoded IRI References are not > capable of expressing all IRI references". In principle, it is always to possible to use IRIs everywhere. Relative references are more like a compression mechanism that allows us to write IRIs more efficiently when they share a common base. In that sense, there are no CIRI references that cannot be expressed by an IRI reference: ciri_ref_to_iri_ref(ciri, base_ciri) = make_iri_relative( ciri_to_iri(resolve_ciri(ciri, base_ciri)), ciri_to_iri(base_ciri)) > * Most of the URI resolution gets away without string comparisons. I'd > like to suggest making "../" an explicit URI option (say, a `*(parent: > 5.5)` that'd go between path.type and and path. References with > dot-segments inside them are probably safe to put in the "not capable > of expressing all" category. Good idea. My proposal would be to use the path.type option for this: path.type Specifies the type of the URI path for reference resolution. The option value is an integer in the range 0 to 127, named as follows: 0 - absolute-path 1 - append-relation 2 - append-path 3 - relative-path 4 - relative-path-1up 5 - relative-path-2up 6 - relative-path-3up 7 - relative-path-4up ... path Specifies one segment of the URI path. The option value can be any Unicode string with the exception of the strings "." and "..". This option can occur more than once. > As I understand URI resolution, we don't need a "./" because that only > needs to be explicit when starting with something that has a colon in > it that's not the scheme's colon, otherwise "./x/y" is always > equivalent to "x/y". Good point. Removed with the above proposal. > * Speaking of expressiveness of the encoded URIs: (Especially as urn: is > used in the document,) would it hurt to grow the encoded references > such that they can encode urns? It might be sufficient to allow scheme > without a host/port but a path. Makes sense. It would be good to know that set of URIs we want to support exactly and what the scheme-specific normalization rules are for these (see also the discussion on comparisons in [1]). > Apropos port: Why must this be present after a host name? This > complicates round-tripping to URIs (because the algorithm has to know > to fill in default ports of all protocols), limits applicability to > portless protocols and adds some bytes -- and in the embedded > implementation, adding a default port can be as easy as just setting > it at initialization time before parsing. Ari also brought this up in his review. See the discussion in [1]. > * Appendix C: A state transition diagram like the ones on > http://json.org/ could be as expressive as the list in C.3 while being > easier to grasp. Added in -00. > * How are compressed URIs expressed in CBOR? Flat [6, "foo", 6, "bar"] > or nested [[6, "foo"], [6, "bar"]]? My first reading (and current > implementation) resulted in "nested", supported by the `(option, > value) = href[0]` line in C4, but reading C.1 with the CDDL spec next > to it (and running the cddl tool) rather indicates "flat" to me. Flat [6, "foo", 6, "bar"]. I'm adding a clarification and some examples in the next draft revision. > Either way, some examples would be great. Agreed. Working on it. > * Nit: calling a sequence of options _absolute_ brings up the > association of the "absolute URI", which is not the same as "URI" > (which is by definition not a reference, but sometimes it helps to say > "full URI"). An Absolute URI would not have a fragment identifier (and > is defined to ease definign protocols where the fragment is never > sent), whereas the non-relative or full option sequence described here > can easily (and should be able to) contain a fragment identifier. I see the potential confusion, but I don't have a good idea how to phrase it in a better way. Any suggestions? Klaus [1] https://mailarchive.ietf.org/arch/msg/t2trg/7RIEEHql5Jm70TAzlOuQeXAwNfc
- [core] Review of CoRAL Christian Amsüss
- Re: [core] [T2TRG] Review of CoRAL Klaus Hartke
- Re: [core] [T2TRG] Review of CoRAL Klaus Hartke
- Re: [core] [T2TRG] Review of CoRAL Christian M. Amsüss
- Re: [core] [T2TRG] Review of CoRAL Klaus Hartke
- Re: [core] Review of CoRAL Christian Amsüss
- [core] Possible and impossible CIRIs (was: Review… Christian Amsüss
- Re: [core] [T2TRG] Review of CoRAL Klaus Hartke
- Re: [core] [T2TRG] Review of CoRAL Christian M. Amsüss
- [core] Review of CIRIs (was: Review of CoRAL) Klaus Hartke
- Re: [core] [T2TRG] Review of CoRAL Klaus Hartke
- Re: [core] [T2TRG] Review of CoRAL Carsten Bormann
- Re: [core] [T2TRG] Review of CoRAL Frank MATTHIAS KOVATSCH