Re: [core] Comments on draft-hartke-t2trg-coral-reef-03

Jim Schaad <ietf@augustcellars.com> Fri, 06 December 2019 18:11 UTC

Return-Path: <ietf@augustcellars.com>
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 14BCE120059; Fri, 6 Dec 2019 10:11:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 GLQXhcN4RHRa; Fri, 6 Dec 2019 10:11:54 -0800 (PST)
Received: from mail2.augustcellars.com (augustcellars.com [50.45.239.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3B72F12006D; Fri, 6 Dec 2019 10:11:54 -0800 (PST)
Received: from Jude (73.180.8.170) by mail2.augustcellars.com (192.168.0.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 6 Dec 2019 10:11:48 -0800
From: Jim Schaad <ietf@augustcellars.com>
To: 'Klaus Hartke' <hartke@projectcool.de>
CC: draft-hartke-t2trg-coral-reef@ietf.org, core@ietf.org
References: <048701d5a189$2177f9c0$6467ed40$@augustcellars.com> <CAAzbHvamq7hgQhEthb5dGu0xY2Us09CLghksQYWmpuSAHjZ_1A@mail.gmail.com>
In-Reply-To: <CAAzbHvamq7hgQhEthb5dGu0xY2Us09CLghksQYWmpuSAHjZ_1A@mail.gmail.com>
Date: Fri, 06 Dec 2019 10:11:46 -0800
Message-ID: <034601d5ac60$a1ea9180$e5bfb480$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQGbDY5eketAF6ADVAxOVPdt9lkeRwFtBPbwqBc4xMA=
Content-Language: en-us
X-Originating-IP: [73.180.8.170]
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/Ml2NP9vsyvyyEyzw1U1qZlGgbfk>
Subject: Re: [core] Comments on draft-hartke-t2trg-coral-reef-03
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: Fri, 06 Dec 2019 18:11:59 -0000


-----Original Message-----
From: Klaus Hartke <hartke@projectcool.de> 
Sent: Friday, December 6, 2019 7:38 AM
To: Jim Schaad <ietf@augustcellars.com>
Cc: draft-hartke-t2trg-coral-reef@ietf.org; core@ietf.org WG <core@ietf.org>
Subject: Re: [core] Comments on draft-hartke-t2trg-coral-reef-03

Hi Jim,

thanks a lot for your comments!

> * I am having a problem with you saying that you are defining a new 
> well-known resource.  "/.well-known/core" has already been defined.  
> It would be better to say you are expanding the capabilities I think.

This is mostly due to the fact that I haven't looked much yet into how RFC 6690 and -coral-reef would coexist on the the same well-known path, so at the moment -coral-reef is just assuming that it's alone in the universe (see also the disclaimer in [1]). Of course, this cannot stay like that if we want to work towards a WG adoption. Then we should figure out whether -coral-reef should take over the resource entirely (possibly with a section describing the "legacy" format (with an opportunity to "fix" that)) or whether -coral-reef should be presented as an extension to RFC 6690 or something else.

> *  In the first example in the document (page 4), I believe that you should
> be able to return "ct TBD3" as part of the "/sensors" resource.   This may
> or may not be covered by this document so I am not sure if you think 
> it would be allowable or not.  Specifically, I believe that any place 
> you can currently use application/link-format you should be able to 
> use REEF

Not sure. Not every resource that has a Link Format representation behaves like </.well-known/core>. But in this case (the example was stolen from [2]) I think the intention was that </sensors> functions like a kind of "mini" resource directory for additional resources on the server. So it would indeed make sense here to use -coral-reef for that too. I wonder if/how we should signal to a client that </sensors> not just happens to have a representation in format TBD3 but also implements the -coral-reef interface.

[JLS] I don't know that I have dealt with anything that did link-format that was not a directory type thing.  Yes it would only make sense for those things which are directory like.

> * At the end of section 2.1, second to last paragraph - The last 
> clause in the last sentence has a problem with matching the pronoun 
> back to the correct subject.  On first read I matched one back to 
> schema not to the details.  I think that use of a semicolon would fix this problem.

OLD:

   The example contains links to three resources of interest on the
   server: </sensors>, </sensors/temp>, and </sensors/light>.  For
   </sensors>, a content format hint ("ct") and a title ("title") are
   provided as resource metadata.  For both </sensors/temp> and
   </sensors/light>, a resource type ("rt") and an interface description
   ("if") are provided.  Additionally, two links are provided with
   further detail on </sensors/temp>: one to a schema describing this
   resource ("describedby") and one to an substitute ("alternate").

NEW:

   The example contains links to three resources of interest on the
   server: </sensors>, </sensors/temp>, and </sensors/light>.  For
   </sensors>, a content format hint ("ct") and a title ("title") are
   provided as resource metadata.  For both </sensors/temp> and
   </sensors/light>, a resource type ("rt"), and an interface
   description ("if") are provided.  Additionally, two links are
   provided that provide further details on </sensors/temp>: a link to a
   schema describing this resource ("describedby") and a link to a
   substitute ("alternate").

Does that fix it for you? Otherwise I'd need a bit of help since I'm not a native speaker :)

[JLS] Looks like you have the same for both OLD and NEW, however this fixes the issue.

> * In section 2.2, the registration interface is currently missing the 
> query parameters.  The big ones would be ep (endpoint name) and d 
> (domain), you should not need base because that can be represented in the CoRAL document.
> About the time I got to section 5.2 on the second pass, I realized 
> that you did not deal with endpoint registration and queries at all.  
> This is a needed feature.

This is a feature that I don't understand. What does it do and why is it needed?

[JLS] Endpoint and Domain provide a way to give a "name" to an endpoint and to associate that name to the entry in the RD.  For a third party, among other things this means that you only need to find the name of the endpoint to get and update the entry in the resource directory.  You do not need to both remember and share the location path to other entities.  If you think that this is not clear in the RD document, this should be raised as an issue to get better text there.

> *  There should however be a statement that the link for an rd-item 
> when registering MUST NOT only be a path comment.

I assume you mean you do not want relative references. But, if I want to register a resource that has the same authority (IP address/DNS name and port) as the resource directory, why should I not be able to register that using a relative reference?

[JLS] Yes I meant component not comment.  In theory there is no reason why you should no be able to do so.  In practice it is going almost always be an indication that there is an error in the registration.  The only entity this should be true for is the RD itself.

> * I think there should be a statement that only the first base 
> directive can include schema + authority information.  This is because 
> you are only supposed to register resources for one entity at a time.

-coral-reef currently doesn't make this restriction/assumption. If you have, for example, a commissioning tool that registers the resources of lots of servers in a resource directory and wants to register all of them as a single unit, then I don't see why shouldn't be allowed to do so (given proper authorizations).

[JLS] Well - you are going to have a hard time returning the location-path to each of those different servers that you just registered into the RD.

> * Section 3 - I am not sure you want to use the word "identifier" in the
> description of title.  That is not normally how I think of a title.   I
> would probably also use "title" rather than "label" in both paragraphs.
>
> * Section 3 - you need to give me something to better distinguish 
> between #type and #ct as they both seem to say the same thing to me.
>
> * Section 3 - you need to say something about how to deal with #ct for 
> multiple values.  I am not sure about #if

Section 3 currently sources its list of items from different places, such as [3] and [4], and hasn't seen much work yet. For example, the word "identifier" was just copied from [4]. Let's go through the list sometime (maybe in a CoRE virtual interim?) and decide what to keep, how to name it (I'm not a big fan of the acronyms), and how to describe it.

[JLS] Sounds reasonable.

> * Section 3 - I think that you should have all of the tags in this section.
> For example rd-item and rd-unit.

rd-item and rd-unit are not resource metadata vocabulary, so I wouldn't add them to this section. But, yes, having a combined list of all the vocabulary used in the document somewhere would be nice. Maybe as an appendix?

[JLS] You may not thinking of them as resource metadata vocabulary, but they are vocabulary for -reef.  As such they need to have a description someplace that is easy to find and having all of the vocabulary in a single location is very useful.    Titling the section  "Reef Vocabulary" and then having subsections would also be a way to address you grouping issue.

> *  General - I know that this is supposed to be what is going to 
> happen, an ?rt= query option is going to be the same as reef#rt, but I 
> don't think there is anyplace in this document that makes that statement.

Section 4.2.2 [5] currently says:

   On success, the server returns a 2.05 (Content) response with a
   representation of the list of resources (see Section 4.1.1), but
   containing only the subset of links that has resource metadata of
   type <http://coreapps.org/reef#rt> with the specified text value.

[JLS] That does not answer my question.  Do rt and <http://coreapps.org/reef/#rt> map to the same information, and if so where is this stated so that I don't get confused about other things that have similar looking names.  This is going to be really an issue if you start getting rid of abbreviations and go to <http://coreapps.org/reef/#resource-type> instead because the strings no longer match.  Given that the RD needs to support arbitrary strings in the link format, knowing if the list is closed or open ended in some manner helps.  

** Jim


Klaus

[1] https://tools.ietf.org/html/draft-hartke-t2trg-coral-reef-03#section-1
[2] https://tools.ietf.org/html/rfc6690#section-5
[3] https://tools.ietf.org/html/rfc6690#section-3
[4] https://tools.ietf.org/html/rfc8288#section-3.4.1
[5] https://tools.ietf.org/html/draft-hartke-t2trg-coral-reef-03#section-4.2.2