Commons:Service de requête SPARQL/requêtes/exemples

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
This page is a translated version of a page Commons:SPARQL query service/queries/examples and the translation is 52% complete. Changes to the translation template, respectively the source language can be submitted through Commons:SPARQL query service/queries/examples and have to be approved by a translation administrator.
Outdated translations are marked like this.

Cette page est analysée par l'interface web du service de requêtes pour remplir le dialogue des exemples de requêtes. La plupart des exemples fonctionnent également dans les appels du modèle Wikidata list analysés par le robot Listerbot mais nécessitent d'avoir sélectionné le champ de variable ?item.

NOTE: You must be a logged-in user in order to run these Commons SPARQL queries.

NOTE: Alternatively you can use the way faster QLever Wikimedia Commons instance which does not require login but is only updated once in a while. Last update was 2023-05-30.

Requêtes simples

Ces requêtes basiques aident à comprendre le langage SPARQL et le format RDF de Wikibase.

Descriptions de Douglas Adams

#shows M-entities that depict Douglas Adams
SELECT ?file WHERE {
  ?file wdt:P180 wd:Q42 .
}

Try it!

Descriptions de Douglas Adams présenté sous la forme d'une grille d'image

The ImageGrid display mode looks for file-URLs of the form used as values by Wikidata properties such as image (P18) to identify files that can be displayed.

La requeête permettant de récupérer une image est ?file schema:url ?image.

#defaultView:ImageGrid
select ?file ?image where {
  ?file wdt:P180 wd:Q42.
  ?file schema:url ?image.
}

Try it!

Représentations digitales de David par Michel-Ange

Fichiers où digital representation of (P6243) vaut David (Q179900)

# Digital depictions of "David" by Michelangelo
# Note how you can use a semicolon to group triples that have the same subject.
#defaultView:ImageGrid
select ?file ?image where {
  ?file wdt:P6243 wd:Q179900;
        schema:url ?image.
}

Try it!

Nombre de fichiers avec la déclaration Numéro de ticket OTRS Wikimedia

Nombre de fichiers avec des déclarations Wikimedia VRTS ticket number (P6305 )

SELECT (COUNT(?file) AS ?count)  {
  ?file wdt:P6305 ?value .
}

Try it!

Fichiers avec plusieurs déclarations Digital Representations of

La déclaration digital representation of (P6243) possède une « contrainte sur la valeur unique » ; en d'autres termes cela signifie que chaque fichier ne peut être seulement que la représentation d'un élément Wikidata, (utilisez depicts (P180) s'il y a plusieurs objets sur l'image). La requête ci-dessous détecte les violations de contraintes.

SELECT ?file (COUNT(?value) AS ?count)  {
  ?file wdt:P6243 ?value .
} 
GROUP BY ?file 
HAVING ( ?count > 1 ) 
ORDER BY DESC(?count)
LIMIT 100

Try it!

Grille d'images qui ont exactement 100×100 px

#defaultView:ImageGrid
select ?file ?image {
  ?file schema:contentUrl ?url;
        schema:height 100;
        schema:width  100;
        schema:url ?image.
} limit 2000

Try it!

Nombre de fichiers classés par type

select ?encoding (count(*) as ?total) {
  ?file schema:encodingFormat ?encoding .
} 
group by ?encoding 
order by desc(?total)

Try it!

Scatter chart showing height/width of a sample of 10,000 images

#defaultView:ScatterChart
select * {
  ?file schema:height ?h ;
        schema:width ?w .
} limit 10000

Try it!

More random sample: https://w.wiki/55rr

Cartographie de quelques images labellisées avec "depicts" (P180) = "bridge" (Q12280)

# Show a map of images depicting bridges AND having a coordinate for their point of view
#defaultView:Map
select ?file ?pov_coords ?image where {
  ?file wdt:P180 wd:Q12280;
        wdt:P1259 ?pov_coords;
        schema:url ?image.
}

Try it!

Légendes des fichiers qui décrivent des roses

#Captions of files depicting roses
SELECT ?file ?fileLabel WHERE {
  ?file wdt:P180 wd:Q102231 .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

Try it!


Caméras utilisées par les naturalistes qui se servent de iNaturalist pour identifier les espèces.

#Wikidata items of files in Category:Artworks with structured data with redirected P6243 property
SELECT DISTINCT ?capturedWith ?capturedWithLabel (count(?file) as ?counts)
WITH
{
  SELECT ?file ?title
  WHERE
  {
   SERVICE wikibase:mwapi
    {
      bd:serviceParam wikibase:api "Generator" .
      bd:serviceParam wikibase:endpoint "commons.wikimedia.org" .
      bd:serviceParam mwapi:gcmtitle "Category:Media from iNaturalist" .
      bd:serviceParam mwapi:generator "categorymembers" .
      bd:serviceParam mwapi:gcmtype "file" .
      bd:serviceParam mwapi:gcmlimit "max" .
      ?title wikibase:apiOutput mwapi:title .
      ?pageid wikibase:apiOutput "@pageid" .
    }
    
    BIND (URI(CONCAT('https://commons.wikimedia.org/entity/M', ?pageid)) AS ?file)
  }
} AS %get_files
WHERE
{
  INCLUDE %get_files
  ?file schema:url ?url ;
        wdt:P4082 ?capturedWith .
  SERVICE <https://query.wikidata.org/sparql> {
    ?capturedWith rdfs:label ?capturedWithLabel .
    FILTER (lang(?capturedWithLabel) = "en")
                  
  }
} 
GROUP BY ?capturedWith ?capturedWithLabel
ORDER BY DESC(?counts)

Try it!

Utiliser la fédération

WARNING: The optimizer for Blazegraph has undesirable interactions with federated queries. Therefore, it's recommended that you turn off the optimizer completely or add a hint to run the federated portion first. This can be done with hint:Query hint:optimizer "None" or hint:Prior hint:runFirst true. Addtional info can be found at this WikidataCon 2017 presentation.

Recherche des étiquettes et des descriptions des éléments Wikidata

Valeurs les plus communes pour "source of image" (P7482)

  • Cette requête utilise la fédération pour trouver les étiquettes Wikidata des éléments Wikidata trouvés dans le première partie
