# The SensLog Platform – A Solution for Sensors and Citizen Observatories

Michal Kepka, Karel Charvát, Marek Šplíchal, Zbyněk Křivánek, Marek Musil, Šimon Leitgeb, Dmitrij Kožuch, Raitis Bērziņš

<figure><img src="image_1.png" /></figure>

## To cite this version:

Michal Kepka, Karel Charvát, Marek Šplíchal, Zbyněk Křivánek, Marek Musil, et al.. The SensLog Platform – A Solution for Sensors and Citizen Observatories. 12th International Symposium on Environmental Software Systems (ISESS), May 2017, Zadar, Croatia. pp.372-382, 10.1007/978-3-319-89935-0_31. [hal-01852634](https://hal.inria.fr/hal-01852634)

HAL Id: hal-01852634

https://inria.hal.science/hal-01852634

Submitted on 2 Aug 2018

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# The SensLog Platform – A Solution for Sensors and Citizen Observatories

Michal Kepka¹, Karel Charvát², Marek Šplíchal³, Zbyněk Křivánek³, Marek Musil³
Šimon Leitgeb⁴, Dmitrij Kožuch⁴, Raitis Bērziņš⁵

¹University of West Bohemia, Faculty of Applied Sciences, Department of Geomatics, Pilsen,
Czech Republic
mkepka@kgm.zcu.cz

²Wirelessinfo, Cholinská 19, Litovel, Czech Republic
charvat@wirelessinfo.cz

³Czech Centre for Science and Society, Radlicka 28, 150 00 Praha 5, Czech Republic
splichal@ccss.cz, krivanek@ccss.cz, musil@ccss.cz

⁴Help Service Remote Sensing, Husova 2117, 256 01 Benešov, Czech Republic
leitgeb.simon@gmail.com, dmitrii@hsrs.cz

⁵Baltic Open Solution Center, Krišjāņa Barona iela 32-7, Rīga, LV-1011, Latvia
raitisbe@gmail.com

**Abstract.** SensLog is an integrated server side Web based solution for sensor data management. SensLog consists of a data model and a server-side application which is capable of storing, analyzing and publishing sensor data in various ways. This paper describes the technical advancements of the SensLog platform. SensLog receives measured data from nodes and/or gateways, stores data in a database, pre-processes data for easier queries if desired and then publishes data through the system of web-services. SensLog is suitable for sensor networks with static sensors (e.g. meteorological stations) as well as for mobile sensors (e.g. tracking of vehicles, human-as-sensor). The database model is based on the standardized data model for observations from OGC Observations&Measurements. The model was extended to provide more functionalities, especially in the field of users' hierarchy, alerts and tracking of mobile sensors. The latest SensLog improvements include a new version of the database model and an API supporting citizen observatories. Examples of pilot applications using SensLog services are described in the paper.

**Keywords:** Sensors, VGI, SensLog, Citizen Observatories, Open Data;

## 1 Introduction

Sensors are an important part of data producers, especially in the field of spatial data. There are large number of sensor data available on the Web in variety of formats encoding. Wide-ranging services and solutions for sensor data publishing for different type of sensors are usually very complex and complicated for non-expert users. The authors address this problem by designing tools and processes for effortless and
straightforward utilization of existing sensors available on the Web. This work has been
done in the scope of the Open Sensors Network pilot as part of the SDI4Apps project<fnref n="1" />.

Reusing existing sensors operated by third-party providers is currently problem-
atic. The problems range from initial search of services through metadata description
of sensors to filtering of found sensor candidates. It could be understood as searching
for suitable repairman company in yellow pages. In the same way, it would be useful
to find some “yellow pages” for searching appropriate sensors and sensor data produc-
ers on the Web. A good starting point for reusing sensors is to find the rate between
usability and complexity of sensor services and providing them straightforwardly. The
SensLog application described in following paper can be given as an example of sensor
data management for small and medium sensor networks. SensLog serves a data pro-
vider as a tool for collecting, processing and publishing of sensor data on the Web.
SensLog allows to receive measurements from sensor networks (from sensors, gate-
ways or by intermediate daemons) through defined web services. Received data are
processed and stored in a data storage. Stored data can be published for data consumers
by different web services in various formats and metadata of registered sensors can be
exported to semantic sensor catalogues together with the endpoint description.

## 2 SensLog

SensLog is a software component for sensor data management on the Web. SensLog receives sensor data by requests over HTTP protocol and stores them in a database. SensLog publishes raw and/or processed sensor data using several interfaces. One of the communication interfaces is proprietary-defined but extensive RESTful API publishing data mostly in the JSON format. Another interface is based on the core methods of the OGC Sensor Observation Service<fnref n="2" /> version 1.0.0 standard. SensLog has also a simple graphical user interface (GUI) with several functions to visualize data. However, the application is intended to be used in combination with other standalone clients.

The SensLog application was designed as a modular solution from the very begin-
ning. New modules were developed and tested during contemporary projects including
SDI4Apps, FOODIE<fnref n="3" /> and OTN<fnref n="4" />). A module for collecting volunteered geographic in-
formation (VGI) was designed and developed with the emphasis on character and prop-
erties of such type of data. The expansion of precision farming utilization has affected
the design and development of another SensLog module for telemetry of agricultural
machinery. Both new modules are based on the SensLog core functions, methods and
modules providing extensions to the current interfaces. The server-side part of SensLog
is written in the Java programming language. The database part is written in the PL/SQL
language and the Web GUI uses the JavaScript jQuery library.

