Internet DRAFT - draft-koster-t2trg-hypertext-language

draft-koster-t2trg-hypertext-language







Thing-to-Thing Research Group                                  M. Koster
Internet-Draft                                               SmartThings
Intended status: Experimental                          February 20, 2016
Expires: August 23, 2016


                     Model-Based Hypertext Language
                draft-koster-t2trg-hypertext-language-00

Abstract

   Interoperability for connected things is improving in a number of
   important areas, converging around Internet Protocol (IP) and
   internet design patterns.  Hypermedia is becoming more common with
   web linking becoming part of a number of important standards.

   However, there is still an interoperability gap in how application
   semantics are defined and used.  Many organizations and industry
   alliances are defining vocabulary and taxonomy for application
   domains, independent of each other.  These vocabularies are often
   bound to particular conceptual models, and are often semantically
   incompatible with each other.  While it may be possible to adapt
   protocols and convert representations, it is difficult to develop a
   common application framework that works across ecosystems and
   domains.

   This article proposes a method that can be reused across application
   domains and across ecosystems, to define a shared conceptual model
   and common vocabulary.  A public resource is described which does for
   connected things what schema.org does for web commerce, to provide a
   community driven vocabulary and simple ontology that enables web
   scale interoperability between applications and connected things.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."




Koster                   Expires August 23, 2016                [Page 1]

Internet-Draft       Model-Based Hypertext Language        February 2016


   This Internet-Draft will expire on August 23, 2016.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conceptual Models and Domain Specific Language  . . . . . . .   3
   3.  Reference Architecture  . . . . . . . . . . . . . . . . . . .   4
   4.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   5
   5.  Informative References  . . . . . . . . . . . . . . . . . . .   5
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   Interoperability for connected things is improving with the adoption
   of Internet Protocol (IP) in a number of emerging standards and
   ecosystems.  [OCF], [Thread] and [ZigBee], [BT-SIG], [LWM2M], [IPSO],
   [Weave], and WiFi connected devices.

   Consolidation is being seen in the adoption of HTTP and CoAP
   [RFC7252] by these ecosystems.  Many emerging standards support some
   form of web linking or resource directory [OCF], [LWM2M], [RFC6690],
   [I-D.ietf-core-resource-directory]).  Use of [REST] is becoming
   common, particularly for web integration and more recently at the
   device API and local network level [OCF], [LWM2M].  There is ongoing
   work in providing hypermedia support [I-D.ietf-core-interfaces],
   [OCF], [W3C-WoT], [T2TRG].  Hypertext based systems can use link
   attributes to incorporate application semantics.

   For application semantics, many organizations and alliances are
   creating new vocabularies bound to their own models.  This can result
   in application incompatibility, for example an identifier like
   temperature may appear to be well known but is semantically
   incompatible across ecosystems and application domains.



Koster                   Expires August 23, 2016                [Page 2]

Internet-Draft       Model-Based Hypertext Language        February 2016


2.  Conceptual Models and Domain Specific Language

   The proposed approach to semantic interoperability is to develop a
   common semantic structure and language upon which to develop domain
   specific vocabularies that can be used for semantic annotation of
   resources and services.

   For the purpose of this discussion, a language is assumed to consist
   of a vocabulary which is bound to a conceptual model.  Such a
   conceptual model constrains and defines the grammar and semantics of
   the language.

   Conceptual models are layered, with core concepts forming a basis on
   which to build more sophisticated models.  In the case of human
   language, we are used to a set of conceptual fragments like nouns,
   verbs, adjectives, and so on to express thoughts and feelings when we
   interact with one another.

   For interacting with connected things, there is a conceptual model in
   common use that is proposed by [W3C-WoT].  Using this model a
   connected Thing is defined by and interacted with through its Events,
   Actions, and Properties.  Events can be considered to be state
   changes within the thing we may be interested in.  Actions can be
   invoked when we want the thing to change its state or the state of
   its environment, like turn on a light.  Properties are like the
   current state of a thing or its static attributes.

   Events, Actions, and Properties can form the basis of a simple,
   consistent conceptual framework upon which to build a general
   interaction language for things.  We can ask a thing about it's
   properties, we can observe events that change the state of the thing
   or indicate changes in its environment, and we can ask it to perform
   actions for us to change its state or its environment.

   Semantic interoperability may be achieved through common definitions
   of cross domain meta models and domain specific models, and shared
   vocabulary to describe the events, actions, and properties of
   connected things.  For example, in the connected lighting domain, we
   may model a luminary as a thing that has various optional
   capabilities, like brightness control, color control, on/off control,
   and measurement of energy consumed.  A common set of events, actions,
   and properties can be defined for all connected lights that have
   particular capabilities.  By doing so, we enable control of any light
   using a common set of application level controls and affordances.







