BAG data sparql query

Hoi,

Graag advies.
Ik zou heel graag binnen een bepaalde bbox alle verblijfsobjecten opvragen inclusief alle voorkomens.
De uitkomst moet een lijst zijn van alle verblijfsobjecten incl adresgegevens en alle voorkomens per verblijfsobject.

Hoe kan ik dit het beste aanpakken?
Ik kan via de WFS de verblijfsobjecten opvragen, maar dan moet ik per object een aparte query doen om de voorkomens op te vragen.

Nu zag ik ook dat het misschien mogelijk is via sparql en linked data. Is dat een optie en hoe bouw ik dan zo’n query op? Ik heb een paar voorbeelden gezien, maar ik kom er niet uit.

Dat zou zeker moeten lukken met een SPARQL query als de bounding box niet te groot is. Wat zijn de specifieke velden/eigenschappen van het verblijfsobject waar je naar op zoek bent?

Ik heb uiteindelijk een lijst nodig van alle verblijfsobjecten binnen een bbox of contour. De belangrijke gegevens die in de lijst moeten staan zijn postcode, huisnummer, straat, woonplaats, gemeente, gebruikdsdoel, status, point_x, point_y en daarnaast moet ik in een nabewerking kunnen checken dat een woning bijvoorbeeld in 2013 wel of niet in gebruik was, of dat de woonfunctie is veranderd. Daarom heb ik de voorkomens erbij nodig.

Via de WFS lukt het me om alle verblijfsobjecten op te halen, maar dan mis ik de voorkomens. Daarbij moet ik de historie voorkomens kunnen inzien om te bepalen of een huis in 2016 in gebruik was.

Dan kom je op zoiets uit:

PREFIX dcat: <http://www.w3.org/ns/dcat#>
PREFIX bag: <http://bag.basisregistraties.overheid.nl/def/bag#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX begrip: <http://bag.basisregistraties.overheid.nl/id/begrip/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?label ?status ?wkt ?typeLabel ?straat ?huisnummer ?postcode ?woonplaats ?begin ?eind
WHERE {
    graph ?vboVoorkomen {
        # ?vbo is een verblijfsobject met geometrie ?geo
        ?vbo a bag:Verblijfsobject ; 
             ogc:hasGeometry ?geo .
		# zoek geometrie van de gebruiker intersects met de geometrie van het verblijfsobject:
        ?geo ogc:sfIntersects "POLYGON((5.158564218652497 52.032295399541624,5.159551271569978 52.032295399541624,5.159551271569978 52.03171454608834,5.158564218652497 52.03171454608834,5.158564218652497 52.032295399541624))" ;
             ogc:asWKT ?wkt .
     
         # nog wat eigenschappen van het verblijfsobject:
        ?vbo bag:status ?status ;
             rdfs:label ?label ;
             bag:identificatiecode ?id ;
             a ?type ;
             bag:hoofdadres ?adres .
        
        graph <http://bag.basisregistraties.overheid.nl/model> {
            ?type rdfs:subClassOf bag:Verblijfsobject .
            ?type dct:subject / skos:notation ?typeLabel .
        }
        
        # ophalen van de data behorende bij het hoofdadres van het verblijfsobject:
        graph ?adresVoorkomen { 
            ?adres bag:postcode ?postcode .
            ?adres bag:huisnummer ?huisnummer .
            ?adres bag:bijbehorendeOpenbareRuimte ?or .
            # ophalen van de data behorende bij de openbarebare ruimte van het adres:
            graph ?orVoorkomen {
                ?or bag:naamOpenbareRuimte ?straat .
                ?or bag:bijbehorendeWoonplaats ?wp .
                # ophalen van de data behorende bij de woonplaats van de openbare ruimte:
                graph ?wpVoorkomen {
                    ?wp bag:naamWoonplaats ?woonplaats .
                }
            }
        }
        # geldigheid van het voorkomen van het verblijfsobject ophalen:
        ?vbo rdfs:isDefinedBy ?voorkomen .
        ?voorkomen bag:beginGeldigheid ?begin .
        optional {
            ?voorkomen bag:eindGeldigheid ?eind .
        }
    }
}
limit 100

Let wel op dat dit heel slecht gaat performen als je de zoek-geometrie te groot maakt.

Disclaimer:
Voor het SPARQL endpoint spelen dezelfde actualiteitsproblemen als voor de BAG REST API, en de service is “best effort”

Ok, duidelijk. De WFS is wel up to date?

Bedankt voor de query. Ik ga even nadenken hoe ik het het beste kan inzetten.

Ja.