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."

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

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.

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.

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 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.
[HypermediaDemonstrator] Koster, M., "Demonstration of a HATEOAS based system architecture for the Web of Things", 2016.
[I-D.ietf-core-interfaces] Shelby, Z., Vial, M. and M. Koster, "Reusable Interface Definitions for Constrained RESTful Environments", Internet-Draft draft-ietf-core-interfaces-04, October 2015.
[I-D.ietf-core-links-json] Li, K., Rahman, A. and C. Bormann, "Representing CoRE Formats in JSON and CBOR", Internet-Draft draft-ietf-core-links-json-04, November 2015.
[I-D.ietf-core-resource-directory] Shelby, Z., Koster, M., Bormann, C. and P. Stok, "CoRE Resource Directory", Internet-Draft draft-ietf-core-resource-directory-05, October 2015.
[IPSO] IPSO Alliance, ., "IPSO Smart Object Guidelines", 2016.
[LWM2M] OMA, ., "OMA LWM2M", 2016.
[OCF] OCF, ., "Open Connectivity Foundation", 2016.
[REST] Fielding, R., "Architectural Styles and the Design of Network-based Software Architectures", Ph.D. Dissertation, University of California, Irvine, 2000.
[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.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, DOI 10.17487/RFC5988, October 2010.
[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link Format", RFC 6690, DOI 10.17487/RFC6690, August 2012.
[RFC7252] Shelby, Z., Hartke, K. and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, DOI 10.17487/RFC7252, June 2014.
[schemaorg] org, Schema., "Schema.org", 2016.
[T2TRG] IRTF, ., "IRTF Thing to Thing Research Group", 2016.
[Thread] Thread Group, ., "Thread Group", 2016.
[W3C-WoT] WoT IG, ., "W3C Web of Things Interest Group", 2016.
[Weave] Nest, ., "Nest Weave Overview", 2016.
[ZigBee] ZigBee Alliance, ., "ZigBee Cluster Library", 2016.

Author's Address

Michael Koster SmartThings 1281 Lawrence Station Road Sunnyvale, 94089 USA Phone: +1-707-502-5136 EMail: michael.koster@smartthings.com