My talk about data and information models for IoT, how ontologies can establish the relationship between IoT devices, and how Eclipse Vorto could accommodate ontological information. Briefly features Eclipse Smarthome.
2. • What are data models, info models
and ontologies?
• How can they be useful in the IoT
context?
• Why and how are these topics
relevant to Eclipse IoT?
Questions
3. Data Model vs.
Information Model
The difference is often very academic. Both model types have in
common a language-independent description of physical objects.
My definition
• data model - more “technical”
• info model - more “semantic”
4. Data Model
A data model helps to
formalise how data is
organised (stored, etc.)
time sensor temperature
11:23 DHT11 23.4
11:24 BMP85 23.5
11:24 DHT11 23.4
11:25 DHT11 23.6
sensor type accuracy …
DHT11
temperature
+ humidity
+/- 5% …
BMP85
temperature
+ pressure
+/- 2% …
… …
relational model - a
type of data model
5. Information Model
An info model helps to describe capabilities similar to
object oriented code
DHT11
temperature sensor
property
is_sensor
sensor_type
sensor_subtype
temperature
sleep_mode
functions
temperature
sleep
boolean: true, immutable
set (physical, chemical): chemical, immutable
set (force, temperature, …): temperature, immutable
float, valid: > -25 && < +75
boolean
get: delivers current temperature
set: puts the sensor to sleep
6. Ontology
“structure” - a
directed acyclic
graph
“definition”
An indoor temperature
sensor is located inside a
building structure. It is
sometimes used to control
a ‘boiler’ (ID: xxx) or a
‘radiator’ (ID: xxx).
provides information
about the relationship
between objects
8. Ontologies recap
My thingmonk talk (2014) on SlideShare
My O’Reilly Webcast (video)
My blog post about IoT ontologies
http://www.slideshare.net/BorisAdryan/
http://iot.ghost.io/four-branches-for-an-iot-ontology/
http://www.oreilly.com/pub/e/3365
9. Implementation is a
matter of taste (…)
SQL guy’s code:
CREATE TABLE dht11 (
time: datetime,
temp: float
);
Perl girl’s code:
my %dht11_hash;
my $time = $_;
$dht11{$time}{‘temp’} = 23.6;
$dht{$time}{‘humid’} = 68;
Boris’ MQTT topic:
•ad-hoc solutions
•cherry-picked info
•incomplete
•not convertible
code is the worst
source of device
information!
10. Wouldn’t it be nice…
Formalised description of the
device in a well-defined
information model
Repository of qualified
information models for
re-use
‘Translate model to’-
functionality for common
programming languages
beautifully written, well-
formatted and documented
code
11.
12. Why Bosch is doing Vorto
Vorto minimises development time. Info models for industrial IoT
applications are immediately compatible for both Bosch and PTC
clouds, as well as IoT applications.
13. Vorto is an editor for a
domain-specific language
14.
15. The model repo is still
pretty empty…
http://vorto.eclipse.org
16. Vorto DSL & OPC UA
OPC UA - a fetish of German
industrial IoT
• not competing standards
• should be possible to write
OPC UA compatible code
with a Vorto code generator
19. Eclipse Smarthome
and ontologies
• to me as an outsider, not clear what’s going to
happen in Eclipse Smarthome
• technical and philosophical challenges around
ontologies
• time, money, team structure
• but: references to a term in the ontologies could be
saved in the information model
20. Dr. Boris Adryan
@BorisAdryan
Disclaimer: I haven’t contributed a single line of
code to any of these projects.
Many thanks to the Vorto team, Kai Kreuzer and
Michael Koster for discussions!