The Intelligent Operations Center 1.5 (IOC) comes provides a set of features known as the Semantic Model Services. Actually this set of services is provided through the integration of the IBM Integrated Information Core (IIC) which is embedded into the IOC. Knowing this is important because the Integrated Information Core is a powerful set of components that can be used to model and provide a real time view of very complex systems. Before we get too far into the weeds, let’s talk for a minute about this idea of a semantic model. This is something I have struggled with for almost two years, both conceptually and in trying to ensure the right use cases are applied. Now that I have built a couple of real world models, it is time to rationalize my thought process.
In general terms a model is simply a representation of an environment or system. Often we think of a model as something that is graphic in nature, as with software modeling using something like UML, or an architect with the design of a building. But in this case often we are going the opposite direction and taking physical systems and distilling them down to a few simple key words and phrases of text. The goal is to identify some component, often spoken of as a piece of physical infrastructure, but it could be a person, place, or thing, and then uniquely identify that item within the context of everything else in the system. For example taking the following example from the Intelligent Water 1.5 Infocenter, you can see that a physical meter located on some property can be defined within a simple XML structure. In this case we are building an instantiated model that represents real world assets and infrastructure.
<cim:RSM_IdentifiedObject.name>Water Usage Meter 1</cim:RSM_IdentifiedObject.name>
<cim:RSM_UnnamedObject.description>Water Usage Meter 1</cim:RSM_UnnamedObject.description>
We can continue to build this model and attach (relate) locations and measurement values to each of the assets, building a full representation of the environment we are trying model. Just to be clear, pureists will note that a semantic model is much more then just XML, however it is easier to consume at the beginning if we think of it this way.
Why not a Relational Data Model
One of the key differences between a relational data model and a semantic model is adding meaning (semantics) to the data. The semantic model follows a predefined ontology that structures data and relationships in a meaningful way. This can provide a similar context across all the data in the model while still maintaining uniqueness of character for individual assets and data sources. For a simple set of infrastructure or entities this may not be a problem. A programmer with decent database skills can design a relational model that holds all the relevant information from a small system that is being managed. However start to expand that system to include other systems, other vendors, and different protocols, and the relational model will quickly become unwieldy. As organizations or environments grow they often do so haphazardly. This means that sometimes there is no consistency between equipment used within the system. Even more complex are systems that span large geographical areas or multiple production units, such as mining, chemical and petroleum, and water distribution systems. With a well-defined ontology however, additional and more complex systems can be added into the semantic model in a very consistent way.
Another core difference between relational and semantic models is the way the data is stored. Relational models are well understood with tables and keys reference other tables. Semantic models within the IOC are stored as a series of triples which allow for disparate types of data to be stored and managed in a more structured way. Queries can be formulated across the entire system regardless of type or location helping with: understanding potentially thousands entities and, understanding the relationships between these entities.
Getting Started with Semantic Models for the IOC
This topic can easily become overwhelming, especially when trying to understand it in the context of a smarter cities or industry solutions engagements, where lots of other things are going on. Your best bet is to focus on understanding the infrastructure you are trying to model and breaking it down into simple terms that focus on the following:
Asset or Equipment à Name, Location, Type
Measurement à Measurement-Value
Measurement à Measurement-Value
Starting by trying to understand the ontology, or ontologies in general, will probably end in frustration. The initial ontology is already in place within Intelligent Water 1.5 as a best practice, so focusing on the specifics of building an implementation model is an easier goal to achieve. After you have built a model or two your understanding of the ontology will begin to deepen and more value will become apparent in the use of semantic models. We are just scratching the surface here in trying to understand how and why semantic models can be useful in your smarter cities implementation.