The Schema Editor of OpenIoT
for Semantic Sensor Networks
Prem P. Jayaraman, Jean-Paul Calbimonte and Hoan Nguyen Mau Quoc
RMIT University, LSIR EPFL, Insight – NUI Galway
SSN-TC 2015. International Semantic Web Conference ISWC 2015
Bethlehem, PA, October 2015
@jpcik
1
OpenIoT FP7
Open Source Cloud solution for the Internet of Things
http://openiot.eu
Established Open-source platform for IoT
• Integrate sensors & things with cloud computing
• Configure, deploy and use IoT services
• Auditing/assessing privacy of IoT apps in the cloud
• Semantic annotations of internet-connected objects
• Energy-efficient data harvesting
• Publish/subscribe for continuous processing and
sensor data filtering
• Mobility of sensors and QoS aspects in IoT
https://github.com/OpenIotOrg/openiot
Use cases and validation scenarios
Smart
Manufacturing Campus Guide
Air Monitoring
Agriculture
Sensing
2
The OpenIoT Architecture
Sensor data management
Semantic data management
Applications
3
Security
(CAS)
Physical
Technology
Plane
Xively
(Cosm - Pachube)
CoAP
(Sensors)
MQTT
Request
Definition (IDE)
ServiceDelivery
&UtilityManager
Request
Presentation (IDE)
Scheduler
Configuration/
Monitor
Console(IDE)
Utility
Application
Plane
Cloud DataBase
(LSM-Light)
Discovery
Services
X-GSN X-GSN
Virtualized
Plane
User User
2
4
5
7
12
6
8
9
10
11
3
2
3
4
5
6
7
9
1
8
10
End User Request
Discovery Services
Query Content
Collect Content / Mobile
Sensor Configuration
Content Adaptation
Utility Service Feedback
Service Delivery
Service Visualisation
Get Visualisation
11 Data Presentation
12
InfoSphere
Streams
1
OthersUtility Metrics /Service Report
X-GSN…
Cloud Pub/Sub
5’
Pub/Sub Enabled
Mobile
Broker
(Sensors)
0
0 Setup and Management
0’’
0’’
12
5’’
0’
0’
X-GSN
0’
OpenIoT Services and Components
Application
Plane
4
Request Definition & Presentation
5
Everything nice if your data is also nice
Query
Operators
Data sources
Output Widgets
Find data streams
Request Definition & Presentation
Data at this level is already RDF-ized
Generated
SPARQL queries
6
OpenIoT and the SSN Ontology
7
ssn:Sensor
ssn:Platform
ssn:FeatureOfInterest
ssn:Deployment
ssn:Property
cf-prop:air_temperature
ssn:observes
ssn:onPlatform
dul:Place
dul:hasLocation
ssn:SensingDevicessn:inDeployment
ssn:MeasurementCapability
ssn:MeasurementProperty
geo:lat, geo:lng
xsd:double
ssn:hasMeasurementProperty
ssn:Accuracy
ssn:ofFeature
aws:TemperatureSensor
aws:Thermistor
ssn:Latency
dim:Temperature
qu:QuantityKind
cf-prop:soil_temperature
cf-feat:Wind
cf-feat:Surface
cf-feat:Medium
cf-feat:air
cf-feat:soil
dim:VelocityOrSpeed
cf-prop:wind_speed
cf-prop:rainfall_rate
aws:CapacitiveBead …
…
…
Where to look for vocabs?
When do we set up the onto?
Who sets it up?
http://lsm.deri.ie/resource/4039002668863045 http://lsm.deri.ie/ont/lsm.owl#unit "Percent"
Generated URIs? Vocabulary? Literals?
http://purl.oclc.org/NET/ssnx/cf/cf-property
http://www.w3.org/2005/Incubator/ssn/XGR-ssn/
Register metadata
8
If ontologies change…
If we add new types of sensors?
Do I have control over my sensor metadata?
Virtual Sensor configuration
9
<virtual-sensor name="room-monitor" >
<addressing>
<predicate key="geographical">BC143</predicate>
<predicate key="usage">
room monitoring</predicate>
</addressing>
<life-cycle pool-size="10" />
<output-structure>
<field name="image" type="binary:image/jpeg" />
<field name="temp" type="int" />
</output-structure>
<storage permanent="true" history-size="10h" />
<input-streams>
<input-stream name="cam">
<stream-source alias="cam" storage-size="1“
sampling-rate=“1”>
<address wrapper=“tinyos2.x">
<predicate key=“host">tinybox.epfl.ch
</predicate>
<predicate key=“port">9001</predicate>
</address>
select * from WRAPPER
</stream-source>
<stream-source alias="temperature1“
storage-size="1m“ sampling-rate=“1”>
<address wrapper="remote">
<predicate key="type">temperature</predicate>
<predicate key="geographical">BC143-N
</predicate>
</address>
select AVG(temp1) as T1 from WRAPPER
</stream-source>
<stream-source alias="temperature2“
storage-size="1m“>
<address wrapper="remote">
<predicate key="type“>temperature</predicate>
<predicate key="geographical“>BC143-S
</predicate>
</address>
select AVG(temp2) as T2 from WRAPPER
</stream-source>
<query>
select cam.picture as image, temperature.T1
as temp from cam, temperature1
where temperature1.T1 > 30 AND
temperature1.T1 = temperature2.T2
</query>
</input-stream>
</input-streams>
</virtual-sensor>
Some metadata is here
Sensor metadata configuration
Metadata properties
10
sensorID="http://lsm.deri.ie/resource/1099207032411018"
sensorName=closedsense
source=“Some source"
sourceType=lausanne
sensorType=lausanne
information=Air Quality Sensors from Lausanne station 1
author=opensense
feature="http://lsm.deri.ie/OpenIoT/opensensefeature"
fields="humidity,temperature"
field.temperature.propertyName="http://lsm.deri.ie/OpenIoT/
Temperature"
field.temperature.unit=C
field.humidity.propertyName="http://lsm.deri.ie/OpenIoT/Hu
midity"
field.humidity.unit=Percent
field.co.propertyName="http://lsm.deri.ie/OpenIoT/CO"
field.co.unit=PPM
latitude=46.529838
longitude=6.596818
Turtle RDF registration
11
<sensor/5010> rdf:type aws:CapacitiveBead,ssn:Sensor;
rdfs:label "Sensor 5010";
ssn:observes aws:air_temperature ;
phenonet:hasSerialNumber
<sensor/5010/serial/serial2> ;
ssn:onPlatform <site/narrabri/Pweather> ;
ssn:ofFeature <site/narrabri/sf/sf_narrabri> ;
ssn:hasMeasurementProperty
<sensor/5010/accuracy/acc_1> ;
prov:wasGeneratedBy "AuthorName";
DUL:hasLocation <place/location1>;
lsm:hasSensorType <sensorType1>;
lsm:hasSourceType "SourceType".
<sensorType1> rdfs:label "TypeName".
<sensor/5010/serial/serial2> rdf:type phenonet:SerialNumber;
phenonet:hasId "5010" .
<sensor/5010> rdf:type aws:CapacitiveBead,ssn:Sensor;
rdfs:label "Sensor 5010";
ssn:observes aws:air_temperature ;
phenonet:hasSerialNumber
<sensor/5010/serial/serial2> ;
ssn:onPlatform <site/narrabri/Pweather> ;
ssn:ofFeature <site/narrabri/sf/sf_narrabri> ;
ssn:hasMeasurementProperty
<sensor/5010/accuracy/acc_1> ;
prov:wasGeneratedBy "AuthorName";
DUL:hasLocation <place/location1>;
lsm:hasSensorType <sensorType1>;
lsm:hasSourceType "SourceType".
<sensorType1> rdfs:label "TypeName".
<sensor/5010/serial/serial2> rdf:type phenonet:SerialNumber;
phenonet:hasId "5010" .
A bit more of semantics
Need tools for this
Editing Ontologies?
12
Standard Tools
Better Suited for ontologists
Complex for small tasks
No integration with IoT platofrms
Generate RDF instances?
OpenIoT Schema Editor
13
Existing Sensor
Types Observed
properties
Users exposed to URIs as identifiers
Sensor Types
14
Schema Editor: Sensor Types
15
Observed properties
New Type
Measurement
Capabilities
Generated RDF
Sensor Instances
16
Schema Editor: New Instances
17
OpenIoT Schema Editor
18
Based on Standards
Schema Editor
based on SSN Ontology
Facilitates Extensions
Integrated with OpenIoT
Sensor Types and Instances
Extensible Editor?
URI generation?
Link to Vocab Libraries?
Validation of content?
Beyond OpenIoT-only?Web User Interface
OpenIoT resources
19
OpenIoT Github
https://github.com/OpenIotOrg/openiot
OpenIoT VDK virtual Machine
https://github.com/OpenIotOrg/openiot/wiki/VDKv2---OpenIoT-Rele
Viedo Demos:
http://www.youtube.com/user/OpenIoT
Muchas gracias!
Jean-Paul Calbimonte
LSIR EPFL
@jpcik
20