# Most common values for "source of image" (P7482).  Limited to a random sample of 100,000 images to avoid timeout.
SELECT ?count ?source ?source_label
WHERE {
  { 
    SELECT (COUNT(DISTINCT(?file)) AS ?count) ?source WHERE {
      service bd:sample {
        ?file wdt:P7482 ?source . 
        bd:serviceParam bd:sample.limit 100000 .
        bd:serviceParam bd:sample.sampleType "RANDOM" .
      }
    } GROUP BY ?source
  } 
  SERVICE <https://query.wikidata.org/sparql> {
    OPTIONAL {?source rdfs:label ?source_label FILTER (lang(?source_label) = 'en') } .
  }
}
ORDER BY DESC(?count) ?source_label

Try it!

Valeurs les plus courantes du qualifieur « expression, gesture or body pose » (P6022) pour « depicts » (P180)

# Most common "expression, gesture or body pose" (P6022) qualifier values for "depicts" (P180)
SELECT ?count ?value ?value_label ?example

WITH { 
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?value (SAMPLE(?file) AS ?example) WHERE {
     ?file p:P180/pq:P6022 ?value . 
  } GROUP BY ?value
  ORDER BY DESC(?count)
  LIMIT 2000           
} AS %values
 
WHERE {
  INCLUDE %values .
  service <https://query.wikidata.org/sparql> {
    OPTIONAL {?value rdfs:label ?value_label FILTER (lang(?value_label) = 'en') } .
  }
}
ORDER BY DESC(?count) ?value_label

Try it!

  • restricted to humans: tinyurl.com/y53kzn83 ; non-humans: tinyurl.com/y35b5w3l

Couleur des roses

  • This uses federation to WDQS in order to get the labels of the color items the roses depicted on the images have.
#defaultView:ImageGrid

prefix commons: <http://commons.wikimedia.org/wiki/Special:FilePath/>

select ?colorName ?image with {
  select ?color (iri(replace(str(sample(?photo)), "^.*/", str(commons:))) as ?image) where {
    [a schema:ImageObject] schema:contentUrl ?photo;
                           p:P180 [
                             ps:P180 wd:Q102231;
                             pq:P462 ?color
                           ].
  }
  group by ?color
} as %roses where {
  include %roses.

  service <https://query.wikidata.org/sparql> {
    service wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
      ?color rdfs:label ?colorName.
    }
  }
}

Try it!

Récupérer un ensemble d'éléments Wikidata d'intérêt

Sous-classes des roses

  • This uses federation to WDQS in order to get the items and labels of the subclasses of roses
# Show all files depicting roses, and subclasses thereof
#defaultView:ImageGrid
select distinct ?item ?itemLabel ?image with {
  select ?item ?itemLabel where {
    service <https://query.wikidata.org/sparql> {
      ?item wdt:P31/wdt:P279* wd:Q34687. # subclasses of roses
      service wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". ?item rdfs:label ?itemLabel . }
    }
  }
} as %wikidataItems where {
  include %wikidataItems .
  ?file wdt:P180 ?item;
        schema:url ?image.
} limit 1000

Try it!

Toutes les images qui décrivent les oeuvres de Van Gogh

  • Using federation to find all Wikidata items that have 'creator' (P170) as Vincent van Gogh (Q5582), then find all media items that depict those paintings and show in a grid.
#defaultView:ImageGrid
select ?image ?painting ?paintingLabel ?paintingDescription ?thumb with {
  select * {
    service <https://query.wikidata.org/sparql> {
      ?painting wdt:P170 wd:Q5582;
                rdfs:label ?paintingLabel;
                schema:description ?paintingDescription.
      filter (lang(?paintingLabel) = "en")
      filter (lang(?paintingDescription) = "en")
    }
  } 
} as %paintings where {
  include %paintings. 
  ?image wdt:P180 ?painting;
         schema:url ?thumb.
}

Try it!

Rechercher simultanément la description d'une église spécifique ainsi que les bâtiments de type église génériques

  • Detecting redundancy of a "depicted" concept with something more specific based on Wikidata. Federation is used to retrieve all items that are instances of "church building".
#500 images that have both a specific church building and redundantly depict "church building" (Q16970)   
select ?item ?church ?churchLabel ?churchDescription ?thumb with {
  select * {
    service <https://query.wikidata.org/sparql> {
      ?church wdt:P31 wd:Q16970;
                rdfs:label ?churchLabel;
                schema:description ?churchDescription.
      filter (lang(?churchLabel) = "en")
      filter (lang(?churchDescription) = "en")
    }
  } 
} as %church where {
  include %church. 
  ?item wdt:P180 ?church.
  ?item wdt:P180 wd:Q16970.
}

LIMIT 500

Try it!

Illustration published in German magazine 'Die Gartenlaube' using Wikidata federation

  • This uses federation to find articles published in (P1433) the German magazine 'Die Gartenlaube', together with some information about those articles;
    then, having retrieved that set, finds Commons files with the Commons statements that they were published in (P1433) those articles
#defaultView:ImageGrid{"hide":["?img2"]}
#defaultView:ImageGrid{"hide":["?img2"]}
select ?articleLabel ?articleDesc ?article ?img2 ?imgDesc with {
  select * {
    # SELECT all articles published in German magazine 'Die Gartenlaube'
    service <https://query.wikidata.org/sparql> {
      ?article wdt:P1433 wd:Q655617;
               rdfs:label ?articleLabel;
               schema:description ?articleDesc.
      filter(lang(?articleLabel) = "en")
      filter(lang(?articleDesc) = "en")
    }
  }
} as %items where {
  include %items .
  # Select images published in any article.
  ?file wdt:P1433 ?article; 
        schema:url ?img2.
  
  optional {?file rdfs:label ?imgDesc. filter(lang(?desc) = "de") } .
}

Try it!

Images des objets qui se trouvent à Helsinki, avec leurs auteurs et la licence de copyright associée

