I realized that no one spoke about istSOS4 or explained it, so i would take the initiative to help the newcomers to contribute to istSOS4, and my goal is to enlarge the community of istSOS4,
Let’s talk about Sensorthings API, people will think that Sensorthings API is like a rest API that uses to get the data only, but actually that’s partial understanding,
Sensorthings is much wider than this, It’s a standard that unifies the way we collect data from IOT sensors “Like a thermometer” to our servers, then from the servers the user can request the data by REST API, istSOS4 Project uses this standard, with extending its features but we will talk about that in the next time, Let’s focus on the standard itself, so you can understand the codebase of the project and start contributing quickly,
Let’s think about a Sunny day in Egypt in July, and we have a weather station for example in Cairo, The Weather station itself is a Thing it doesn’t measure anything, it just exists,
Our station for example is besides the Egyptian museum, so we store the Location Details of the Egyptian museum, with its properties, and When you realize that Things-Locations Table in the DB, explains that the Egyptian museum could have multiple weather stations , or a specific weather station could be found in multiple locations, That’s why we separated this in a single table Of course you know that we put the primary key of both tables for M:N relationships, I guess you’re good in Database Design ![]()
and if we moved our Thing for a new location, the old location will be archived in Historical Locations
Our weather station that we’re talking about measuring something let’s say Temperature Which is considered here Observed Property, now the actual thing that measures this property is the Sensor that has its own metadata and description and name let’s say a Thermometer,
So what is our thermometer measuring, Temperature?, No not a full answer, A normal user or a scientist won’t understand what is the object that you need to measure its temperature let’s say the Main hall in the museum, Because the sensor is on the wall, but what we’re actually measuring is the temperature inside the hall, those are two different things. That’s the FeatureOfInterest What actually we’re measuring specifically.
Until now you say to yourself, Ok How still the User gets the data?
Here Comes the Hero of Our Story
Datastreams
Cause you could have multiple locations with multiple things with multiple sensors and FeatureOfInterest, so how to distinguish each one of those , what is the Entity That shows us the readings of a specific sensor in a specific place in a specific thing, it’s the Datastream That links all of those together, and if you like to make a group of Datastreams That’s where the Network Comes to group them, and you can request them by the endpoints.
Finally the user requests Observations from a specific Datastream, and this is where all the setup pays off. Every single temperature reading, every timestamp, every value, that’s an Observation. One Datastream can have millions of them.
If you’re more of a visual person, here’s the full picture of everything we just talked about
Of course istSOS4 Has brought up many features to make anyone use this tool be comfortable with, and we will talk about that the next time.
Thank you for your time, and if you have any feedback, don’t hesitate to give it,
And See you soon
