SlideShare a Scribd company logo
Toward Constrained
Semantic Web
Remy Rojas Lionel Médini Amélie Cordier
LIRIS lab., Université de Lyon, France
remy.rojas@protonmail.com
1
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
2
Context: WoT assumptions
● Servient
○ Part of the Web of Things Architecture
○ Represents a Thing on the Web
○ Component-based architecture that addresses different concerns
● Avatar
○ Defined in the French ASAWoO project
○ One possible implementation of a servient
○ Defines a vocabulary that distinguishes
■ Capabilities
■ Functionalities
● Embedded WoT server
○ Standard compliant
○ Partly implement servient / avatar architecture
○ Expose RESTful capabilities 3
Requirements
● Be based on Web standards
○ Protocols: HTTP, CoAP
○ Communication scheme: REST
● Ensure application-level Interoperability and Discoverability
○ Provide Semantic resource descriptions
○ RDF, RDF-S, OWL
● Fit in constrained devices
○ Ease of Deployment and Scalability
○ Constraints:
1. Computing power: CPU, Memory, Storage
2. Network
3. Energy Efficiency 4
Motivation
Embedding minimum technologies for constrained devices to integrate the
Semantic Web of Things, without undermining their original functionalities.
5
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
6
Architecture overview
7
Constrained Thing
Thing
Configuration
Semantic
Server
Repository
HTTP/CoAP
Proxy
HTTP
Shared
Vocabularies
RAM
Service
TemplateService
TemplateService
Model
CoAP
HTTPreferences
describe
Sensors
Actuators
I/O
Processing
buffers
CoAP
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
8
Constrained Device software components
● Thing Configuration: A non-volatile memory space where the state of the
device’s services is stored.
● Semantic Server Repository: A space where the device can store and
read its Semantic descriptions.
● Service Model: In memory representation of the services currently
provided by the sensors and actuators.
● Processing buffers: Handle requests and generate responses
○ CoAP headers
○ JSON payloads
9
Constrained Thing
Thing
Configuration
Semantic
Server
Repository
RAM
e
Service
Model
Processing
buffers
Application Protocol
CoAP(Constrained Application Protocol)
- Analogous to HTTP request semantics (GET/POST/PUT…)
- Binary Headers
➔ Support for REST implementations
- On top of UDP (but also 6LoWPAN)
- Blockwise transfer: fixed size packet exchange
➔ Suitable for constrained devices
10
Constrained Device processing workflow
Mode 1: Startup
Mode 2: Requesting
Boot
Device
Configuration
Reader
Thing Config.
List of
Enabled
Services
Service
Parser
Sem. Server Repo.
Service
TemplateService
TemplateService
Model
CoAP
Request Buffer AnalyserService URI
. . .
Completeness
Detection
Sensor/Act.
Sensor/Act.
CoAP
Response
Results
Buffer
Serializing CoAP
Buffer
Blockwise
Transfer
11
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
12
A Thing exposes a list of Capabilities.
● Capability Properties
○ Enabled Status
○ Command
○ Value
Each device describes its API through a complete Hydra API documentation
➔ Resource Expensive
➔ Use Linked Data to reference common parts of the API → ASAWoO
ontology
Hosted @ http://liris.cnrs.fr/asawoo/ontology/asawoo-hydra.jsonld
Semantic API documentation
13
Hydra-based documentation example
{
"@id":"vocab:temperatureSensor",
"@type" : ["hydra:Resource","asawoo:Capability"],
"description": "Retrieves a temperature.",
"hydra:supportedOperation" : [
{
"@id": "_:senseTemp",
"@type": "asawoo:capability_retrieve",
"returns": "vocab:Temperature"
},[...]
]
},[...]
{
"@id": "vocab:Temperature",
"@type": ["http://ontology.tno.nl/saref/#Temperature","asawoo:Value"],
"description": "The value returned for a Temperature reading, as specified in SAREF."
},[...]
14
Hosted @ https://github.com/ucbl/arduinoRdfServer/blob/master/example/arduino.jsonld
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
15
Translation Proxy
● Goals
○ Realistic client use-cases
○ Ease of deployment (Python Script)
○ Protection from malformed CoAP
● Functions
○ Transforms TCP payloads into “blockwise-compatible” UDP packets
○ Translates HTTP headers into CoAP and vice-versa
● Tools
○ Twisted Framework powered with TxThings extension
16
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
17
Implementation: Arduino UNO
● Component repartition
○ Device Configuration → EEPROM
○ Semantic Server Repository → ProgMem
○ Service Configuration, Processing Buffers → RAM
● CoAP Blockwise Transfer → 64B payload set
● Tools
○ CoAP (partial) support: Ethernet libraries provided by Arduino
○ JSON parsing : ArduinoJSON
RAM ProgMem EEPROM Processor
2KB r/w 32KB ro 1KB r/w
ATmega328P
@ 16MHz
18
Results
Feasibility is achieved on a Constrained Device using the CoAP standard with a
REST architecture:
● Several services can be instantiated at once.
● Embedded RDF graphs are used by both client and server to describe an
API
● Configuration persists through power cuts 19
RAM Footprint Cumulative Available RAM
Algorithm & Class Instantiation 968B 1080B (52%)
Service Template (x3) 279B 725B (35.4%)
Static JSON Buffers 200B 525B (25.63%)
Package-processing variables 24B 501B (24.46%)
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
20
Conclusion
● POC about semantic interoperability in the WoT on constrained devices
● Next step: intelligent clients that can discover and use such WoT servers
● A step toward decentralized semantic WoT?
○ Aggregating such servers can result in complex applications by pushing hypermedia
possibilities further
21
Thank you!
...Questions?
22
This work is supported by the French Agence Nationale pour la Recherche (ANR) under the grant
<ANR-13-INFR-012>