# Images of objects located in Helsinki, together with authors of those objects and copyright status
#defaultView:ImageGrid
select ?image ?item ?itemLabel ?itemDescription ?thumb (?p170Label as ?author) (YEAR(?p570) as ?death) ?copyright_statusLabel with {
  select * {
    service <https://query.wikidata.org/sparql> {
      ?item wdt:P131* wd:Q1757 .            
      ?item wdt:P170 ?p170 .
      OPTIONAL { ?item rdfs:label ?itemLabel filter (lang(?itemLabel) = "en") }
      OPTIONAL { ?item schema:description ?itemDescription filter (lang(?itemDescription) = "en") }    
      OPTIONAL { ?p170 rdfs:label ?p170Label filter (lang(?p170Label) = "en") } 
      OPTIONAL { ?p170 wdt:P570 ?p570 } .
      OPTIONAL { ?p170 wdt:P7763 ?copyright_status. 
                 ?copyright_status rdfs:label ?copyright_statusLabel
                 filter (lang(?copyright_statusLabel) = "en")
               }
    }
  }
} as %works where {
  include %works.
  ?image wdt:P180 ?item;
         schema:url ?thumb.
}

Try it!

Map of files participating in Wiki Loves Monuments in Sweden, color-coded by year of competition

# Map of files participating in Wiki Loves Monuments in Sweden, color-coded by year of competition
#defaultView:Map
select ?image ?wlm ?wlmLabel ?username ?coords ?thumb ?layer 

with {
  select * {
    service <https://query.wikidata.org/sparql> {
      ?wlm wdt:P179 wd:Q105194463;
                rdfs:label ?wlmLabel;
      filter (lang(?wlmLabel) = "en")
    }
  } 
} as %items 

where {
  include %items. 
  ?image wdt:P1344 ?wlm.
  OPTIONAL {?image wdt:P1259 ?coords}
  OPTIONAL {?image (p:P170/pq:P4174) ?username.}

  ?image schema:contentUrl ?url;
         schema:url ?thumb. 
  
     BIND(
          IF(?wlm = wd:Q105201214, "2011",
          IF(?wlm = wd:Q105201215, "2012",
          IF(?wlm = wd:Q105201216, "2013",
          IF(?wlm = wd:Q105201217, "2014",
          IF(?wlm = wd:Q105201218, "2015",
          IF(?wlm = wd:Q105201219, "2016",
          IF(?wlm = wd:Q105201220, "2017",
          IF(?wlm = wd:Q105201221, "2018",
          IF(?wlm = wd:Q105201222, "2019",
          IF(?wlm = wd:Q105201223, "2020",
          "")))))))))) AS ?layer).
}

Try it!

Media files depicting (former) heads of state that are still alive

# Media files depicting (former) heads of state that are still alive
#defaultView:ImageGrid
select distinct ?file ?image ?leaderLabel with {
  select ?leader ?leaderLabel where {
    service <https://query.wikidata.org/sparql> {
      ?leader wdt:P31 wd:Q5;
            wdt:P39 ?posHeld. 
      minus { ?leader wdt:P570 []. } # Minus date of death, only living people
      ?posHeld wdt:P31/wdt:P279* wd:Q48352. # Position held = subclass or instance of 'head of state'
      service wikibase:label { 
        bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". 
        ?leader rdfs:label ?leaderLabel. 
      }
    }
  }
} as %wikidataItems where {
  include %wikidataItems .
  ?file wdt:P180 ?leader;
        schema:url ?image.
}

Try it!

Generate report of Met Museum artworks by department using federated query

# Number of Met Museum artworks in Commons, sorted by department
SELECT ?dept ?deptLabel ?count 
WHERE {
  {
    # Use Wikidata federated query to generate curatorial departments of The Met
    SELECT ?dept ?deptLabel WHERE {  
      SERVICE <https://query.wikidata.org/sparql> {
        ?dept wdt:P31 wd:Q61781831 .  # curatorial department
        ?dept wdt:P749 wd:Q160236 .   # parent org being Met
        SERVICE wikibase:label {
          bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .
          ?dept rdfs:label ?deptLabel .  # Department labels
        }
      }
    }
  }
  {
    # Find files of The Met
    SELECT (COUNT(DISTINCT(?file)) AS ?count) ?dept WHERE {
      ?file wdt:P3634 ?metid . # Files with Met ID
      ?file wdt:P195 ?dept .   # Department
    } GROUP BY ?dept
  }
}
ORDER BY DESC(?count) ?dept

Try it!

Federation with Wikidata to group, analyse, or add information to Commons results

Cartographie des images trouvées dans l'atlas du 17e siècle de De Wit

#defaultView:Map
select ?file ?image ?depictionLabel ?coord where {
  ?file wdt:P6243 wd:Q2520345 .
  ?file wdt:P180 ?depiction .
  ?file schema:url ?image .
  service <https://query.wikidata.org/sparql> {
    ?depiction wdt:P625 ?coord.
    service wikibase:label {
        bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .
        ?depiction rdfs:label ?depictionLabel .
    }
  }
}

Try it!

Most common wikidata classes for values of "depicts" (P180) on Commons

# Most common classes of the values of "depicts" (P180) on Commons
SELECT ((?sum / 40) AS ?percent) ?class ?class_label ?instance ?instance_label ?sample

WITH { 
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?value (SAMPLE(?file) AS ?example) WHERE {
     service bd:sample {
       ?file wdt:P180 ?value . 
        bd:serviceParam bd:sample.limit 4000 .
        bd:serviceParam bd:sample.sampleType "RANDOM" .
     }  
  } GROUP BY ?value
  ORDER BY DESC(?count)
#  LIMIT 2000           
} AS %values
 
WITH {
  SELECT (SUM(?count) AS ?sum) ?class (SAMPLE(?value) AS ?instance) (SAMPLE(?example) AS ?sample) WHERE {
    INCLUDE %values .
    service <https://query.wikidata.org/sparql> {
         ?value wdt:P31 ?class
    }
  } GROUP BY ?class 
} AS %classes

WHERE {
  INCLUDE %classes . 
  service <https://query.wikidata.org/sparql> {
      OPTIONAL {?instance rdfs:label ?instance_label FILTER (lang(?instance_label) = 'en') } .
      OPTIONAL {?class rdfs:label ?class_label FILTER (lang(?class_label) = 'en') } .
  }
} 
ORDER BY DESC(?sum)

Try it!

Federation with external sources

Get information of Europeana item using federated query

#Get information of Europeana item using federated query
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>

