Het ministerie van BZK is gestart met Doorontwikkeling in Samenhang van de geo-basisregistraties (DiS Geo). Doel is meer samenhang te creëren in de geo-informatie infrastructuur. Onderdeel is de doorontwikkeling van enkele bestaande geo-basisregistraties tot een samenhangende objectenregistratie. Geonovum heeft in het kader van DiSGeo in 2019 en 2020 experimenten uitgevoerd om te onderzoeken hoe een voorziening voor een samenhangende objectenregistratie eruit zou kunnen zien. Het waren technische experimenten, waarbij veelbelovende technologieën werden ingezet om die op hun bruikbaarheid te toetsen. Linda van den Brink neemt je in een reeks artikelen mee in de geleerde lessen. In dit eerste artikel geven we onze kijk op linked data.
Na een eerste verkenning naar de potentie van APIs als ontsluiting van registraties in samenhang, is in 2020 een tweede verkenning uitgevoerd. De eerste verkenning had ons geleerd dat je via APIs moeilijk samenhang kunt aanbrengen als die samenhang niet is verwerkt in de onderliggende data. In de tweede verkenning, die we met onder andere het Kadaster uitvoerden, zijn we aan de slag gegaan met Linked data. Linked data wordt gezien als kansrijke technologie om samenhang in data op een efficiënte manier aan te brengen. We slaagden er inderdaad in om met weinig inspanning mooie resultaten te bereiken en trokken de conclusie dat “Linked data onmisbaar is bij het realiseren van de DisGeo ambitie om data in samenhang te kunnen gebruiken.”
Web van data
Op deze conclusie wil ik in dit artikel inzoomen. Wat betekent deze uitspraak in de praktijk? De basis van mijn antwoord ligt in de linked data principes van Tim Berners Lee, die hij in 2006 voor het eerst publiceerde:
- Gebruik URIs als namen voor dingen
- Gebruik HTTP URIs zodat mensen deze namen op kunnen zoeken.
- Als iemand een URI opzoekt, geeft dan nuttige informatie terug, met gebruik van de standaarden (RDF*, SPARQL)
- Neem links op naar andere URIs, zodat bezoekers meer dingen kunnen ontdekken.
Berners Lee had een 'web van data' voor ogen waardoor je, net als door gewone HTML pagina’s zoals wij die kennen, kunt browsen en gerelateerde data snel kunt vinden. Data in samenhang dus!
Moet alles dan in SPARQL?
In de W3C/OGC Spatial Data on the Web Best Practices, is uitgelegd dat de linked data principes van Berners Lee, ook toepasbaar zijn op geodata. De eerste drie Best Practices uit dit document zijn:
- Best Practice 1: Use globally unique persistent HTTP URIs for Spatial Things (gebaseerd op Berners Lee’s Linked data principes 1 en 2)
- Best Practice 2: Make your spatial data indexable by search engines (geïnspireerd op Linked data principe 3, waarbij we “iemand” hebben vervangen door zoekmachines: door geodata in machineleesbare vorm, conform gangbare webstandaarden te publiceren, kunnen zoekmachines de data in hun index verwerken en wordt geodata vindbaar voor gebruikers. Een gewone webpagina moet daarnaast worden gepubliceerd zodat de informatie ook voor mensen leesbaar is.)
- Best Practice 3: Link resources together to create the Web of data (gebaseerd op linked data principe 4)
Deze aanbevelingen volgen de oorspronkelijke linked data principes met een toevoeging om geodata beter vindbaar te maken. Er is echter ook een punt waarop de Spatial Data on the Web Best Practices ervan afwijken. De te gebruiken “standaarden” zijn volgens de Best Practices niet per sé RDF en SPARQL.
Gradaties in gebruiksmogelijkheden
Als je je een schaal voorstelt van meest eenvoudige, maar met beperkte gebruiksmogelijkheden manier van data publiceren tot aan meest ingewikkelde, maar met onbeperkte gebruiksmogelijkheden, dan zou je kunnen zeggen dat APIs helemaal links op die schaal staan, en SPARQL helemaal rechts.
APIs kun je zien als “meestgestelde vragen” voorziening. Welke vragen je kunt stellen aan de API is vooraf gedefinieerd. Welke gegevens je in je antwoord terugkrijgt, ook. Daardoor is zo’n API heel gemakkelijk in gebruik, maar niet flexibel. Als je iets anders wilt dan de vragen die de API ondersteunt, zul je meerdere APIs moeten bevragen en de antwoorden zelf combineren.
Een SPARQL endpoint is daarentegen een opengestelde database waaraan je alles kunt vragen wat je maar wilt en waarbij je zelf kunt bepalen welke vorm en inhoud het antwoord heeft. Veel geschikter dus voor die vragen die nou net niét door 80% van het gebruikersveld worden gesteld. Maar dit vraagt wel dat je een zoekvraag kan programmeren. En voor een aanbieder van geodata kan het nogal wat voeten in de aarde hebben om gegevens op deze manier op te slaan en te publiceren. Het is de vraag wanneer het gerechtvaardigd is om dit te doen. Dat is een vraag die iedere aanbieder van geodata voor zichzelf moet beantwoorden.
Linked data: ja, maar niet per sé in SPARQL
Als Geonovum zegt “Linked data is onmisbaar bij het realiseren van DisGeo” betekent dit niet dat de DisGeo architectuur uit zou moeten gaan van triple stores en SPARQL endpoints. En zelfs RDF is niet vereist om een web van data realiseren. In de Best Practices staat: het is voldoende om “web linking” (hypertext) te gebruiken, zoals dat gebeurt in HTML pagina’s en om een gestandaardiseerd dataformaat te gebruiken. Dit kán RDF zijn, maar ook bijvoorbeeld XML, JSON of HTML plus structured markup (machine-leesbare metadata die ‘onder water’ in de web pagina zit).
Wij denken wel dat RDF, hoewel niet de enige manier, de beste manier is om linked data te publiceren. Het biedt een zeer rijk en sterk mechanisme om informatiemodellen en de bijbehorende semantiek te definiëren en bij de data te publiceren. Hierdoor is duidelijk wat elk veld in de data betekent. Bovendien is het web linking mechanisme in RDF op een sterkere manier geïmplementeerd dan bijvoorbeeld in XML en JSON. Aan de andere kant is JSON, omdat het is gebaseerd op javascript, veel eenvoudiger op het web te gebruiken en daardoor populair bij web ontwikkelaars. JSON-LD, een op JSON gebaseerd linked data formaat, slaat een mooie brug tussen RDF en JSON.
Hoe kijkt Geonovum naar linked data?
De geo-standaarden en handreikingen die Geonovum publiceert, zijn gericht op het verbeteren van de toegankelijkheid van geo-informatie en op het mogelijk maken van uitwisseling van geo-informatie onderling en met andere soorten gegevens. Daar zijn – zoals hierboven beschreven - verschillende richtingen in te kiezen; afhankelijk van wat de (her-)gebruiksvraag voor de data is.
Als wij bij Geonovum spreken over linked data, zien wij als eerste stappen:
- publiceer je geodata op het web waarbij elk geo-object een eigen vaste URI heeft;
- gebruik hiervoor RDF, dit kan in de vorm van JSON-LD zijn; hieruit volgt dat ook het informatiemodel behorend bij de data als RDF (RDFS, OWL) gepubliceerd wordt;
- link je geo-objecten aan elkaar om ze onderdeel te maken van het web van data.
Linked data publiceren kan ook prima hand in hand gaan met het publiceren van APIs. De OGC Features API schrijft voor hoe je als onderdeel van de API ook informatie over de geo-objecten op vaste URIs beschikbaar kan stellen. De API kan eenvoudig worden ingericht om naast andere formaten ook JSON-LD uit te leveren. In de toekomst bieden SPARQL endpoints mogelijk een goede aanvulling voor die niet-standaard vragen die we soms willen stellen.
Maar laten we beginnen met die eerste drie stappen!