Toelichting bij OSM datamodel

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:

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