exponential-decay/the-format-registry

Translate LoC FDDs from Wikidata to fr-org links

ross-spencer opened this issue · 3 comments

This looks like a good query

And in PHP:

<?php

class SPARQLQueryDispatcher
{
    private $endpointUrl;

    public function __construct(string $endpointUrl)
    {
        $this->endpointUrl = $endpointUrl;
    }

    public function query(string $sparqlQuery): array
    {

        $opts = [
            'http' => [
                'method' => 'GET',
                'header' => [
                    'Accept: application/sparql-results+json'
                ],
            ],
        ];
        $context = stream_context_create($opts);

        $url = $this->endpointUrl . '?query=' . urlencode($sparqlQuery);
        $response = file_get_contents($url, false, $context);
        return json_decode($response, true);
    }
}

$endpointUrl = 'https://query.wikidata.org/sparql';
$sparqlQueryString = <<< 'SPARQL'
SELECT ?item ?puid ?ldd WHERE 
{ 
  ?item wdt:P31*/wdt:P279* wd:Q235557.
  ?item wdt:P2748 ?puid .  
  ?item wdt:P3266 ?ldd .
}

SPARQL;

$queryDispatcher = new SPARQLQueryDispatcher($endpointUrl);
$queryResult = $queryDispatcher->query($sparqlQueryString);

var_export($queryResult);

The alternative is to look up an FDD link per PUID:

SELECT ?format ?puid ?ldd WHERE 
{ 
  ?format wdt:P2748 "fmt/134".
  ?format wdt:P2748 ?puid .  
  ?format wdt:P3266 ?ldd .
}

Resolved by #8