More Related Content

What's hot (20)

PDF
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Tonny Adhi Sabastian
 
PDF
Netflix Data Benchmark @ HPTS 2017
Ioannis Papapanagiotou
 
PDF
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Taiwan User Group
 
PPTX
BDE SC4 Hangout - Hajira Jabeen, general architecture
BigData_Europe
 
PDF
OpenPOWER Latest Updates
Ganesan Narayanasamy
 
PDF
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
NETWAYS
 
PPTX
SC4 Hangout - Luigi Selmi, Transport pilot architecture
BigData_Europe
 
PPT
New web service oriented ARC
Ferenc Szalai
 
PDF
IoT Data Connector Fluent Bit
Toru Takahashi
 
PDF
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
NETWAYS
 
PDF
Cloud Native Logging / Fluentd Summit Tokyo
Eduardo Silva Pereira
 
PDF
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebula Project
 
PDF
Sprint 13
ManageIQ
 
PDF
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Yuri Shkuro
 
PDF
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Mirantis
 
PPTX
Netty Notes Part 3 - Channel Pipeline and EventLoops
Rick Hightower
 
PDF
Log forwarding at Scale
Eduardo Silva Pereira
 
PDF
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
⛑ Pavol Loffay
 
PDF
Opentracing 101
HungWei Chiu
 
PDF
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
OW2
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Tonny Adhi Sabastian
 
Netflix Data Benchmark @ HPTS 2017
Ioannis Papapanagiotou
 
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Taiwan User Group
 
BDE SC4 Hangout - Hajira Jabeen, general architecture
BigData_Europe
 
OpenPOWER Latest Updates
Ganesan Narayanasamy
 
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
NETWAYS
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
BigData_Europe
 
New web service oriented ARC
Ferenc Szalai
 
IoT Data Connector Fluent Bit
Toru Takahashi
 
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
NETWAYS
 
Cloud Native Logging / Fluentd Summit Tokyo
Eduardo Silva Pereira
 
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebula Project
 
Sprint 13
ManageIQ
 
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Yuri Shkuro
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Mirantis
 
Netty Notes Part 3 - Channel Pipeline and EventLoops
Rick Hightower
 
Log forwarding at Scale
Eduardo Silva Pereira
 
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
⛑ Pavol Loffay
 
Opentracing 101
HungWei Chiu
 
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
OW2
 

Similar to Towards constrained semantic web (20)

PDF
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
PDF
Building RESTtful services in MEAN
Madhukara Phatak
 
