Re: [Cbor] WGLC review of draft-ietf-cbor-7049bis-09

Carsten Bormann <cabo@tzi.org> Sun, 08 December 2019 17:07 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: cbor@ietfa.amsl.com
Delivered-To: cbor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E57A812004F; Sun, 8 Dec 2019 09:07:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham 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 QtMoWZx2nBPB; Sun, 8 Dec 2019 09:07:43 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4421120025; Sun, 8 Dec 2019 09:07:42 -0800 (PST)
Received: from [192.168.217.116] (p548DC893.dip0.t-ipconnect.de [84.141.200.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 47WCSD0q5NzyT8; Sun, 8 Dec 2019 18:07:40 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <037901d5ad33$f86f9fe0$e94edfa0$@augustcellars.com>
Date: Sun, 08 Dec 2019 18:07:39 +0100
Cc: draft-ietf-cbor-7049bis@ietf.org, cbor@ietf.org
X-Mao-Original-Outgoing-Id: 597517656.776078-21d6600a0ba9fc4329c467c8b9ce4570
Content-Transfer-Encoding: quoted-printable
Message-Id: <66CE9655-1721-4159-BC26-3791ACD46D45@tzi.org>
References: <036501d5ac98$201dd490$60597db0$@augustcellars.com> <CF8D72A5-5378-4550-9311-62241E28746F@tzi.org> <037901d5ad33$f86f9fe0$e94edfa0$@augustcellars.com>
To: Jim Schaad <ietf@augustcellars.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/AqKkeAsHp50r-K2NhKj_mtv6sDg>
Subject: Re: [Cbor] WGLC review of draft-ietf-cbor-7049bis-09
X-BeenThere: cbor@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Concise Binary Object Representation \(CBOR\)" <cbor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cbor>, <mailto:cbor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor/>
List-Post: <mailto:cbor@ietf.org>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cbor>, <mailto:cbor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 08 Dec 2019 17:07:46 -0000

Hi Jim,

now looking at the items not yet covered by the PR so far:

>> *  In paragraph 2 of section 1, I don't understand how the first 
>> sentence leads into the second sentence.  The first talks about 
>> specific design goals, so I expected a discussion of some of those 
>> goals.  Instead I get a discussion of the data model.  Paragraph 3 
>> seems to follow better from the first sentence of paragraph 2.
> 
> I don’t think the first sentence is meant to lead into the second sentence.  This brief introduction provides a set of facts that distinguish CBOR from previous efforts but are not necessarily interrelated.
> Paragraph 3 could be moved as a second sentence of paragraph 2, but that would distract a bit from the brief explanation of what CBOR is.
> 
> [JLS] Let's have Paul look at it.  It just reads really badly to me.  Forward references would be one way to say that they are not related items.

OK, I’ll let the native speakers sort that one out…

>> * In section 1 - paragraph 3.  I think this would fit better in 
>> section 1.1 rather than doing the forward reference.
> 
> Section 1.1 is about the objectives behind CBOR.  Section 1 paragraph 3 is about previous formats.
> 
> If we do want to restructure this, maybe it would be worth to do a subsection “history” (or “related work”?) with the JSON material and the pointer to appendix E.
> 
> [JLS] That would be part of the "are not well met" in the first sentence.   I don’t know that a history section would help here.

See above.

>> * Section 1.2 - The terminology of Encoder and Decoder do not seem to 
>> match each other.  The decoder decodes a well-formed CBOR data item.  
>> The Encoder generates the representation of a CBOR data item.  I 
>> assume that the decoder should decode the representation of a 
>> well-formed CBOR data item.  The other way around would be that the Encoder creates a well-formed CBOR data item.
> 
> Right.  This is one instance where we don’t properly handle the distinction between the abstract data item and its representation format/encoded data item.
> 
> This is an issue that would need to go through the whole definition section and probably much more; e.g., well-formed is a property of an instance of the representation format.  Should we go for that?
> 
> [JLS] I hope that is not needed.
> 
> Symmetry between encoder and decoder should be easy to achieve even without such massive surgery, e.g., s/well-formed CBOR data item/well-formed encoded CBOR data item/ (maybe even without the “CBOR”).
> 
> [JLS] I think you need some changes on the Encoder side as well.

So here is my proposal of a limited change:

 
 Decoder:
-: A process that decodes a well-formed CBOR data item and makes it available to an
+: A process that decodes a well-formed encoded CBOR data item and makes it available to an
   application.  […]
 
 Encoder:
-: A process that generates the representation format of a CBOR data
+: A process that generates the (well-formed) representation format of a CBOR data
   item from application information.

Added to PR below.

>> * Section 2.2 last paragraph.  /be considered duplicates/be considered
>> duplicates, even if encoded as different major types,/   This is a belts and
>> suspenders suggestion but not something I would die for.
> 
> I’m not sure I like the “if” (integer 0 and float 0.0 are always encoded as different major types).  How about “while”?
> 
> [JLS] That is just fine.  Other approach would be /even if/when/

I stuck with “while”.  Added to PR below.

>> * Section 3.2.3 - The text is silent on a chuck being of length zero.
>> Should this be stated as discouraged but legal?
> 
> I don’t know why this needs to be discouraged but it certainly is not ruled out.
> To this reader, chunks of length 0 need to be discussed as much as chunks of length 4711, which are also not ruled out.
> 
> [JLS] Yes, but checks of length 4711 are, if not expected, useful.  A chuck of length 0 is not useful.

Added:
(Note that zero-length chunks, while not particularly useful, are permitted.)

Added to PR below.

>> * Section 9.2 - Are you intending to update the template to point to 
>> this document rather than saying with RFC 7049?  This is not stated here.
> 
> Not sure about updating the template, but the registries should indeed be updated to this specification.
> 
> Added at the end of Section 9 in PR below:
> 
> \[To be removed by RFC editor:]
> IANA is requested to update these registries to point to the present document instead of RFC 7049.
> 
> [JLS] As noted in the PR, I think IANA is going to want this instruction to remain in the document.

I think I’d prefer to let them speak for themselves…
(That sentence is not really useful for any future user of the RFC, so I’d prefer to leave it out.)

I updated https://github.com/cbor-wg/CBORbis/pull/149 with the changes identified above.

Grüße, Carsten