Naar aanleiding van de lancering van de BGT als Linked data wilde ik kijken of ik er wat moois mee kon. Bijvoorbeeld de demo’s die we eerder gemaakt hebben op prototypes van de BGT ‘upgraden’ naar het nieuwe endpoint.
Dat bleek nog niet zo makkelijk omdat er een aantal ontwerpbeslissingen genomen zijn, die weliswaar erg terecht zijn, maar die niet direct duidelijk waren voor mij…
Het komt er op neer dat de huidige imeplementatie (en uitleg) vooral vanuit een registratie standpunt is. Terwijl ik vanuit een object standpunt redeneer. De volgende punten hielpen mij om te snappen hoe de bgt-ld versie in elkaar zit.
Vanuit de BGT/IMGeo zijn we gewend om eigenlijk alleen naar de BGT/IMGeo objecttypen te kijken.
In de opgestelde ontologie is het NEN3610 topmodel ook opgenomen. Dit maakt het plaatje natuurlijk completer, maar betekend ook dat bijvoorbeeld een bgt:BegroeidTerreindeel nu ook gemapt is aan nen3610:Terrein.
Ik was in eerste instantie op zoek naar instances van het type Wegdeel, en die kon ik niet vinden… Dat komt omdat Wegdeel de definitie van ‘het ding buiten in de werkelijkheid’ is en WegdeelRegistratie het ‘ding in de registratie’. Eigenlijk best logisch…
De relatie tussen het RegistratieObject en de definitie class wordt uiteindelijk pas op instantie niveau gelegd via functie/fysiekvoorkomen en primaryTopicOf. Als je puur naar het model kijkt in bijvoorbeeld de weaver viewer zie je die relaties dus niet. Dat zet je dus op het verkeerde been, want je hebt dus een instantie van WegdeelRegistratie in je data zitten en niet van Wegdeel.
Er is dus een WegdeelRegistratie met prefix ‘registratie’ https://bgt.basisregistraties.overheid.nl/bgt/id/registratie/
een nen3610 identificatie met de prefix ‘identificatie’ https://bgt.basisregistraties.overheid.nl/bgt/id/identificatie/
en een metadata object met de prefix ‘object’ https://bgt.basisregistraties.overheid.nl/bgt/id/object/
het model zelf (classes en properties) heeft de prefix ‘bgt’ https://bgt.basisregistraties.overheid.nl/bgt/def/
In de registratieobject zijn alle mutaties aan het object opgenomen, deze hebben een unieke URI gekregen op basis van het NEN3610 ID plus de timestamp van het tijdstipregistratie.
filter not exists {?reg prov:invalidatedAtTime [] .}
Ik wilde al aan de slag met de standaard Geosparql hasGeometry/asWKT constructie, maar dat werkt dus anders. En even opletten dat de meeste online tools WGS84 verwachten, dus niet vegreten je geometrie te transformeren van RD -> WGS84
bind(bif:ST_Transform(?geomRD, 4326) as ?geomWGS)
In ondderstaand plaatje is de structuur inzichtelijk gemaakt.
Dit is een bijgewerkte versie van de demo die we gemaakt hebben in het kader van de disgeo demo2 high5. Dit keer met de nieuwe bgt-ld en een nieuw extract van areaaldata viewer in LD vorm, gehost op provinciale infrastructuur.