PPTX
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kevin Lynch
 
PPTX
GRPC.pptx
Afzal Juneja
 
PDF
Node.js scaling in highload
Timur Shemsedinov
 
PDF
BKK16-106 ODP Project Update
Linaro
 
PPTX
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kevin Lynch
 
PDF
introduction to micro services
Spyros Lambrinidis
 
PDF
Java one2013
Aleksei Kornev
 
PDF
gRPC Design and Implementation
Varun Talwar
 
PPTX
HPC Controls Future
rcastain
 
PDF
Blackray @ SAPO CodeBits 2009
fschupp
 
PDF
Building high performance microservices in finance with Apache Thrift
RX-M Enterprises LLC
 
PDF
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
PDF
Big data Argentina meetup 2020-09: Intro to presto on docker
Federico Palladoro
 
PDF
Kubernetes from scratch at veepee sysadmins days 2019
🔧 Loïc BLOT
 
PDF
20141111_SOS3_Gallo
Andrea Gallo
 
PDF
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
PDF
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
telestax
 
PDF
Netflix Open Source Meetup Season 4 Episode 2
aspyker
 
Cloud Native API Design and Management
AllBits BVBA (freelancer)
 
Building RESTtful services in MEAN
Madhukara Phatak
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kevin Lynch
 
GRPC.pptx
Afzal Juneja
 
Node.js scaling in highload
Timur Shemsedinov
 
BKK16-106 ODP Project Update
Linaro
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kevin Lynch
 
introduction to micro services
Spyros Lambrinidis
 
Java one2013
Aleksei Kornev
 
gRPC Design and Implementation
Varun Talwar
 
HPC Controls Future
rcastain
 
Blackray @ SAPO CodeBits 2009
fschupp
 
Building high performance microservices in finance with Apache Thrift
RX-M Enterprises LLC
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Federico Palladoro
 
Kubernetes from scratch at veepee sysadmins days 2019
🔧 Loïc BLOT
 
20141111_SOS3_Gallo
Andrea Gallo
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
telestax
 
Netflix Open Source Meetup Season 4 Episode 2
aspyker
 
Ad

Recently uploaded (20)

PPTX
internet básico presentacion es una red global
70965857
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
PDF
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPTX
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
PPTX
英国假毕业证诺森比亚大学成绩单GPA修改UNN学生卡网上可查学历成绩单
Taqyea
 
PPTX
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
PPTX
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PPTX
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
PPTX
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PPT
introductio to computers by arthur janry
RamananMuthukrishnan
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PPT
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
internet básico presentacion es una red global
70965857
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
英国假毕业证诺森比亚大学成绩单GPA修改UNN学生卡网上可查学历成绩单
Taqyea
 
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
introductio to computers by arthur janry
RamananMuthukrishnan
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
Ad

