endpointUrl = $endpointUrl; } public function query(string $sparqlQuery): array { $opts = [ 'http' => [ 'method' => 'GET', 'header' => [ 'Accept: application/sparql-results+json', 'User-Agent: WDQS-example PHP/' . PHP_VERSION, // TODO adjust this; see https://w.wiki/CX6 ], ], ]; $context = stream_context_create($opts); $url = $this->endpointUrl . '?query=' . urlencode($sparqlQuery); $response = file_get_contents($url, false, $context); return json_decode($response, true); } } $endpointUrl = 'http://sparql.example/endpoint'; $sparqlQueryString = <<< 'SPARQL' # cats SELECT ?cat ?catLabel WHERE { ?cat wdt:P31 wd:Q146. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } } SPARQL; $queryDispatcher = new SPARQLQueryDispatcher($endpointUrl); $queryResult = $queryDispatcher->query($sparqlQueryString); var_export($queryResult);