Article Preview
Top1. Introduction
The recent interest on the application of Semantic Web technologies to the Internet of Things (IoT) (Barnaghi, Wang, Henson et al., 2012) inspired international research projects and academic works aimed at exploiting their potential. The Semantic Web project was born to change the Web and drive it towards the original vision that Tim Berners Lee had in mind: a web of data (Berners-Lee, Hendler, Lassila et al., 2001). Semantic Web technologies allow to represent (i.e., RDF - Resource Description Framework, http://www.w3.org/TR/sparql11-overview/) semantically enriched information, that have a high level of generality and inter-disciplinarity. One of the most interesting fields of application is that of collaborative agents offering advanced services for private users and enterprises. The Semantic Web also applies to classification, abstraction, mining and reasoning over large amount of data. Information about energy consumption, user profiles, environmental monitoring, financial data and other similar data sources can be analysed by smart software agents and used to perform context-aware actions (where context can be defined as “any information that can be used to characterize the situation of an entity, where an entity can be a person, a place or physical or computational object” (Abowd et al., 1999)).
In 2008, the ARTEMIS joint undertaking funded the FP7 European Project SOFIA (Smart Objects for Intelligent Applications) aimed at developing a platform for sharing semantic information for the widest possible range of devices and agents. Since the conclusion of SOFIA, the platform has been adopted, evaluated and extended in several EU projects (e.g., CHIRON, IoE, RECOCAPE, IMPRESS, ARROWHEAD) in partnership with industrial players. Some of these projects are still ongoing and new EU projects proposals are currently in preparation to continue from the achieved results.
The resulting multipurpose architecture was called Smart-M3 (Multi-platform, Multi-vendor, Multi-part) and is shown in Figure 1. Smart-M3 follows a publish-subscribe model and proposes a simple approach based on two components, the Semantic Information Broker (SIB) and the Knowledge Processors (KPs), interacting through the Smart Space Access Protocol (SSAP). The SIB stores and shares the semantic information that is exchanged through the SSAP and elaborated by KPs. KPs can update and query the stored information, and subscribe to changes. The SIB is not bound to a specific implementation and it is generally intended as a software module able to read, process and produce SSAP messages while coherently managing the semantic knowledge base (KB). As shown in Figure 1, the SIB can be seen as a wrapper over a SPARQL endpoint to enable the publish-subscribe mechanism.
When the Smart-M3 architecture began to be used in many heterogeneous scenarios, the interest of the community for new more performing and featured SIB versions grew and brought to different implementations optimized for different requirements and vertical domains. In the recent years, the research community improved many aspects of the Smart-M3 original platform including, for example, the programming model, the SSAP protocol, the supported standards and the SIB module itself. The KPs can be written in several programming languages (Java, C#, Python, Javascript, PHP, C, Ruby and Lua), are agnostic to the transport channel and may run on different platforms, but must communicate with the SIB through the SSAP.