Voor ontwikkelaars (alfaversie)

Voor je aan de slag gaat met de ruwe gegevens, willen we ontwikkelaars uitdagen op een nieuwe manier applicaties te ontwikkelen. In plaats van zelf de URL’s te creëren op client-side, willen we dat ontwikkelaars enkel de URL’s gebruiken die te vinden zijn vanaf een bepaalde start-punt. Vanaf de URL van zo’n start-punt moet een library zelf, door middel van het volgen van links, zelf kunnen meer informatie ophalen voor zijn eind-gebruiker. Ieder nieuw document moet je code in staat stellen verder stappen te zien (het hypermedia-principe).

Aan de slag met een library

We werken ook zelf aan een bibliotheek in Javascript (voor zowel NodeJS als de Browser) om aan de slag te gaan met de data, zonder dat je zelf nog moet nadenken over HTTP-requests, parsing en interpretatie van de gegevens. Ga aan de slag met de open source Smart Flanders NPM bibliotheek.

Aan de slag met de ruwe gegevens

Vandaag staat al een dataset voor de real-time en historische beschikbaarheden van parkeergarages online. Een start-punt kan je vinden op onze machine-leesbare data-catalogus (volgt het DCAT domeinmodel). Een link in een distributie volgen geeft je bijvoorbeeld de machine-leesbare versie voor parkeergarages in Gent (stel uw HTTP Accept-header in op application/trig): https://linked.open.gent/parking.

Om deze data te parsen kan je gebruik maken van een RDF1.1 parser naar keuze. Onze favorieten:

PHP
Hardf
Javascript
N3.js of ldfetch om ook de HTTP requests te abstraheren
Java
Jena of RDF4J
Python
RDFLIB

Eens een document geparset is kan je enerzijds de data zelf uitlezen. Anderzijds kan je ook handige metadata vinden in ieder antwoord. Bouwblokken waarop je kan steunen zijn:

Meerdere metingen in 1 bestand
Hou de graphs in de gaten. Als ergens een graph wordt beschreven met een prov:generatedAtTime, dan wilt dit zeggen dat statements in deze context enkel geldig waren op een bepaald tijdstip.
Links naar meer data via paginering
Indien meerdere pagina’s voor handen zijn, worden via het Hydra domeinmodel hydra:next en hydra:previous links toegevoegd.
Licenties
Bij de identificator voor het document zelf (de URL), wordt een cc:license eigenschap toegevoegd, met een van de Vlaamse opendatalicenties. Deze laten toe om automatisch te ontdekken aan welke zaken je juridisch verplicht toe bent.
Specifieke domeinmodellen
Domeinmodellen kan je zelf handmatig ontdekken en je client meer leren omgaan door de URI’s van deze termen hard te coderen. Voor de real-time beschikbaarheid van parkeergarages, gebruiken we bijvoorbeeld het Datex2 domeinmodel, en meer specifiek speelt datex:parkingNumberOfVacantSpaces een grote rol.
Unieke identificatoren
Over alle documenten die je kan vinden in deze “Vlaamse Knowledge Graph”, gebruiken we dezelfde URI’s voor bijvoorbeeld de parkeergarages. In andere bronnen kan je meer informatie vinden over een bepaald ding en als een bepaalde URI dus wordt hergebruikt, kan je met zekerheid weten dat het over hetzelfde ding gaat.