Koster                   Expires August 23, 2016                [Page 3]

Internet-Draft       Model-Based Hypertext Language        February 2016


3.  Reference Architecture

   Figure 1 shows an example system architecture for broad
   interoperability at web scale.

                                              +--------------+
             +------------------------------->| Applications |
             |                                +--------------+
             |                                |   Protocols  |
             |                                +--------------+
             |                                |   Hypertext  |
       +-----------+     +--------------+     +--------------+
       |  Schemas  |---->| Domain Model |---->|    Things    |
       +-----------+     +--------------+     +--------------+


                     Figure 1: Reference Architecture

   Schemas are publicly available domain specific meta-models, built
   through community consensus by domain experts and industry users.  A
   working example of this today is [schemaorg], which is a public
   vocabulary and ontology for interoperable web commerce.  Applications
   use schemas to develop machine comprehensions of the hypertext
   controls and affordances exposed by connected things.

   Domain Models are built from schemas by manufacturers or data
   suppliers.  Domain Models represent instances or specific types of
   products or information assets.  A Domain Model would generally be
   used to construct a virtual thing or an interface to a thing.

   Hypertext is exposed or referenced by things, and is used to bind
   vocabulary terms from the schema to instances of the Domain Model.
   Hypertext is made available in-band through the application protocol,
   for example CoAP or HTTP.

   Protocols represent common network capability, for example [Thread],
   WiFi, Internet, and underlying protocols TCP/IP, UDP, and common
   application protocols CoAP, HTTP, as well as ecosystem protocol
   layers like [OCF] and [LWM2M].

   Applications are the external logic and programs used to remotely
   control and orchestrate the activities of connected things.  Domain
   specific vocabulary is exposed directly to applications through
   hypertext exposed through the application protocol.

   Application level interoperability is achieved by applications
   understanding the semantics of the common underlying conceptual model
   and interpreting the vocabulary that describes domain specific



Koster                   Expires August 23, 2016                [Page 4]

Internet-Draft       Model-Based Hypertext Language        February 2016


   instances of that conceptual model.  In the context of common
   application semantics, network and application protocols are
   relatively easy to adapt between ecosystems.

   A reference implementation of the above architecture is described at
   [HypermediaDemonstrator].

4.  Terminology

   Ecosystem
      Referring to a standard or platform supported by a corporate
      entity or an industry alliance or consortium.

   Semantic Interoperability
      The ability for data sources and applications to exchange state
      information in a meaningful way without prior detailed knowledge.

   Hypertext, Hypermedia
      Meta-data that identifies the location and attributes of
      resources.

   Conceptual Model
      A High level model that defines a set of semantic characteristics.

   Schema:
      A meta-model that defines how models are structured and
      annnotated.

   Domain Model
      A model of a product or type that defines the expected
      configuration of a specific instance or type.

   Application Domain
      A group of applications that share common attributes and
      characteristics, for example connected automobiles.

