Re: [core] Questions & Comments for PubSub updated Proposal

Jim Schaad <ietf@augustcellars.com> Fri, 02 August 2019 15:48 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 328891205F1 for <core@ietfa.amsl.com>; Fri, 2 Aug 2019 08:48:48 -0700 (PDT)
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 kbhrN_D43yCm for <core@ietfa.amsl.com>; Fri, 2 Aug 2019 08:48:46 -0700 (PDT)
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 C4E6F1205F0 for <core@ietf.org>; Fri, 2 Aug 2019 08:48:34 -0700 (PDT)
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, 2 Aug 2019 08:48:28 -0700
From: Jim Schaad <ietf@augustcellars.com>
To: 'Christian Amsüss' <christian@amsuess.com>
CC: core@ietf.org
References: <01db01d547f3$6c7eec20$457cc460$@augustcellars.com> <20190801084555.GA2449@hephaistos.amsuess.com>
In-Reply-To: <20190801084555.GA2449@hephaistos.amsuess.com>
Date: Fri, 02 Aug 2019 08:48:26 -0700
Message-ID: <02a101d54949$ba303760$2e90a620$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-us
Thread-Index: AQEvwUqhFQDetsDbheeDSbd9jWEhFwIOMBY0qCKcwYA=
X-Originating-IP: [73.180.8.170]
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/xIh1E0vLPnfXGdEyM3q0Uf0boWI>
Subject: Re: [core] Questions & Comments for PubSub updated Proposal
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, 02 Aug 2019 15:48:48 -0000


-----Original Message-----
From: Christian Amsüss <christian@amsuess.com> 
Sent: Thursday, August 1, 2019 1:46 AM
To: Jim Schaad <ietf@augustcellars.com>
Cc: core@ietf.org
Subject: Re: [core] Questions & Comments for PubSub updated Proposal

Hello Jim, hello pubsub authors,

my personal take on this:

I think that most those points can addressed by a variation on the proposal
that has been floating but not made its way into the text yet:
Rather than all attributes being attached to the topic, some are on the data
resource. Compare the following to item 3.5:

    Request:

        GET </ps/topics/1234>

    Response:

        2.05 Content
        Content-Format: CoRAL

        rdf:type            <http://example.org/pubsub/topic>
        has-published-item  true
        publish             -> </ps/data/1234> [ method 3 ]
        created             dt'2019-07-08T15:35:00+0200'
        last-modified       dt'2019-07-08T15:35:00+0200'
        owner               <http://ericsson.example/people/ari>
        max-rate            50
        expires             dt'2019-07-15T15:35:00+0200'
        topic-data          </ps/data/1234> {
          unit                "Cel"
          rt                  "oic.r.temperature"
          # that was "topic-title" on the topic in proposal.txt
          title               "My Office Room Temperature"
          # that was "publisher" on the topic in proposal.txt
          owner               <http://ericcson.example/people/klaus>
          building            18
          floor               1
        }

We'd still need to, for all the properties involved, decide which terms to
use and where to attach them, but it completely sidesteps the topic of
inheritance (which would indeed be tricky -- the resource type of a control
resource is "pubsub topic control resource", if it's a oic.r.temperature at
the same time, that's ... odd). A good criterion for whether something is an
attribute of the control or the data resource is the question "Does it
matter whether this is used in a pubsub context?": If it is, it should be on
the control resource, otherwise it's on the data resource.

[JLS] Yes - That is very similar to the way that was thinking.  I had not
gone as far as renaming some of the fields so that there is more consistency
but that makes things even better.

There is the interesting question of what the target is for a creation post,
a patch would use the correct target, but I think that this could be done as
[ path.type: relative-path]  which is the closest that I can see to being
the equivalent of "." which would make sense.

This does still not quite answer this:

> 2.  It is not clear to me if a data node is supposed to be able to 
> provide a CoRAL document for information that relates to it.

If someone only knows the data resource, there's no way back from there to
the control resource, and no way to get its metadata (that'd be a
PROPFIND-style operation probably, and I don't think we want that).
There are still CoRAL statements about the topic, but the easiest way to
obtain them is to look into the control resource's CoRAL document that
describes the topic as well as above. (Which is also how they could be
updated, by PATCHing that resource once a patch format for CoRAL is there,
or by PUTting back a modified representation, where the server would reject
changes it can't do, like the created date or the topic-data URI).

[JLS] Right - somebody who know both that this was a pub-sub server and
understood CoRAL could do this with 

REQUEST

FETCH </ps/topics>

rdf:type            <http://example.org/pubsub/topic>
topic-data         </ps/data/1234>

This would find and return the information about the topic based on the
topic-data path.  If you just do link format then you are out of luck.

Jim



Best regards
Christian

--
To use raw power is to make yourself infinitely vulnerable to greater
powers.
  -- Bene Gesserit axiom