[wot-architecture] minutes - 21 January 2021

available at:
  https://www.w3.org/2021/01/21-wot-arch-minutes.html

also as text below.

Thanks a lot for taking the minutes, Michael McCool and Michael Koster!

Kazuyuki

---
   [1]W3C

      [1] https://www.w3.org/

                            WoT Architecture

21 January 2021

   [2]Agenda. [3]IRC log.

      [2] https://www.w3.org/WoT/IG/wiki/WG_WoT_Architecture_WebConf
      [3] https://www.w3.org/2021/01/21-wot-arch-irc

Attendees

   Present
          Ben_Francis, Cristiano_Aguzzi, Kaz_Ashimura,
          Michael_Koster, Michael_Lagally, Michael_McCool,
          Sebastian_Kaebisch, Tomoaki_Mizushima

   Regrets
          -

   Chair
          Lagally

   Scribe
          McCool, mjk

Contents

    1. [4]minutes review
    2. [5]FPWD feeback - PR 62
    3. [6]FPWD feedback
    4. [7]issue #49
    5. [8]issue #45
    6. [9]issue #42 need ege in the next discussion
    7. [10]issue #43
    8. [11]issue #60
    9. [12]Summary of resolutions

Meeting minutes

  minutes review

   [13]https://www.w3.org/2021/01/14-wot-arch-minutes.html

     [13] https://www.w3.org/2021/01/14-wot-arch-minutes.html

   Lagally: last week had discussion of terminology around TD
   fragment, partial TD, defined some actions
   … cristiano and daniel to provide draft PRs

   Lagally: any objections to publication?
   … hearing none, will be published.

  FPWD feeback - PR 62

   Lagally: we did resolve many comment prior to FPWD, but have
   gotten more since
   … we should review and resolve
   … we do want to make sure the document makes progress and
   becomes useful in the next month or two
   … it has many gaps and contentious items
   … we ultimately want to get a document that helps the market
   … and not just "one more IoT specification" but something that
   is easy to understand and adopt and solves real interop
   problems

   McCool: I would like to propose that if there is a contentious
   but non-essential feature we should just take it out for now
   … the main goal is interop and we should focus on that

   Lagally: we we have two PRs and 37 issues

   <mlagally> [14]https://github.com/w3c/wot-profile/pull/62

     [14] https://github.com/w3c/wot-profile/pull/62

   Lagally: this PR just catches up the editors' version to
   changes needed for FPWD
   … propose merging, not controversial

   Lagally: (merges PR 62)

   Lagally: next PR is canonical representation; will not look at
   that right now

   McCool: however, it would be helpful to link the related issue,
   which I hope is also linked to issues in the TD repo

  FPWD feedback

   Lagally: they have been labelled in the repo

   [15]https://github.com/w3c/wot-profile/labels/FPWD%20Feedback

     [15] https://github.com/w3c/wot-profile/labels/FPWD Feedback

   <kaz> [16]Issue 59

     [16] https://github.com/w3c/wot-profile/issues/59

   Ben: see there are two main goals which are a bit in conflict
   … one is about readabilty, the other about interop
   … and there is also the issue of protocols
   … suggest perhaps a "core" profile that supports HTTP and JSON
   and a constrained one that supports CoAP (and CBOR?)

   Lagally: currently looking at "data model" constraints, then
   constraints on particular protocol bindings

   McCool: so want to +1 what ben and ml said
   … and note that I think we all agree the data model is central

   <mjk> what do we mean when we say "readability"?

   McCool: and data+http maps onto what ben is calling "core", and
   data+coap maps onto "constrained"
   … we can argue about names, but conceptually we are on the same
   page
   … and as for goals, I agree with ben that human readable +
   interop can be in conflict

   <mjk> so , descriptive variable names?

   McCool: and I propose we get interop done first
   … then go back and see what we can do to improve interop

   <mjk> embedded documentation strings?

   McCool: I also think documentation makes more sense to be
   mandatory in the Thing Model
   … so maybe what we should do is make a link the *model*
   mandatory
   … and make documentation mandatory in the thing model

   Koster: so I'd like to understand this better

   Lagally: can you comment on what you felt was controversial

   Ben: so human-readable means strings, sent over the wire
   … but constrained devices need a very compact, binary form
   … and these are conflicting requirements

   Koster: ok, I think it is what I thought
   … so, titles, and descriptions, and also JSON vs. CBOR
   … JSON is definitely easier to read

   Ben: also complexity of data structures
   … lots of nesting is a problem for constrained devices
   … if we limit depth, it can make it harder to read

   Koster: making TD lightweight and putting docs in TM makes
   sense
   … but yes, for constrained devices, just using numerical IDs
   for variable names makes sense

   McCool: I think a compromise might work, for nesting, eg. 4 to
   16

   Ben: there is the issue that that might not satisfy anyone

   Koster: well, 1 is at the extreme end, flattens everything
   … but the observation is that 2-3 is the natural limit
   … what people want to do is have a variable name that refers to
   a single struct

   <kaz> [17]WoT Profile Editor's Draft - 5.1.2 Thing

     [17] https://w3c.github.io/wot-profile/#thing

   McCool: there are several cases where we do want some nesting,
   eg for modularity, to make queries easy
   … so 4 seems safe

   Lagally: I'd like to propose 5 just to be safe.

   McCool: I'd like to say recommended practice is 4, and
   validator starts giving warnings when you are at 5

   Koster: constrained profile should be good enough for devices
   that are bluetooth/zigbee class
   … but I would expect a gateway to have both

   Koster: gateway may be acting as a proxy for constrained
   devices and so would be good to support

   McCool: so is the constrained a strict subset of core, or
   separate? We need to decide

   <mlagally> proposal: max depth of data schema is max 5,
   recommended practice is not to exceed 4.

   Lagally: I think we should also focus on the data model, that
   definitely is common

   <mlagally> proposal: common data model - max depth of data
   schema is 5, recommended practice is not to exceed 4.

   Ben: do think we are on a bit of a tangent right now
   … and want to get back to the original issue
   … I do agree that if there are two profiles they should have a
   common data model
   … but I think the TD already does that, and perhaps we should
   improve the TD spec

   Lagally: not skipping over your comments, just capturing a
   consensus so we can make progress

   McCool: think we should capture this consensus, then get back
   to ben's split profiles

   Resolution: common data model - max depth of data schema is 5,
   recommended practice is not to exceed 4.

   Lagally: ok, let's go back

   McCool: some questions to ben: is core > constrained, or are
   they separate?

   Ben: separate

   McCool: and can a gateway support both?

   Ben: yes

   McCool: in which case the common elements need to be aligned

   Ben: so doing the same thing, but with different protocols

   Koster: so really these aspects should be completely handled by
   protocol bindings

   Lagally: issue is that protocols are designed to support a lot
   of different options even within a single protocol
   … so we need additional constraints even within a protocol

   McCool: I think a profile is in fact prescriptive

   Ben: agree; point of profile is to be prescriptive for
   greenfield devices
   … so they are guaranteed to interop

   Lagally: and if we do our job well, will still cover 80% of
   brownfield devices

   Koster: there could be a slight middle ground when there are
   only a small number of options

   Ben: would not suggest getting rid of the TD altogether, but
   the more we prescribe the smaller the TD can be

   Lagally: so getting back to the issue, since we don't have a
   volunteer for CoAP, I propose we focus on HTTP

   McCool: agree that we should focus on http for now, as long as
   we leave room for adding coap later.

   Ben: sure, as long as any profile has at least one protocol

   Koster: does that mean that if I wanted to build a constrained
   device that support the "core" profile, it would have to
   support http?

   Koster: beyond the protocol binding there is also the issue of
   construction of payloads

   Ben: my understanding is the protocol binding says what the
   payload format is

   Ben: producer and consumer need to have a common understanding

   <mjk> mm: the gateway use case can inform how the core +
   protocols work together

   McCool: core does not mean everyone has to support it
   … it's just the "http" profile

   Ben: a mobile app is a good use case for both direct connect
   and app interaction

   McCool: and I think we should focus on the gateway use case

   sebastian: concerned with the name "constrained profile" as
   being too broad

   Sebastian: I have a concern about the "constrained" name as
   well, since there might be other protocols for devices, eq mqtt

   Sebastian: propose a structure where the core profile is a data
   model constraint

   Sebastian: I would like another approach to structure this
   … make core all the common constraints
   … then the other constraints are handled in the binding
   documents
   … make each binding document have a chapter defining
   constraints when used with the core profile
   … I would avoid trying to integrate all the protocol stuff
   here, since we have the binding documents

   Lagally: I like this idea of taking out the data model first,
   and keeping the protocol binding separate
   … regardless of where we put it
   … and there are lots of things that are relevant to interop
   that needs to be handled in protocols, such as error codes
   … event handling, etc.

   Ben: I think we all agree on the core concepts, we just
   disagree on names and where the concepts are documented
   … it's just where those specs live that we are going backwards
   and forwards on

   Lagally: let's first make the spec, then figure out where it
   goes...

   Lagally: I also see a lot of issues coming up when trying to
   answer data model questions in protocol bindings
   … so better to consolidate that

   <mjk> ackm

   Ben: right now protocol template is very general

   McCool: so... profiles are prescriptive, so what we want are
   "descriptive" specs (TDs, protocols bindings) with
   "prescriptive" subsets that guarantee interop

   Koster: want to understand if profiles are a template...

   Lagally: have to be concrete and something that we can check
   conformance of an implementation againts

   Koster: we need to write down the constraints somewhere... so
   that is the profile spec?

   Lagally: yes, a profile is conceptually the set of all
   constraints that guarantee interop

   Koster: and we also need actual data models for particular
   devices

   Lagally: out of scope, necessary, but look at everything under
   specific classes of devices
   … for example, we probably want to specify the units to be used
   for measurements

   Lagally: although there would be issues in insisting on metric,
   so we might have to have options, precedence orders, etc.

   Lagally: (types up summary of discussion in [18]https://
   github.com/w3c/wot-profile/issues/59

     [18] https://github.com/w3c/wot-profile/issues/59

   McCool: suggest for MQTT/COAP we ask those working on protocol
   bindings for these to address

   Sebastian: but agree that let's do HTTP first

   Lagally: I think we agree that we should focus on HTTP first
   anyway

   (sorry dropping)

  issue #49

   <kaz> [19]Issue 49

     [19] https://github.com/w3c/wot-profile/issues/49

   Cristiano: suggest to restrict the core profile to one security
   schema

   Lagally: can cris create a PR for next time?

  issue #45

   Sebastian: I think this is already discussed and addressed

   Lagally: closing

  issue #42 need ege in the next discussion

   <kaz> [20]Issue 42

     [20] https://github.com/w3c/wot-profile/issues/42

   Lagally: need Ege in the next discussion
   … need to discuss supported subprotocols and event model in
   general
   … schedule on the agenda for the next call

  issue #43

   <kaz> [21]Issue 43

     [21] https://github.com/w3c/wot-profile/issues/43

   Lagally: made a PR to address the editorial comments

   Cristiano: "type" is just one field, should allow an array

   Koster: "@type" does not imply multiple inheritance and can be
   array

   Lagally: initially was to simplify due to requiring both string
   and array, should constrain to always being array

   Cristiano: the comment was about allowing both array and string

   Ben: allowing string makes for nice visual readability

   Koster: there are other reasons where the source has a single
   string and doesn't need to be expanded

   Lagally: seems like a small decision but this could be
   consequential

   Cristiano: we should be consistent, things are more complicated
   if there is special behavior

   Lagally: can we remove the editor's note in sec. 5.1.1.2?

  issue #60

   <kaz> [22]Issue 60

     [22] https://github.com/w3c/wot-profile/issues/60

   Ben: allow multiple forms in a TD to enable layering multiple
   protocols

   Lagally: what is the required behavior to specify when there
   are multiple protocols?
   … we could require a separate TD

   Ben: it's OK to allow a single endpoint for each protocol

   <kaz> [adjourned]

Summary of resolutions

    1. [23]common data model - max depth of data schema is 5,
       recommended practice is not to exceed 4.


    Minutes manually created (not a transcript), formatted by
    [24]scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).

     [24] https://w3c.github.io/scribe2/scribedoc.html

Received on Monday, 8 March 2021 03:27:55 UTC