Project proposition for GSOC-2014 - "Query and updation language for Internet of things"

Dear All,

As Internet of things(IOT) is the next big thing happening and a lot of sensors has to be monitored to retrieve data, I want to propose an idea through which one can easily retrieve the data from the specified sensor.

“Query and updation language for Internet of things”

As the “Internet of Things” space expands and more and more sensors/actuators of various kinds become available and addressable, we strongly believe that there would be a requirement for a universal query and update language. In this project we propose to create one such language SENQL(Sensor Query Language). It is proposed that this language will be inspired by structures/simple query language(SQL), which is generally available for databases.

Basis of SenQL will be the selection projection paradigm on same line of “select from and where” clauses of SQL. As an example let us say we want to read the temparature from particular sensor where the humidity is more than 50%, a typical SENQL query will be run as follows:

select temparature from (url of sensor) where humidity > 50;

Another example inspired by update statement of SQL would be to set the water level of a water gauge. Syntax for this would run something like below

update (url of sensor) set level=30;

This project envisages a BBB board managing a set of sensors along with SENQL implementation on any linux distribution preferably Ubuntu. SenQL command received by BBB will be parsed and interpreted in order to work with sensors. Taking this analogy further BBB will be perceived as a table with each of the connected sensor as table rows.

I hope this idea will be liked by community.

Thanks & Regards,
Rekha

Dear All,

As Internet of things(IOT) is the next big thing happening and a lot of
sensors has to be monitored to retrieve data, I want to propose an idea
through which one can easily retrieve the data from the specified sensor.

"Query and updation language for Internet of things"

As the "Internet of Things" space expands and more and more
sensors/actuators of various kinds become available and addressable, we
strongly believe that there would be a requirement for a universal query
and update language. In this project we propose to create one such language
SENQL(Sensor Query Language). It is proposed that this language will be
inspired by structures/simple query language(SQL), which is generally
available for databases.

Basis of SenQL will be the selection projection paradigm on same line of
"select from and where" clauses of SQL. As an example let us say we want to
read the temparature from particular sensor where the humidity is more
than 50%, a typical SENQL query will be run as follows:

select temparature from (url of sensor) where humidity > 50;

Another example inspired by update statement of SQL would be to set the
water level of a water gauge. Syntax for this would run something like below

update (url of sensor) set level=30;

This project envisages a BBB board managing a set of sensors along with
SENQL implementation on any linux distribution preferably Ubuntu. SenQL
command received by BBB will be parsed and interpreted in order to work
with sensors. Taking this analogy further BBB will be perceived as a table
with each of the connected sensor as table rows.

I hope this idea will be liked by community.

Can you envision how this might be used in a product?

Speaking of IoT solutions, have you checked out https://dweet.io/?

Senql is visualized in a client server paradigm as follows

Today there are various protocol like CoApp or dweet which enable a URL like(along with query parameters) mechanism to address devices. However close observations of these protocols we notice that query parameter is largely instructed. This will need an adhoc(non-standard) parsing at the device and an adhoc payload in the response.

The senql project aims at structing both the query parameter and also the response payload.

So a typical usage of senql will be as follows
coapp://url of the device/query=“senql request”
dweet://url of the device/query=“senql request”

As mentioned in the earlier note senql request will be in many ways similar to a selection projection paradigm of SQL. The response will also be in the form of SQL response that is in terms of rows or row of data.

Further in an actual implementation, we will require the sensor to provide a tiny implementation of the senql parser and senql response builder.

In addition as a further enhancement each senql sensor must also respond to a senql get metdata query where in all the attributed of the sensor(light, temperature, humidity, pressure etc) can be listed along with their types, ranges etc.