<footnote n="1">¹ SDI4Apps – Uptake of Open Geographic Information through Innovative Services Based on Linked Data (http://sdi4apps.eu/)</footnote>

<footnote n="2">² Open Geospatial Consortium standard Sensor Observation Service (http://www.opengeospa-
tial.org/standards/sos)</footnote>

<footnote n="3">³ FOODIE – Farm-Oriented Open Data In Europe (http://www.foodie-project.eu/)</footnote>

<footnote n="4">⁴ OTN – Open Transport Net (http://opentnet.eu)</footnote>
## 2.1 The SensLog data model

The SensLog data model is based on the OGC Observations & Measurements 1.0 standard. The model was further extended based on requirements provided by the SDI4Apps, FOODIE and OTN projects. The SensLog data model is used for storage of raw sensor data and results of data analyses. A diagram of the last version of the SensLog data model is shown in Figure 1. The core tables of the model include *units*, *sensors*, *phenomenons*, *observations* and *units positions*. The object unit represents a physical device that has got one or more connected sensors which are producing observations. A unit can be equipped with a GNSS chip to periodically determine its own position (e.g. in case of mobile devices monitoring), or the position of the unit can be defined by another method (e.g. in case of static in-situ monitoring).

The SensLog data model was recently improved especially for potentially large tables. The *observations* and *units positions* tables are the largest ones. Their volume is growing in coherence with continuous data monitoring. These tables were supplemented with a table partitioning mechanism (shown as series of tables in Figure 1). The core SensLog model was extended by tables defined by the new VGI and telemetry modules. The consistency of stored data is ensured not only by the referential integrity but also by the system of triggers and stored functions. The consistency is ensured especially in the case that extension tables are stored in separate database schemas. In this way, child tables of partitioned observations and unit positions allow better querying, backing up and maintenance. The SensLog data model was implemented in RDBMS PostgreSQL 9.x+ with spatial extension PostGIS 2.x+.

<figure><img src="image_3.png" /><figcaption>Fig. 1. Diagram of the SensLog data model</figcaption></figure>
## 2.2 SensLog VGI module

The importance of VGI is growing in present days and current projects brought requirements on incorporating this type of data into SensLog. The character of VGI does not allow to store such type of data directly to the present SensLog data model without loss of information. Therefore, a new module for VGI was designed and implemented. This VGI module contains new services for receiving and publishing data over the Web. The SensLog data model was extended with new tables with emphasis on variability of VGI. A VGI observation is characterized by several mandatory attributes and can be enriched with additional attributes. It's not necessary to define the final number and names of additional attributes before starting collecting VGI. The datatype of an additional attribute is only limited to data types which values can be stored in the JSON format. A VGI observation can include a list of multimedia files that are also stored in the data model. A schema of tables of the VGI module is shown in Figure 2. A common type of VGI is a point of interest (POI). The concept of POI is similar to the general observation concept. The implemented scenario defined by the SDI4Apps project considers a POI as a spatially and temporally localized observation with several attributes and an array of connected multimedia files. Each POI is classified into one of the predefined categories and is sorted as a user-defined dataset.

<figure><img src="image_4.png" /><figcaption>Fig. 2. The data model of the SensLog VGI module</figcaption></figure>

The tables added by the VGI module include:

* *observations_vgi* – this is the main table that stores VGI observations with all attributes except for multimedia content,

* *observations_vgi_media* – this table stores multimedia files connected to VGI observations,

* *observations_vgi_category* – this table stores categories of VGI observations, the table uses a partitioning mechanism to sort categories,

* *vgi datasets* – this table stores user-defined datasets with dataset metadata.

The VGI observation has got relations to some core tables of the SensLog model. The information about the device that produced the VGI observation is stored in the *units* table. The information about the user is stored in the *system_users* table. The main VGI geometry is a type of point and it is stored in the *units positions* table. The geometry
of VGI represents the point where the VGI observation was localized. An additional geometry of different type can be stored as an additional attribute. The categories of POIs can be stored in tables inherited from the master table *observations_vgi_category*. This enables to store different kinds of categories in a hierarchical order.

## 2.3 SensLog RDF export of VGI

In order to publish data according to the Open Linked Data best practices and with a self-describing data structure, the Virtuoso graph model engine is used. The data are stored in quads, which consist of a graph name describing a dataset and a triple which maps an attribute value (object) to POI (subject). The mapping is done by using a property which is in the best case scenario defined in some public ontology thus making it easier to integrate data with other systems. The data can be queried and inserted into the quad-store through the SPARQL endpoint at http://data.plan4all.eu/sparql or uploaded and parsed on the server via RDF files if the amount in one batch exceeds 100 megabytes. An insert operation for one POI can be seen in the following example:

```json
INSERT DATA {
  GRAPH <http://www.sdi4apps.eu/poi.rdf> {
    <http://www.sdi4apps.eu/new_poi/c72cf4a7>
    <http://purl.org/dc/elements/1.1/identifier>
    "http://www.sdi4apps.eu/new_poi/c72cf4a7".
    <http://www.sdi4apps.eu/new_poi/c72cf4a7>
    <http://www.opengis.net/ont/geosparql#asWKT>"POINT (13.43149 741)"^^virtrdf:Geometry.
    <http://www.sdi4apps.eu/new_poi/c72cf4a7>
    <http://www.openvoc.eu/poi#class>
    <http://gis.zcu.cz/SPOI/Ontology#bus_stop>.
    <http://www.sdi4apps.eu/new_poi/c72cf4a7>
    <http://purl.org/dc/elements/1.1/title>"New point"
  }
}
```

The data visualization is performed through a web-based map client based on the HSLayers-NG library (Figure 3). Map layers are dynamically generated for each graph (dataset) and category (http://gis.zcu.cz/SPOI/Ontology#bus_stop in the above mentioned example in Fig. 3) which can be found in a particular dataset. Displaying of the triples is based on principle that each subject in a triple is displayed as a new vector (point) feature in the map. Likewise each property and object is converted to the feature's attribute and value in GIS terms. Styling of the features such as choosing an icon and color is based on attribute (category) values and is application specific.
<figure><img src="image_5.png" /><figcaption>Fig. 3. Visualization of POIs in the HSLayers-NG client</figcaption></figure>

## 2.4 SensLog interfaces

The publication of stored data is provided by the system of web services. The system of web services allows publication of stored data in different levels of detail and in various export formats. The modularity of SensLog allows to have a different interface for each module with specific web services according to the character of the following application. The diagram in Figure 4 shows the structure of SensLog modules along with the corresponding interfaces and formats provided by each module.
<figure><img src="image_6.png" /><figcaption>Fig. 4. Diagram of the structure of the SensLog modules</figcaption></figure>

On the one side, there is the feeder module for inserting new observations and positions through methods of the HTTP protocol. The feeder module is independent from other modules which enables having an allocated database connection for continuous insertion. Only authenticated clients are allowed to insert new objects.

On the other side, there is provider module that contains the system of web services via methods of the HTTP protocol to publish stored data. The provider module uses mainly the RESTful interface publishing data in the JSON format in a proprietary-defined form. The provider module contains also a standardized interface based on the core methods of OGC SOS 1.0.0. The proprietary interface contains a wider range of services with a variety of data formats.

The VGI module has also the RESTful interface defined with an emphasis on character of the VGI observation object. A VGI observation can be inserted encoded in the JSON format or as a multipart form of data. The insertion of a new VGI observation is variable due to the possibility of pushing VGI observations from mobile applications. There is an option to store a plain VGI observation with mandatory attributes and to add multimedia contents afterwards (e.g. while having a better Internet connection). The stored VGI observations can be published encoded in the JSON format in a proprietary form or in the GeoJSON<fnref n="5" /> format as the Feature or FeatureCollection object. The connected multimedia files are addressed in a form of a direct URL. An exporting web service according to the requirements from the SDI4Apps project was designed. This exporting service publishes stored VGI observations encoded in the RDF format to be further processed in the Virtuoso system.

<footnote n="5">⁵ http://geojson.org</footnote>
The telemetry module uses mainly the previously described feeder module for inserting observations and positions. The telemetry module defines only standalone web services for publishing analysis results on utilization of machinery and farm fields. The data are provided in the JSON format in a proprietary form or in case of any listings, data are provided in the textual CSV format.

The import of sensor data to SensLog is provided by the services of the feeder module in most cases. The pattern of services of the feeder module is straightforward without the necessity of any specially object mapping. An ordinary scenario is to insert data to SensLog when the data are observed. In exceptional cases, especially when the data connection is lost for longer time and observations are restored from flash memory of gateway, data can be pushed into the SensLog storage by a script in a batch. In case of very long time series that need to be imported, it is possible to import data directly to the database model by PL/SQL scripts.

# 3 SensLog applications

The modularity of SensLog allows its use in a variety of applications. Currently, the authors are supporting three types of sensors as pilots including the monitoring of the level and quality of ground water, utilization of a wide spectrum of sensors in precision farming and utilization of SensLog as a gateway for collecting VGI directly by users.

## 3.1 Groundwater monitoring

The water quality is dependent on several aspects including the crop type, irrigation method, soil types, groundwater levels, soil and water chemistry, nutrient loads, limits on chemicals, salt tolerance of crops, leaching of salts and management of drainage water. There are several barriers to the reuse of wastewater in agriculture. The key barrier is that many stakeholders do not view wastewater as a resource, even if adequately treated. The stakeholders see the energy costs for treating wastewater to an adequate standard as being prohibitively expensive. One of the aims of the project pilot is to utilize recent innovations to turn wastewater reuse into a profitable, socially beneficiary and environmentally safe solution. A number of phenomena are monitored in this pilot including chemical and physical properties of the surface and underground water.

The observations are produced by sensors deployed in shallow wells and they are sent by gateway stations on the ground in defined intervals. The observations are processed and user-defined analyses are run. There is a system of alerts that is triggered in case of reaching some defined thresholds. The services of the provider module are publishing not only measured data but also results of analyses and alerts.

## 3.2 Agrometeorological monitoring

Agriculture requires collecting, storing, sharing and analyzing large quantities of spatially referenced data. Such type of data, to be used effectively, must be transferred between different hardware, software and organizations. These data flows present a
hurdle to uptake of precision agriculture. The use of multitude of data models, formats, interfaces and reference systems is resulting in incompatibilities. The management of huge amounts of data is a challenge. Spatio-temporal data is increasingly collected by remote or in-situ sensors rather than by field campaigns. Wireless communications have several benefits, but also pose challenges to the data exchange reliability and power supply. Sensor calibration and deployment as well as the maintenance of sensors need resources and technical skills and increase the costs of data acquisition. The increasing of both the data amount and the data quality awareness issue highlighted importance.

An important part of using sensors in agriculture is represented by tracking of agriculture machinery to provide analyses oriented not only on utilization of monitoring of particular machinery but also on intervention monitoring of a particular field. The combination of machinery data together with field information provides a higher level of economic evaluation. The screenshot in Figure 5 shows a client application visualizing results of analyses provided by the SensLog telemetry module.

<figure><img src="image_7.png" /><figcaption>Fig. 5. Client application for visualization of analysis results</figcaption></figure>
3.3 VGI and Citizen Observatories

A human as a sensor, also referred to as VGI monitoring, represents collecting meas-
urements and observations by users by portable devices. It is a typical way of collecting
spatially referenced thematic data in the domain of Earth observations. The character-
istics of such type of observations include high variability of attributes of not only prim-
itive data types and an uncertainty in data accuracy. An example of collaboration be-
tween pilots is shown by collecting of POIs. The Smart Points of Interest<fnref n="6" /> (SPOI) data
set was developed in the frame of the SDI4Apps project providing information as linked
data. SensLog became a segment in the chain of collecting and updating user-defined
POIs. SensLog provides services to push new POIs collected by users in the database
on the one side and it provides export services to pull sets of POIs to final storage based
on the Virtuoso server<fnref n="7" /> on the other side. Screenshots of client mobile application for
collecting POIs is shown in Figure 6.

<figure><img src="image_8.png" /><figcaption>Fig. 6. Mobile application for collecting POIs. Main screen on the right and attributes of the selected POI on the left side.</figcaption></figure>

<figure><img src="image_9.png" /></figure>

<figure><img src="image_10.png" /></figure>

<figure><img src="image_11.png" /></figure>

<figure><img src="image_12.png" /></figure>

<footnote n="6">⁶ SPOI – Smart Points of Interest (http://www.sdi4apps.eu/spoi/)</footnote>

<footnote n="7">⁷ Virtuoso Universal Server (https://virtuoso.openlinksw.com/)</footnote>
## 4 Conclusions

SensLog is an application for sensor data management and it is used operationally in a number of solutions and pilots. SensLog provides a system of web services for both data producers and data consumers. A stress was put on finding a good ratio between the usability and generality of these web services during the design and the development phases of the solution. SensLog is an effective way how to combine the OGC standards with a light API for development of subsequent applications. The SensLog data model was designed to store observations produced by variety of sensor types. Extensibility of SensLog by additional modules was confirmed during pilot applications in the current projects. Additional modules for agricultural machinery telemetry and for collecting POIs by smart devices were developed.

The authors plan to add an additional module that will be oriented on devices from the Internet of things domain. One of the main tasks will be to implement the OMA<fnref n="8" /> NGSI<fnref n="9" /> specification which is a primary interface for Generic Enablers in FIWARE.

## 5 Acknowledgement

This paper was supported by the SDI4Apps project (CIP-ICT-PSP-PB 621129) which has received funding from the EU ICT Policy Support Program as part of the Competitiveness and Innovation Framework Program. This paper was supported by the European Union Research and Innovation programme H2020 under the grant agreement No 732064 "Data-Driven Bioeconomy" (DataBio). The author Michal Kepka was supported by the Grant No. SGS-2016-004 "Využití matematiky a infromatiky v geomatice III," awarded by the University of West Bohemia.

## 6 References

1. Kepka, M., Ježek, J.: Server-side solution for sensor data. In ICT for Agriculture, Rural Development and Environment Where we are? Where we will go? pp. 264-274. ISBN: 978-80-904830-9-5. Czech Centre for Science and Society. Praha (2012).

2. Kepka, M., Ježek, J., Charvat, K., Musil, M.: Complex Solution for Sensor Network in Precision Farming. In: IST-Africa 2013 Conference Proceedings. pp. 1-7. ISBN: 978-1-905824-38-0. International Information Management Corporation. Nairobi. (2013)

3. Reznik, T., Charvat, K. jr., Charvat, K., Horakova, S., Lukas, V., Kepka, M.: Open Data Model for (Precision) Agriculture Applications and Agricultural Pollution Monitoring. In: Johannsen, V. K., Jensen, S., Wohlgemuth, V., Preist, C., Eriksson, E. (eds.) Proceedings of Enviroinfo and ICT for Sustainability 2015. ACSR, vol. 22, pp. 97-107. Atlantis Press, Paris (2015)

4. Krivanek, Z., Musil, M., Jezek, J., Kepka, M., Vohnout, P., Alberts, M., Charvat, K.: Alert System in Case of Excess Drawing of Ground Water. In: IST-Africa 2012 Conference Proceedings. International Information Management Corporation. (2012).

<footnote n="8">⁸ OMA – Open Mobile Alliance (http://openmobilealliance.org/)</footnote>

<footnote n="9">⁹ NGSI - Next Generation Services Interface</footnote>
5. Cerba, O., Mildorf, T.: Smart Points of Interest: Big, Linked and Harmonized Spatial Data. EGU General Assembly Conference Abstracts. (2016)

6. Berners-Lee, T.: Linked Data. https://www.w3.org/DesignIssues/LinkedData.html, 2006

7. ISO 19156:2011 Geographic information - Observations and measurements, International Organization for Standardization, Geneva. (2011).

8. OGC 06-009r6 OpenGIS Sensor Observation Service, Open Geospatial Consortium, Inc. (2007).

9. Fielding, R. T.: Architectural Styles and the Design of Network-based Software Architectures (Ph.D.). University of California, Irvine. (2000).

10. RDF - Resource Description Format. https://www.w3.org/RDF/

11. SPARQL Query Language for RDF. https://www.w3.org/TR/rdf-sparql-query/