[core] Some terminology questions for CoRAL

Jim Schaad <ietf@augustcellars.com> Wed, 27 November 2019 02:16 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 5D578120B4B for <core@ietfa.amsl.com>; Tue, 26 Nov 2019 18:16:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 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] 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 f09fivVhBqmM for <core@ietfa.amsl.com>; Tue, 26 Nov 2019 18:16:38 -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 B61A4120B49 for <core@ietf.org>; Tue, 26 Nov 2019 18:16:37 -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; Tue, 26 Nov 2019 18:16:31 -0800
From: Jim Schaad <ietf@augustcellars.com>
To: core@ietf.org
Date: Tue, 26 Nov 2019 18:16:29 -0800
Message-ID: <069401d5a4c8$afc07da0$0f4178e0$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdWksgR7WEwtn1beRleL07pKg+noaA==
Content-Language: en-us
X-Originating-IP: [73.180.8.170]
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/st3x1D2XK9SxNzsrmnyA9PlpvxA>
Subject: [core] Some terminology questions for 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: Wed, 27 Nov 2019 02:16:39 -0000

I have been having some problems understanding one of the ways that CoRAL is
currently being described as being expressed.  I think that I have narrowed
down the issue to where I am not groking things.

The current document says that you have a context and anything which is a
URI would be resolved using that context.  The default context for anything
that is returned from the server to the client is specified as the URI that
corresponded to the request.  This makes a lot of sense.  The reverse is
also going to be true for CoRAL documents sent from the client to the
server.  In terms of the pub sub draft, an update of a topic for which the
data item is a child node would be expressed as

Max-rate 60
Topic-title  "Change to this title"
Topic-data <data> {
     Value  "90"
}    

In this case <data> is evaluated relative to the path where the document was
posted.  Next comes where I have run into my problem.  I am going to send a
request to create a topic from scratch.  In this case I am going to send a
CoRAL document to create a new topic would look like

Topic _ {
    Topic-title "This is a new topic"
}
Topic-data _ {
   Content-type 29
}

So, in my mind, both topic and topic-data have a URI as a target.  However,
in this case the value of that URI is completely unknown to the client that
is requesting that the topic be created.   My problem is that I still want
to put a URI as the target and not a literal which is what the underscore
character is.  I think this issue only arises in the cases where the target
is always going to be a URI in a response, and might be URI in the request
but not always.  In the cases where it is not a URI, it is never going to be
a literal value it is always going to be of the sense "I don't know what
goes here" or "There may be multiple answers to what goes here".  The first
case matches to the creation case.  The second case matches a query case
such as a FETCH operation.

While my personal preference here would be to use something that would not
ever be used as a literal value, as long as it gets documented in the CoRAL
document I would be able to live with any value.   The CBOR value of
"Undefined Value" (simple value 23) leaps to mind as a reasonable value to
put here depending on how the PATCH format is defined.  It may be that this
should be saved for delete.

Jim