SELECT * WHERE {
  BIND(<http://data.europeana.eu/proxy/provider/91622/raa_kmb_16000200042758> as ?p854)  
  SERVICE <http://sparql.europeana.eu/> {
   {
         ?p854 <http://purl.org/dc/terms/created> ?created .
         ?p854 <http://purl.org/dc/elements/1.1/identifier> ?identifier .
         ?p854 <http://purl.org/dc/elements/1.1/publisher> ?publisher .
         ?p854 <http://purl.org/dc/elements/1.1/rights> ?rights .
         ?p854 <http://purl.org/dc/elements/1.1/title> ?title .
         ?p854 <http://purl.org/dc/elements/1.1/description> ?description .
     }
  }
}

Try it!

Lire les catégories de Commons pour les sujets Europeana en utilisant une requête fédérée

# Find Commons category suggestions for a Commons file using subjects stored in Europeana
# 1.) Read collection and identifier for M68435429 (File:Tervahovi_Oulu_1898_02.jpg)
# 2.) Read subjects in Finnish of photo defined by identifier from Europeana
# 3.) Translate subjects to YSO ontology using Finto-service. 
# 3.b) Note: Query is routed through Sophox.org, because there is no direct access from WCQS to Finto.
# 4.) Translate YSO items to Wikidata items using Wikidata and read Commons categories

SELECT * WITH {
  SELECT ?mediafile ?collection ?identifier ?europeana ?subject WHERE {
    
     # 1.) Read collection and identifier for M68435429 (File:Tervahovi_Oulu_1898_02.jpg)
     BIND(sdc:M68435429 as ?mediafile)     
     ?mediafile p:P195 ?collection_prop .
     ?collection_prop ps:P195 ?collection .
     ?collection_prop pq:P217 ?identifier
     
     # 2.) Read subjects in Finnish of photo defined by identifier from Europeana
     SERVICE <http://sparql.europeana.eu/> {
       ?europeana <http://purl.org/dc/elements/1.1/identifier> ?identifier .
       ?europeana <http://purl.org/dc/elements/1.1/subject> ?subject .       
     }
  }
} AS %europeana
WHERE {
  INCLUDE %europeana . 
  
  # 3.) Translate subjects to YSO ontology using Finto-service. 
  # 3.b) Note: Query is routed through Sophox.org, because there is no direct access from WCQS to Finto.
  SERVICE <http://zbw.eu/beta/sparql/stw/query> {
    SERVICE <http://api.finto.fi/sparql> {
      ?yso skos:prefLabel ?subject ;
      skos:inScheme <http://www.yso.fi/onto/yso/>
    }
  } 
  # 4.) Translate YSO items to Wikidata items using Wikidata and read Commons categories
  BIND(REPLACE(STR(?yso), "http://www.yso.fi/onto/yso/p", "") as ?yso_number)
  SERVICE <https://query.wikidata.org/sparql>  {
    ?wikidata wdt:P2347 ?yso_number .
    ?wikidata wdt:P373 ?commonscat  
  }
}

Try it!

Parcourir les téléversements des utilisateurs

Cartographie mondiale des fichiers détenus par l'utilisateur 'Coyau' de Wikimedia Commons

# World map of files authored by Wikimedia Commons user 'Coyau'
#defaultView:Map
select ?file ?image ?coordinates (?date AS ?layer) ?filename where {
  bind("Coyau" AS ?username)
  
  ?file (p:P170/pq:P4174) ?username;
        schema:url ?image;
        ?p ?coordinates. # any coordinate like wdt:P625,wdt:P1259,wdt:P9149
  
  filter(datatype(?coordinates) = geo:wktLiteral). # If this line is not here, the query will be very slow
  
  optional { ?file wdt:P571 ?date. }
  ?file schema:contentUrl ?url .
  BIND (wikibase:decodeUri(CONCAT("File:", substr(str(?url),53))) AS ?filename).
}
LIMIT 10000

Try it!

Timeline of files authored by a Wikimedia Commons user

# Timeline of files authored by a Wikimedia Commons user
#TEMPLATE={"template":"Timeline of files authored by ?username","variables":{"?username":{"query":" SELECT DISTINCT ?username WHERE { [] p:P170/pq:P4174 ?username .} LIMIT 100"} } }
#defaultView:Timeline
SELECT ?file ?date WHERE {
  BIND("Coyau" AS ?username)
  ?file (p:P170/pq:P4174) ?username;
    wdt:P571 ?date.
}
LIMIT 1000

Try it!

Requêtes de maintenance

Files captured with a camera before that camera was released

select ?file ?file_date ?camera ?camera_date 
with {
  select * {
    # SELECT all camera models
    service <https://query.wikidata.org/sparql> {
      ?camera wdt:P31 wd:Q20741022;
               wdt:P571 ?camera_date.
    }
  }
} as %cameras
where {
  include %cameras .
  #select images taken with the camera
  ?file wdt:P4082 ?camera;
        wdt:P571 ?file_date.
  FILTER(?file_date < ?camera_date)

} LIMIT 1000

Try it!

Explorer les catégories de Commons

Service wikibase:mwapi provides ability to combine SPARQL queries with Commons categories. Unfortunately only 10,000 files can be returned by that service, however that number can be extended as we can control which 10,000 by adding additional commands like

   bd:serviceParam mwapi:gcmsort "timestamp" .
   bd:serviceParam mwapi:gcmdir "descending" .

Wikidata items of files in Category:Artworks with structured data with redirected digital representation of property

Maintenance category Category:Artworks with structured data with redirected digital representation of property collects files with digital representation of (P6243) statement where Wikidata item linked by that statement is a redirect to a different Wikidata item. The following query will show the filenames, the items linked by P6243 property and the items they redirect to. Be aware that the category is often empty, and even if it is not the redirects might have been already corrected.

SELECT ?file ?title ?redirect_from ?redirect_to
WITH
{
  SELECT ?file ?title
  WHERE
  {
    SERVICE wikibase:mwapi
    {
      bd:serviceParam wikibase:api "Generator" .
      bd:serviceParam wikibase:endpoint "commons.wikimedia.org" .
      bd:serviceParam mwapi:gcmtitle "Category:Artworks with structured data with redirected digital representation of property" .
      bd:serviceParam mwapi:generator "categorymembers" .
      bd:serviceParam mwapi:gcmtype "file" .
      bd:serviceParam mwapi:gcmlimit "max" .
      ?title wikibase:apiOutput mwapi:title .
      ?pageid wikibase:apiOutput "@pageid" .
    }
    BIND (URI(CONCAT('https://commons.wikimedia.org/entity/M', ?pageid)) AS ?file)
  }
} AS %get_files
WHERE
{
  INCLUDE %get_files
  ?file wdt:P6243 ?redirect_from .
  SERVICE <https://query.wikidata.org/sparql> {
      ?redirect_from owl:sameAs ?redirect_to.
  }
}

