13:10:12 RRSAgent has joined #wot-td 13:10:12 logging to http://www.w3.org/2015/09/16-wot-td-irc 13:10:41 Darko_Anicic has joined #wot-td 13:11:00 meeting: Thing Description Task Force call 13:11:09 chair: Darko 13:11:16 scribenick: dsr 13:11:56 Michael Koster to present: Hypermedia Design for Machine APIs 13:12:47 This presentation references the work by Roy Fielding on REST and work by Klaus Hartke. 13:13:54 Michael gives a definition for REST - represntation state transfer 13:14:05 yingying_ has joined #wot-td 13:15:44 In 2008 Roy wrote a new article on the need for hypermedia as part of REST APIs 13:16:55 Hypertext has been around for long time, e.g. with HTML’s links and forms. 13:17:50 Present: Dave Raggett, Dark Anicic, Michael Koster, aparna, Arne Broering, Carsten Bormann, Daniel Lux, Frank Reusch, Johannes Hund, Klause Hartke, Takuki Kamiya, Thomas Uslander, Victor Charpenay, Yingying Chen 13:18:48 Links relate the current context via a relationship type to a target URI with target attributes. 13:19:08 The attrubutes can say anything you want including media types. 13:19:35 Apps update their state by following links. 13:20:20 Links can be classfied into outbound and embedded links (e.g. HTML’s IMG element). 13:20:51 Forms can be considered as reverse links 13:22:25 Michael introduces the “collection” pattern. Thus is a resource that has links to other resources that ca be considered as items in a collection. 13:23:53 Some examples of hypermedia languages include HTML, microdata, RDFa (embedded in web pages), CoRE link format, JSON-LD and many others. 13:24:42 How is the hypermedia exposed in the API? How does it drive application state? 13:25:52 Things expose events, properties and actions. How can the semantics of HTML links and forms be applied to that? 13:27:10 Common attributes, media types, params, data types and templates, methods like PUT and PATCH, and a way to process responses. 13:27:54 Michael presents a table mapping actions, events and properties to hypermedia controls. 13:28:37 Actions and Events map to POST methods, Properties map to GET and PUT 13:29:36 A POST creates action resources and schedules the action for execution. Action resources can be used to track/control ongoing execution of actions. 13:30:46 Events are associated with subscriptions and can be managed in collections. 13:31:15 Properties may be any mediatype, and we may want to be able to use PATCH. 13:32:04 Michael elaborates through a lighting domain example. 13:32:16 rrsagent, set logs public 13:33:18 Michael uses a transition action that changes properties over a given period of time. 13:35:07 dape has joined #wot-td 13:35:09 He then shows some JSON with an array with two objects as its elements. Each object describes a single link. 13:36:35 He shows another example for a link representing an actuator. 13:37:53 He then presents a JSON representation of a form for an action. 13:40:01 This describes the fields to be passed with form’s submission, and the data expected back for the response. 13:42:12 Actions return an id that can be used to cancel on going actions. 13:43:06 Michael briefly discussions CoAP + IPSO bindings 13:43:23 s/discussions/discusses/ 13:44:41 He finishes with the references to Fielding’s work in 2000 and 2008, and the O’Reilly book on RESTful Web APIs. 13:44:45 Questions? 13:46:29 Johannes: Is there a distinction between the two parts of the description and the relation to HYDRA and RAML 13:47:05 Michael: I am not trying to invent the whole language, but rather to introduce design patterns 13:48:05 A constrained device could link to a more powerful device … 13:49:04 This looks like part of a protocol binding, but that would need aditional semantics and details. 13:50:17 Carsten: you can do exactly the same things in CoAP as HTTP, so that could help with the continuum of devices 13:50:48 Michael: protocol translation is more complex for say mapping between HTTP and ZigBee 13:51:21 Carsten: CoAP observe … 13:51:44 Michael: HTTP2 “observe” isn’t quite the same as CoAP’s 13:52:36 HTTP2 is aimed at proactive push of web page resources to reduce latency 13:53:08 Carsten: could we add the CoAP observe semantics to HTTP2? 13:53:33 Michael: that would be interesting, and we need to push the use case in the IETF HTTP WG 13:53:55 Darko thanks Michael and suggests that further questions are taken to the email list. 13:56:39 Frank Reusch gives a presentation on the Lemonbeat smart device language (LsDL) 13:56:59 This has been developed within RWE in Germany. 13:57:41 RWE is working on smart home solutions. 13:58:33 We believe in creating distributed and linked inteligence rather than smarter devices 13:59:48 Assumption: intelligent networks of devices are built at the application layer 14:00:32 More than 80% of IoT devices are very simple and cheap. We need to integrate these. 14:01:20 IoT concepts should be universal with information that enables effective integration. 14:02:43 Lemonbeat is an XML based language for configuring IoT devices. We support CoAP and EXI. 14:03:03 We’re open to other ideas, e.g. JSON 14:04:04 Frank presents an example of a thermostatic radiator valve with an embeddd LCD display. 14:05:15 This can be linked to actuators for closing a room’s window. 14:06:17 The approach includes support for event driven state machines. 14:09:00 Each device has a unique serial number. When provisioning devices, they are set up with a public key pair and can use this to exchange an AES symmetric key for encrypting messages. 14:09:21 We use a trust centre to track the public keys for devices. 14:10:46 We’ve implemented a Lemonbeat chip with an embedded 800Mhz radio transceiver. 14:11:16 I’ve sent you all the Lemonbeat specification and look forward to comments. 14:11:24 Questions? 14:12:14 Darko: what capabilities are embedded on this chip? 14:13:22 Frank: ARM Cortex-M3 CPU, Silicon Labs SI 446x radio transceiver, plus the usual MCU I/O capabilities e.g UART, SPI, I2C, GPIO. 14:14:45 XXX: is the description used within each device or is it shared across devices? 14:15:16 Daniel Lux: it can be shared across devices, including communication metadata for sleeping devices etc. 14:16:01 We have services for many different functions 14:17:17 Daniel: most devices are very constrained, but you can create service compositions in a gateway 14:17:45 Devices aren’t really relevant and we focus on services. 14:18:07 The control rules for compositions are designed by programmers. 14:19:00 Darko: any other questions? 14:19:11 [no] 14:19:26 Please read and review the specification we’ve sent to the list. 14:20:21 Darko: any suggestions for the next TF-DI call? 14:21:42 We should start editing on a wiki page . . . 14:22:36 Thanks to Michael and Daniel for their presentations and talk to you in 2 weeks time. 14:22:43 rrsagent, make minutes 14:22:43 I have made the request to generate http://www.w3.org/2015/09/16-wot-td-minutes.html dsr 16:24:15 dsr has joined #wot-td