Document toolboxDocument toolbox

LDES mobilityhindrance

 

Links:

  • GIPOD LDES:

https://gipod.api.vlaanderen.be/api/v1/ldes/mobility-hindrances

  • LDES specification →

https://w3id.org/ldes/specification

  • GIPOD LDES API documentation (search for Ldes) →

https://gipod.api.vlaanderen.be/swagger/index.html

  • LDES client →

https://github.com/TREEcg/event-stream-client/tree/main/packages/actor-init-ldes-client

  • the list of the taxonomy for the different Hindrances Consequences.

 https://gipod.api.vlaanderen.be/api/v1/taxonomies/mobility-hindrance/consequencetypes

 

LDES architectural overview

The following architectural set-up applies to GIPOD LDES:

The following observations help to explain the process:

  • New hindrances can be added via write-endpoints.

  • Existing Hindrances can be adapted as well in this way,

  • As a result, an event (message) will be addes to the event-store.

  • The LDES projector polls for new events in the event-store.

  • It creates a projection in the LDES-database,

  • The LDES feed can be accessed through the LDES API.

What does a mobility hindrance look like?

 

The mobility hindrance data model is part of a Flemish data standard, called Inname Openbaar Domein (scroll to Mobiliteitshinder, to discover the properties of a mobility hindrance). GIPOD used this model as their base model, but extended it to their needs (implementation model).

According to the LDES specification, each LDES should link to or include a Shapes Constaint Language (SHACL) shape. A SHACL shape can be defined as a technical contract to describe that shape of data.

The LDES of mobility hindrances

 

The LDES accepts a query string parameter, called generatedAtTime, allowing users to specify a datetime, a point in time, indicating how far back in time they want to go to synchronize. The query string parameter is also part of the mobility hindrance data model, and indicates the time the event was inserted in the database.

Furthermore, as there are too many mobility hindrance objects to display on 1 page, we applied a time-based fragmentation, that resulted in fragments containing 250 mobility hindrance objects and links to previous and next pages. This time-based fragmentation means that the oldest mobility hindrance objects (the ones with the earliest generatedAtTime values), will be on the first fragment, while the most recent mobility hindrance objects will be on the latest fragment. So, entering the LDES URL without a query string in the browser or the LDES client, you will be redirected to the fragment containing the oldest mobility hindrance objects (objects with the earliest generatedAtTime values). Passing the current time as value of the generatedAtTime query string will redirect you to the latest fragment (containing the most recent mobility hindrace objects, the ones with the latest generatedAtTime values).

Example implementations and showcases