Adres Bag pand met sparql geeft ook oude adres

Ik zou graag alleen de huidige adressen terugkrijgen. Weet iemand dit in onderstaande query in te passen?

Mijn huidige sparql:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bag: <http://bag.basisregistraties.overheid.nl/def/bag#>

SELECT  ?city ?streetName ?postcode ?houseNumber ?houseLetter ?houseNumberAddition{
?openbareRuimte bag:naamOpenbareRuimte ?streetName;
                 bag:bijbehorendeWoonplaats ?woonplaats.
  ?woonplaats bag:naamWoonplaats ?city.
  ?nummeraanduiding bag:bijbehorendeOpenbareRuimte ?openbareRuimte;
              bag:huisnummer ?houseNumber;
            bag:postcode ?postcode;
            OPTIONAL { ?nummeraanduiding bag:huisletter ?houseLetter }
            OPTIONAL { ?nummeraanduiding bag:huisletter ?houseNumberAddition }
  
  ?verblijfsobject bag:hoofdadres ?nummeraanduiding ;
                   bag:pandrelatering ?pand .
  ?pand bag:identificatiecode "0797100000001223".  
}  
LIMIT 200

In het nieuwe SPARQL endpoint: https://bag.basisregistraties.overheid.nl/sparql zitten alleen de huidige voorkomens, met de query die je gepost hebt krijg je daar dus geen oude adressen.

Via het oude SPARQL endpoint moest je filteren op de einddatumgeldigheid en op de recordInactief indicatie die in de data zaten.

Bedankt voor je reactie Jasper!

Echter als ik bovenstaande query uitvoer met het nieuwe endpoint dan krijg ik een internal server error(500) terug.

EDIT: het is me gelukt om een resultaat terug te krijgen, blijkt toch dat de oude adressen er toch nog tussenstaan. Ook de volgorde van de adressen wisselt nogal eens bij het opnieuw doen van de request. Deze site https://www.pdok.nl/sparqlviewer# geeft dezelfde resultaten als dat ik krijg.

EDIT_2: ben er niet uitgekomen om de eindGeldigheid van de nummeraanduiding te gebruiken. Echter ben ik dit endpoint: https://api.labs.kadaster.nl/datasets/kadaster/bag/services/bag/sparql tegengekomen, en deze geeft wel alleen de huidige adressen terug. Vraag me wel af wanneer je nu welk endpoint moet gebruiken, ze geven niet dezelfde data terug. Misschien dat iemand daar een antwoord op weet?

@Flow1991 het endpoint wat Jasper aangeeft is inderdaad het correcte endpoint die ook up-to-date gehouden wordt. Daarin zitten echter, in tegenstelling tot wat Jasper aangeeft, en zoals je al opgemerkt hebt, wel degelijk historische voorkomens.
De data is zo opgebouwd dat elk voorkomen in een eigen named graph zit. Hetzelfde object, bijv. Pand 0797100000001223, zou verschillende voorkomens kunnen hebben, c.q. in verschillende graphs kunnen worden beschreven.
Normaliter zou je, indien je de huidig geldige voorkomens wilt hebben, daarop kunnen filteren mbv GRAPH clauses in SPARQL:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX bag: <http://bag.basisregistraties.overheid.nl/def/bag#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT * 
{
  GRAPH ?pandDoc {
    ?pand bag:identificatiecode "0797100000001223";
          ?p ?o .
    ?pand foaf:isPrimaryTopicOf ?pandDoc .
    ?pandDoc bag:beginGeldigheid ?pdStart .
    OPTIONAL {
      ?pandDoc bag:eindGeldigheid ?pdEnd .
    }
    filter(
      (?pdStart <= now())
      &&
      (!bound(?pdEnd) || now() < ?pdEnd)
    )
  }
}

Echter, we zien momenteel significante performance problemen bij het gebruik van SPARQL GRAPH clauses op de database. We zijn met de leverancier aan het onderzoeken waar dat aan ligt. Dat betekent dat het nu eigenlijk onmogelijk is om jouw vraag te kunnen beantwoorden met het SPARQL endpoint in huidige staat :disappointed:.

Het https://api.labs.kadaster.nl/datasets/kadaster/bag/services/bag/sparql endpoint is een wat verouderde snapshot van de huidige versie van de BAG.

Wij onderzoeken nu ook de mogelijkheid om naast https://bag.basisregistraties.overheid.nl/sparql nog een endpoint te publiceren waarin alleen de geldige voorkomens zullen worden gepubliceerd, om vragen zoals de jouwe te kunnen faciliteren.

Zodra hier meer over te melden is is zullen we dat op het forum plaatsen.

1 like

Hi @Flow1991, we hebben naast het algemene endpoint een nieuw SPARQL endpoint geïntroduceerd die alleen de huidig geldige en actieve voorkomens van BAG objecten ontsluit:

https://bag.basisregistraties.overheid.nl/sparql/now

Zie als voorbeeld jouw query.

Hoi pano,

Bedankt voor beide reacties! Het nieuwe endpoint is precies wat we nodig hebben :slight_smile:

Dit topic is 180 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.