Try it!

Depicts statements with Dutch labels, of files in one Commons category

SELECT ?file ?title ?depicts ?depicts_label
WITH
{
  SELECT ?file ?title
  WHERE
  {
    SERVICE wikibase:mwapi
    {
      bd:serviceParam wikibase:api "Generator" .
      bd:serviceParam wikibase:endpoint "commons.wikimedia.org" .
      bd:serviceParam mwapi:gcmtitle "Category:Historia Naturalis van Rudolf II" .
      bd:serviceParam mwapi:generator "categorymembers" .
      bd:serviceParam mwapi:gcmtype "file" .
      bd:serviceParam mwapi:gcmlimit "max" .
      ?title wikibase:apiOutput mwapi:title .
      ?pageid wikibase:apiOutput "@pageid" .
    }
    BIND (URI(CONCAT('https://commons.wikimedia.org/entity/M', ?pageid)) AS ?file)
  }
} AS %get_files
WHERE
{
  INCLUDE %get_files
  ?file wdt:P180 ?depicts .
  service <https://query.wikidata.org/sparql> {
    OPTIONAL {?depicts rdfs:label ?depicts_label FILTER (lang(?depicts_label) = 'nl') } 
    }
}

Try it!

Camera location of files in a category

#defaultView:Map
SELECT ?file ?title ?image ?coords 
WITH
{
  SELECT ?file ?title
  WHERE
  {
    SERVICE wikibase:mwapi
    {
      bd:serviceParam wikibase:api "Generator" .
      bd:serviceParam wikibase:endpoint "commons.wikimedia.org" .
      bd:serviceParam mwapi:gcmtitle "Category:River Ravensbourne" .
      bd:serviceParam mwapi:generator "categorymembers" .
      bd:serviceParam mwapi:gcmtype "file" .
      bd:serviceParam mwapi:gcmlimit "max" .
      ?title wikibase:apiOutput mwapi:title .
      ?pageid wikibase:apiOutput "@pageid" .
    }
    BIND (URI(CONCAT('https://commons.wikimedia.org/entity/M', ?pageid)) AS ?file)
  }
} AS %get_files
WHERE
{
  INCLUDE %get_files
  OPTIONAL {?file wdt:P1259 ?coords} .  # coords of POV      
  OPTIONAL {?file wdt:P9149 ?coords} .  # fallback: coords of depicted place
  FILTER(bound(?coords)) .
  ?file schema:url ?image.
}

Try it!

Autres requêtes

Requêtes montrant comment des propriétés particulières peuvent être utilisées

Objects with the largest number of Digital Representations (P6243)

Wikidata items with largest number of files on Commons linking to them through digital representation of (P6243) statement.

SELECT ?count ?item ?item_label ?commonscat_link

WITH {
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?item WHERE {
     ?file wdt:P6243 ?item . 
  } GROUP BY ?item
  ORDER BY DESC(?count)
  LIMIT 200
} AS %items

WHERE {
  INCLUDE %items . 
  service <https://query.wikidata.org/sparql> {
    OPTIONAL {?item rdfs:label ?item_label FILTER (lang(?item_label) = 'en') } .
    OPTIONAL {
      ?item wdt:P373 ?commonscat .
      BIND(IRI(CONCAT("https://commons.wikimedia.org/wiki/Category:", ?commonscat)) AS ?commonscat_link) .
    }
  }
} ORDER BY DESC(?count) ?item_label

Try it!

Count of number of Digital Representations (P6243) by type of object represented

Note -- limited to a sample of 50,000 files, although we (currently) have 225124 files with digital representation of (P6243) statements, as 50,000 seems to be as large a number as can be sent by federation to WDQS for analysis without timeout

SELECT (COUNT(DISTINCT(?file)) AS ?count) ?class ?class_label

WITH {
  SELECT ?file ?item WHERE {
     ?file wdt:P6243 ?item . 
  } LIMIT 50000
} AS %files

WHERE {
  INCLUDE %files . 
  service <https://query.wikidata.org/sparql> {
    ?item wdt:P31 ?class .
    OPTIONAL {?class rdfs:label ?class_label FILTER (lang(?class_label) = 'en') } .
  }
} GROUP BY ?class ?class_label
ORDER BY DESC(?count) ?class_label

Try it!

Qualifieurs les plus courants lorsque « source of image » (P7482) = "file available on the internet" (Q74228490)

# # Most frequent qualifier properties when "source of image" (P7482) = "file available on the internet" (Q74228490) 
#  based on sample of 100,000 such images
SELECT ?count ?qualifier ?qualifier_label ?example ?example_value ?example_value_label

WITH {
  SELECT ?file ?source_stmt WHERE {
     service bd:sample {
       ?source_stmt ps:P7482 wd:Q74228490 .
        bd:serviceParam bd:sample.limit 100000 .
        bd:serviceParam bd:sample.sampleType "RANDOM" .
     } 
     ?file p:P7482 ?source_stmt .
  } 
}  AS %files

WITH {
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?qualifier (SAMPLE(?file) AS ?example) (SAMPLE(?value) AS ?example_value) WHERE {
     INCLUDE %files .
     ?file p:P7482 ?source_stmt . 
     ?source_stmt ?qualifier ?value .
  } GROUP BY ?qualifier
  ORDER BY DESC(?count)
  LIMIT 200                      
} AS %source_info
 
WHERE {
  INCLUDE %source_info .
  service <https://query.wikidata.org/sparql> {
    ?qualifier ^wikibase:qualifier ?qual_item . 
    OPTIONAL {?qual_item rdfs:label ?qualifier_label FILTER (lang(?qualifier_label) = 'en') } .
    OPTIONAL {?example_value rdfs:label ?example_value_label FILTER (lang(?example_value_label) = 'en') } .
  }
}
ORDER BY DESC(?count)

Try it!

Fournisseurs d'images les plus fréquents lorsque « source of image » (P7482) = « file available on the internet » (Q74228490)

