query-97693c45e43e739a568da683ab4ca38b

rq turtle/ttl

EpicPupper(P18)image

Use at

PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX schema: <http://schema.org/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?P18_value ?filename ?contentUrl
WHERE
{
  SERVICE <https://query.wikidata.org/sparql>
  {
    SERVICE bd:slice
    {
      [] ps:P18 ?P18_value .
      bd:serviceParam bd:slice.offset 0 .
      bd:serviceParam bd:slice.limit 10000 .
    }
    BIND (REPLACE(SUBSTR(wikibase:decodeUri(STR(?P18_value)), 52), " ", "_") AS ?filename)
    BIND (MD5(?filename) AS ?MD5)
    BIND (URI(CONCAT("https://upload.wikimedia.org/wikipedia/commons/",
                     SUBSTR(?MD5, 1, 1), "/",
                     SUBSTR(?MD5, 1, 2), "/", ENCODE_FOR_URI(?filename)
                    )
             ) AS ?contentUrl)
  }
  FILTER NOT EXISTS { ?file schema:contentUrl ?contentUrl . }
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v5("?MD5") v3("?P18_value"):::projected v6("?contentUrl"):::projected v1("?file") v4("?filename"):::projected a1((" ")) c7(["0^^xsd:integer"]):::literal c5(["bd:serviceParam"]):::iri c9(["10000^^xsd:integer"]):::literal f0[["not "]] subgraph f0e0["Exists Clause"] e0v1 --"schema:contentUrl"--> e0v2 e0v2("?contentUrl"):::projected e0v1("?file"):::projected end f0--EXISTS--> f0e0 f0 --> v1 f0 --> c1 f0 --> v6 v1 --"schema:contentUrl"--> v6 subgraph s1["https://query.wikidata.org/sparql"] style s1 stroke-width:4px; subgraph s2["http://www.bigdata.com/rdf#slice"] style s2 stroke-width:4px; a1 --"ps:P18"--> v3 c5 --"bd:slice.offset"--> c7 c5 --"bd:slice.limit"--> c9 end bind1[/"replace(substring(http://wikiba.se/ontology#decodeUri(str(?P18_value)),'52^^xsd:integer'),' ','_')"/] v3 --o bind1 bind1 --as--o v4 bind2[/"MD5(?filename)"/] v4 --o bind2 bind2 --as--o v5 bind3[/"concat('https://upload.wikimedia.org/wikipedia/commons/',substring(?MD5,'1^^xsd:integer','1^^xsd:integer'),'/',substring(?MD5,'1^^xsd:integer','2^^xsd:integer'),'/',encode-for-uri(?filename))"/] v5 --o bind3 v4 --o bind3 bind3 --as--o v6 end