OpenStreetMap (OSM) Linked Data model
In het verleden zijn er door/voor OSM op verscheidene momenten Linked Data implementaties beschikbaar gesteld, waaronder Sophox en LinkedGeoData. In het beschikbaar stellen van deze Linked Data set voor Platform Linked Data Nederland (PLDN) zijn er een aantal keuzes gemaakt om een zo bruikbaar mogelijke set op te leveren met Linked Data.
De uitgangspunten die hiervoor zijn gebruikt zijn:
- Blijf zo dicht mogelijk bij de Sophox implementatie.
- Hergebruik definities van OpenStreetMap.
- Garandeer herleidbaarheid naar de bron waar toepasselijk.
- Gebruik openbare standaarden als GeoSPARQL, SKOS en Schema.org.
- Zoek aansluiting bij de open datasets WikiData en de Basisregistratie Adressen & Gebouwen.
Basiselementen in OpenStreetMap
OSM kent drie basiselementen:
Officiële documentatie van OSM rondom deze elementen vind je hier.
Allen hebben een geometrie (gemodelleerd met de GeoSPARQL standaard) en een verwijzing naar het OSM object waarop deze is gebaseerd (gemodelleerd met een rdfs:seeAlso).
Zie daarvoor ook onderstaande query, met daarin één voorbeeld van de drie objecten, gecentreerd rondom Beeld en Geluid, in Hilversum. Gebruik het bijgevoegde filter om slechts één type in beeld te zien.
Basiselementen van OSM, gevisualiseerd op de kaart
Keys en Tags
OpenStreetMap kent zogenoemde key-value pairs. Deze pairs noemen we een Tag. Officiële documentatie rondom tags vind je hier. Deze tags kunnen gaan over een variëteit als onderwerpen, zoals informatie over de bestemming van een geo-object (het type gebouw bijvoorbeeld, maar ook over simpele adresinformatie (bijvoorbeeld adresgegevens) of relaties naar een bron als de BAG.
Keys die verwijzen naar een key-value pair die officieel is vastgelegd als tag binnen OSM zijn gemodelleerd als owl:ObjectProperty, terwijl keys die verwijzen naar een literal (bijvoorbeeld adresgegevens) zijn gemodelleerd als owl:DataTypeProperty.
Alle mogelijke sleutels vind je in de query hieronder. Let op dat hier niet specifiek wordt gefilterd op sleutels die ook in Nederland gebruikt zijn. We restricteren hier op de eerste 3 resultaten, maar deze restrictie kan gemakkelijk worden verwijderd door op Try this query yourself te klikken.
Alle mogelijke sleutels in OSM
Op een soortgelijke wijze kunnen ook alle mogelijke tags worden opgevraagd die bij een bepaalde key horen. Kijk daarvoor bijvoorbeeld naar de query hieronder. Standaard worden hierin alle mogelijke waarden voor de key shop opgevraagd, maar dit kan voor alle mogelijke keys van het type ObjectProperty worden herhaald.
Alle mogelijke tags per key
Een simpele query
Nu we hebben geleerd over de OSM kernelementen, en we weten hoe we key-value pairs kunnen gebruiken, laten we deze informatie samenvatten in één query. In onderstaande query tonen we alle zwembaden van Nederland.
Alle zwembaden in Nederland
Geografische truukjes
Ten slotte, omdat OSM bij uitstek een geografische dataset is, is het niet onbelangrijk om geografische selecties met administratieve selecties te combineren. Daarvoor zijn een aantal zaken belangrijk:
- TriplyDB maakt gebruik van Virtuoso om zijn queries te gebruiken. Virtuoso gebruikt de BIF extensie om geografische bevragingen toe te passen in plaats van de GeoSPARQL functions. Een voorbeeld wordt in onderstaande query gebruikt.
- Er is een administratieve relatie vastgelegd tussen een gebouw en de nodes die binnen dit gebouw ligt. Deze relatie is beschreven middels een geo:sfContains. Dit helpt om een node snel aan het omliggende gebouw te relateren.
Zie zo ook de onderstaande query. Hierin tonen we voor een bepaald administratief gebied (standaard de stad Groningen) alle nodes met een bepaalde Tag (standaard shop=supermarket), alsmede informatie over het gebouw waar dit punt in ligt. Mocht je benieuwd zijn welke administratieve gebieden er zijn, kijk dan eens naar deze query.
Alle supermarkten binnen een administratief gebied