To be completed.
This entire document is a work in progress, and very little work has yet begun to implement the standards described herein. Detail discussed may be removed or superseded without warning; you are advised to follow issues relevant to your work in this list until this document is stable.
Networks of urban sensors are increasingly prevalent. There are many uses for these devices connected to the Internet of Things, such as sharing car park occupancy, pollution management, weather forecasting, public safety, and reactive traffic systems.
There is a need for a standard that focuses on extensibility, reuse of established standards, and is comparatively trivial to implement as a layer on top of existing software and services. The ontologies and vocabularies recommended are selected because of their relevance to real-time sensor networks, and their ability to be used alongside related standards such as PAS 180 and ISO/IEC 30182:2017, descriptions of the built environment in [[IFC]], or [[CityGML]], or elements of JSON Schema and OpenAPI to create services and web applications.
This document presents a proposed standard for publishing federated networks of sensors and services, focusing on mechanisms for discovery, obtaining real-time and historic data, and contextual data. It does this primarily by clarifying the use of existing standards, resolving ambiguity and omissions for implementation detail, and providing detailed examples. These combined create a linked federation of [[REST]] APIs, enabled by standardised hypermedia.
The maturity model comprises different levels that ultimately facilitate data integration across different domains, systems and data models. The aim of this standard is to achieve level six and move closer towards seven.
This standard has been prepared to satisfy the following general principles.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, NOT RECOMMENDED, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [[!RFC2119]] [[!RFC8174]] when, and only when, they appear in all capitals, as shown here.
Data SHOULD be provided under a licence compatible with the Open Definition unless there are overriding reasons, such as personal data or the IPR resides elsewhere.
A federated approach is adopted.
The figure below shows the generalised architecture for a federated network of sensors and services. Implementation details such as the choice of database, sensor hardware, and communications networks shown in blue are outside the scope of this document; implementations are free to choose these details and use any appropriate technology or codebase.
Implementations MAY poll data directly from sensors and transform data in real-time, provided the eventual output is conformant to this standard. Implementations MAY also provide eventual consistency, or separate the archival of historic observations from the access to the latest observations.
TODO: Write some text here.
TODO: Write some text here.
Parameter | Description |
---|---|
proximityCentre |
MUST be used in combination with proximityRadius. Sets the centre of a circular or spherical bounding area depending on whether height is specified. Only resources within the spatial area are returned. Uses the format: longitude,latitude,height. Height is optional. Longitude and latitude use WGS84. Height is in metres. |
proximityRadius |
MUST be used in combination with proximityCentre. Sets the distance from the proximityCentre in metres. |
TODO: Write some text here.
TODO: Write some text here.
Possibility of additional modifiers __in
and __begins
still under discussion.
TODO: Write some text here.
The [[vocab-ssn]] ontology provides alignment to the PROV ontology. Should we provide an example of how to do that?
Creating a valid GeoJSON output will require a properties
key in the object. This should be
an optional approach for APIs that want to produce valid GeoJSON, by using JSON-LD nesting?
Handling of collections and views on collections is yet to be finalised.
List is yet to be finalised.
List is yet to be finalised.
List is yet to be finalised.
This is a way of allowing complex queries such as SPARQL against the data, without having to run a full-blown SPARQL database and exposing it to the world. The problem with exposing SPARQL endpoints and hitting them with POST queries for example, is the response cannot be cached. It does not work well with HTTP. Linked data fragments don't have this problem.