Skip to content

sisinflab-swot/ldp-coap-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LDP-CoAP: Linked Data Platform for the Constrained Application Protocol

W3C Linked Data Platform 1.0 specification defines resource management primitives for HTTP only, pushing into the background not-negligible use cases related to Web of Things (WoT) scenarios where HTTP-based communication and infrastructures are unfeasible.

LDP-CoAP proposes a mapping of the LDP specification for RFC 7252 Constrained Application Protocol (CoAP) and a complete Java-based framework to publish Linked Data on the WoT.

A general translation of LDP-HTTP requests and responses is provided, as well as a fully comprehensive framework for HTTP-to-CoAP proxying.

LDP-CoAP framework also supports the W3C Linked Data Notifications (LDN) protocol aiming to generate, share and reuse notifications across different applications.

LDP-CoAP functionalities can be tested using the W3C Test Suite for LDP and the LDN Test Suite.

Modules

LDP-CoAP (version 1.3.x) consists of the following sub-projects:

  • ldp-coap-core: basic framework implementation including the proposed LDP-CoAP mapping;
  • ldp-coap-test: includes reference client/server implementation used to test the framework according to the test suites cited above;
  • ldp-coap-raspberry: usage examples exploiting ldp-coap-core on a Raspberry Pi 1 Model B+ board;
  • ldp-coap-android: simple project using ldp-coap-core on Android platform;

LDP-CoAP also requires Californium-LDP, a fork of the Eclipse Californium framework supporting LDP specification. In particular, the following modules were defined as local Maven dependencies:

  • californium-core-ldp: a modified version of the californium-core library extended to support LDP-CoAP features;
  • californium-proxy-ldp: a modified version of the californium-proxy used to translate LDP-HTTP request methods and headers into the corresponding LDP-CoAP ones and then map back LDP-CoAP responses to LDP-HTTP;

Usage with Eclipse and Maven

Each module can be imported as Maven project in Eclipse. Make sure to have the following plugins before importing LDP-CoAP projects:

Documentation

Hands-on introduction to LDP-CoAP using basic code samples available on the project webpage.

More details about packages and methods can be found on the official Javadoc.

References

If you want to refer to LDP-CoAP in a publication, please cite one of the following papers:

@InProceedings{ldp-coap-framework,
  author       = {Giuseppe Loseto and Saverio Ieva and Filippo Gramegna and Michele Ruta and Floriano Scioscia and Eugenio {Di Sciascio}},
  title        = {Linked Data (in low-resource) Platforms: a mapping for Constrained Application Protocol},
  booktitle    = {The Semantic Web - ISWC 2016: 15th International Semantic Web Conference, Proceedings, Part II},
  series       = {Lecture Notes in Computer Science},
  volume       = {9982},
  pages        = {131--139},
  month        = {oct},
  year         = {2016},
  editor       = {Paul Groth, Elena Simperl, Alasdair Gray, Marta Sabou, Markus Krotzsch, Freddy Lecue, Fabian Flock, Yolanda Gil},
  publisher    = {Springer International Publishing},
  address      = {Cham},
}
@InProceedings{ldp-coap-proposal,
  author = {Giuseppe Loseto and Saverio Ieva and Filippo Gramegna and Michele Ruta and Floriano Scioscia and Eugenio {Di Sciascio}},
  title = {Linking the Web of Things: LDP-CoAP mapping},
  booktitle = {The 7th International Conference on Ambient Systems, Networks and Technologies (ANT 2016) / Affiliated Workshops},
  series = {Procedia Computer Science},
  volume = {83},
  pages = {1182--1187},
  month = {may},
  year = {2016},
  editor = {Elhadi Shakshuki},
  publisher = {Elsevier}
}

License

ldp-coap-core, ldp-coap-android and ldp-coap-raspberry modules are distributed under the Apache License, Version 2.0.

californium-core-ldp and ldp-coap-proxy are distributed under the Eclipse Public License, Version 1.0 as derived projects.

Contact

For more information, please visit the LDP-CoAP webpage.

Contribute

The main purpose of this repository is to share and continue to improve the LDP-CoAP framework, making it easier to use. If you're interested in helping us any feedback you have about using LDP-CoAP would be greatly appreciated. There are only a few guidelines that we need contributors to follow reported in the CONTRIBUTING.md file.