13:59:46 RRSAgent has joined #wot-arch 13:59:46 logging to https://www.w3.org/2021/09/23-wot-arch-irc 14:04:45 kaz has joined #wot-arch 14:05:11 meeting: WoT Architecture 14:05:50 McCool has joined #wot-arch 14:06:47 present+ Kaz_Ashimura, Ben_Francis, Michael_Lagally, Michael_McCool, Michael_Koster, Tomoaki_Mizushima 14:06:49 chair: Lagally 14:07:52 Mizushima has joined #wot-arch 14:10:14 Agenda: https://www.w3.org/WoT/IG/wiki/WG_WoT_Architecture_WebConf#Sept_23rd.2C_2021 14:12:27 mlagally has joined #wot-arch 14:13:08 mjk has joined #wot-arch 14:14:04 topic: Minutes 14:14:13 -> https://www.w3.org/2021/09/16-wot-arch-minutes.html Sep-16 14:15:36 note: it looks like multiple people were editing the building blocks section, we will have to resolve 14:15:48 ... and yes, I think discovery should be considered a building block 14:18:25 mm: wondering about Ben's participation in the upcoming Plugfest next week 14:18:40 bf: kind of difficult due to other assignment 14:18:54 ... but would like to work on implementation for WebThings 14:19:08 ml: minutes approved 14:19:30 scribenick: benfrancis 14:19:47 i/note:/scribenick: McCool/ 14:19:55 i/wondering/scribenick: kaz/ 14:19:55 topic: PR #600 14:20:23 "Add Description and Model Section" 14:21:30 Re-wrote section 8 to be about abstractions. Focused on Things and Consumers. Short section on metadata, but moved to another section. Added into to Thing Model as classes. 14:22:19 McCool: Sebastian's text had two descriptions of Thing Models. I decided to re-focus introduction about Thing Models to not describe them as incomplete TDs: 14:22:46 I think a Thing can also be a virtual entity like a service, not just a physical device. 14:22:57 Introduce metadata. Thing Descriptions and Thing Models. 14:23:57 Detailed description of Thing Descriptions. 14:24:33 Thing Models re-written to be primarily about classes. Introduce the idea of using it as incomplete information for an instance. I have some concerns about this, perhaps we need a separate thing called an incomplete TD. 14:25:28 Would like feedback. 14:25:29 q+ 14:26:07 Have some concerns about building blocks. 14:27:07 i|Add Description|-> https://github.com/w3c/wot-architecture/pull/600 PR 600| 14:28:18 s/topic: PR #600/subtopic: PR #600/ 14:28:35 i|PR #600|topic: Architecture| 14:28:41 rrsagent, make log public 14:28:45 rrsagent, draft minutes 14:28:45 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 14:29:02 mlagally: I don't expect the diff is very helpful since it's such a big change. 14:29:12 McCool: It is quite complicated 14:29:24 mlagally: Let's merge it as a basis 14:29:34 McCool: Agree, I would prefer to do that 14:29:35 q? 14:31:51 mlagally: Some issues with HTML stricture. Let's take that offline. 14:33:01 mlagally: A Thing Model has a specific purpose. It can be a partial TD, also used for composing models. 14:33:26 McCool: Can create constructs, reference other TDs. A TM is not just an incomplete TD. Can be used to generate TDs. 14:33:58 mlagally: A Thing Model has a specific purpose, the term should not be abused to describe something which looks like a Thing Model but is something else. If we need something else we should create it. 14:34:06 McCool: I agree 14:36:07 benfrancis: Some concerns about advocating using Thing Descriptions to describe generic web services. Virtual devices yes, but not any web service. 14:36:51 q? 14:37:19 ack b 14:37:31 McCool: I don't think the current text does that, but would be good to clarify this. Have seen people using it to describe AI services. Benefit of using WoT for that is it's easier for everything to use TDs. No reason a service couldn't have both an OpenAPI description and a Thing Description. 14:38:20 q+ 14:39:03 mkoster: Thing Description is a good way of describing the smart object pattern in general, beyond IoT. We don't have a way to restrict how people use it, don't have to accommodate changes to broaden use cases beyond IoT. 14:39:21 At the same time TD kind of does everything Swagger does and has the same semantic affordances. 14:40:53 McCool: Should we include edge computing? Is a time-series database a Thing? 14:41:04 mlagally: Would encourage supporting hubs and gateways. 14:41:18 s/At the same/... At the same/ 14:41:24 What's the difference between edge and cloud devices...? 14:41:50 McCool: I have not added wording about this to the current text, needs discussing at some point. This PR doesn't include that change. 14:42:03 mlagally: Let's not over engineer this current PR. 14:42:52 q? 14:43:39 ack k 14:43:48 kaz: Building management as a starting point. Think about how to model virtual devices and digital twins. Takenaka architecture has two systems, UI and batch. Separate systems. If they can join the open day meeting next month they can contribute. 14:43:59 McCool: virtual device != service 14:44:15 Services are a third category 14:44:51 s/Services/... Services/ 14:44:56 q? 14:45:23 mkoster: Need to update digital twin use case. The obvious thing is to use WoT to adapt data and protocols to a digital twin. One way to talk about all devices, adapting. Then there's services (like Swagger). Refining the digital twin use case could be helpful. 14:46:02 McCool: I think a digital twin is a service. If it's a virtual model of a pump that's a virtual device. Current text is vague, could be interpreted as a service. 14:46:10 I think digital twins are a reasonable use case. 14:46:22 mlagally: Digital twin is one kind of virtual device. 14:46:43 If we think about what we can do with TD & TM, can define an interface/metadata but can not describe behaviour. 14:46:55 E.g. A simulation model. 14:47:20 Have API description and scripting API. 14:47:29 Could be an interesting topic for upcoming IG/WG charter. 14:47:40 McCool: Already have edge computing listed in charter. 14:47:51 Can merge this as a starting point. 14:48:10 mlagally: I didn't mean edge computing, meant describing behaviour of a device. Let's go ahead and merge. 14:49:00 mkoster: There is some work being done on that. Control Description Language. Started as actions, turned into description language. A parallel spec to describe that. Should be aware of that as a use case. If not part of TD, can we link to/integrate with it. I hear this a lot so good to capture as a use case. 14:49:15 mlagally: Consider this for the next charter, discuss in use cases call. 14:49:39 Resolution: PR merged. 14:50:03 topic: define and discuss hubs 14:50:56 McCool: What we need here is a section. Talk about P2P (graph) vs. hub (star) topology. 14:51:09 Discuss whether both are supported by our architecture. 14:51:15 s/topic:/subtopic:/ 14:51:24 Not done yet, not ready to merge. Need to rebase and re-organise. 14:52:05 s/subtopic:/topic: PR 603 14:52:55 Reference to ASHRAE CDL https://www.sciencedirect.com/science/article/pii/S0360544221017497 14:53:30 Difference between gateway and hubs. Whether it provides a service, proxy etc. An edge device is a category of all possible edge computer usages. Do we include all kinds of edge computing? Just hubs/gateways/network boxes? 14:53:54 mlagally: "Edge" is just about where a device is. 14:54:57 McCool: Suppose I have a smart camera doing computation. Still doing computation, is it an edge device? What if it provides a service? Is that an edge computer? 14:55:15 Acting as intermediary. Single device can be both. 14:55:35 Conceptual framework for control description language: https://www.researchgate.net/figure/Class-diagram-in-UML-describing-the-modelling-principle-of-encapsulating-functionality_fig2_317063872 14:56:12 benfrancis: The cloud is someone else's computer, off-premises in a data center. Edge is own computer on own premises. 14:56:26 McCool: Location and owership. Technology might be the same. 14:56:57 The definition of cloud might be reasonable. Edge as part of the cloud, the boundary of the cloud, as opposed to boundary of consumer area. Edge devices might a fuzzy middle ground. 14:57:14 mlagally: Any difference in a Thing Description depending on where it is retrieved from? Any conceptual difference? 14:57:28 McCool: Gateway is confusing because it sounds more restrictive. 14:58:12 benfrancis: A gateway bridges one network to another. 14:58:20 i|What we need|-> https://github.com/w3c/wot-architecture/pull/603 PR 603 - WIP: Define and Discuss "Hubs"| 14:58:27 McCool: SmartThings hub also has orchestration capabilities. More than just bridging networks. 14:58:27 rrsagent, make log public 14:58:34 rrsagent, draft minutes 14:58:34 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 14:59:13 benfrancis: An ethernet hub is simpler than a home gateway. A smart home hub is different 14:59:47 McCool: ethernet hub is different. Maybe there's a better term. 15:00:25 McCool: One sticking point is the smart home gateway section may need to be renamed to smart home hub to be consistent. 15:00:52 mlagally: I think orchestration may be something which differentiates a hub from a gateway, but also true for an edge device. Want to pick a common sense term. 15:01:11 McCool: My current problem with the text is that the same terms are used in different ways. 15:01:49 Edge devices sometimes used to mean a service like an AI service. A hub could provide an AI service. 15:01:56 q+ 15:02:04 mlagally: Should we be talking about services and service platforms, or stick to hardware. 15:02:12 McCool: Not a big deal if we don't talk about services. 15:02:12 s/Edge/... Edge/ 15:03:03 mkoster: Is there a way we can avoid categorising things we don't need to. 15:03:10 ? 15:03:43 Maybe we can have the discussion without naming it. Can give examples to expose that there isn't a consistent term? 15:03:57 s/need to./need to?/ 15:04:03 s/?// 15:04:09 s/Maybe/... Maybe/ 15:04:13 rrsagent, draft minutes 15:04:13 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 15:04:27 mlagally: We could use edge device in the next iteration 15:05:19 McCool: Could not use the term hub and say that gateways can do other things like orchestration. Could mention that some use the term hub. 15:05:23 q? 15:07:27 kaz: Agree with mkoster's position. We already have a name "intermediary" in addition to consumer and device. Ideally we should use those three components. If we really need to identify devices named hubs and gateways we need to define them. Do we want to expand the terms to include other hardware configurations? If yes then we need to re-define 15:07:28 these words. 15:07:35 ack k 15:07:46 McCool: Difference between gateway and intermediary is like the difference between device and thing. 15:07:53 s/these words.// 15:08:00 McCool: This is talking about a physical box. 15:08:02 s/re-define/redefine these words./ 15:08:31 McCool: More of a physical category, intermediary is an abstraction of a service. 15:08:57 McCool: I think I have a plan of action to remove hub and use gateway. 15:09:32 topic: profiles 15:09:50 scribenick: McCool 15:10:04 ml: several prs to look at: 103, 87, 85, 93, 78 15:10:19 s/topic: PR 603/subtopic: PR 603/ 15:10:19 topic: pr 103, queryallactions 15:10:32 s/topic:/subtopic:/ 15:10:37 rrsagent, draft minutes 15:10:37 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 15:10:50 ml: main issues is if a consumer crashes, can recover, or to let another device to look at what a thing is doing 15:11:09 bf: let me share my screen and walk through it 15:11:27 https://github.com/w3c/wot-profile/pull/103 15:12:09 bf: we have existing action ops, and we just added queryallactions in TD spec 15:12:33 ... main use case if one consumer invokes an action, and another needs to know about it 15:12:39 ... or if consumer crashes 15:12:51 s/main issues is/main issue is/ 15:12:51 ... in both cases, URL of action resource needs to be recovered 15:13:16 ... change to spec introduced top-level form for actions 15:13:30 ... add queryallactions as op to that, use a GET 15:14:06 ... 200 status code, body is an object keyed by action name, then each is an array of actions 15:14:19 ml: what does the sequence tell us? does it have semantics? 15:15:21 bf: not really 15:15:32 mm: retention of action objects once completed? 15:15:49 -> https://pr-preview.s3.amazonaws.com/benfrancis/wot-profile/pull/103.html#queryallactions 5.2.2.4 queryallactions 15:15:52 bf: not a real good answer here; cancelled actions are deleted 15:16:10 ... but if completed or failed, kept around for an implementation-specific length of time 15:16:33 ... needs to stick around as long as a consumer might need to check status 15:16:44 ... no rule, it depends 15:17:13 ml: such things cause corner cases; 0 retention time vs. infinity 15:17:35 bf: retension time of 0 or infinity both will not work 15:17:48 ... but intermediate value if not clear 15:17:59 s/if/is/ 15:18:26 bf: but once it goes away, consumer can not longer find out about past actions 15:18:37 ... agree ambiguity is not great 15:18:47 ... if it gets a 404, knows it cannot get a status 15:19:10 ml: I wonder what we can do as a generic consumer 15:19:43 ... suppose you initiate an action, crash, then try to find out actions you created 15:19:57 ... which raises another question, is there a filter? 15:20:10 bf: authorization is orthogonal to API design 15:20:24 ... but restriction to owners would be one way to do this 15:20:45 ml: question was not about authorization, but identification 15:21:23 bf: if system is designed that all actions are visible to all 15:21:32 ml: not sure this is a problem 15:21:33 q+ 15:21:34 q+ 15:22:05 ml: after crash, a device does not now if it should restart an action that it needed to do 15:22:26 kaz: was also wondering about this point as well 15:22:42 ... in theory an intermediary can remember the various devices 15:23:46 ack k 15:23:48 ack m 15:24:23 s/devices/devices, and let the consumer know about the information based the request from the consumer./ 15:24:55 q+ 15:25:44 mm: problem is we have to have some way to identify consumers, which is tricky 15:26:15 ... if it's user-generated, then that has various problems (duplicates, etc) 15:26:29 ... if server-generated, same problem as URLs getting lost in a crash 15:26:33 ack k 15:27:05 kaz: this point is one the reasons why I want to invite the Takenaka guy to our OpenDay 15:27:14 ml: in summary, retention time and consumer identity 15:27:23 ... don't have timestamps 15:27:53 mm: timestamps raise issues of clock sync... 15:27:55 s/OpenDay/OpenDay. They use WoT to manage multiple buildings with various devices, so should have some mechanism already to handle this issue./ 15:28:06 ml: could use sequence number instead 15:28:23 i/this point/scribenick: kaz/ 15:28:34 i/in summary/scribenick: McCool/ 15:28:48 rrsagent, draft minutes 15:28:48 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 15:29:32 mm: this is better than nothing, though, and certs (authorization) is not a terrible way to handle identity 15:29:51 ml: there is also the issue of idempotent actions, etc. 15:30:10 ... in this case "syncing up" is easier 15:30:23 ... for example, checking if a motor is running 15:30:47 q? 15:31:05 q+ 15:32:25 mm: I think if it CAN be handled by a property, it should be 15:32:40 ... we probably want to think about use cases where properties are not suitable 15:33:46 ... for example, a print queue 15:34:20 bf: note that resources will exist whether or not you query them 15:34:32 ... and can still check status individually 15:34:48 ... so this just adding a group operation 15:36:05 ml: I think the order should be the order in which the actions were invoked 15:36:15 q? 15:36:16 mm: or at least the order in which the server dealt with them 15:37:13 bf: note that actions might take place in parallel... how do you order, start or end time? 15:37:27 ... in web things also have start and end time, and timestamps 15:38:14 ... is a separate issue for timestampes 15:38:24 mm: so let's worry about timestamps and ordering separately 15:38:38 kaz: have brought up problem of sequences many times 15:39:03 ... there have been specs for this SMIL, MMI, and cars have some specs for this 15:39:19 ... but that kind of detail is out of scope for WoT 15:39:41 ... so we can create a dedicated issue for that, but details might have to be in separate charter 15:39:55 ... it's complicated, so maybe we should defer it 15:40:29 ack k 15:40:50 q+ 15:41:31 "Actions need a way to express time stamps" https://github.com/w3c/wot-profile/issues/101 15:41:43 mm: I am ok with sets semantically, just a little worries about things like signing 15:41:56 ... want a canonical order (but it does not have to have "meaning") 15:42:53 bf: or can sort by timestamps 15:43:08 mm: but I think all we want at this point is a stable order 15:43:35 ml: assume I want to model just the three things in draft... 15:43:54 bf: queryallactions is currently the only top-level form action allowed 15:44:09 ... but what IS missing is whether this is optional or mandatory 15:44:21 ml: so, what do we do 15:44:43 ml: could merge as it is, add owners, etc. 15:45:48 mm: I personally think we should merge and make issues for the various points raised 15:45:57 ... identity, for instance, is complicated 15:46:11 bf: identity is a big issue 15:47:11 bf: happy to deal with consistent order, identity, and timestamps as followup activities 15:47:38 ml: also retention time 15:48:16 ... how do we deal with that? 15:48:31 bf: first op that we have that deals with historical data 15:48:41 ... everything else is about current state 15:49:02 ... but this creates dynamic resources with independent lifetimes 15:50:17 mm: is this any worse than other restful apis? we should do some research to see if there is a better solution out there 15:50:27 bf: let's also have that as a followup issue 15:50:50 ... if this was a push api, would push the status and then not worry about retention 15:51:33 ml: will create some issues... 15:52:28 ... start with "action improvements" 15:53:23 ... order of return, identity/owner of action invocation, retention time; already have timestamps 15:54:24 -> https://github.com/w3c/wot-profile/issues/104 Issue 104 - Actions Improvements: order of return values 15:54:41 -> https://github.com/w3c/wot-profile/issues/105 Issue 105 - Action Improvements: identity /owner of an action invocation 15:55:26 mm: one thought about the identity issue is to add an op for "queryallmyactions" that would use aspect of protocol, i.e. TLS certs, to determine identity 15:55:29 -> https://github.com/w3c/wot-profile/issues/106 Issue 106 - Action Improvements: retention time of action status 15:55:34 ml: then that would not work for nosec 15:55:41 mm: right; too bad 16:00:34 mm: for retention time, I will look into best practices for apis; but we could also just pick an arbitrary minimum retention time 16:00:44 ml: ok, merging pr 16:01:19 -> https://github.com/w3c/wot-profile/pull/103 PR 103 merged 16:01:36 topic: AOB? 16:01:36 bf: call next week, 1h, discuss TPAC 16:01:55 s/bf:/ml:/ 16:02:04 [adjourned] 16:02:09 rrsagent, draft minutes 16:02:09 I have made the request to generate https://www.w3.org/2021/09/23-wot-arch-minutes.html kaz 17:58:52 Zakim has left #wot-arch