5.  Informative References

   [BT-SIG]   BT SIG, ., "Bluetooth SIG", 2016,
              <https://www.bluetooth.com/>.

   [HypermediaDemonstrator]
              Koster, M., "Demonstration of a HATEOAS based system
              architecture for the Web of Things", 2016,
              <https://github.com/connectIOT/HypermediaDemo>.






Koster                   Expires August 23, 2016                [Page 5]

Internet-Draft       Model-Based Hypertext Language        February 2016


   [I-D.ietf-core-interfaces]
              Shelby, Z., Vial, M., and M. Koster, "Reusable Interface
              Definitions for Constrained RESTful Environments", draft-
              ietf-core-interfaces-04 (work in progress), October 2015.

   [I-D.ietf-core-links-json]
              Li, K., Rahman, A., and C. Bormann, "Representing CoRE
              Formats in JSON and CBOR", draft-ietf-core-links-json-04
              (work in progress), November 2015.

   [I-D.ietf-core-resource-directory]
              Shelby, Z., Koster, M., Bormann, C., and P. Stok, "CoRE
              Resource Directory", draft-ietf-core-resource-directory-05
              (work in progress), October 2015.

   [IPSO]     IPSO Alliance, ., "IPSO Smart Object Guidelines", 2016,
              <http://www.ipso-alliance.org/ipso-community/resources/
              smart-objects-interoperability/>.

   [LWM2M]    OMA, ., "OMA LWM2M", 2016,
              <http://technical.openmobilealliance.org/Technical/
              technical-information/release-program/current-releases/
              oma-lightweightm2m-v1-0>.

   [OCF]      OCF, ., "Open Connectivity Foundation", 2016,
              <http://openconnectivity.org/>.

   [REST]     Fielding, R., "Architectural Styles and the Design of
              Network-based Software Architectures", Ph.D. Dissertation,
              University of California, Irvine, 2000,
              <http://www.ics.uci.edu/~fielding/pubs/dissertation/
              fielding_dissertation.pdf>.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <http://www.rfc-editor.org/info/rfc3986>.

   [RFC5988]  Nottingham, M., "Web Linking", RFC 5988,
              DOI 10.17487/RFC5988, October 2010,
              <http://www.rfc-editor.org/info/rfc5988>.

   [RFC6690]  Shelby, Z., "Constrained RESTful Environments (CoRE) Link
              Format", RFC 6690, DOI 10.17487/RFC6690, August 2012,
              <http://www.rfc-editor.org/info/rfc6690>.






Koster                   Expires August 23, 2016                [Page 6]

Internet-Draft       Model-Based Hypertext Language        February 2016


   [RFC7252]  Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
              Application Protocol (CoAP)", RFC 7252,
              DOI 10.17487/RFC7252, June 2014,
              <http://www.rfc-editor.org/info/rfc7252>.

   [schemaorg]
              org, Schema., "Schema.org", 2016, <http://schema.org>.

   [T2TRG]    IRTF, ., "IRTF Thing to Thing Research Group", 2016,
              <https://datatracker.ietf.org/rg/t2trg/charter/>.

   [Thread]   Thread Group, ., "Thread Group", 2016,
              <http://www.threadgroup.org/>.

   [W3C-WoT]  WoT IG, ., "W3C Web of Things Interest Group", 2016,
              <https://www.w3.org/WoT/IG/>.

   [Weave]    Nest, ., "Nest Weave Overview", 2016,
              <https://developer.nest.com/documentation/weave/weave-
              overview/>.

   [ZigBee]   ZigBee Alliance, ., "ZigBee Cluster Library", 2016,
              <http://www.zigbee.org/download/
              standards-zigbee-cluster-library/>.

Author's Address

   Michael Koster
   SmartThings
   1281 Lawrence Station Road
   Sunnyvale  94089
   USA

   Phone: +1-707-502-5136
   Email: michael.koster@smartthings.com
















Koster                   Expires August 23, 2016                [Page 7]