Towards constrained semantic web

  • 1. Toward Constrained Semantic Web Remy Rojas Lionel Médini Amélie Cordier LIRIS lab., Université de Lyon, France [email protected] 1
  • 2. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 2
  • 3. Context: WoT assumptions ● Servient ○ Part of the Web of Things Architecture ○ Represents a Thing on the Web ○ Component-based architecture that addresses different concerns ● Avatar ○ Defined in the French ASAWoO project ○ One possible implementation of a servient ○ Defines a vocabulary that distinguishes ■ Capabilities ■ Functionalities ● Embedded WoT server ○ Standard compliant ○ Partly implement servient / avatar architecture ○ Expose RESTful capabilities 3
  • 4. Requirements ● Be based on Web standards ○ Protocols: HTTP, CoAP ○ Communication scheme: REST ● Ensure application-level Interoperability and Discoverability ○ Provide Semantic resource descriptions ○ RDF, RDF-S, OWL ● Fit in constrained devices ○ Ease of Deployment and Scalability ○ Constraints: 1. Computing power: CPU, Memory, Storage 2. Network 3. Energy Efficiency 4
  • 5. Motivation Embedding minimum technologies for constrained devices to integrate the Semantic Web of Things, without undermining their original functionalities. 5
  • 6. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 6
  • 8. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 8
  • 9. Constrained Device software components ● Thing Configuration: A non-volatile memory space where the state of the device’s services is stored. ● Semantic Server Repository: A space where the device can store and read its Semantic descriptions. ● Service Model: In memory representation of the services currently provided by the sensors and actuators. ● Processing buffers: Handle requests and generate responses ○ CoAP headers ○ JSON payloads 9 Constrained Thing Thing Configuration Semantic Server Repository RAM e Service Model Processing buffers
  • 10. Application Protocol CoAP(Constrained Application Protocol) - Analogous to HTTP request semantics (GET/POST/PUT…) - Binary Headers ➔ Support for REST implementations - On top of UDP (but also 6LoWPAN) - Blockwise transfer: fixed size packet exchange ➔ Suitable for constrained devices 10
  • 11. Constrained Device processing workflow Mode 1: Startup Mode 2: Requesting Boot Device Configuration Reader Thing Config. List of Enabled Services Service Parser Sem. Server Repo. Service TemplateService TemplateService Model CoAP Request Buffer AnalyserService URI . . . Completeness Detection Sensor/Act. Sensor/Act. CoAP Response Results Buffer Serializing CoAP Buffer Blockwise Transfer 11
  • 12. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 12
  • 13. A Thing exposes a list of Capabilities. ● Capability Properties ○ Enabled Status ○ Command ○ Value Each device describes its API through a complete Hydra API documentation ➔ Resource Expensive ➔ Use Linked Data to reference common parts of the API → ASAWoO ontology Hosted @ http://liris.cnrs.fr/asawoo/ontology/asawoo-hydra.jsonld Semantic API documentation 13
  • 14. Hydra-based documentation example { "@id":"vocab:temperatureSensor", "@type" : ["hydra:Resource","asawoo:Capability"], "description": "Retrieves a temperature.", "hydra:supportedOperation" : [ { "@id": "_:senseTemp", "@type": "asawoo:capability_retrieve", "returns": "vocab:Temperature" },[...] ] },[...] { "@id": "vocab:Temperature", "@type": ["http://ontology.tno.nl/saref/#Temperature","asawoo:Value"], "description": "The value returned for a Temperature reading, as specified in SAREF." },[...] 14 Hosted @ https://github.com/ucbl/arduinoRdfServer/blob/master/example/arduino.jsonld
  • 15. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 15
  • 16. Translation Proxy ● Goals ○ Realistic client use-cases ○ Ease of deployment (Python Script) ○ Protection from malformed CoAP ● Functions ○ Transforms TCP payloads into “blockwise-compatible” UDP packets ○ Translates HTTP headers into CoAP and vice-versa ● Tools ○ Twisted Framework powered with TxThings extension 16
  • 17. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 17
  • 18. Implementation: Arduino UNO ● Component repartition ○ Device Configuration → EEPROM ○ Semantic Server Repository → ProgMem ○ Service Configuration, Processing Buffers → RAM ● CoAP Blockwise Transfer → 64B payload set ● Tools ○ CoAP (partial) support: Ethernet libraries provided by Arduino ○ JSON parsing : ArduinoJSON RAM ProgMem EEPROM Processor 2KB r/w 32KB ro 1KB r/w ATmega328P @ 16MHz 18
  • 19. Results Feasibility is achieved on a Constrained Device using the CoAP standard with a REST architecture: ● Several services can be instantiated at once. ● Embedded RDF graphs are used by both client and server to describe an API ● Configuration persists through power cuts 19 RAM Footprint Cumulative Available RAM Algorithm & Class Instantiation 968B 1080B (52%) Service Template (x3) 279B 725B (35.4%) Static JSON Buffers 200B 525B (25.63%) Package-processing variables 24B 501B (24.46%)
  • 20. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 20
  • 21. Conclusion ● POC about semantic interoperability in the WoT on constrained devices ● Next step: intelligent clients that can discover and use such WoT servers ● A step toward decentralized semantic WoT? ○ Aggregating such servers can result in complex applications by pushing hypermedia possibilities further 21
  • 22. Thank you! ...Questions? 22 This work is supported by the French Agence Nationale pour la Recherche (ANR) under the grant <ANR-13-INFR-012>