Waar vraag ik API keys aan voor PDOK datasets?

Hi allemaal.

Ik probeer met mijn eigen applicatie data op te halen bij het SPARQL endpoint https://linkeddata.cultureelerfgoed.nl/sparql.
Met de PDOK viewer is dit geen probleem, maar met externe SPARQL clients lijk je een API key nodig te hebben.

Ik heb dit ook geprobeerd bij https://brt.basisregistraties.overheid.nl/sparql, zelfde probleem.

Weet iemand waar je je kan inschrijven voor een API key? Op de website https://linkeddata.cultureelerfgoed.nl is er niks over te vinden. Of heeft PDOK een eigen SPARQL endpoint waar je geen API key voor nodig hebt?

Mijn dank is groot.

excuses, ik heb hem al gevonden.

Een mailtje naar thesauri@cultureelerfgoed.nl is hoe je een key aanvraagt.

Het SPARQL endpoint is te bevragen zonder API key.

POST request naar https://linkeddata.cultureelerfgoed.nl/sparql

Headers:

  • Accept:application/sparql-results+json,/;q=0.9
  • Content-Type:application/x-www-form-urlencoded

Body:

  • query: je eigen SPARQL query

Lijkt hier niet te werken.
Heb je een typefout in de Accept header zitten misschien?

“status”: 406,
“error”: “Not Acceptable”,
“message”: “Could not parse ‘Accept’ header [application/sparql-results+json,/;q=0.9]: Invalid mime type “/;q=0.9”: does not contain subtype after ‘/’”

Als ik dat “,/q=0.9” weg laat krijg ik alleen maar 500 responses.

Daar zijn twee asterisken weggevallen. Moet application/sparql-results+json,*/*;q=0.9 zijn

Thanks! dat werkt.

Content length en Host zijn ook verplichte headers zo te zien.

Wel vreemd dan dat Apache Jena een unauthorized response krijgt op dit endpoint. Enig idee waar dat aan kan liggen?

op bijvoorbeeld DBPedia had ik daar geen last van.

Het gedrag dat je beschrijft, lijkt op hetgeen in dit topic:

Daar bleek uiteindelijk dat er door de gebruikte library onder water een GET ipv POST werd gedaan. Kan me voorstellen dat dat in je poging met Apache Jena ook zo is.

Hartelijk dank!

Dit was inderdaad het probleem.

Voor geïnteresseerden:
Als je Apache Jena gebruikt en je wil het cultureel erfgoed endpoint queryen,
gebruik QueryEngineHTTP, ZONDER service clausule:

    HttpQuery.urlLimit = 10; // Door dit getal laag in te stellen weet je zeker dat het een POST request wordt.
    Query query = QueryFactory.create(queryString, Syntax.syntaxSPARQL);
    QueryEngineHTTP qeh = new QueryEngineHTTP("https://linkeddata.cultureelerfgoed.nl/sparql", query);
    ResultSet resultSet = qeh.execSelect();

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