(based on a random sample of 10,000 images with such provider statements)

# Most frequent providers of images when "source of image" (P7482) = "file available on the internet" (Q74228490) 
SELECT ?count ?provider ?provider_label ?example 

WITH {
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?provider (SAMPLE(?file) AS ?example) WHERE {
     service bd:sample {
       ?source_stmt ps:P7482 wd:Q74228490 .
        bd:serviceParam bd:sample.limit 10000 .
        bd:serviceParam bd:sample.sampleType "RANDOM" .
     }
     ?file p:P7482 ?source_stmt .      
     ?source_stmt pq:P137 ?provider .
  } GROUP BY ?provider
  ORDER BY DESC(?count)
  LIMIT 200                      
} AS %source_info
 
WHERE {
  INCLUDE %source_info .
  service <https://query.wikidata.org/sparql> {
    OPTIONAL {?provider rdfs:label ?provider_label FILTER (lang(?provider_label) = 'en') } .
  }
}
ORDER BY DESC(?count)

Try it!

Images avec le plus grand nombre de valeurs depicts (P180) mais sans valeur(s) préférée(s)

(from a non-random sample of 500,000 images)

# Images with largest number of depicts values

#defaultView:ImageGrid
SELECT ?count ?image (GROUP_CONCAT(?topicLabel; separator = ' / ') AS ?topicLabels)

WITH {
  SELECT ?file WHERE {
    ?file a wikibase:Mediainfo .
  } LIMIT 500000
} AS %files

WITH {
  SELECT ?file ?topic WHERE {
    INCLUDE %files .
    MINUS {?file p:P180/wikibase:rank wikibase:PreferredRank} .
    ?file wdt:P180 ?topic .
  }
} AS %file_topics 

WITH {
  SELECT (COUNT(DISTINCT(?topic)) AS ?count) ?file WHERE {
    INCLUDE %file_topics .
  } GROUP BY ?file
  ORDER BY DESC(?count)
  LIMIT 200
} AS %top_files

WITH {
  SELECT ?count ?file ?topic WHERE {
     INCLUDE %file_topics .
     INCLUDE %top_files .
  }
} AS %top_file_topics

WITH {
  SELECT DISTINCT ?topic WHERE {
      INCLUDE %top_file_topics .
  }
} AS %top_topics

WITH{
  SELECT ?topic ?topicLabel WHERE {
    INCLUDE %top_topics .
    service <https://query.wikidata.org/sparql> {
       service wikibase:label {
        bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
        ?topic rdfs:label ?topicLabel.
      }
    }
  }
} AS %topicLabels

WHERE {
   INCLUDE %top_file_topics .
   INCLUDE %topicLabels .
   ?file schema:contentUrl ?url .
   bind(iri(concat("http://commons.wikimedia.org/wiki/Special:FilePath/", wikibase:decodeUri(substr(str(?url),53)))) AS ?image)
} GROUP BY ?count ?file ?image 
ORDER BY DESC(?count)

Try it!

Fichiers ayant des déclarations depicts (P180) dupliquées

Find all the files which have the same value added twice to the same property. In this example we used depicts (P180) statement, but it can be used with others as well. This query sometimes times out, but removing "DISTINCT" from it fixes the problem, but returns multiple rows per file

SELECT DISTINCT ?file {
  ?file p:P180 ?statement1.
  ?file p:P180 ?statement2.
  ?statement1 ps:P180 ?value .
  ?statement2 ps:P180 ?value .
  FILTER(?statement1 != ?statement2)
}
limit 50

Try it!

Things depicted with cats

# Things depicted with cats

#defaultView:ImageGrid
SELECT ?count ?depicted ?depictedLabel ?sampleImg

WITH {
  SELECT ?target WHERE {
    SERVICE <https://query.wikidata.org/sparql> {   
        { ?target wdt:P31?/wdt:P279* wd:Q146 }     ## include specific sorts of cats and individual cats
        UNION
        { ?target wdt:P31? wd:Q43577 }              ## and also breeds of cat
    }
  }
} AS %targets
    
WITH {
  SELECT (COUNT(DISTINCT(?file)) AS ?count) ?depicted (SAMPLE(?file) AS ?sample) WHERE {
    INCLUDE %targets .
    ?file p:P180 ?stmt .
    ?stmt ps:P180 ?target .
 #   ?stmt wikibase:rank wikibase:PreferredRank .       ##  Make sure the cat is marked as prominent -- **commented out for now**
    
    ?file p:P180 ?stmt2.  FILTER (?stmt2 != ?stmt) .    ##  now get another depicts statement
    ?stmt2 ps:P180 ?depicted . 
  } GROUP BY ?depicted
} AS %things 

WITH {
  SELECT ?count ?depicted ?sample WHERE {
    INCLUDE %things .
    MINUS {                                           ## exclude anything that was an original target
      SELECT (?target AS ?depicted) WHERE {
        INCLUDE %targets .
      }
    }
  }
} AS %things1

WHERE {
  INCLUDE %things1 .
  SERVICE <https://query.wikidata.org/sparql> {
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
      ?depicted rdfs:label ?depictedLabel .
    }
  }
  ?sample schema:contentUrl ?url;
          schema:url ?sampleImg.
} ORDER BY DESC(?count)

Try it!

  • with a more random set of sampled images: tinyurl.com/y35wjrz8 (choice will be different each time the query is modified, or if it is no longer in cache)

Images prises dans un rayon de 1 km autour d'une position donnée

#defaultView:Map{"hide":["?coor"]}
# query by Jura1, 2020-11-12
SELECT ?fileLabel ?fileDescription ?image ?coor
WHERE 
{
  hint:Query hint:optimizer "None".
  SERVICE <https://query.wikidata.org/sparql> { wd:Q43244 wdt:P625 ?center }  # Wikidata item with coordinates
  SERVICE wikibase:around {
      ?file wdt:P1259 ?coor.
      bd:serviceParam wikibase:center ?center .
      bd:serviceParam wikibase:radius "1". # 1 kilometer around
  }  
  ?file schema:contentUrl ?url .
  bind(iri(concat("http://commons.wikimedia.org/wiki/Special:FilePath/", wikibase:decodeUri(substr(str(?url),53)))) AS ?image)  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}

Try it!

Wikimedia Commons assessments