The Schema Editor of OpenIoT for Semantic Sensor Networks

  • 1.
    The Schema Editorof OpenIoT for Semantic Sensor Networks Prem P. Jayaraman, Jean-Paul Calbimonte and Hoan Nguyen Mau Quoc RMIT University, LSIR EPFL, Insight – NUI Galway SSN-TC 2015. International Semantic Web Conference ISWC 2015 Bethlehem, PA, October 2015 @jpcik 1
  • 2.
    OpenIoT FP7 Open SourceCloud solution for the Internet of Things http://openiot.eu Established Open-source platform for IoT • Integrate sensors & things with cloud computing • Configure, deploy and use IoT services • Auditing/assessing privacy of IoT apps in the cloud • Semantic annotations of internet-connected objects • Energy-efficient data harvesting • Publish/subscribe for continuous processing and sensor data filtering • Mobility of sensors and QoS aspects in IoT https://github.com/OpenIotOrg/openiot Use cases and validation scenarios Smart Manufacturing Campus Guide Air Monitoring Agriculture Sensing 2
  • 3.
    The OpenIoT Architecture Sensordata management Semantic data management Applications 3
  • 4.
    Security (CAS) Physical Technology Plane Xively (Cosm - Pachube) CoAP (Sensors) MQTT Request Definition(IDE) ServiceDelivery &UtilityManager Request Presentation (IDE) Scheduler Configuration/ Monitor Console(IDE) Utility Application Plane Cloud DataBase (LSM-Light) Discovery Services X-GSN X-GSN Virtualized Plane User User 2 4 5 7 12 6 8 9 10 11 3 2 3 4 5 6 7 9 1 8 10 End User Request Discovery Services Query Content Collect Content / Mobile Sensor Configuration Content Adaptation Utility Service Feedback Service Delivery Service Visualisation Get Visualisation 11 Data Presentation 12 InfoSphere Streams 1 OthersUtility Metrics /Service Report X-GSN… Cloud Pub/Sub 5’ Pub/Sub Enabled Mobile Broker (Sensors) 0 0 Setup and Management 0’’ 0’’ 12 5’’ 0’ 0’ X-GSN 0’ OpenIoT Services and Components Application Plane 4
  • 5.
    Request Definition &Presentation 5 Everything nice if your data is also nice Query Operators Data sources Output Widgets Find data streams
  • 6.
    Request Definition &Presentation Data at this level is already RDF-ized Generated SPARQL queries 6
  • 7.
    OpenIoT and theSSN Ontology 7 ssn:Sensor ssn:Platform ssn:FeatureOfInterest ssn:Deployment ssn:Property cf-prop:air_temperature ssn:observes ssn:onPlatform dul:Place dul:hasLocation ssn:SensingDevicessn:inDeployment ssn:MeasurementCapability ssn:MeasurementProperty geo:lat, geo:lng xsd:double ssn:hasMeasurementProperty ssn:Accuracy ssn:ofFeature aws:TemperatureSensor aws:Thermistor ssn:Latency dim:Temperature qu:QuantityKind cf-prop:soil_temperature cf-feat:Wind cf-feat:Surface cf-feat:Medium cf-feat:air cf-feat:soil dim:VelocityOrSpeed cf-prop:wind_speed cf-prop:rainfall_rate aws:CapacitiveBead … … … Where to look for vocabs? When do we set up the onto? Who sets it up? http://lsm.deri.ie/resource/4039002668863045 http://lsm.deri.ie/ont/lsm.owl#unit "Percent" Generated URIs? Vocabulary? Literals? http://purl.oclc.org/NET/ssnx/cf/cf-property http://www.w3.org/2005/Incubator/ssn/XGR-ssn/
  • 8.
    Register metadata 8 If ontologieschange… If we add new types of sensors? Do I have control over my sensor metadata?
  • 9.
    Virtual Sensor configuration 9 <virtual-sensorname="room-monitor" > <addressing> <predicate key="geographical">BC143</predicate> <predicate key="usage"> room monitoring</predicate> </addressing> <life-cycle pool-size="10" /> <output-structure> <field name="image" type="binary:image/jpeg" /> <field name="temp" type="int" /> </output-structure> <storage permanent="true" history-size="10h" /> <input-streams> <input-stream name="cam"> <stream-source alias="cam" storage-size="1“ sampling-rate=“1”> <address wrapper=“tinyos2.x"> <predicate key=“host">tinybox.epfl.ch </predicate> <predicate key=“port">9001</predicate> </address> select * from WRAPPER </stream-source> <stream-source alias="temperature1“ storage-size="1m“ sampling-rate=“1”> <address wrapper="remote"> <predicate key="type">temperature</predicate> <predicate key="geographical">BC143-N </predicate> </address> select AVG(temp1) as T1 from WRAPPER </stream-source> <stream-source alias="temperature2“ storage-size="1m“> <address wrapper="remote"> <predicate key="type“>temperature</predicate> <predicate key="geographical“>BC143-S </predicate> </address> select AVG(temp2) as T2 from WRAPPER </stream-source> <query> select cam.picture as image, temperature.T1 as temp from cam, temperature1 where temperature1.T1 > 30 AND temperature1.T1 = temperature2.T2 </query> </input-stream> </input-streams> </virtual-sensor> Some metadata is here Sensor metadata configuration
  • 10.
    Metadata properties 10 sensorID="http://lsm.deri.ie/resource/1099207032411018" sensorName=closedsense source=“Some source" sourceType=lausanne sensorType=lausanne information=AirQuality Sensors from Lausanne station 1 author=opensense feature="http://lsm.deri.ie/OpenIoT/opensensefeature" fields="humidity,temperature" field.temperature.propertyName="http://lsm.deri.ie/OpenIoT/ Temperature" field.temperature.unit=C field.humidity.propertyName="http://lsm.deri.ie/OpenIoT/Hu midity" field.humidity.unit=Percent field.co.propertyName="http://lsm.deri.ie/OpenIoT/CO" field.co.unit=PPM latitude=46.529838 longitude=6.596818
  • 11.
    Turtle RDF registration 11 <sensor/5010>rdf:type aws:CapacitiveBead,ssn:Sensor; rdfs:label "Sensor 5010"; ssn:observes aws:air_temperature ; phenonet:hasSerialNumber <sensor/5010/serial/serial2> ; ssn:onPlatform <site/narrabri/Pweather> ; ssn:ofFeature <site/narrabri/sf/sf_narrabri> ; ssn:hasMeasurementProperty <sensor/5010/accuracy/acc_1> ; prov:wasGeneratedBy "AuthorName"; DUL:hasLocation <place/location1>; lsm:hasSensorType <sensorType1>; lsm:hasSourceType "SourceType". <sensorType1> rdfs:label "TypeName". <sensor/5010/serial/serial2> rdf:type phenonet:SerialNumber; phenonet:hasId "5010" . <sensor/5010> rdf:type aws:CapacitiveBead,ssn:Sensor; rdfs:label "Sensor 5010"; ssn:observes aws:air_temperature ; phenonet:hasSerialNumber <sensor/5010/serial/serial2> ; ssn:onPlatform <site/narrabri/Pweather> ; ssn:ofFeature <site/narrabri/sf/sf_narrabri> ; ssn:hasMeasurementProperty <sensor/5010/accuracy/acc_1> ; prov:wasGeneratedBy "AuthorName"; DUL:hasLocation <place/location1>; lsm:hasSensorType <sensorType1>; lsm:hasSourceType "SourceType". <sensorType1> rdfs:label "TypeName". <sensor/5010/serial/serial2> rdf:type phenonet:SerialNumber; phenonet:hasId "5010" . A bit more of semantics Need tools for this
  • 12.
    Editing Ontologies? 12 Standard Tools BetterSuited for ontologists Complex for small tasks No integration with IoT platofrms Generate RDF instances?
  • 13.
    OpenIoT Schema Editor 13 ExistingSensor Types Observed properties Users exposed to URIs as identifiers
  • 14.
  • 15.
    Schema Editor: SensorTypes 15 Observed properties New Type Measurement Capabilities Generated RDF
  • 16.
  • 17.
    Schema Editor: NewInstances 17
  • 18.
    OpenIoT Schema Editor 18 Basedon Standards Schema Editor based on SSN Ontology Facilitates Extensions Integrated with OpenIoT Sensor Types and Instances Extensible Editor? URI generation? Link to Vocab Libraries? Validation of content? Beyond OpenIoT-only?Web User Interface
  • 19.
    OpenIoT resources 19 OpenIoT Github https://github.com/OpenIotOrg/openiot OpenIoTVDK virtual Machine https://github.com/OpenIotOrg/openiot/wiki/VDKv2---OpenIoT-Rele Viedo Demos: http://www.youtube.com/user/OpenIoT
  • 20.