[Asdf] shepherd comments on draft-ietf-asdf-sdf-16.txt

Michael Richardson <mcr+ietf@sandelman.ca> Fri, 13 October 2023 00:26 UTC

Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: asdf@ietfa.amsl.com
Delivered-To: asdf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C6BBDC170606 for <asdf@ietfa.amsl.com>; Thu, 12 Oct 2023 17:26:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.407
X-Spam-Level:
X-Spam-Status: No, score=-4.407 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=sandelman.ca
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mDsXiL8wdu3J for <asdf@ietfa.amsl.com>; Thu, 12 Oct 2023 17:26:17 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [209.87.249.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A42B6C13AE26 for <asdf@ietf.org>; Thu, 12 Oct 2023 17:26:17 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id 3B1F218011 for <asdf@ietf.org>; Thu, 12 Oct 2023 20:26:16 -0400 (EDT)
Received: from tuna.sandelman.ca ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id iTPX1paogH3H for <asdf@ietf.org>; Thu, 12 Oct 2023 20:26:15 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [209.87.249.21]) by tuna.sandelman.ca (Postfix) with ESMTP id EFBF61800F for <asdf@ietf.org>; Thu, 12 Oct 2023 20:26:14 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandelman.ca; s=mail; t=1697156774; bh=MaF1KNZKF9BsPjzhqrL4em1aHSjd8m7hU9TyqtRsaS0=; h=From:To:Subject:In-Reply-To:References:Date:From; b=wyoGibh9zgZyfgEdhadJ9sNjF13+jqMnal0+f466ypzDFCg5WpnfU93N29/1l+NDX 5vosgqQeGNJN6gwuVCuc88tx98z8LCoQePumRxah6VtxVwsva91JgLzfFXbo6SYTWq lbjys1aEiF/c9SADkjhB55B6UU4OGgx9SmHbCXfWGUbtj/Hnn99lEssLm4zD+JjOSY EjAUNe/+W0frTHN8BNIB8w5nQKdJOdw1y0KXp77uMu3ZeySK1y81AwJgxweJ8VU1ma 7KfrwR0OsdPsZS3pe2cXoef/ONTtU+x3zklSA6BHH/rzp8vSXbV/E5rM+tNW04WYNX q4aITalvNNRMA==
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id E590551 for <asdf@ietf.org>; Thu, 12 Oct 2023 20:26:14 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: asdf@ietf.org
In-Reply-To: <169622266506.58432.16744474713900421263@ietfa.amsl.com>
References: <169622266506.58432.16744474713900421263@ietfa.amsl.com>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 27.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Date: Thu, 12 Oct 2023 20:26:14 -0400
Message-ID: <9674.1697156774@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/asdf/bpSCm5NroAPHK0BTMW1qa5eiduc>
Subject: [Asdf] shepherd comments on draft-ietf-asdf-sdf-16.txt
X-BeenThere: asdf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "A Semantic Description Format \(SDF\) for Things and their Interactions and Data" <asdf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/asdf>, <mailto:asdf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/asdf/>
List-Post: <mailto:asdf@ietf.org>
List-Help: <mailto:asdf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/asdf>, <mailto:asdf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Oct 2023 00:26:21 -0000

I think that all my comments are editorial.

1) I think we need some text in the Introduction explaining "SDF 1.0" and
"SDF 1.1".

I suggest: "During the development of SDF, version numbers were included, but
           with the publication of this base SDF and the associated extension process,
           they are no longer relevant. "

2) I found the terminology rather abruptly started talking about JSON and
   maps and the like, and since I've intentionally not read much for six
   months, I had no basis on which to understand this.  I think the
   Introduction might need to diagram how SDF is encoded before we can start
   talking about Quality, etc.

For instance:
      (Note that JSON maps are often called JSON objects due to JSON's
      JavaScript heritage; in this document, the term Object, short for
      sdfObject, is specifically reserved for the above grouping, even
      if the type name "object" is imported from a data definition
      language with the other semantics.)

seems really out of place in the Terminology.
Maybe alphabetical terminology is wrong, and top-down would be better.

3) Figure 2 has the sdf* in some arrangement, but I am not sure if there is some
logic to it.  I guess the double line at the bottom is a UML thing?
Ah. The SVG version is significantly different, having arrows and the like.
I think that the ASCII version may be sufficiently content-free as to be omitted.

I guess that Quality Names and Prefixes could be a single letter, including
could be just "$" or "a".  (Because "*" pattern is 0 or more, right?)

"Base SDF does not address internationalization of given names."
okay. And we don't permit UTF-8 either.  Should we permit UTF-8, but then
restrict use to ASCII, so that tools will know to expect UTF-8?

Table 2, defaultNamespace, the definition does not make it clear that the
namespace is identified by the key in the namspace map.  I understood it
would just repeat the URI.  The example makes it clearer that it's the key.

The text:
   As the
   defaultNamespace is set by giving a namespace short name, its
   presence requires a namespace map that contains a mapping for that
   namespace short name.

clears some of this up, but only after the example.  And the word "namespace
short name" is not clearly connected that it's the key in the map, although
one puzzles through and concludes that.

If no namespace map is given (and thus no defaultnamespace), then I guess the
namespace block can be omitted?  When would this occur?  Until the example,
in section 4.4, I didn't notice that "defaultNamespace" wasn't actually in
the namespace block :-)  {of course, it's right there in Figure 1}

4) section 4.1:

   Global names look exactly like https:// URIs with attached fragment
   identifiers.

   There is no intention to require that these URIs can be dereferenced.

I feel that some maybe IESG will get upset about this.
Well, maybe just ART ADs, and they will get first kick at the can anyway.

}4.7.1.  sdfType
}
}   SDF defines a number of basic types beyond those provided by JSON or
}   JSO.  These types are identified by the sdfType quality, which is a
}   text string from a set of type names defined by the "sdfType values"
}   sub-registry in the "SDF Parameters" registry (Section 7.3.2).  The
}   sdfType name is composed of lower case ASCII letters, digits, and -
}   (ASCII hyphen/minus) characters, starting with a lower case ASCII
}   letter (i.e., using a pattern of "[a-z][-a-z0-9]*"), typically
}   employing KebabCase for names constructed out of multiple words
}   [KebabCase].

If we are going to use KebabCase, then the pattern needs to include upper
case letters, right?

Funny that this JSON intensive document has to resort to RFC8949 for POSIX
time :-)

}4.7.2.  sdfChoice
}
}   Data can be a choice of named alternatives, called sdfChoice.  Each
}   alternative is identified by a name (string, key in the outer JSON
}   map used to represent the overall choice) and a set of dataqualities
}   (each in an inner JSON map, the value used to represent the
}   individual alternative in the outer JSON map).  Dataqualities that

I think that the () are pretty important bits of information, and I would
rework this so that they get their own sentences.

"this specification" under enum... does that refer to SDF 1.0, or to JSO?.

5) 7.1. art@ietf.org will cause an AD nit.

6) Security Considerations... .Specifics: TBD. Oops.  We need to say more *or
   less*

7) I did not check if the CDDL is correct.

8) I think that we'll need some covering text to explain how we are using
JSO, and yet not really depending upon it.  Is our "version" of JSO7 unique?
My impression is that we are using a subset of it, but then we add stuff like
"const".... I'm worried we'll get into proceedural snags here (again).  It's not
our intention to standardize JSO within the IETF, and yet... those appendixes
are there looking like they want to be normative.
Can I implement without reading JSO?





















--
Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
           Sandelman Software Works Inc, Ottawa and Worldwide