Images de valeur décrivant des compétiteurs d'athlétisme

#shows files that depict athletics competitors and with the Valued Image assessment 
#defaultView:ImageGrid
SELECT ?file ?image

WITH {
  SELECT ?item WHERE {
    SERVICE <https://query.wikidata.org/sparql> {
      ?item wdt:P106 wd:Q11513337 .
    }
  }
} AS %get_items

WHERE {
  INCLUDE %get_items
  ?file wdt:P180 ?item .
  ?file wdt:P6731 wd:Q63348040 .  # Commons valued image
  ?file schema:url ?image .
}

Try it!

Quality Images depicting Hummingbirds

#shows files that depict Hummingbirds and with the Quality Image assessment 
#defaultView:ImageGrid
SELECT ?file ?image

WITH {
  SELECT ?item WHERE {
    SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P171/wdt:P171* wd:Q43624.
    } 
  }
} AS %get_items

WHERE {
  INCLUDE %get_items
  ?file wdt:P180 ?item .
  ?file wdt:P6731 wd:Q63348069 .  # Commons quality image
  ?file schema:url ?image .
}

Try it!

Quality Images depicting arch bridges in Italy

#shows files that depict arch bridges in Italy and with the Quality Image assessment 
#defaultView:ImageGrid
SELECT ?file ?image

WITH {
  SELECT ?item WHERE {
    SERVICE <https://query.wikidata.org/sparql> {
      ?item wdt:P31 wd:Q158438 .
      ?item wdt:P17 wd:Q38 .
    }
  }
} AS %get_items

WHERE {
  INCLUDE %get_items
  ?file wdt:P180 ?item .
  ?file schema:url ?image .
  ?file wdt:P6731 wd:Q63348069 .
}

Try it!

Featured Pictures depicting Lepidoptera and taken with a Canon camera

#shows files that depict Lepidoptera, with the Featured Picture assessment, and taken with a Canon camera
#defaultView:ImageGrid

SELECT ?file ?image

WITH {
  SELECT ?item WHERE {
    SERVICE <https://query.wikidata.org/sparql> {
        ?item wdt:P171/wdt:P171* wd:Q28319.
     } 
  }
} AS %get_items

WHERE {
  INCLUDE %get_items
  ?file wdt:P180 ?item .
  ?file schema:url ?image .
  ?file wdt:P6731 wd:Q63348049 .
  ?file wdt:P4082 ?camera.
  SERVICE <https://query.wikidata.org/sparql> {
     ?camera wdt:P1716 wd:Q63554165 .     # brand = Canon
  } 
}

Try it!

Propriétés utilisées couramment dans Commons

Prédicats les plus communs sur les éléments de Commons qui décrivent les Douglas Adam

#most common predictates on Commons items that depict Douglas Adams
SELECT (COUNT(DISTINCT(CONCAT(str(?file),str(?value)))) AS ?count) ?prop (SAMPLE(?file) AS ?sample_file)  (SAMPLE(?value) AS ?sample_value) 

WHERE {
  ?file wdt:P180 wd:Q42 .
  ?file ?prop ?value .
} GROUP BY ?prop
ORDER BY DESC(?count)

Try it!

Predicates/Properties and their natural language labels used on commons items that depict Douglas Adams

SELECT DISTINCT ?prop ?propLabel WHERE {
  ?file wdt:P180 wd:Q42 ;
        schema:contentUrl ?contentURL ;
        ?p ?o .
  SERVICE <https://query.wikidata.org/sparql> {
      ?prop wikibase:claim ?p ;
            rdfs:label ?propLabel .
      FILTER (lang(?propLabel) = "en")
    }
}

Try it!

Prédicats les plus communs dans un échantillon de 5000 fichiers de Commons

  • Cette requête utilise la fédération pour rechercher le nom des propriétés de Wikidata (tâche qui est un peu plus concernée par les propriétés que par les éléments réguliers de Wikidata).

Une série de sous-requêtes nommées (par exemple avec des blocs WITH) est utilisée pour forcer la séquence d'exécution -- voir ici, sur Wikidata pour plus de détails.

#most common predictates on a sample of 5,000 Commons files
SELECT (COUNT(DISTINCT ?file) AS ?file_count) (COUNT(DISTINCT(CONCAT(str(?file),str(?val)))) AS ?stmt_count) 
   ?prop ?prop_label (SAMPLE(?file) AS ?sample_file)  (SAMPLE(?val) AS ?sample_val) 

WITH {
  SELECT ?file WHERE {
     service bd:sample {
       ?file a wikibase:Mediainfo .
        bd:serviceParam bd:sample.limit 5000 .
        bd:serviceParam bd:sample.sampleType "RANDOM" .
     }
  }  
} AS %files

WITH {
  SELECT ?file ?prop ?val WHERE {
    INCLUDE %files .
    ?file ?prop ?val .
  } 
} AS %triples

WITH {
  SELECT DISTINCT ?prop WHERE {
     INCLUDE %triples .
  }
} AS %props

WITH {
   SELECT ?prop ?prop_label WHERE {
     INCLUDE %props .
     service <https://query.wikidata.org/sparql> {
        OPTIONAL {
           ?prop ^wikibase:directClaim ?prop_item .
           ?prop_item rdfs:label ?prop_label FILTER (lang(?prop_label) = 'en') .
        }
        OPTIONAL {
           ?prop ^wikibase:claim ?prop_item .
           ?prop_item rdfs:label ?prop_label FILTER (lang(?prop_label) = 'en') .
        }
     }
  }
} AS %prop_labels
     
WHERE {
  INCLUDE %triples .
  INCLUDE %prop_labels .
} GROUP BY ?prop ?prop_label
ORDER BY DESC(?stmt_count)

Try it!

  • A later 5000: tinyurl.com/yyuywxqm

Qualificatifs les plus communément utilisés dans les déclarations depicts

# Most common qualifiers used on "depicts" statements
SELECT DISTINCT ?count ?qual ?qual_label ?sample_file ('depicts' AS ?prop) ?sample_stmt_value ?sample_stmt_valueLabel (?qual_label AS ?qualLabel1) ?sample_value ?sample_valueLabel

WITH {
  SELECT ?qual  WHERE {
    service <https://query.wikidata.org/sparql> {
      ?prop wikibase:qualifier ?qual .
    }
  }
} AS %quals 

