15:00:50 RRSAgent has joined #wot-arch 15:00:50 logging to https://www.w3.org/2021/01/21-wot-arch-irc 15:02:17 mlagally has joined #wot-arch 15:02:26 dape has joined #wot-arch 15:02:30 Meeting: WoT Architecture 15:02:45 present+ Kaz_Ashimura, Michael_Lagally 15:05:34 present+ Michael_Koster, Ben_Francis, Tomoaki_Mizushima, Michael_McCool 15:05:55 McCool has joined #wot-arch 15:06:16 Mizushima has joined #wot-arch 15:07:52 scribenick: McCool 15:08:29 mjk has joined #wot-arch 15:08:32 agenda:https://www.w3.org/WoT/IG/wiki/WG_WoT_Architecture_WebConf 15:08:37 topic: minutes review 15:08:58 https://www.w3.org/2020/12/17-wot-arch-minutes.html 15:09:09 cris has joined #wot-arch 15:09:48 ml: last week had discussion of terminology around TD fragment, partial TD, defined some actions 15:10:03 ... cristiano and daniel to provide draft PRs 15:10:15 ml: any objections to publication? 15:10:23 ... hearing none, will be published. 15:10:34 topic: FPWD feedback 15:10:52 s|https://www.w3.org/2020/12/17-wot-arch-minutes.html|https://www.w3.org/2021/01/14-wot-arch-minutes.html| 15:11:00 ml: we did resolve amny comment prior to FPWD, but have gotten more since 15:11:08 ... we should review and resolve 15:11:36 ... we do want to make sure the document makes progress and becomes useful in the next month or two 15:11:46 ... it has many gaps and contentious items 15:12:02 ... we ultimately want to get a document that helps the market 15:12:45 ... and not just "one more IoT specification" but something that is easy to understand and adopt and solves real interop problems 15:13:25 q+ 15:14:56 mm: I would like to propose that if there is a contentious but non-essential feature we should just take it out for now 15:15:06 ... the main goal is interop and we should focus on that 15:15:30 ml: we we have two PRs and 37 issues 15:16:08 https://github.com/w3c/wot-profile/pull/62 15:16:29 present+ Cristiano_Aguzzi 15:16:34 ml: this PR just catches up the editors' version to changes needed for FPWD 15:16:47 ... propose merging, not controversial 15:16:55 ml: (merges PR 62) 15:17:03 rrsagent, make log public 15:17:07 rrsagent, draft minutes 15:17:07 I have made the request to generate https://www.w3.org/2021/01/21-wot-arch-minutes.html kaz 15:18:27 Chair: Lagally 15:18:29 ml: next PR is canonical representation; will not look at that right now 15:18:46 mm: however, it would be helpful to link the related issue, which I hope is also linked to issues in the TD repo 15:18:47 s/amny/many/ 15:19:14 s/FPWD feedback/FPWD feeback - PR 62/ 15:19:15 topic: FPWD feedback 15:19:25 ml: they have been labelled in the repo 15:19:53 https://github.com/w3c/wot-profile/issues/59 15:20:36 https://github.com/w3c/wot-profile/labels/FPWD%20Feedback 15:20:54 ben: see there are two main goals which are a bit in conflict 15:21:05 s|https://github.com/w3c/wot-profile/issues/59|| 15:21:14 ... one is about readabilty, the other about interop 15:21:20 i|see|-> https://github.com/w3c/wot-profile/issues/59 Issue 59| 15:21:24 ... and there is also the issue of protocols 15:21:57 ... suggest perhaps a "core" profile that supports HTTP and JSON and a constrained one that supports CoAP (and CBOR?) 15:22:38 ml: currently looking at "data model" constraints, then constraints on particular protocol bindings 15:22:48 q+ 15:25:38 mm: so want to +1 what ben and ml said 15:25:57 ... and note that I think we all agree the data model is central 15:25:59 what do we mean when we say "readability"? 15:26:21 ... and data+http maps onto what ben is calling "core", and data+coap maps onto "constrained" 15:26:34 ... we can argue about names, but conceptually we are on the same page 15:26:53 ... and as for goals, I agree with ben that human readable + interop can be in conflict 15:26:54 so , descriptive variable names? 15:27:01 ... and I propose we get interop done first 15:27:20 ... then go back and see what we can do to improve interop 15:28:27 present+ Sebastian_Kaebisch 15:28:29 embedded documentation strings? 15:28:33 mm: I also think documentation makes more sense to be mandatory in the Thing Model 15:29:13 ... so maybe what we should do is make a link the *model* mandatory 15:29:35 ... and make documentation mandatory in the thing model 15:30:13 mjk: so I'd like to understand this better 15:30:35 ml: can you comment on what you felt was controversial 15:30:46 ben: so human-readable means strings, sent over the wire 15:31:00 ... but constrained devices need a very compact, binary form 15:31:10 ... and these are conflicting requirements 15:31:24 mjk: ok, I think it is what I thought 15:31:38 ... so, titles, and descriptions, and also JSON vs. CBOR 15:31:45 ... JSON is definitely easier to read 15:32:00 ben: also complexity of data structures 15:32:15 ... lots of nesting is a problem for constrained devices 15:32:30 ... if we limit depth, it can make it harder to read 15:33:14 mjk: making TD lightweight and putting docs in TM makes sense 15:33:36 ... but yes, for constrained devices, just using numerical IDs for variable names makes sense 15:33:41 q+ 15:35:14 mm: I think a compromise might work, for nesting, eg. 4 to 16 15:35:27 ben: there is the issue that that might not satisfy anyone 15:35:45 mjk: well, 1 is at the extreme end, flattens everything 15:35:57 ... but the observation is that 2-3 is the natural limit 15:36:28 ... what people want to do is have a variable name that refers to a single struct 15:36:31 q+ 15:37:48 -> https://w3c.github.io/wot-profile/#thing WoT Profile Editor's Draft - 5.1.2 Thing 15:38:33 mm: there are several cases where we do want some nesting, eg for modularity, to make queries easy 15:38:39 ... so 4 seems safe 15:38:55 ml: I'd like to propose 5 just to be safe. 15:39:46 mm: I'd like to say recommended practice is 4, and validator starts giving warnings when you are at 5 15:40:08 mjk: constrained profile should be good enough for devices that are bluetooth/zigbee class 15:40:21 ... but I would expect a gateway to have both 15:40:22 q+ 15:41:06 mjk: gateway may be acting as a proxy for constrained devices and so would be good to support 15:41:54 mm: so is the constrained a strict subset of core, or separate? We need to decide 15:41:55 proposal: max depth of data schema is max 5, recommended practice is not to exceed 4. 15:42:10 ml: I think we should also focus on the data model, that definitely is common 15:42:32 proposal: common data model - max depth of data schema is 5, recommended practice is not to exceed 4. 15:43:57 ben: do think we are on a bit of a tangent right now 15:44:04 ... and want to get back to the original issue 15:44:20 ... I do agree that if there are two profiles they should have a common data model 15:44:37 ... but I think the TD already does that, and perhaps we should improve the TD spec 15:45:10 ml: not skipping over your comments, just capturing a consensus so we can make progress 15:45:34 q+ 15:47:10 mm: think we should capture this consensus, then get back to ben's split profiles 15:47:17 resolution: common data model - max depth of data schema is 5, recommended practice is not to exceed 4. 15:47:30 ml: ok, let's go back 15:47:46 q+ 15:49:25 mm: some questions to ben: is core > constrained, or are they separate? 15:49:29 ben: separate 15:49:37 mm: and can a gateway support both? 15:49:40 ben: yes 15:49:53 mm: in which case the common elements need to be aligned 15:50:07 ben: so doing the same thing, but with different protocols 15:50:25 mjk: so really these aspects should be completely handled by protocol bindings 15:51:07 ml: issue is that protocols are designed to support a lot of different options even within a single protocol 15:51:29 ... so we need additional constraints even within a protocol 15:51:35 q+ 15:52:10 mm: I think a profile is in fact prescriptive 15:52:34 ben: agree; point of profile is to be prescriptive for greenfield devices 15:52:44 ... so they are guaranteed to interop 15:53:01 ml: and if we do our job well, will still cover 80% of brownfield devices 15:53:23 mjk: there could be a slight middle ground when there are only a small number of options 15:53:53 ben: would not suggest getting rid of the TD altogher, but the more we prescribe the smaller the TD can be 15:54:21 sebastian has joined #wot-arch 15:55:12 q+ 15:56:23 ml: so getting back to the issue, since we don't have a volunteer for CoAP, I propose we focus on HTTP 15:56:32 q? 15:57:01 q+ 15:57:14 q+ 15:57:32 mm: agree that we should focus on http for now, as long as we leave room for adding coap later. 15:57:55 ben: sure, as long as any profile has at least one protocol 15:59:00 mjk: does that mean that if I wanted to build a constrained device that supporte the "core" profile, it would have to support http? 15:59:03 q+ 15:59:46 mjk: beyond the protocol binding there is also the issue of construction of payloads 16:00:08 ack m 16:00:14 ben: my understanding is the protocol binding says what the payload format is 16:00:28 ben: producer and consumer need to have a common understanding 16:01:29 mm: the gateway use case can inform how the core + protocols work together 16:01:31 mm: core does not mean everyone has to support it 16:01:39 ... it's just the "http" profile 16:01:57 ben: a mobile app is a good use case for both direct connect and app interaction 16:02:05 ... and I think we should focus on the gateway use case 16:02:06 q? 16:02:09 ack m 16:02:36 sebastian: concerned with the name "constrained profile" as being too broad 16:02:51 seb: I have a concern about the "constrained" name as well, since there might be other protocols for devices, eq mqtt 16:03:02 sk: propose a structure where the core profile is a data model constraint 16:03:04 ... I would like another approach to structure this 16:03:11 ... make core all the common constraints 16:03:21 ... then the other constraints are handled in the binding documents 16:03:30 i/the gateway/scribenick: mjk/ 16:03:46 i/core does not/scribenick: McCool/ 16:03:49 ... make each binding document have a chapter defining constraints when used with the core profile 16:04:05 i/a mobile app is/scribenick: mjk/ 16:04:08 ... I would avoid trying to integrate all the protocol stuff here, since we have the binding documents 16:04:39 ml: I like this idea of taking out the data model first, and keeping the protocol binding separate 16:04:52 i/... and I think/scribenick: McCool/ 16:04:53 ... regardless of where we put it 16:05:04 s/... and I think/mm: and I think/ 16:05:25 ... and there are lots of things that are relevant to interop that needs to be handled in protocols, such as error codes 16:05:36 q? 16:05:36 i/concerned with the/scribenick: mjk/ 16:05:36 ... event handling, etc. 16:06:00 i/I have a concern/scribenick: McCool/ 16:06:08 ben: I think we all agree on the core concepts, we just disagree on names and where the concepts are documented 16:06:24 i/propose a structure where/scribenick: mjk/ 16:06:25 ... it's just where those specs live that we are going backwards and forwards on 16:06:27 q? 16:06:28 q+ 16:06:31 ack s 16:06:39 i/I would like another/scribenick: McCool/ 16:06:55 ml: let's first make the spec, then figure out where it goes... 16:07:25 s/... I would like/sk: I would like/ 16:07:42 rrsagent, draft minutes 16:07:42 I have made the request to generate https://www.w3.org/2021/01/21-wot-arch-minutes.html kaz 16:07:49 ml: I also see a lot of issues coming up when trying to answer data model questions in protocol bindings 16:07:56 ... so better to consolidate that 16:08:11 q+ 16:08:36 ackm 16:08:39 ack m 16:08:46 q? 16:08:49 ack mjk 16:09:42 ben: right now protocol template is very general 16:10:38 mm: so... profiles are prescriptive, so what we want are "descriptive" specs (TDs, protocols bindings) with "prescriptive" subsets that guarantee interop 16:12:33 mjk: want to understand if profiles are a template... 16:12:58 ml: have to be concrete and something that we can check conformance of an implementation againts 16:13:40 mjk: we need to write down the constraints somewhere... so that is the profile spec? 16:13:59 ml: yes, a profile is conceptually the set of all constraints that guarantee interop 16:14:21 mjk: and we also need actual data models for particular devices 16:14:40 ml: out of scope, necessary, but look at everything under specific classes of devices 16:14:59 ... for example, we probably want to specify the units to be used for measurements 16:15:56 ml: although there would be issues in insisting on metric, so we might have to have options, precedence orders, etc. 16:18:19 ml: (types up summary of discussion in https://github.com/w3c/wot-profile/issues/59 16:21:08 q? 16:21:30 mm: suggest for MQTT/COAP we ask those working on protocol bindings for these to address 16:21:43 seb: but agree that let's do HTTP first 16:22:27 ml: I think we agree that we should focus on HTTP first anyway 16:25:10 (sorry dropping) 16:25:31 scribenick: mjk 16:26:11 topic: issue #49 16:27:12 cris: suggest to restrict the core profile to one security schema 16:27:37 ml: can cris create a PR for next time? 16:27:59 i|suggest to|-> https://github.com/w3c/wot-profile/issues/49 Issue 49| 16:28:35 topic: issue #45 16:29:34 sk: I think this is already discussed and addressed 16:29:46 ml: closing 16:30:31 topic: issue #42 need ege in the next discussion 16:31:12 ml: need ege in the next discussion 16:31:52 ... need to discuss supported subprotocols and event model in general 16:32:14 ... schedule on the agenda for the next call 16:32:16 i|need ege|-> https://github.com/w3c/wot-profile/issues/42 Issue 42| 16:32:26 s/ ege / Ege / 16:32:36 topic: issue #43 16:33:12 ml: made a PR to address the editorial comments 16:33:32 cris: "type" is just one field, should allow an array 16:35:30 mjk: "@type" does not imply multiple inheritance and can be array 16:38:55 ml: initially was to simplify due to requiring both string and array, should constrain to always being array 16:41:58 cris: the comment was about allowing both array and string 16:44:57 ben: allowing string makes for nice visual readability 16:46:03 mjk: there are other reasons where the source has a single string and doesn't need to be expanded 16:46:22 ml: seems like a small decision but this could be consequential 16:49:00 cris: we should be consistent, things are more complicated if there is special behavior 16:50:25 ml: can we remove the editor's note in sec. 5.1.1.2? 16:50:52 q? 16:53:43 topic: issue #60 16:54:02 -> github.com/w3c/wot-profile/issues/60 Issue 60 16:54:59 ben: allow multiple forms in a TD to enable layering multiple protocols 16:56:02 ml: what is the required behavior to specify when there are multiple protocols? 16:56:30 ... we could require a separate TD 16:56:50 ben: it's OK to allow a single endpoint for each protocol 17:00:22 [adjourned] 17:00:27 rrsagent, draft minutes 17:00:27 I have made the request to generate https://www.w3.org/2021/01/21-wot-arch-minutes.html kaz 18:58:43 Zakim has left #wot-arch