I’m not a gigantic fan of the contemporary Internet of Things (AKA The Internet of Way To Many Things), but this is not because I don’t understand the concept. Quite the reverse actually – I was doing this stuff back at the fin de vingt-et-unième siècle.
I must say that I thought most of that early work was out of date, surpassed by big data, machine learning, and billions of dollars.
This month I was shocked to see not one but two articles about using the Semantic Web for the Internet of Things—exactly what I was talking about back in ought-five .
Problem: the world is filled with more and more autonomous devices which need to connect, configure, and cooperate with each other.
In the IoT, there are no system admins, let alone configuration files, and so on.
So how do nodes know who is who, what is what, and how to talk to anything?
This was the motivating problem at the beginning of my own thesis work (circa 1998-9).
Configuring these devices requires something like scripts, rules, and triggers, but simple scripts
“can only apply to known places, users, and IoT devices personal needs.”
“This lack of discovery and adaptation severely restricts the rules’ expressive power.” (, p. 18)
Way back in the last century, I started exploring the use of Semantic Web technology to address this challenge (“Semantic Infrastructure for a Ubiquitous Computing Environment” ) I thought it was the right idea, but I haven’t seen much development in the ensuing ages.
Fulvio Corno and colleagues at Politecnico di Torino describe a system that follows this very approach. Key elements are :
- An abstract desctiption of devices, fucntions, etc.
- Logical rules for composing and reusing about these descriptions
- Standard, cross-vender representation
The purpose is to have a way for computers to know when a rule applies to some ‘node’, and how to apply it, even when the node is a complete stranger.
Corno and colleagues are particularly interested in “programming by functionality”, i.e., making the right thing happen without knowing all the details in advance.
Their system includes a “Semantic Reasoning block” which “maps user-defined trigger-action rules to devices and services in the IoT Ecosystem in order to reproduce the desired behaviors.” (p. 21 ) In other words, it takes an abstract description of what is supposed to happen, and figures out a set of concrete devices and actions that will accomplish the intended goal. (This is “semantic” because the computer is deducing what is “meant” to do.)
The project uses semantic web standards because they (a) are universal and portable and (b) they define a formal logical model for the reasoning that is needed. The former means that the rules can be vendor independent and will work anywhere, and the latter means that you can do the mapping they need to do.
A second article discusses the more general problem of “Machine to Machine” (M2M) interoperability . Even absent the swarm of IoT things, there is a plethora of computers, systems, and data on the network. Getting systems to work together can be a painful process, and in principle, semantic web technology is designed to ease this process.
However, Hodges and colleagues point out that most semantic models are poorly written and unlikely to be useful for interoperability.
“many of these ad hoc ontologies are information silos”
This group is working to develop better semantic models based on accepted industry standards. I.e., the semantic models describe the concepts of existing standards, as well as mapping between multiple standards.
These models have obvious advantages. Based on accepted standards, they represent existing models, with existing audiences, and known domain applicability. In short, given the effort invested in creating, promulgating, and implementing a standard, it is worth the trouble to create a good semantic model for it.
I would also say that a good standard has a rigorous definition of conformity, so it is possible to check that a node actually implements the standard correctly. That means that it is possible to know that the semantic model can map to one or more concrete implementations.
The big news, though, is that the formal logic of the semantic web makes it possible to formally map between multiple standards, making it possible for a computer to translate.
The general idea here is to use these standards as the basis for the abstract description of the decentralized system. The semantic web makes it possible to automatically combine and translate between descriptions from many sources.
(Another blast from the past: Hodges et al. suggest using PROV-O ontology to model the behavior of a sensor. PROV-O is a representation of the Provenance Data Model, which I contributed to at its birth.)
It was nice to see these articles confirming that the technology I called out as important might actually be important. The motives and general approach are pretty much exactly as I was thinking way back when. It is great to feel like a vindicated pioneer.
On the other hand, these articles were a pleasant surprise because these technologies are not actually in use yet. Ten years and more, and it’s still a future wonder. “They hold the promise of interoperability in name only.” ( p. 27)
I still think this is a good approach, not least because of the principle that:
“Any problem in computer science can be solved by an extra level of indirection.” (The original source of this quote is not precisely known. Lampson et al.  attribute this phrase to David Wheeler, citing the authority of Roger Needham.)
I also think that the burgeoning Internet of Too Many Things will make this problem more and more pressing. However, the IoT is currently dominated by centralized architectures managed by large vendors. These companies are selling silos, and have little reason to provide open solutions.
- Fulvio Corno, Luigi De. Russis, and Alberto Monge Roffarello, A Semantic Web Approach to Simplifying Trigger-Action Programming in the IoT. Computer, 50 (11):18-24, 2017. https://www.computer.org/csdl/mags/co/2017/11/mco2017110018-abs.html
- Jack Hodges, Kimberly. García, and Steven Ray, Semantic Development and Integration of Standards for Adoption and Interoperability. Computer, 50 (11):26-36, 2017. https://www.computer.org/csdl/mags/co/2017/11/mco2017110026-abs.html
- Butler Lampson, Martin Abadi, Michael Burrows, and Edward Wobber, Authentication in Distributed Systems: Theory and Practice. ACM Transactions of Computer Systems, 10 (4):265-310, 1992. https://www.cs.utexas.edu/~shmat/courses/cs380s/lampson92.pdf
- Robert E. McGrath, Semantic Infrastructure for a Ubiquitous Computing Environment, in Computer Science. 2005, University of Illinois, Urbana-Champaign: Urbana. http://hdl.handle.net/2142/11057