WITH {
  SELECT ?stmt ?qual WHERE {
    INCLUDE %quals .
    ?stmt ?qual [] .
    ?file p:P180 ?stmt .
  } LIMIT 30000
} AS %stmts 

WITH {
  SELECT (COUNT(DISTINCT(?stmt)) AS ?count) ?qual (SAMPLE(?stmt) AS ?example_stmt) WHERE {
     INCLUDE %stmts .
  } GROUP BY ?qual 
} AS %top_quals

WITH {
  SELECT ?count ?qual (SAMPLE(?example_file) AS ?sample_file) (SAMPLE(?example_stmt_value) AS ?sample_stmt_value) (SAMPLE(?example_value) AS ?sample_value) WHERE {
    INCLUDE %top_quals .
    ?example_stmt ^p:P180 ?example_file .
    ?example_stmt ps:P180 ?example_stmt_value .
    ?example_stmt ?qual ?example_value .
  } GROUP BY ?count ?qual
} AS %results
 
WHERE {
  INCLUDE %results .
  service <https://query.wikidata.org/sparql> {
    ?qual ^wikibase:qualifier ?qual_item
    service wikibase:label { 
      bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
      ?qual_item rdfs:label ?qual_label.
      ?sample_stmt_value rdfs:label ?sample_stmt_valueLabel .
      ?sample_value rdfs:label ?sample_valueLabel .
    }
  } 
}  ORDER BY DESC(?count)

Try it!

Propriété la plus commune avec combinaisons de qualifieurs, autres que les déclarations depicts (P180)

# most common property + qualifier combinations, other than on "depicts" (P180) statements
SELECT ?count ?pred ?pred_label ?qual ?qual_label ?example

WITH {
  SELECT ?qual  WHERE {
    service <https://query.wikidata.org/sparql> {
      ?prop wikibase:qualifier ?qual .
    }
  }
} AS %quals 

WITH {
  SELECT ?file ?stmt ?qual ?pred WHERE {
    INCLUDE %quals .
    ?stmt ?qual [] .
    OPTIONAL {?f1 p:P180 ?stmt} FILTER(!bound(?f1)) .
    ?file ?pred ?stmt .
  } LIMIT 100000
} AS %stmts 

WITH {
  SELECT (COUNT(DISTINCT(?stmt)) AS ?count) ?qual ?pred (SAMPLE(?file) AS ?example) WHERE {
     INCLUDE %stmts .
  } GROUP BY ?qual ?pred 
} AS %top_quals

WHERE {
  INCLUDE %top_quals .
  service <https://query.wikidata.org/sparql> {
        OPTIONAL {
           ?pred ^wikibase:claim ?pred_item .
           ?pred_item rdfs:label ?pred_label FILTER (lang(?pred_label) = 'en') .
        }
        OPTIONAL {
           ?qual ^wikibase:qualifier ?qual_item .
           ?qual_item rdfs:label ?qual_label FILTER (lang(?qual_label) = 'en') .
        }
  }
}  ORDER BY DESC(?count)

Try it!

Most frequently used depicts statements from a slice of media files that don't have translations in Spanish

SELECT ?depicts ?count ?depictsLabel_en ?depictsLabel_es WITH {

SELECT ?depicts (count(?file) as ?count) WHERE
{
   SERVICE bd:slice {
?file wdt:P180 ?depicts.
    bd:serviceParam bd:slice.offset 10000000 . # Start at item number (not to be confused with QID)
    bd:serviceParam bd:slice.limit 3000000 . # List this many items to prevent query timeout
  }
} group by ?depicts having (?count>10 && ?count<4000000) } AS %I
WHERE
{
  INCLUDE %I
  SERVICE <https://query.wikidata.org/sparql> {
    filter not exists {?depicts rdfs:label ?depictsLabel_es FILTER (lang(?depictsLabel_es) = 'es') }  
    OPTIONAL {?depicts rdfs:label ?depictsLabel_en FILTER (lang(?depictsLabel_en) = 'en') }
  }
} order by desc(?count)

Try it!

Generating edits

Generate Quickstatements directly from SPARQL

Here is a SPARQL query to search for Met images with a specific depiction statement and to delete those statements using Quickstatements. This method allows one to do mass search and removal, without needing to learn how to code a bot or to program.

Rationale: There are some low confidence P180/depiction statements to remove, so search for those statements with a specific qualifier "stated in" Met tagging initiative and with a reference statement. Then generate a list of Quickstatement directives we can copy/paste directly into Quickstatements using SPARQL string functions. Example:

-STATEMENT | M58764743$D563143B-0F5C-403E-AE11-4BB744B7E267

Hint: When using Quickstatements to operate on Commons, make sure to select "Create new command batch for: Commons [batch mode only!]" as by default it works on Wikidata.

Useful reference for string functions can be found at: https://docs.cambridgesemantics.com/anzograph/v2.5/userdoc/string-functions.htm

SELECT DISTINCT ?quickstatement WHERE {
  # Wikidata items of P180 terms we want to remove
  VALUES ?exclude { wd:Q467 wd:Q8441 }
  ?file wdt:P3634 ?metid .
  ?file p:P180 ?fullstatement .
  ?fullstatement ps:P180 ?exclude .
  # All depictions w/ determination method Met tagging initiative,
  #   and a specific reference statement.
  # This avoid deleting a depiction statement that might have been 
  #   added by another method (by hand, other source, etc)
  ?fullstatement ps:P180 []; pq:P459 wd:Q106429444 ; prov:wasDerivedFrom ?ref  . 
  ?ref pr:P248 ?statedin .  # Met tagging initiative
  ?ref pr:P854 ?refurl .    # Some type of URL, typically https://collectionapi.metmuseum.org/public/collection/v1/objects/...
  # ?file schema:url ?image.
  # Want to construct a Quickstatement to remove this exact claim/statement
  BIND(REPLACE(STR(?file), "https://commons.wikimedia.org/entity/", "") as ?mid)
  BIND(REPLACE(STR(?fullstatement), "https://commons.wikimedia.org/entity/statement/", "") as ?statement)
  BIND(STRAFTER(?statement,"-") as ?statementdetail)
  BIND(CONCAT("-STATEMENT", "|", ?mid, "$" , ?statementdetail) as ?quickstatement)
}

Try it!