[Asdf] WGLC review of draft-ietf-asdf-sdf-16 (Christer)

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 09 October 2023 12:53 UTC

Return-Path: <christer.holmberg@ericsson.com>
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 05EC4C14CE4B for <asdf@ietfa.amsl.com>; Mon, 9 Oct 2023 05:53:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.109
X-Spam-Level:
X-Spam-Status: No, score=-7.109 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, 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 (1024-bit key) header.d=ericsson.com
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 9B1CD0vY6HLA for <asdf@ietfa.amsl.com>; Mon, 9 Oct 2023 05:53:09 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2070.outbound.protection.outlook.com [40.107.22.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D3902C151532 for <asdf@ietf.org>; Mon, 9 Oct 2023 05:53:08 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S4N9X4EPfDbPTtdInxrYOF/9U56vB1Zh8HUW+ENWtXc2qUUVwnKs/Q/NrjLk8YJpBw31w5JRpj9oG0SPU9GnljRSzEjgiB/RmS/qqrKmx4PNoyylw6AYskrbzP+sR2EZnKYQF//8t4ji+/MlBCO2NDbF7wy57FjbLoqY4BzLWK78wpqRDRsDk8GNS09qovyJGZkjYpppiAxw7nIouVGEwdRE1MtvB/4VfXLv/HWsP62uGADtsne78UXXiPw/YwhNKVo99AlKatUaymegkhgqcrlDCAZAkrZfMVWKPSfTdgMsFsWgutysPJu6dhsRUVEfLlUW5rmr464Q3ej9DJuM4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=S38ZrBN6t4dHFtKFmYbERakP65BpZdTChS/fhSXlf3E=; b=bNNG9m42ePhsCFG4Amm9pre8qyq3kfkQtGEM8GX+Tu+oDUK9wme+7VYtnTFtPBl0YDjBYKKcC5EDTxGwao3GiPO/89C8srShazVYo9r6cDfadSvKd9L6ne0gl/mCCMXeafGkO5Am3drENFYk6xnDBxsJIAMg+LJL72+LspZ7sF3Eirvn5/eSjkKmReacwqOs2glXpemYoDPGB5G3sh2hd7GvexQ+wncjggosjgwPCFy/umpIm+IPJVbnBBmxrilEgCbGGFEoziACRGvPKY6KPFSlPSLzC9Src9k0m+jzmCGDf4rd5kcevpxXzyXDJMYzVUB9Nd4U/M8hTFpyuVhOPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S38ZrBN6t4dHFtKFmYbERakP65BpZdTChS/fhSXlf3E=; b=jRM8jaMY6vfeQAYsB8LOKT+8VwXxjN7FOyxWWhnvpn/oSPw6vhHguKkR1AJN3s62I5nHJdMkGDRkmrSme8xyRbP6daB+E1HAKf5o2PvrA7S1wETawrEajeRelu0/HziYXAGMncGcVz2FwT6HjgeHhJD8qDcV3v30Iyi4UAnONGs=
Received: from VI1PR07MB4447.eurprd07.prod.outlook.com (2603:10a6:802:5d::25) by DB9PR07MB9765.eurprd07.prod.outlook.com (2603:10a6:10:4ed::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.37; Mon, 9 Oct 2023 12:53:04 +0000
Received: from VI1PR07MB4447.eurprd07.prod.outlook.com ([fe80::9b49:ab8b:8ed2:eb21]) by VI1PR07MB4447.eurprd07.prod.outlook.com ([fe80::9b49:ab8b:8ed2:eb21%6]) with mapi id 15.20.6863.032; Mon, 9 Oct 2023 12:53:04 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: "asdf@ietf.org" <asdf@ietf.org>
Thread-Topic: WGLC review of draft-ietf-asdf-sdf-16 (Christer)
Thread-Index: AQHZ+q+KNSAfk0AOnEu42jiPN0FT6A==
Date: Mon, 09 Oct 2023 12:53:03 +0000
Message-ID: <VI1PR07MB444792D0791A90DFB29B3B9B93CEA@VI1PR07MB4447.eurprd07.prod.outlook.com>
References: <HE1PR07MB44413EC13E28F820AE92BE0A93F1A@HE1PR07MB4441.eurprd07.prod.outlook.com>
In-Reply-To: <HE1PR07MB44413EC13E28F820AE92BE0A93F1A@HE1PR07MB4441.eurprd07.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR07MB4447:EE_|DB9PR07MB9765:EE_
x-ms-office365-filtering-correlation-id: c603f7dd-b905-4460-45f0-08dbc8c6ad62
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: IEeVtqMPZy+ERR3tCMcZtH3rlN3GCwBRUv6Q5b1gMOOgmYQywV4wOv/D7JTXqaqIA2IDfIv0MxoY9HxyhcoQMvi+oWBsFA1yFE8ll/A2qJc+LmHQfiYaGG2dyYoNSNe6g6lF0oEree93AraPpjTcB86XEHlBaKo/wTHynfWZdpW/l10iVVBAWEokCPcUpKUHx3Um1qfDEgzcj3UY7vpI7sB/mAjRLt9vE+8pGrK4aOxx1PU6Qpe0zTbVg+Cm2UnwaNqm76sTuOjRtoq5E4ckRohx1JFpS2su3IaoYcpGIN3EmAzwYNhnetMJU+batNkw/CRZv6ExK99x5JBTeD9M7lPMvmNOrjlaAy14/1zW1ag4kXGxm+goj0AqvEkKT668Yw2GONYolb1LHhof2Pe/FOMMJhQCopYSJ+0EfRywyZtARsxTq59ip+aV34vC6uWBhIHoSjV2HvZStsciKA1N90JttR9RqIA1ILhm+lc7tBV/bFcpSh3xCS+Okk/xmMl+MWN/q7eE2oEf1MPlyxx/Z5QY/3Is4/YD76XKqwagzIckEKH4em5oQou7++C3S7nY/N/Bzep2e4IsY31qJArOxPkMjeDSdOYjQsYFmPsg9omCWOVSNxcsLRHadlSC197+YSdQ7tCZ/EVgucXSfUJ+TjcknPVe5xPwr6CpwXOm2f8=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR07MB4447.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(366004)(346002)(376002)(39860400002)(396003)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(55016003)(66899024)(71200400001)(83380400001)(6506007)(66574015)(26005)(64756008)(66556008)(66946007)(66446008)(66476007)(316002)(76116006)(6916009)(8676002)(8936002)(41300700001)(52536014)(7696005)(5660300002)(44832011)(9686003)(2906002)(30864003)(478600001)(33656002)(38070700005)(38100700002)(99936003)(122000001)(86362001)(82960400001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: BYKJQ41/KxyRj0TqR1zW0lgmD9zaK4YB03evKpJnxd9WvtEoO/lNwsXYEYO6JNSK47Y4k2bIsSnwo2ig+yW7biGEtvb2M+W9wGqRBqZOYRfl1Y6PHV/toHDRM/Z3XjHwt3CfkDEgzMTHV8rxxK98h3ZVrqS60/5x1ZJ+4u5Os2OjDqgl7/zTLGJLjt5tTl2cEiOxf6/CoLp9ZEUcRdOraKexoWv8M5pAil5ECsiZ5gtMiIZ/u/C79ozU3fe+V/m8rm5LhzxKaGJ5Kofp+NFm+H+TVlw802oi+ET4a8Miuc/xUohuNpO5jecuLxNek4BZ/KWtV5maELsMzM70XccOQGOY53yffE1V84UX3o2CkTvmy3qH7rHAKKtLjXa/s3KiBZiFTKumHxxOfN2iFbp+BaksZ1mXTcZxJbfe6+CYThQJas3B+6iWKFOnlF+6yJKi2JJNyX/MLA4IJeWD+PdyeWvwWefgxg+7TZeQl+QJK74ZCgbFcLfjmgWhYu511QG+AKv5fw7YJwIjtZ4cIRiLRqC/aF6ueJvsAz0zQQh8bWbjSnIIBDVuUpgwC3Qd8xk+EhZOjQrr0HXSrr4OH0w5q9jVrbXbsUTRA8MTZcM8KHZGHmw6ImlPzClnjZiO8Bsqf0jTjMnyVsD2cVPor1dUpAyTfzuqTMZ6XPXpA/XEoXG8c8hIpxnPCVIq6qQuHe3M+JqB+H0NfIeA0YRmx8hDlep9BPxQ88LFbol9TD+QEkCLyNk/wF+GVaqBLU8P52nRK0U7ZcdOWW2+thNv8S27oLhYid/ftbDBOFfpgYRauH/1bZ5wryJ/O/lSFHBegYytYoFbR+hNVLl9iSLCxdYnjnF8b4/FCELh8RhuOh4btcUP3YG8WwJ6dTBshswEdIqwQKYlWOlDL4j82aW9oQUoQ3/4ZpFmP0nd25vFj1eL6DtfONIx9t/tmXntoX+mMwqgd7FPhAnrZTz8ARMzQON1focB35PlkR2D5jy1dMYvxV1xnjmfplU/4cxrwfLtXdgtJAYEPeAeSs+cAjMJ2gHeCEQ7K6AE1LoisT4Ll+AdpdPIPl7JzHt+DeZhZpb4WuZHj7xz2qMpIcvdfuR3NAkTRXTTngpAUK9pNygwe3I/sYlAundptw1X/sBqqrGZh7ZVoLg8y/Bw6TQvLxtRReZ3x62lK8WKlHWqIgv/aaXRTnnSpnTlizXowEz7emmiglrhCeJCGUXgmbpewcMiEZQxzbDSD/gZh6s1oB6cYeXZj7xtw+pUNGCHUeKng+VtXX0ZQ1yT/vkk6WA3mdEsKQgKhR0LD1cuA+6dGyeBaA0a+oP6DBrqrft4dgOYf9PzCHDtCJsk21mBFrYqab9KYFMsInzQT6XMclXyXbNtVXgwIT/kxRo6PCZ+M7sMXrQ0BfUCJIIffmfXOT/jBqW0E8eptRg6w7T6CSBcvA7gc1TGoz1pfIV4hWC1BREtwqlt8MFelQS3+B2phUP3LFjr89pifEVhj/h7bEllGgfBP1DgCVmm5sKCjCcQ4uVCg8547q9r0Wx80BCnjNnyAcuTo5mfXuEVSpgWV7UiIoUTn4/TbIDO1AixN9Bsq72fzjMvOkPCn1XD+cWjCGFNH55/ccxBXw==
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_0008_01D9FAC8.AF5692F0"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: VI1PR07MB4447.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c603f7dd-b905-4460-45f0-08dbc8c6ad62
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2023 12:53:04.0491 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: IOmLwP72R9XHC2f3VwN7FjHuw5J8LoNheTKrI6oyYwwjUZTj1MN2PuTELkAU5/WKW7IuQWB9JIuyPjJhQu/osCsMMTKxpUbHAANgr4Jotsw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR07MB9765
Archived-At: <https://mailarchive.ietf.org/arch/msg/asdf/l5Fmo7VuZ8nfF334lCihQXFNrWE>
Subject: [Asdf] WGLC review of draft-ietf-asdf-sdf-16 (Christer)
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: Mon, 09 Oct 2023 12:53:13 -0000

Hi,

Below I will copy my comments on -15, and indicate whether I think they have been addressed in -16. My comments based on -16 are prefixed with "CHH-16".

GENERAL
========

CHH-16: There are a number of my comments that have NOT been addressed in -16, and no reason has been given on the list. If a comment has been discussed e.g., in GitHub, please provide a link to the associated GitHub Issue etc. However, for "archiving purpose", I think it would be good to get at least the final outcome to the comments also by e-mail.



TECHNICAL
==========

---

Q1: The document talks about “sdfObject instances”, “sdfThing instances” etc. What is the meaning of “instance” here? My understanding is that the concept of instance (as in a class-vs-instance context) is outside the scope of this document.

CHH-16: This has been addressed in -16.

---

The text in Section 2.2. says:

               “sdfProperty is used to model elements of state within sdfObject instances.”

Q2: When I read "state" I start thinking about state machines. But, that is obviously not the type of state that the document is talking about (eventhough an sdfProperty could also be used to represent the state of a state machine). I can't think of a better word, but I just want to make sure that it is clear to everyone that the document does not restrict sdfProperty to state machine states.

CHH-16: This has NOT been addressed in -16. Having said that, I realize my understanding of "state" may differ from the meaning within the draft, so if the text is clear to everyone else I am fine with not addressing it.

---

The text in Section 2.3. says:

        “Actions may be long-running, that is to say
        that the effects may not take place immediately as would be expected
        for an update to an sdfProperty; the effects may play out over time
        and emit action results.” 

Q3: Is there a way for a user to figure out whether an Action is still “ongoing”, or whether the Action execution has even started? If the answer is No, I think it would be good to point out.

CHH-16: This has been addressed in -16.

The text in Section 2.3. says:

        “Actions may also not always complete and
        may result in application errors, such as an item blocking the
        closing of an automatic door.

Q4: Is there a way for a user to figure out what the result of the Action was? I am not referring to Output data returned by the Action, but the result of the Action itself. If the answer is No, I think it would be good to point out. Related to Q3.

CHH-16: This has been addressed in -16.

---

EDITORIAL
=========

Q5: The draft has parts that are difficult to read e.g., because of inconsistent terminology. In addition, there is quite a bit of terminology overloading. For example, the draft use "object" in 3 different contexts: Object, JSON object and sdfObject. Another example is Thing and sdfThing: the document gives an example where a Thing could be a temperature sensor, but a temperature sensor would typically be represented as an sdfObject (not sdfThing).

CHH-16: This has partly been addressed in -16. However, there is still some confusion, as the document uses both Object and sdfObject to refer to the same thing, but in some cases one may think they are actually different things. See below for examples.

The text in Section 1.1. says:

"sdfObjects are similar to sdfThings but do not allow nesting, i.e., they cannot contain other Objects or sdfThings."

This sentence contains both sdfObject and Object, which may confuse the reader. Why not say "cannot contain other sdfObjects"?


The text in Section 2.1. says:

"The sdfObject group lists the affordances of Things modeled by this Object."

Why not say "modelled by this sdfObject"?


The text in Section 2.2.1. says:

"Objects, the items listed in an sdfObject group"

This is confusing, as it seems like Objects are something contained within an sdfObject.

---

Q6: In a number of places the document talks about “the current version of SDF” and “the present version of SDF”. What is meant by “version of SDF”?
Section 1 mentions “SDF 1.0” and “SDF 1.1” labels, but when referring to the document refers to the draft number (-15). If this document going define some new version label for SDF?

CHH-16: This comment has been partly addressed in -16. However, related to the versioning, the document a version Quality, and talks about using the date for Version. While the usage of date is not mandated, I wonder what the difference between Version and Modified? Is there a reason to allow "anything that can be incrementable", and then require the one defining the model to explain how the incrementation is done? Why not simply use an Integer?  

---

The text in Section 1 says:

   “The Semantic Definition Format (SDF) is a format for domain experts
   to use in the creation and maintenance of data and interaction models
  in the Internet of Things.” 

Q7: What is meant by “in the Internet of Things”?

CHH-16: This has partly been addressed in -16, but I note that Section 7.1 also uses "in the Internet of Things".

---

The text in Section 1.1. says:

      “a router that employs both temperature sensors and indicator lights
      might exhibit less Thingness, as the effects of its functioning
      are mostly on the digital side.”

Q8: I can’t parse this sentence. The “less Thingness” and “mostly on the digital side” parts sound strange.

CHH-16: This has been addressed in -16.

---

The text in Section 1.1. says:

      "Affordance:  An element of an interface offered for interaction,
      defining its possible uses or making clear how it can or should be
      used.  The term is used here for the digital interfaces of a Thing
      only; it might also have physical affordances such as buttons,
      dials, and displays."

Q9: It's hard to understand the “making clear how it can or should be used” part within the context of the sentence. Can it be removed?

CHH-16: I see the text has been modified in -16, but unfortunately I still think it is hard to understand. Would it be possible to simply say "An element of an interface offered for interaction", or to remove the "defining its possible uses or making clear how it can or should be used" part?

---

The text in Section 1.1. says:

        “An entry in the main SDF map…” 

Q10: What is an SDF map?

CHH-16: This has NOT been addressed in -16.

---

The text in Section 1.1. says:

        “Objects are similar to Things but do not allow nesting, i.e., they cannot
        contain other Objects or Things.”

Q11: The definition of Thing earlier in the section does not say anything about nesting.

CHH-16: This has been addressed in -16, but I have an additional comment related to sdfObject vs sdfThing further down (Q26).

---

The text in Section 1.1. says:

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

Q12:  The document often says “JSON maps (objects)”. This is confusing, as the text in Section 1.1. indicates that “object” is something else. It would be more clear to say “JSON maps (JSON objects)”. However, I don’t think you need to do that. It is enough to ONCE in the document say that “JSON object” and “JSON map” means the same thing, and after that use ONE of them. This is an example of my comment in Q5.

CHH-16: This has been addressed in -16.

---

The text in Section 1.1. says:

        “Protocol Binding:  A companion document to an SDF specification that
        defines how to map the abstract concepts in the specification into
        the protocols in use in a specific ecosystem.”

Q13: The sentence itself is fine, but I think it should earlier in the document (Section 1) be described that SDF is “Abstract”, and does not contain protocol bindings.

CHH-16: This has NOT been addressed in -16. 

---

The text in Section 2.2.1. says:

   “Objects, the items listed in an sdfObject group, are the main "atom"
   of reusable semantics for model construction.” 

Q14: It's hard to understand the sentence.

CHH-16: This has NOT been addressed in -16. It is still difficult to understand the sentence. Also, as commented further down (Q27), it is unclear what an "sdfObject group" is.

---

The text in Section 2.2.1. says:

   “An sdfObject contains a set of sdfProperty, sdfAction, and sdfEvent
   definitions that describe the interaction affordances associated with
   some scope of functionality.”

Q15: Should the same thing be said about an sdfThing? I.e., an sdfThing can contain a set of sdfObjects with a shared scope.

CHH-16: This has NOT been addressed in -16.

---

Q16: The text in Section 2.2.1. says that sdfObject definitions should be kept narrow in scope in order to enable reuse and interoperability. This is the first time (unless I have missed it) that “reuse” and “interoperability” are mentioned in the document, eventhough reuse and interoperability are 2 of the main reasons why one would use SDF. I think Section 1 should talk more about that.

CHH-16: This has NOT been addressed in -16.

---

The text in Section 2.2.2. says:

   “An instance of sdfProperty may be associated with some protocol
   affordance to enable the application to obtain the state variable
   and, optionally, modify the state variable.  Additionally, some
   protocols provide for in-time reporting of state changes.  (These
   three aspects are described by the qualities readable, writable, and
   observable defined for an sdfProperty.)”

Q17: Earlier the document talked about “protocol bindings”, and now “protocol affordance”. An example of my comment in Q5. Also, I think it is enough that the document ONCE describes that protocol bindings are needed in order to actually interact with SDF models, so I don't think the text needs to be repeated here. See my comment in Q13.

CHH-16: This has NOT been addressed in -16.

--

The text in Section 2.2.2. says:

   “Definitions in sdfProperty groups include the definitions from
   sdfData groups, however, they actually also declare a Property with
   the given qualities to be potentially present in the containing
   Object.”

Q18: I can’t parse the text beginning with “they actually also…”.

CHH-16: This has NOT been addressed in -16.

---

The text in Section 2.2.2. says:

   “For the data definition within sdfProperty or sdfData, SDF borrows
   some vocabulary proposed for the drafts 4 and 7 of the json-
   schema.org "JSON Schema" format (collectively called JSO here),
   enhanced by qualities that are specific to SDF.”

Q19: What are “drafts 4 and 7”? Are you referring to different versions of some JSON schema document? Please add references.

CHH-16: This has been addressed in -16. I do note that the referenced drafts expired 10 years ago, but I assume they are still used.

---

The text in Section 3 says:

   “SDF definitions are contained in SDF files.  One or more SDF files
   can work together to provide the definitions and declarations that
   are the payload of the SDF format.”

Q20: What is meant by “payload of the SDF format”? 

CHH-16: This has been addressed in -16.

Q21: What is meant by “SDF file”. Does this refer to the storage of SDF definitions in some database etc?

CHH-16: This has been addressed in -16.

---

Q22: Regarding "Thing", isn't that a generic IoT term, defined elsewhere? Is there a need for a specific SDF definition?

CHH-16: I see that the definition text for "Thing" has been reduced in -16. I still wonder whether there is a generic definition that could be used, but I am fine if the WG wants to explicitly define it in the draft.

---

In Q11, I commented that the definition of Thing does not mention nesting. 
However, I think the issue may we larger than that.

The definition of Thing says:

      "a temperature sensor or a light might be a Thing, but a
      router that employs both temperature sensors and indicator lights
      might exhibit less Thingness"

The definition of Object says:

      "Objects are similar to Things but do not allow nesting, i.e., they cannot
      contain other Objects or Things."

Q23: The Object text implies that Things can be nested. But, the Thing text says that a temperature sensor might be a Thing. When would a temperature sensor be nested?

An sdfThing might be nested, but that is a separate thing. For example, I assume a router could be represented by an sdfThing, while the Thing text says that a router is "less Thingy".

CHH-16: This has been addressed in -16.

---

Q24: As mentioned earlier, "Object" is very overloaded. Section 1 says "SDF Object", but after that only "Object" is used. Please pick one.

CHH-16: This has been addressed in -16.

---

Q26:

The text in Section 1.1. says:

    "sdfThing:  A grouping of sdfObjects (Objects) and/or sdfThings."

The text in Section 1.1. says:

    "sdfObjects are similar to sdfThings but do not allow nesting,"

The text in 2.2.6. says:

   "sdfThing groups, however, also allow for including interaction affordances, sdfData, as well as minItems and maxItems
   qualities."

The definition of sdfThing in Section 1.1. seems to indicate that it is ONLY a grouping mechanism, which it is later indicated that sdfThings can also contain interaction affordances etc, similar to sdfObjects. Perhaps that should be made clear in the sdfThing definition?

The text in Section 2.2.2. says:

   "sdfProperty is used to model elements of state within Things modeled by the enclosing sdfObject."

Based on my comment above, shouldn't the text say "modeled by the enclosing sdfObject or sdfThing"? The same applies to sdfEvent, sdfAction etc.

----

Q27: Related to my earlier comment on consistent terminology, the document uses "sdfObject group", "sdfThing group", "sdfAction group". I understand that sdfThings, sdfObjects etc are used to group things, but why does the document use e.g., "sdfObject" and "sdfObject group" while referring (AFAIU) to the same thing?

----

Regards,

Christer