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.
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?
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.
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.
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();