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

Christian Amsüss <christian@amsuess.com> Thu, 01 August 2019 08:46 UTC

Return-Path: <christian@amsuess.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 C9E321200C1 for <core@ietfa.amsl.com>; Thu, 1 Aug 2019 01:46:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=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 oDwCioJRQx9j for <core@ietfa.amsl.com>; Thu, 1 Aug 2019 01:46:26 -0700 (PDT)
Received: from prometheus.amsuess.com (prometheus.amsuess.com [5.9.147.112]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 41B2F1200B8 for <core@ietf.org>; Thu, 1 Aug 2019 01:46:26 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (095129206250.cust.akis.net [95.129.206.250]) by prometheus.amsuess.com (Postfix) with ESMTPS id A3FB9458D2; Thu, 1 Aug 2019 10:46:23 +0200 (CEST)
Received: from poseidon-mailbox.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 82DF126; Thu, 1 Aug 2019 10:46:21 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:fd92:577d:e8e:dffa]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id E610561; Thu, 1 Aug 2019 10:46:20 +0200 (CEST)
Received: (nullmailer pid 18704 invoked by uid 1000); Thu, 01 Aug 2019 08:45:58 -0000
Date: Thu, 01 Aug 2019 10:45:58 +0200
From: Christian Amsüss <christian@amsuess.com>
To: Jim Schaad <ietf@augustcellars.com>
Cc: core@ietf.org
Message-ID: <20190801084555.GA2449@hephaistos.amsuess.com>
References: <01db01d547f3$6c7eec20$457cc460$@augustcellars.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="LZvS9be/3tNcYl/X"
Content-Disposition: inline
In-Reply-To: <01db01d547f3$6c7eec20$457cc460$@augustcellars.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/QgB1zeUSO9O78c-Jm2hzLSw7Fuo>
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: Thu, 01 Aug 2019 08:46:29 -0000

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.

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).


Best regards
Christian

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