APIAPI

Data uit verschillende datasets (API's, csv, realtime, historisch, ...) bvb. van meerdere dataleveranciers combineren tot 1 verwacht datamodel in een gebruiksvriendelijke interface.

Een visuele tool waarmee steden datastromen eenvoudiger kunnen beheren. Met de APIAPI verzamel je gefragmenteerde data over een bepaald onderwerp in de stad (deelfietsen, luchtkwaliteit, druktemetingen, ...) Daarna combineer en harmoniseer je deze databronnen tot het gewenste datamodel. We bouwden dit als open source component die je eenvoudig kan opzetten en aansluiten op andere systemen.

Wat kan het?

Deze open source software maakt het databeheer voor stadsapplicaties eenvoudiger. We bouwden dit als nieuwe softwarecomponent in het SCORE project. De nood werd duidelijk toen we ontwikkelingen uit andere steden introduceerden in Gent. Software mag dan herbruikbaar opgebouwd zijn (zodat je er direct mee aan de slag kan in je stad), de precieze databronnen die je in de software wil gebruiken, zijn altijd eigen aan je stad. Ook als de applicatie generiek is, moet je zelf nog de databronnen aansluiten. Data kan van verschillende oorsprong zijn (een zelfgebouwde datastroom op basis van Internet-of-Things sensoren, een datastroom aangeleverd door een startup waarmee je samenwerkt, archiefdata die je beschikbaar maakt, enz.). De APIAPI helpt om vanuit die diverse bronnen eenvormige datastromen in te stellen. Zo kan je uiteenlopende data toch combineren en in de juiste structuur aan een applicatie voorzien. Met de APIAPI versnel je de introductie van herbruikbare oplossingen in steden.

Deelfietsdata harmoniseren

Om de rol van de APIAPI uit te leggen, kunnen we deelfietsen in de stad als voorbeeld nemen. Veel steden geven een groepje bedrijven een toelating om hun systeem van deelfietsen te voorzien in de stad. De mobiliteitsdiensten willen bijdragen aan de datagedreven stad en willen werken aan het concept van Mobility-as-a-Service (MaaS). Daarom wordt deze bedrijven ook gevraagd om hun data over de beschikbaarheid van fietsen, op welke locaties, enz. niet alleen via de eigen app aan klanten te voorzien, maar ook in "machine readable" vorm beschikbaar te stellen, via technische datadeelsystemen (zgn. API's). Op technisch niveau is het echter niet altijd mogelijk om deze leveranciers een eenvormig datamodel op te leggen voor hun data. De bedrijven gebruiken immers hun eigen platformen die onafhankelijk van elkaar ontstaan en geëvolueerd zijn, en ook hun business model en de manier waarop ze georganiseerd zijn, kan variëren. Dat weerspiegelt zich in de data en dit alles zorgt voor variaties in de vorm en inhoud van de data.

In zo'n geval functioneert de APIAPI als tussenschakel om de stad te helpen de kleine en grotere verschillen in deze data weg te werken. De stad kan de data hermodelleren en harmoniseren naar één weloverwogen en slim gekozen "deelfiets" datamodel (of zelfs een ruimer "deelmobiliteit" datamodel). Dit is dan het meest geschikte model voor de eindapplicatie en/of het datamodel dat onder het beleid van de digitale architectuur van de stad is vastgelegd.

Dankzij al deze inspanningen rond data-uitwisseling kunnen uiteindelijk mensen in de stad gemakkelijker de beschikbaarheid en nabijheid van alle deelfietsen raadplegen en vergelijken, over de leveranciers heen.

De toolkit

De APIAPI is een van de open source toolkits die het Foresight team hielp ontwikkelen binnen het SCORE project (Smart Cities on Open data REuse). Dat deden we samen met de dienst Data & Informatie van Stad Gent en met Europese partnersteden als Aarhus, Hamburg en Amsterdam.

Slimme stad applicaties, zoals het IOT Registry in SCORE, verwachten binnenkomende data in een bepaalde structuur. Applicaties hebben namelijk ingebakken aannames over standaard modellen voor de data, anders gezegd: de applicatie die je wil overnemen en introduceren werkt alleen goed wanneer de data in een vastgelegd formaat naar binnen komt. Het kan gaan om data van Internet-of-Things sensoren, data aangeleverd door een startup, of archiefdata die je in een goed uitwisselbaar formaat digitaal beschikbaar stelt. Soms is de applicatie die je wenst te repliceren reeds gebouwd vanuit de principes van een bestaande, éénduidige smart city datastandaard. Voorbeelden hiervan zijn de datamodellen opgesteld door het EU project SynchroniCity of de OSLO (Open Standaarden voor Linkende Organisaties) van Informatie Vlaanderen.

Typisch is het dan nodig om niet-conforme data te combineren of transformeren naar de gekozen datastandaard. Wanneer je een applicatie wil "repliceren" stoot je vaak op verschillen in data tussen steden, zowel qua inhoud (welke data is het) als vorm (welk datamodel is toegepast). Vaak is het ook belangrijk om de richtlijnen te volgen van de gebruikte digitale architectuur. Typisch verschilt die architectuur tussen steden en projecten, waardoor er ook te overbruggen verschillen zijn in de datamodellen. Met andere woorden: wil je een applicatie uit een eerste stad ook introduceren in een tweede stad, dan is het datamodel vaak maatwerk, ook wanneer de applicatiecode zelf heel generiek en herbruikbaar is. Op al deze noden speelt de APIAPI toolkit in.

Hoe werkt het precies?

De APIAPI is ontwikkeld als generieke component. Een ontwikkelingsteam kan de APIAPI dus mee integreren als onderdeel van een nieuwe applicatie of prototype. Via de interface kan een databeheerder of een persoon met toegang tot de databronnen verschillende links instellen naar verschillende inkomende datastromen (bvb. publieke Application Programming Interfaces of API's, private dataverbindingen die op basis van authenticatie werken, statische bestanden die regelmatig gesynchroniseerd worden, historische data in statische bestanden, databases, ...).

Nadat er via de visuele interface een Collection is opgezet om de gewenste binnenkomende data te bundelen, kan je de data beheren. Als databeheerder kan je, in functie van de applicatie waar de APIAPI aan gekoppeld is:

  • Exploreren → bvb. Welke specifieke datavelden en waarden levert een sensor of andere datastroom momenteel af? Wat is de betekenis van elk veld? Welk proces zit er achter de waarden die de datastroom produceert, hoe worden de waarden gecapteerd of berekend?

  • Selecteren → Welke velden uit de data hebben we nodig in deze specifieke applicatie? Applicaties hebben typisch slechts een beperkte set velden of waarden nodig uit een veel grotere dataset. Om onnodige overload effecten te vermijden zowel op mensen als machines is het belangrijk om de hoeveelheid data die doorgestuurd wordt zo klein mogelijk te houden. Door te selecteren kan je de load beperken tot het minimum.

  • Combineren → Meerdere gelijkaardige databronnen combineer je in een Collection. Dit vormt dan een nieuwe datastroom die aan bepaalde noden voldoet. Om naar meer datagedreven publieke dienstverlening te evolueren is het belangrijk om geharmoniseerde datastromen te kunnen maken.

  • Hermodelleren → Welke specifieke veldnamen verwacht de applicatie? En welke andere specifieke voorwaarden zijn er voor het datamodel en de datastructuur? Hoe moeten de inkomende datawaarden hernoemd, gecombineerd, aangepast, geconverteerd of herberekend worden in het gewenste datamodel.

Dankzij deze tools is de APIAPI een toolkit die steden helpt om applicaties en prototypes te voeden met gestructureerde en configureerbare datacollecties.

Last updated