User:Simon Villeneuve/SPARQL
En SPARQL, il faut maîtriser d'abord le bleu, puis le vert et ensuite le rouge.
Une description générale du contenu d'un élément particulier peut-être obtenu à l'aide de la requête suivante :
DESCRIBE wd:<NUMÉRO DE L'ÉLÉMENT>
Généralités edit
- Diagramme de Venn traduits en SPARQL[1]
diagramme de Venn | forme mathématique | SPARQL | |
---|---|---|---|
And | A. B. | ||
A. FILTER NOT EXISTS{ B. } | |||
A. OPTIONAL{ B. } | |||
Or | { A. } UNION { B. } |
- Requêtes complexes[2]
Obtenir les qualificatifs ou les références des propriétés d'un élément est difficile jusqu'à ce que le déclic se fasse. La clé (du moins, pour moi) est le diagramme ci-contre. Vous devez le fixer jusqu'à ce qu'il fasse sens, peu importe le temps que ça prend :)
Obtenir la valeur d'une propriété est facile. Tu demande le report service pour la valeur wdt:. Vous pouvez voir ceci sur le diagramme en démarrant sur le cercle « item » et suivant la flèche « wdt: » pour arriver sur « simple value ». Vous pouvez également voir sur le même diagramme qu'à partir de « simple value », vous ne pouvez aller nulle part. C'est un cul de sac.
Si vous désirez un qualificatif de propriété, vous devez demander une valeur pq:. Pour faire ça, il faut partir du cercle « item » en suivant le chemin p:. Arrivé au cercle « Statement », vous pouvez suivre plusieurs chemins, dont le ps: (qui donnera la même valeur que le chemin wdt:) ou le pq:, qui vous donnera la valeur du qualificatif.
Le "statement" lui-même est seulement un long et unique URI dont le seul but est de permettre d'y extraire des trucs tels les qualificatifs.
Cela ressemble un peu à ceci (et ici je me base sur des éléments YYYY Sweet Adelines International chorus competition plutôt que sur des éléments de gagnants tels Q7386689#P2522, mais le principe est le même) :
SELECT ?item ?itemLabel (year(?when) as ?year) ?winnerLabel ?score
WHERE
{
?item wdt:P31 wd:Q57776091. # l'élément est une Sweet Adelines International chorus competition
?item wdt:P585 ?when. # l'élément possède une date (P585)
?item p:P1346 ?statement. # l'élément possède un vainqueur (P1346), auquel on réfèrera par la suite par ?statement, l'URI unique
?statement ps:P1346 ?winner. # valeur pour vainqueur (élément de celui-ci)
?statement pq:P1351 ?score. # nombre de points marqué par le vainqueur
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} order by desc(?year)
Et il n'y a pas de raison pourquoi vous ne devriez pas voir le "statement" - ça devrait aider :
SELECT ?item ?itemLabel (year(?when) as ?year) ?statement ?winnerLabel ?score
WHERE
{
?item wdt:P31 wd:Q57776091. # L'élément est une Sweet Adelines International chorus competition
?item wdt:P585 ?when. # L'élément possède une date
?item p:P1346 ?statement. # L'élément a une valeur pour vainqueur (P1346), (cela crée l'URI)
?statement ps:P1346 ?winner. # identité du vainqueur
?statement pq:P1351 ?score. # nombre de points enregistré par le vainqueur
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} order by desc(?year)
Vous pouvez également écrire la requête plus efficacement en utilisant judicieusement des points virgule et crochets :
SELECT ?item ?itemLabel (year(?when) as ?year) ?winnerLabel ?score
WHERE
{
?item wdt:P31 wd:Q57776091 ; # l'élément est une Sweet Adelines International chorus competition
wdt:P585 ?when ; # qui possède une date
p:P1346 [ps:P1346 ?winner ; pq:P1351 ?score] .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} order by desc(?year)
Pour accéder aux références, il faut lier ?statement à ?autre_statement via un chemin prov:wasDerivedFrom. L' ?autre_statement est un autre URI permettant d'accéder aux références. Une fois celui-ci obtenu, on peut l'utiliser pour accéder aux références à l'aide du chemin pr: (Property Reference). Dans notre exemple, on peut ainsi aller chercher un ref_url et une date de consultation (P854 et P813).
Toujours en se référant à la logique du diagram, on part de l'élément vers le statement en suivant le chemin p:, puis du statement au cercle "reference" (noté ?autre_statement dans le code ci-bas) en suivant prov:wasDerivedFrom ... puis, de là, vers les valeurs uniques des références en suivant pr: - précisément pr:P854 pour ref_url et pr:P813 pour la date de consultation.
SELECT ?item ?itemLabel ?statement ?autre_statement (year(?when) as ?year) ?winnerLabel ?score ?ref_url ?retrieved
WHERE
{
?item wdt:P31 wd:Q57776091 ; # L'élément est une Sweet Adelines International chorus competition
wdt:P585 ?when ; # qui possède une date
p:P1346 ?statement. # et un vainqueur
?statement ps:P1346 ?winner ; # le vainqueur est ...
pq:P1351 ?score ; # avec ... points marqués
prov:wasDerivedFrom ?autre_statement. #d'après la source ...
?autre_statement pr:P854 ?ref_url ; #à l'URL ...
pr:P813 ?retrieved. #à la date ...
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} order by desc(?year)
Liste de requêtes edit
Générales edit
#item qui ne possède qu'une seule valeur pour une propriété donnée
SELECT ?item WHERE
{
?item wdt:P407 wd:Q1860;
wdt:P407 ?value .
} group by ?item having(COUNT(DISTINCT ?value) = 1)
#Éléments ayant X déclarations ou Y identifiants externes (X,Y = chiffres romains)
SELECT ?item ?itemLabel ?id WHERE {
# ?item wikibase:statements X .
# ?item wikibase:identifiers Y .
?item wdt:<IDENTIFIANT> ?id
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Liste d'éléments possédant trois valeurs pour trois propriétés
SELECT DISTINCT ?item WHERE {
?item wdt:PROPRIÉTÉ1 wd:ÉLÉMENT1 .
?item wdt:PROPRIÉTÉ2 wd:ÉLÉMENT2 .
?item wdt:PROPRIÉTÉ3 wd:ÉLÉMENT3 .
}
#Toutes les femmes ayant reçu la distinction d'officière de l'Ordre national du Québec
SELECT DISTINCT ?item WHERE {
?item wdt:P31 wd:Q5 .
?item wdt:P21 wd:Q6581072 .
?item wdt:P166 wd:Q15464524 .
}
- Croisement avec Petscan pour celles qui ont un article sur lequel l'infobox Biographie2 est affichée : petscan:844167
#Liste avec un OR entre les propriété 2 et 3
SELECT DISTINCT ?item WHERE {
{
?item wdt:PROPRIÉTÉ1 wd:ÉLÉMENT1 .
?item wdt:PROPRIÉTÉ2 wd:ÉLÉMENT2 .
} UNION {
?item wdt:PROPRIÉTÉ3 wd:ÉLÉMENT3 .
}
}
#Liste avec un NOCLAIM pour la propriété 3
SELECT DISTINCT ?item WHERE {
{
?item wdt:PROPRIÉTÉ1 wd:ÉLÉMENT1 .
?item wdt:PROPRIÉTÉ2 wd:ÉLÉMENT2 .
MINUS { ?item wdt:PROPRIÉTÉ3 wd:ÉLÉMENT3 }
}
#Rechercher un élément avec tous ses sous-classes pour une propriété donnée
SELECT DISTINCT ?item WHERE {
{
?item wdt:PROPRIÉTÉ/wdt:P279* wd:ÉLÉMENT1 . }
}
#Propriété avec une et une seule valeur
SELECT DISTINCT ?item WHERE
{
?item wdt:PROPRIÉTÉ wd:VALEUR;
wdt:PROPRIÉTÉ ?value .
} group by ?item having(COUNT(DISTINCT ?value) = 1)
#Propriétés avec plus d'une valeur
SELECT DISTINCT ?elem where {
?elem wdt:PROPRIÉTÉ ?val
} group by(?elem) having(count(distinct ?val)>QUANTITÉ)
#Éléments avec plus d'une valeur pour une propriété donnée
SELECT DISTINCT ?item (COUNT(?creat) AS ?count) WHERE {
?item wdt:P31 wd:Q3305213 ; wdt:P170 ?creat .
}
GROUP BY ?item
HAVING (?count>1)
#Élément dont une propriété possède un mot particulier
SELECT DISTINCT ?item ?nom WHERE
{
?item wdt:P3219 ?nom .
FILTER regex (?nom, "exposition").
}
#Éléments les plus utilisés par une PROPRIÉTÉ particulière
SELECT ?something ?somethingLabel (count (DISTINCT ?item) as ?count) WHERE
{
?item wdt:PROPRIÉTÉ ?something .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}
group by ?something ?somethingLabel order by desc(?count)
#Tous les éléments distincts sourcés avec le CQT avec les pourcentages de certaines natures, pays, naissance, etc..
SELECT (COUNT(DISTINCT ?item) AS ?total)
(COUNT(DISTINCT ?membre_CQT) AS ?est_membre_CQT) (?est_membre_CQT / ?total * 100.0 AS ?pct_membre_CQT)
(COUNT(DISTINCT ?item_a_pays) AS ?a_pays) (?a_pays / ?total * 100.0 AS ?pct_pays)
(COUNT(DISTINCT ?item_a_image) AS ?a_image) (?a_image / ?total * 100.0 AS ?pct_image)
(COUNT(DISTINCT ?item_est_géolocalisé) AS ?est_géolocalisé) (?est_géolocalisé / ?total * 100.0 AS ?pct_géolocalisé)
(COUNT(DISTINCT ?item_a_localisation) AS ?a_localisation) (?a_localisation / ?total * 100.0 AS ?pct_localisation)
(COUNT(DISTINCT ?item_a_siteweb) AS ?a_siteweb) (?a_siteweb / ?total * 100.0 AS ?pct_siteweb)
(COUNT(DISTINCT ?item_a_capacité) AS ?a_capacité) (?a_capacité / ?total * 100.0 AS ?pct_capacité)
(COUNT(DISTINCT ?item_est_organisation) AS ?est_organisation) (?est_organisation / ?total * 100.0 AS ?pct_organisation)
(COUNT(DISTINCT ?organisation_a_fondation) AS ?a_fondation) (?a_fondation / ?est_organisation * 100.0 AS ?pct_fondation)
(COUNT(DISTINCT ?organisation_plusde10ans) AS ?plusde10ans) (?plusde10ans / ?est_organisation * 100.0 AS ?pct_plusde10ans)
(COUNT(DISTINCT ?organisation_moinsde5ans) AS ?moinsde5ans) (?moinsde5ans / ?est_organisation * 100.0 AS ?pct_moinsde5ans)
(COUNT(DISTINCT ?organisation_a_direction) AS ?a_direction) (?a_direction / ?est_organisation * 100.0 AS ?pct_direction)
(COUNT(DISTINCT ?directionféminin) AS ?direction_féminin) (?direction_féminin / ?a_direction * 100.0 AS ?pct_direction_féminin)
(COUNT(DISTINCT ?directionmasculin) AS ?direction_masculin) (?direction_masculin / ?a_direction * 100.0 AS ?pct_direction_masculin)
(COUNT(DISTINCT ?item_est_oeuvre) AS ?est_oeuvre) (?est_oeuvre / ?total * 100.0 AS ?pct_oeuvre)
(COUNT(?item_est_humain) AS ?est_humain) (?est_humain / ?total * 100.0 AS ?pct_humain)
(COUNT(?item_est_féminin) AS ?est_féminin) (?est_féminin / ?est_humain * 100.0 AS ?pct_féminin)
(COUNT(?item_est_masculin) AS ?est_masculin) (?est_masculin / ?est_humain * 100.0 AS ?pct_masculin)
(COUNT(?item_est_nonsexué) AS ?est_nonsexué) (?est_nonsexué / ?est_humain * 100.0 AS ?pct_nonsexué) #non précisé
(COUNT(DISTINCT ?item_a_naissance) AS ?a_naissance) (?a_naissance / ?est_humain * 100.0 AS ?pct_naissance)
(COUNT(DISTINCT ?item_a_mort) AS ?est_mort) (?est_mort / ?est_humain * 100.0 AS ?pct_mort)
(COUNT(DISTINCT ?item_a_résidence) AS ?a_résidence) (?a_résidence / ?est_humain * 100.0 AS ?pct_résidence)
(COUNT(DISTINCT ?item_a_lieutravail) AS ?a_lieutravail) (?a_lieutravail / ?est_humain * 100.0 AS ?pct_lieutravail)
(COUNT(DISTINCT ?date_décennie) AS ?a_décennie) (?a_décennie / ?est_humain * 100.0 AS ?pct_décennie)
(COUNT(DISTINCT ?item_a_occupation) AS ?a_occupation) (?a_occupation / ?est_humain * 100.0 AS ?pct_occupation)
(COUNT(DISTINCT ?item_a_langue) AS ?a_langue) (?a_langue / ?est_humain * 100.0 AS ?pct_langue)
(COUNT(DISTINCT ?item_a_fonction) AS ?a_fonction) (?a_fonction / ?est_humain * 100.0 AS ?pct_fonction)
(COUNT(DISTINCT ?item_a_langueoeuvre) AS ?a_langueoeuvre) (?a_langueoeuvre / ?est_oeuvre * 100.0 AS ?pct_langueoeuvre)
(COUNT(DISTINCT ?oeuvre_est_fr) AS ?est_fr) (?est_fr / ?est_oeuvre * 100.0 AS ?pct_fr)
(COUNT(DISTINCT ?oeuvre_est_en) AS ?est_en) (?est_en / ?est_oeuvre * 100.0 AS ?pct_en)
WITH
{
SELECT DISTINCT ?item
WHERE
{
# Trouver les éléments avec le CQT en référence
?autre_statement pr:P248 wd:Q100443909 .
?statement prov:wasDerivedFrom ?autre_statement .
# Quelles propriétés sont sourcées par le CQT
?property a wikibase:Property ;
wikibase:claim ?ppp .
?item ?ppp ?statement .
}
}
AS %items_CQT
WHERE
{
INCLUDE %items_CQT
OPTIONAL
{
?item wdt:P463 wd:Q64402570 .
BIND (?item AS ?membre_CQT)
}
OPTIONAL
{
?item (wdt:P17 | wdt:P27) ?pays .
BIND (?item AS ?item_a_pays)
}
OPTIONAL
{
?item wdt:P18 ?image .
BIND (?item AS ?item_a_image)
}
OPTIONAL
{
?item wdt:P625 ?géolocalisé .
BIND (?item AS ?item_est_géolocalisé)
}
OPTIONAL
{
?item wdt:P131 ?localisation .
BIND (?item AS ?item_a_localisation)
}
OPTIONAL
{
?item wdt:P856 ?siteweb .
BIND (?item AS ?item_a_siteweb)
}
OPTIONAL
{
?item wdt:P1083 ?capacité .
BIND (?item AS ?item_a_capacité)
}
OPTIONAL
{
?item wdt:P31 / wdt:P279* wd:Q43229 .
hint:Prior hint:gearing "forward" .
BIND (?item AS ?item_est_organisation)
}
OPTIONAL
{
?item wdt:P31 / wdt:P279* wd:Q43229 ;
(wdt:P1037|wdt:P169|wdt:P8938) ?direction .
BIND (?item AS ?organisation_a_direction)
}
OPTIONAL
{
?item wdt:P31 / wdt:P279* wd:Q43229 ;
(wdt:P1037|wdt:P169|wdt:P8938) ?direction .
?direction wdt:P21 wd:Q6581072 .
BIND (?item AS ?directionféminin)
}
OPTIONAL
{
?item wdt:P31 / wdt:P279* wd:Q43229 ;
(wdt:P1037|wdt:P169|wdt:P8938) ?direction .
?direction wdt:P21 wd:Q6581097 .
BIND (?item AS ?directionmasculin)
}
OPTIONAL
{?item wdt:P31/wdt:P279* wd:Q43229 ;
wdt:P571 ?fondation .
BIND (?item AS ?organisation_a_fondation)
}
OPTIONAL
{?item wdt:P31/wdt:P279* wd:Q43229 ;
wdt:P571 ?fondation .
BIND(YEAR(NOW()) AS ?year)
FILTER (?year - YEAR(?fondation) >= 10) #10 ans et plus
BIND (?item AS ?organisation_plusde10ans)
}
OPTIONAL
{?item wdt:P31/wdt:P279* wd:Q43229 ;
wdt:P571 ?fondation .
BIND(YEAR(NOW()) AS ?year)
FILTER (?year - YEAR(?fondation) <= 5) #5 ans et moins
BIND (?item AS ?organisation_moinsde5ans)
}
OPTIONAL
{
?item wdt:P31 / wdt:P279* wd:Q386724 .
hint:Prior hint:gearing "forward" .
BIND (?item AS ?item_est_oeuvre)
}
OPTIONAL
{
?item wdt:P31 wd:Q5 .
BIND (true AS ?item_est_humain)
}
OPTIONAL
{
?item wdt:P31 wd:Q5.
minus {?item wdt:P21 ?sexe .}
BIND (true AS ?item_est_nonsexué)
}
OPTIONAL
{
?item wdt:P21 wd:Q6581072 .
BIND (true AS ?item_est_féminin)
}
OPTIONAL
{
?item wdt:P21 wd:Q6581097 .
BIND (true AS ?item_est_masculin)
}
OPTIONAL
{
?item wdt:P569 ?naissance .
BIND (?item AS ?item_a_naissance)
}
OPTIONAL
{
?item wdt:P570 ?mort .
BIND (?item AS ?item_a_mort)
}
OPTIONAL
{
?item wdt:P551 ?résidence .
BIND (?item AS ?item_a_résidence)
}
OPTIONAL
{
?item wdt:P937 ?lieutravail .
BIND (?item AS ?item_a_lieutravail)
}
OPTIONAL
{
?item (p:P569/psv:P569|p:P570/psv:P570) [wikibase:timePrecision ?datePrecision; wikibase:timeValue ?naissance ] .
filter(?datePrecision=8)
BIND (?item AS ?date_décennie)
}
OPTIONAL
{
?item wdt:P106 ?occupation .
BIND (?item AS ?item_a_occupation)
}
OPTIONAL
{
?item wdt:P1412 ?langue .
BIND (?item AS ?item_a_langue)
}
OPTIONAL
{
?item wdt:P39 ?fonction .
BIND (?item AS ?item_a_fonction)
}
OPTIONAL
{
?item wdt:P407 ?langueoeuvre .
BIND (?item AS ?item_a_langueoeuvre)
}
OPTIONAL
{
?item wdt:P407 wd:Q150 .
BIND (?item AS ?oeuvre_est_fr)
}
OPTIONAL
{
?item wdt:P407 wd:Q1860 .
BIND (?item AS ?oeuvre_est_en)
}
}
#décompter des natures fortement peuplées = utiliser *
SELECT (COUNT(*) AS ?count)
{
?item wdt:P31 wd:Q5 .
}
#tous les éléments avec une référence spécifique
SELECT DISTINCT ?item ?itemLabel ?natureLabel {
?item ?prop ?statement .
?statement prov:wasDerivedFrom ?ref.
?ref pr:P248 wd:Q111136998 .
?item p:P31 ?value .
?value ps:P31 ?nature .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#tous les éléments avec une référence au RQD, en évitant les doublons de nature.
SELECT ?item ?itemLabel (GROUP_CONCAT(DISTINCT ?natureLabel_;separator="; ") as ?natureLabel) {
?item ?prop ?statement .
?statement prov:wasDerivedFrom ?ref.
?ref pr:P248 wd:Q112601887 .
?item p:P31 ?value .
?value ps:P31 ?nature .
?item wdt:P463 wd:Q3423698 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
?item rdfs:label ?itemLabel .
?nature rdfs:label ?natureLabel_ .}
} group by ?item ?itemLabel
#terrains de baseball au Québec, avec une seule image par élément
SELECT ?lieu ?lieuLabel ?villeLabel ?coordonnées (SAMPLE(?image) AS ?sampleImage) WHERE {
VALUES ?type { wd:Q595452 wd:Q483110 } # Soit un stade spécifique de baseball (Q595452) soit un stade général (Q483110)
?lieu wdt:P31 ?type; # Instance de l'un des types spécifiés
wdt:P17 wd:Q16; # Situé au Canada
wdt:P131 ?ville; # Situé dans la ville
wdt:P18 ?image. # A une image
?ville wdt:P131* wd:Q176; # La ville est située dans le Québec
OPTIONAL { ?lieu wdt:P625 ?coordonnées. } # Coordonnées géographiques (optionnel)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?lieu ?lieuLabel ?villeLabel ?coordonnées
#terrains de baseball au Québec regroupant ensemble toutes les images d'un élément, séparées chacune par une virgule
SELECT DISTINCT ?lieu ?lieuLabel ?villeLabel ?coordonnées (GROUP_CONCAT(?image; SEPARATOR=", ") AS ?images) WHERE {
VALUES ?type { wd:Q595452 wd:Q483110 } # Soit un stade spécifique de baseball (Q595452) soit un stade général (Q483110)
?lieu wdt:P31 ?type; # Instance de l'un des types spécifiés
wdt:P17 wd:Q16; # Situé au Canada
wdt:P131 ?ville; # Situé dans la ville
wdt:P18 ?image. # A une image
?ville wdt:P131* wd:Q176; # La ville est située dans le Québec
OPTIONAL { ?lieu wdt:P625 ?coordonnées. } # Coordonnées géographiques (optionnel)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?lieu ?lieuLabel ?villeLabel ?coordonnées
Labels, descriptions et alias edit
#Lister des éléments sans label
SELECT DISTINCT ?item ?label_CODE DE LANGUE SOURCE WHERE {
?item wdt:P31 wd:QÉLÉMENT RECHERCHÉ .
?item rdfs:label ?label_CODE DE LANGUE SOURCE filter(lang(?label_CODE DE LANGUE SOURCE) = "CODE DE LANGUE SOURCE>") .
MINUS { ?item rdfs:label ?label_CODE DE LANGUE SANS LABEL filter(lang(?label_CODE DE LANGUE SANS LABEL) = "<CODE DE LANGUE SANS LABEL>") . }
}
LIMIT 1000
#Actrices sans description en français
#added before 2016-10
SELECT DISTINCT ?item ?itemLabel
WHERE
{
?item wdt:P106 wd:Q33999 .
?item wdt:P21 wd:Q6581072 .
OPTIONAL { ?item schema:description ?itemDescription }
FILTER(LANG(?itemDescription) IN ("fr")).
FILTER (!BOUND(?itemDescription))
?item wdt:P31 wd:Q5 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr"}
}
LIMIT 1000
#Alias DE d'éléments d'ADB
SELECT distinct ?item ?label
WHERE
{ ?item wdt:P361 wd:Q590208 ;
skos:altLabel ?label .
FILTER(LANG(?label) = "de").
FILTER CONTAINS(?label, "Lde")
}
#Éléments liés à Universalis et qui contiennent un certain label
SELECT DISTINCT ?person ?label (LANG(?label) AS ?lang)
WHERE
{
?person wdt:P3219 [];
rdfs:label ?label.
FILTER(LANG(?label) IN ("en", "es", "fr", "de")). # tweak to taste
FILTER(CONTAINS(?label, "(exposition")).
}
#description particulière dans une langue donnée
SELECT DISTINCT ?item ?label
WHERE
{
?item schema:description "DESCRIPTION"@CODE DE LANGUE.
OPTIONAL {
?item rdfs:label ?label.
FILTER(LANG(?label) = "CODE DE LANGUE DU LABEL").
}
}
#Série télévisée des États-Unis qui contient la description "television series" en anglais, qui n'est pas une téléréalité et qui n'a pas de description en français
SELECT DISTINCT ?item ?label
WHERE
{MINUS {?item (wdt:P136BARREVERTICALEwdt:P31) wd:Q182415.}
?item schema:description "television series"@en.
FILTER(LANG(?label) = "en").
OPTIONAL {
?item rdfs:label ?label.
?item wdt:P31 wd:Q5398426 ;
wdt:P495 wd:Q30 .
FILTER(NOT EXISTS {
?item schema:description ?itemdesc.
FILTER(LANG(?itemdesc) = "fr")
})
}
}
#Cours d'eau de l'Inde sans label en français en ordre décroissant d'interwikis
SELECT DISTINCT ?item ?label_en ?linkcount WHERE {
?item wdt:P31 wd:Q4022 .
?item wdt:P17 wd:Q668 .
?item wikibase:sitelinks ?linkcount .
?item rdfs:label ?label_en filter(lang(?label_en) = "en") .
MINUS { ?item rdfs:label ?label_fr filter(lang(?label_fr) = "fr") . }
}
GROUP BY ?item ?label_en ?linkcount
ORDER BY DESC(?linkcount)
#Villages québécois ayant des noms de saints et de saintes
#defaultView:Map
SELECT DISTINCT ?item ?itemL ?coords ?layer WHERE {
?item wdt:P31/wdt:P279* wd:Q3327873 ;
wdt:P625 ?coords ;
rdfs:label ?itemL filter (lang(?itemL) = "fr") .
FILTER (STRSTARTS(?itemL, "Saint")) .
BIND(SUBSTR(?itemL,1,6) AS ?layer).
}
#Tous les établissements humains+ en Inde qui n'ont pas de description en anglais
SELECT DISTINCT ?item
WHERE
{
?item wdt:P31/wdt:P279* wd:Q486972 .
?item wdt:P17 wd:Q668 .
MINUS { ?item schema:description ?itemDescription filter(lang(?itemDescription)="en") .}
}
#Élément ayant comme pays les États-Unis et possédant une certaine EXPRESSION dans la description en français
SELECT DISTINCT ?item ?sitelink
WHERE
{
?item wdt:P17 wd:Q30 .
?item schema:description ?sitelink
FILTER(LANG(?sitelink) IN ("fr")).
FILTER ( REGEX(?sitelink, "^.*EXPRESSION.*") )
}
#articles scientifiques publié dans un certain périodique et dont le titre en anglais commence par [ et se termine par ]
SELECT ?item ?label ?pub
WHERE {
?item wdt:P31 wd:Q13442814 ;
rdfs:label ?label ;
#wdt:P407 ?lang ;
wdt:P1433 wd:Q15751978 ;
wdt:P1433 ?pub .
?item wdt:P698 ?pmid.
FILTER(LANG(?label) = "en")
FILTER(STRSTARTS(?label, "[")).
FILTER(STRENDS(?label, "].")).
}
#Livres ayant un titre dans une certaine langue sans étiquette dans cette langue.
SELECT ?item ?lang ?title WHERE {
?item wdt:P31/wdt:P279* wd:Q571 ; # Q571 for book
wdt:P1476 ?title .
BIND(LANG(?title) as ?lang) FILTER (?lang != "und")
FILTER (NOT EXISTS{ ?item rdfs:label ?itemLabel. FILTER(lang(?itemLabel) = ?lang) })
}
#Trouver des labels sans TIMEOUT grâce à mwapi
SELECT distinct ?item ?label
WHERE
{
SERVICE wikibase:mwapi
{
bd:serviceParam wikibase:endpoint "www.wikidata.org";
wikibase:api "Generator";
mwapi:generator "search";
mwapi:gsrsearch "inlabel:Simon @fr";
mwapi:gsrlimit "max".
?item wikibase:apiOutputItem mwapi:title.
}
?item rdfs:label ?label.
?item wdt:P31 wd:Q5 .
FILTER CONTAINS(?label, "Simon ")
minus {?item wdt:P735 ?prénom .}
}
#La personne ayant le plus grand nombre d'enfants portant le même nom qu'elle
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?person ?personLabel (COUNT(distinct ?descendant) AS ?count)
WHERE {
?person wdt:P31 wd:Q5; # être un humain
wdt:P40 ?descendant.
?person rdfs:label ?personLabel.
?descendant rdfs:label ?descendantLabel.
FILTER (?personLabel = ?descendantLabel)
}
GROUP BY ?person ?personLabel
ORDER BY DESC(?count)
#La plus longue lignée de jr.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT ?person1 ?person1Label WHERE
{
?person1 wdt:P31 wd:Q5.
?person1 rdfs:label ?person1Label.
?person1 wdt:P40 ?person2.
?person2 rdfs:label ?person2Label.
FILTER (?person1Label = ?person2Label)
?person2 wdt:P40 ?person3.
?person3 rdfs:label ?person3Label.
FILTER (?person1Label = ?person3Label)
?person3 wdt:P40 ?person4.
?person4 rdfs:label ?person4Label.
FILTER (?person1Label = ?person4Label)
?person4 wdt:P40 ?person5.
?person5 rdfs:label ?person5Label.
FILTER (?person1Label = ?person5Label)
?person5 wdt:P40 ?person6.
?person6 rdfs:label ?person6Label.
FILTER (?person1Label = ?person6Label)
}
Wikipédias edit
#Articles sur des humains de en sans page fr
PREFIX schema: <http://schema.org/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT * WHERE {
?q wdt:P31/wdt:P279* wd:Q5 .
?pageEN schema:about ?q ;
schema:isPartOf <https://en.wikipedia.org/> .
MINUS {
?pageFR schema:about ?q ;
schema:isPartOf <https://fr.wikipedia.org/> .
}
}
#Supernovas et sous-classes de possédant un lien vers au moins une version linguistique de Wikipédia
select distinct ?item where {
?item wdt:P31/wdt:P279* wd:Q3937 {?article schema:about ?item .
filter(contains(str(?article), 'wikipedia')).}
#Éléments Wikidata liés à Ayiti et qui ne possèdent pas de lien vers frwiki
SELECT DISTINCT ?linkcount ?item ?itemLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
{?item wdt:P17 wd:Q790.}
UNION {?item wdt:P131/wdt:P131* wd:Q790 .} UNION {?item wdt:P27 wd:Q790}
?item wikibase:sitelinks ?linkcount .
OPTIONAL {?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> .}
FILTER (!BOUND(?article))
}
ORDER BY DESC(?linkcount)
LIMIT 200
#Éléments Wikidata liés à des personnalités féminines d'Ayiti et qui ne possèdent pas de lien vers frwiki
SELECT DISTINCT ?linkcount ?item ?itemLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
?item wdt:P21 wd:Q6581072.
?item wdt:P27 wd:Q790.
?item wikibase:sitelinks ?linkcount .
OPTIONAL {?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> .}
FILTER (!BOUND(?article))
}
ORDER BY DESC(?linkcount)
LIMIT 200
#Éléments présent sur au moins une version linguistique de Wikipédia, mais par sur frwiki. Pour préciser la recherche, enlevez un dièse (#) à la fois.
#Le premier dièse réfère à pays = Canada
#Le deuxième dièse réfère à pays de nationalité = Canada
#Le troisième dièse réfère à pays d'origine = Canada
#Le quatrième réfère à localisation administrative = Québec
SELECT DISTINCT ?itemLabel ?itemDescription ?item WHERE
{
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
#?item wdt:P17 wd:Q16 .
#?item wdt:P27 wd:Q16 .
#?item wdt:P495 wd:Q16 .
#?item wdt:P131* wd:Q176 .
?item wikibase:sitelinks ?linkcount .
FILTER (?linkcount >= 1)
OPTIONAL {?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> .}
FILTER (!BOUND(?article))
}
#title:Éléments sans propriété liés à Wikipédia en français
select ?itemLabel ?item
where {
{
select distinct ?item
where{
?item wikibase:statements 0 .
[] schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/>.
}
}
service wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Encyclopédies, dictionnaires et bibliothèques edit
#Personnalités ayant une entrée sur le Dictionnaire biographique du Canada liée sur Wikidata, mais qui n'ont pas d'article en français
SELECT DISTINCT ?item WHERE {?item wdt:P31 wd:Q5 .
?item wdt:P27 wd:Q16 .
FILTER EXISTS {?item wdt:P2753 [] }
OPTIONAL { ?sitelink schema:about ?item . ?sitelink schema:inLanguage "fr" }
FILTER (!BOUND(?sitelink)) }
#Requête permettant d'obtenir des statistiques
#concernant les entrées de Britannica et d'Universalis.
#Pour rendre opérante la requête, enlevez, au début
#de la ligne, du dièse (#) jusqu'à l'expression ?item
#Pour des requêtes qui dépassent les capacités de l'outil
#(le message « Limite du temps de requête atteinte » s'affiche), remplacez
#la première ligne (SELECT ?item ?itemLabel...[AUTO_LANGUAGE],fr" })
#par SELECT (COUNT(?item) AS ?count) WHERE {
SELECT DISTINCT ?itemLabel ?itemDescription ?item WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
##Si excède capacités de l'outil SELECT DISTINCT (COUNT(?item) AS ?count) WHERE {
#Britannica ?item wdt:P1417 ?britannica .
#Universalis ?item wdt:P3219 ?universalis .
#localités ?item wdt:P31/wdt:P279* wd:Q486972 .
#êtres humains ?item wdt:P31 wd:Q5 .
#femmes ?item wdt:P21 wd:Q6581072 .
#hommes ?item wdt:P21 wd:Q6581097 .
#Allemand-e-s ?item wdt:P27 wd:Q183 .
#Américain-e-s ?item wdt:P27 wd:Q30 .
#Belges ?item wdt:P27 wd:Q31 .
#Britanniques ?item wdt:P27 wd:Q145 .
#Canadien-ne-s ?item wdt:P27 wd:Q16 .
#Chinois-e-s ?item wdt:P27 wd:Q148 .
#Français-e-s ?item wdt:P27 wd:Q142 .
#Japonais-e-s ?item wdt:P27 wd:Q17 .
#Russes ?item wdt:P27 wd:Q159 .
#Russes (1721-1917) ?item wdt:P27 wd:Q34266 .
#Soviétiques ?item wdt:P27 wd:Q15180 .
#Suisse-sse-s ?item wdt:P27 wd:Q39 .
#musicien-ne-s ?item wdt:P106/wdt:P279* wd:Q639669 .
#artistes ?item wdt:P106/wdt:P279* wd:Q483501 .
#scientifiques ?item wdt:P106/wdt:P279* wd:Q901 .
#personnalité politique ?item wdt:P106/wdt:P279* wd:Q82955 .
#lien vers une version linguistique OPTIONAL {?article schema:about ?item ; schema:isPartOf <https://CODE_LANGUE.wikipedia.org/> .}
##sans lien vers une version linguistique FILTER (!BOUND(?article))
#lier au numéro des éléments Wikidata situé entre BORNE_INFÉRIEURE et BORNE_SUPÉRIEURE BIND( xsd:integer( STRAFTER( STR( ?item ), STR( wd:Q ) ) ) AS ?num ) . FILTER( BORNE_INFÉRIEURE < ?num && ?num < BORNE_SUPÉRIEURE ) .
}
#Classer par VARIABLE. ORDER BY ?VARIABLE
#Si temps limite atteint, limiter les résultats à X. LIMIT X
#Si temps limite atteint, fractionner les résultats en sautant les X premiers et en affichant les Y suivants. OFFSET X LIMIT Y
}
- Éléments ayant un lien vers Britannica et pas d'article sur frwiki, en limitant le nombre de résultats à 4,000 et en sautant les 4,000 premiers résultats.
SELECT DISTINCT ?item ?itemLabel WHERE { SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
?item wdt:P1417 [] .
OPTIONAL {?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> .}
FILTER (!BOUND(?article))
}
OFFSET 4000 LIMIT 4000
- 200 éléments aléatoire avec une propriété P1417 et leur lien vers Britannica
SELECT DISTINCT ?item ?itemLabel ?burl WITH {
SELECT DISTINCT ?item ?burl WHERE {
wd:P1417 wdt:P1630 ?formaturl .
?item wdt:P1417 ?bid .
BIND(IRI(REPLACE(?bid, '^(.+)$', ?formaturl)) AS ?burl).
}
ORDER BY MD5(CONCAT(STR(?item),STR(RAND())))
LIMIT 200
} AS %results WHERE {
INCLUDE %results.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Toutes les bibliothèques du Québec
SELECT DISTINCT distinct ?item ?itemLabel ?locatedLabel WHERE {
?item wdt:P31/wdt:P279* wd:Q7075 .
?item wdt:P17 wd:Q16.
?item wdt:P131/wdt:P131* wd:Q176 .
?item wdt:P131 ?located.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Évaluer le contenu de genre masculin et féminin d'encyclopédies diverses (TIMEOUT)
select ?property ?propertyLabel ?propertyDescription
(group_concat(concat(str(?sexe_label_final),
": ",
str(?effectif), " ",
"(", str(round(?effectif / sum(?effectif) * 100)), "%",")") ; separator=" - ") as ?sexes)
(sum(?effectif) as ?total)
with {
select ?property ?sexe (count(?person) as ?effectif)
{
?property rdf:type wikibase:Property ;
wdt:P31/wdt:P279* wd:Q55452870 ;
wikibase:directClaim ?propertyMainValue .
?person ?propertyMainValue [] ;
wdt:P31 wd:Q5 .
optional {
?person wdt:P21 ?sexe2 .
bind(if(isBlank(?sexe2), "inconnu", ?sexe2) as ?sexe3)
}
bind(if(!bound(?sexe3), "non specifié", ?sexe3) as ?sexe)
} group by ?property ?sexe
order by ?property ?sexe
} as %dataset
where {
{
select ?property ?propertyLabel ?propertyDescription ?sexe ?sexe_label_final ?effectif{
include %dataset .
optional { ?sexe rdfs:label ?label_sexe filter langmatches(lang(?label_sexe), "fr") }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
bind (if(bound(?label_sexe), ?label_sexe, ?sexe) as ?sexe_label_final)
}
}
bind( (?effectif / ?total ) as ?pourcent)
} group by ?property ?propertyLabel ?propertyDescription
Géographiques edit
#La plus grande distance entre un lieu de naissance et un lieu de mort
select distinct ?itemLabel ?distance ?item where {
{select distinct ?item ?distance where {
?item wdt:P31 wd:Q5 ;
wdt:P19/wdt:P625 ?lieunaissance ;
wdt:P20/wdt:P625 ?lieumort .
bind(geof:distance(?lieunaissance, ?lieumort) as ?distance)
filter(?distance > 19000)
}limit 200
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
order by desc (?distance)
#articles anglais, français et anglais-français géolocalisés au Nouveau-Brunswick
#defaultView:Map{"hide":["?rgb","?layer"]}
SELECT ?item ?coord ?en ?fr ?layer ?rgb WHERE {
?item wdt:P17 wd:Q16;
(wdt:P131*) wd:Q1965;
wdt:P625 ?coord.
OPTIONAL {
?en schema:about ?item;
schema:isPartOf <https://en.wikipedia.org/>.
}
OPTIONAL
{
?fr schema:about ?item;
schema:isPartOf <https://fr.wikipedia.org/>.
}
FILTER(BOUND(?en)|| BOUND(?fr))
BIND (if(BOUND(?en) && BOUND(?fr),"ff0000",if(BOUND(?en),"00ff00",if(BOUND(?fr),"0000FF","000000" ))) as ?rgb)
BIND (if(BOUND(?en) && BOUND(?fr),"EN & FR",if(BOUND(?en),"EN",if(BOUND(?fr),"FR","NIL" ))) as ?layer)
}
Qualificatifs edit
#Éléments ayant au moins un qualificatif pour une entrée de P39 spécifique
SELECT distinct ?item ?itemLabel ?itemDescription WHERE {
?item p:P39 ?award_statement .
?award_statement ps:P39 wd:Q15964890 . #personnalité politique fédérale canadienne
?award_statement ?pq_pred ?pq_obj . # a triple involving the award statement ...
?prop wikibase:qualifier ?pq_pred . # ... with a predicate ?pq_pred that is a qualifier
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Élément ayant deux mêmes fonctions dont l'une possède au moins un qualificatif
SELECT DISTINCT ?item ?itemLabel WHERE {
?item p:P39 ?s1 .
?s1 ps:P39 wd:Q15964890 .
FILTER NOT EXISTS {
?s1 ?pq1 [] .
[] wikibase:qualifier ?pq1 .
}
?item p:P39 [ ps:P39 wd:Q15964890; ?pq2 [] ] .
?qualifier wikibase:qualifier ?pq2 .
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
#Élément ayant deux mêmes fonctions avec un qualificatif commun
SELECT DISTINCT ?item ?itemLabel WHERE {
?item p:P39 ?s1 .
?s1 ps:P39 wd:Q15964890 .
?s1 pq:P2937 wd:Q2816456 .
?item p:P39 ?s2 .
?s2 ps:P39 wd:Q15964890 .
?s2 pq:P2937 wd:Q2816456 .
filter (?s1 != ?s2)
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
#Élément ayant deux mêmes qualificatifs pour deux mêmes fonctions
SELECT DISTINCT ?item ?itemLabel ?v1Label ?v2Label WHERE {
?item p:P39 ?s1 .
?s1 ps:P39 wd:Q15964890 .
?s1 pq:P2937 ?v1 .
?item p:P39 ?s2 .
?s2 ps:P39 wd:Q15964890 .
?s2 pq:P2937 ?v2 .
filter (?v1 = ?v2)
filter (?s1 != ?s2)
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
#Élément ayant deux qualificatifs différents pour une même propriété et fonction
SELECT DISTINCT ?item ?itemLabel ?v1Label ?v2Label WHERE {
?item p:P39 ?s1 .
?s1 ps:P39 wd:Q15964890 .
?s1 pq:P2937 ?v1 .
?item p:P39 ?s2 .
?s2 ps:P39 wd:Q15964890 .
?s2 pq:P2937 ?v2 .
filter (?v1 != ?v2)
filter (?s1 = ?s2)
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
#Êtres humains qui ont 6 mois entre leur mois de naissance et leur mois de mort.
SELECT DISTINCT ?itemLabel ?item WHERE {
{select distinct ?item where{
?item wdt:P31 wd:Q5 ;
p:P569/psv:P569 [wikibase:timePrecision ?datePrecision1; wikibase:timeValue ?naissance] ;
p:P570/psv:P570 [wikibase:timePrecision ?datePrecision2; wikibase:timeValue ?mort ].
filter(?datePrecision1>10)
filter(?datePrecision2>10)
bind(month(?mort) - month(?naissance) as ?mois)
bind(day(?mort) - day(?naissance) as ?jour)
FILTER(abs(?mois) = 6)
FILTER(?jour = 0)
}limit 100 }
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".}
}
order by ?itemLabel
#tous les éléments utilisant une certaine référence, ainsi que le chemin y menant
SELECT ?item ?itemLabel ?property ?propertyLabel ?value ?valueLabel ?statement
WHERE
{
?item ?ppp ?statement . # there is a triple having ?statement as its object
?statement ?qqq ?value. # there is a triple having ?statement as its subject
# we need ?ppp to be a p:Pnnn and ?qqq to be a ps:Pnnn predicate
# so that we know we're in the right part of the data model to be able
# to test for a property statement reference. So...
?property a wikibase:Property ; # there is a property
wikibase:claim ?ppp ; # which has a predicate in the form p:Pnnn and an object ?ppp
# so the variable ?ppp is a p:Pnnn predicate, and ?statement must be a property statement
wikibase:statementProperty ?qqq . # and which has a predicate in the form of ps:Pnnn and an object ?qqq
# so the variable ?qqq is a ps:Pnnn predicate, and ?value must be the value for this property statement
?statement prov:wasDerivedFrom ?autre_statement. #d'après la source ... # and as you know, the property statement has at least one reference
?autre_statement pr:P248 wd:Q100443909 . # and the reference is 'stated in' 'Q100443909'
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Références edit
#Les éléments ayant pour pays le Canada et qui possèdent une entrée pour la propriété P239 sourcée à partir de mswiki
select distinct ?item ?itemLabel ?ICAO
WHERE
{
?item wdt:P17 wd:Q16 .
?item p:P239 ?statement .
?statement ps:P239 ?ICAO.
?statement prov:wasDerivedFrom ?from.
?from pr:P143 wd:Q845993.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO LANGUAGE],en". }
} order by ?itemLabel
#Les éléments humains ayant un sexe déduit du prénom
select distinct ?item ?itemLabel ?sexLabel
WHERE
{
?item wdt:P31 wd:Q5 .
?item p:P21 ?statement .
?statement ps:P21 ?sex.
?statement prov:wasDerivedFrom ?from.
?from pr:P3452 wd:Q202444.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO LANGUAGE],en". }
} order by ?itemLabel
#Les éléments humains ayant un sexe déduit du prénom + déterminé par l'heuristique déduit du prénom. ~195 000 résultats
select distinct ?item ?itemLabel ?sexLabel
WHERE
{
?item wdt:P31 wd:Q5 .
?item p:P21 ?statement .
?statement ps:P21 ?sex.
?statement prov:wasDerivedFrom ?from.
{{?from pr:P3452 wd:Q202444.} union {?from pr:P887 wd:Q69652498.}}
}
Chercheurs edit
#Auteurices d'articles scientifiques et membres de l'UAI
select distinct ?auteur ?auteurLabel ?UAI ?sexeLabel (count (DISTINCT ?item) as ?nbrarticles) where {
?item wdt:P31 wd:Q13442814 ;
wdt:P50 ?auteur .
?auteur wdt:P9467 ?UAI ;
optional {?auteur wdt:P21 ?sexe .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
group by ?auteur ?auteurLabel ?UAI ?sexeLabel ?nbrarticles
order by desc (?nbrarticles)
Divers edit
#avoir un lien cliquable dans les résultats
SELECT DISTINCT ?item (URI(REPLACE(?p1630,'\\$1',?id)) AS ?url) WHERE
{
wd:P4606 p:P1630 [ ps:P1630 ?p1630 ; pq:P407 wd:Q1860 ] . # change Q1860 to Q150 if you prefer the French url
?item wdt:P4606 [] .
?item p:P4606 ?statement .
?statement ps:P4606 ?id .
MINUS {?statement pq:P407 [] . }
}
#Les différentes lignes du métro de Montréal, actuelles, à venir ou en projet
#defaultView:Map{"layer": "?lineLabel", "hide": ["?rgb", "?coord"]}
SELECT ?station ?stationLabel ?line ?lineLabel ?rgb ?coord ?image
WHERE {
?line wdt:P361 wd:Q392377.
OPTIONAL { ?line wdt:P465 ?rgb. }
?station wdt:P81 ?line;
wdt:P625 ?coord.
OPTIONAL {?station wdt:P18 ?image}
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
}
#Tous les humains avec un prénom masculin
SELECT DISTINCT ?item ?itemlabel WHERE {SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr" }
?item wdt:P31 wd:Q5 .
?item wdt:P735 ?prenom .
?prenom wdt:P31 wd:Q12308941 .
?prenom wdt:P31 ?masculin .
}
LIMIT 1000
#Tous les éléments du Canada ayant un site web officiel dont la langue n'est pas précisée
SELECT DISTINCT ?item ?url WHERE
{
?item wdt:P17 wd:Q16 .
?item p:P856 ?statement .
?statement ps:P856 ?url .
MINUS {?statement pq:P407 [] . }
}
#Tous les items qui sont produits en plus d'une langue et dont (un/un de ses) site-s web (est/sont) qualifié-s d'anglais.
SELECT DISTINCT ?item ?itemLabel ?count
WHERE
{
{
SELECT DISTINCT ?item (COUNT(DISTINCT ?lang) AS ?count) WHERE
{
?item wdt:P407 ?lang .
?item p:P856 ?statement .
?statement ps:P856 ?url .
?statement pq:P407 wd:Q1860 .
}
GROUP BY ?item
}
FILTER ( ?count > 1 )
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}
ORDER BY DESC(?count) ?itemL
#Site officiels ayant une certaine expression dans l'URL. La fonction regex \ habituelle doit être doublée (\\)
SELECT DISTINCT ?item ?sitelink
WHERE
{
?item wdt:P856 ?sitelink .
FILTER ( REGEX(str(?sitelink), "^.*EXPRESSION.*") )
}
#personnalités canadiennes mortes en 1969 et nées ou mortes au Québec
SELECT DISTINCT ?item ?itemLabel ?mort WHERE {
?item wdt:P31 wd:Q5 ;
wdt:P27 wd:Q16 ;
wdt:P570 ?mort;
filter (?mort > "1969-01-01"^^xsd:dateTime && ?mort < "1970-01-01"^^xsd:dateTime)
{?item wdt:P19/wdt:P131* wd:Q176 .} UNION {?item wdt:P20/wdt:P131* wd:Q176 .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr,en". }
}
ORDER BY (?mort)
#Tous les livres en anglais qui n'ont pas la propriété "titre"
SELECT DISTINCT ?item ?itemLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "en"}
?item wdt:P407 wd:Q1860 ;
wdt:P31 wd:Q571 ;
MINUS {?item wdt:P1476 [].}
}
#Éléments dont la cause/circonstance du décès implique un accident de la route ou une sous-classe d'accident de la route
SELECT DISTINCT ?person ?personLabel
WHERE
{
?person (wdt:P509|wdt:P1196)/wdt:P31?/wdt:P279* wd:Q9687 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Valeurs inadéquates pour P26
SELECT DISTINCT ?item ?itemLabel ?invalideLabel WHERE {?item wdt:P26 ?invalide . ?invalide wdt:P31/wdt:P279* wd:Q82799 . SERVICE wikibase:label {bd:serviceParam wikibase:language "en" . } } #Q179115 Q212878 Q188830 Q19798647 Q4233718 P31 Q4167410 Q82799
#Mieux ?
SELECT DISTINCT ?item ?itemLabel ?conjoint ?conjointLabel WHERE {?item wdt:P26 ?conjoint MINUS {{?item wdt:P31/wdt:P279* wd:Q5 .} UNION {?item wdt:P31/wdt:P279* wd:Q4271324 .} UNION {?item wdt:P31/wdt:P279* wd:Q95074 .} UNION {?item wdt:P31/wdt:P279* wd:Q215627 .}} SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } }
#Les URL anglais des P4606 dont la langue n'est pas spécifiée.
SELECT DISTINCT ?item (URI(REPLACE(?p1630,'\\$1',?id)) AS ?url) WHERE
{
wd:P4606 p:P1630 [ ps:P1630 ?p1630 ; pq:P407 wd:Q1860 ] . # change Q1860 to Q150 if you prefer the French url
?item wdt:P4606 [] .
?item p:P4606 ?statement .
?statement ps:P4606 ?id .
MINUS {?statement pq:P407 [] . }
}
#Dénombrer des élément d'une propriété, ici P570, par mois et année. La précision se définit ainsi : CHIFFRE où 6 = millénaire 7 = siècle 8 = décennie 9 = année, 10 = mois, 11 = jour, ANNÉE sous la forme AAAA, MOIS sous la forme MM, JOUR sous la forme JJ
SELECT DISTINCT ?itemLabel ?mort ?item WHERE {
?item p:P570/psv:P570 [wikibase:timePrecision ?datePrecision; wikibase:timeValue ?mort ] .
filter(?datePrecision>CHIFFRE)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
FILTER(year(?mort) = ANNÉE)
FILTER(month(?mort) = MOIS)
FILTER(day(?mort) = JOUR)
}
#Deux propriétés possédant la même valeur
SELECT DISTINCT ?item WHERE {
?item wdt:PROPRIÉTÉ1 ?NOM1.
?item wdt:PROPRIÉTÉ2 ?NOM2.
FILTER(?NOM1 = ?NOM2).
#defaultView:ImageGrid
SELECT DISTINCT ?itemLabel ?item ?film WHERE {
?item wdt:P31/wdt:P279* wd:Q11424; wdt:P10 ?film; wikibase:sitelinks ?linkcount .
FILTER(REGEX(STR(?film), '[Tt]railer') = false) .
SERVICE wikibase:label {bd:serviceParam wikibase:language '[AUTO_LANGUAGE],en' }
} ORDER BY DESC (?linkcount) LIMIT 100
#Liste de chien par ordre décroissant d'âge en années
SELECT DISTINCT ?itemLabel ?age ?item WHERE {?item wdt:P31/wdt:P279* wd:Q144 ;
wdt:P569 ?naissance ;
wdt:P570 ?mort .
FILTER(?age > 19) .
BIND((?mort - ?naissance)/365.2425 as ?age )
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } }
ORDER BY DESC (?age)
#deux entrées d'une propriété avec une certaine expression
SELECT DISTINCT ?item ?id1 ?id2 WHERE {
?item wdt:P380 ?id1 ; wdt:P380 ?id2 .
FILTER (?id1 > ?id2).
FILTER regex (?id1, "^IA").
FILTER regex (?id2, "^IA").
}
#Les cinq cent éléments les plus récents pour les films
SELECT ?item ?qid (GROUP_CONCAT( DISTINCT ?sitelink) as ?links)
(SAMPLE(?ids) as ?ids) (SAMPLE(?sl) as ?sl) (SAMPLE(?st) as ?st)
WITH
{
SELECT DISTINCT ?item ?qid
{
{ ?item wdt:P31 wd:Q11424 }
UNION
{ ?item wdt:P31 wd:Q24862 }
UNION
{ ?item wdt:P31 wd:Q506240 }
UNION
{ ?item wdt:P31 wd:Q336144 }
BIND (xsd:integer(STRAFTER(str(?item), "Q")) AS ?qid)
FILTER (?qid > 65200900) .
}
ORDER BY DESC(?qid)
LIMIT 500
} as %films
WHERE
{
INCLUDE %films
OPTIONAL { [] schema:about ?item ; schema:inLanguage ?l ; schema:name ?w2 BIND( CONCAT("[[:",?l,":",str(?w2),"|",?l,"]]") as ?sitelink) }
?item wikibase:statements ?st; wikibase:sitelinks ?sl ; wikibase:identifiers ?ids
}
GROUP BY ?item ?qid
ORDER BY DESC(?qid)
LIMIT 500
#obtenir des résultats pour deux éléments spécifiques
SELECT ?item ?itemLabel ?mother ?motherLabel WHERE {
VALUES ?item { wd:Q937 wd:Q1339 }
OPTIONAL { ?item wdt:P25 ?mother. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#variante
SELECT ?item ?itemLabel ?mother ?motherLabel ?ISNI WHERE {
VALUES ?ISNI { "0000 0001 2281 955X" "0000 0001 2276 4157" }
?item wdt:P213 ?ISNI.
OPTIONAL { ?item wdt:P25 ?mother. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
#Êtres humains non-dieux dont la taille non-dépréciée dépasse 2,25 mètres
SELECT ?taillem ?item
WHERE
{?item wdt:P31 wd:Q5 ;
p:P2048 ?valeur
minus {?valeur wikibase:rank wikibase:DeprecatedRank}.
?valeur psv:P2048 ?t .
?t wikibase:quantityAmount ?taille .
?t wikibase:quantityUnit ?unit.
?unit p:P2370 ?unitstmnode. # conversion to SI unit
?unitstmnode psv:P2370 ?unitvaluenode.
?unitvaluenode wikibase:quantityAmount ?conversion.
?unitvaluenode wikibase:quantityUnit wd:Q11573. # meter
BIND(?taille * ?conversion AS ?taillem).
filter(?taillem > 2.25)
minus {?item wdt:P31 wd:Q190 .}
}
order by desc (?taillem)
#Être humains non-dieux d'au moins 18 ans mesurant moins de 1 mètre.
SELECT DISTINCT ?taille ?item ?naissance ?date ?P585test
WHERE
{
?item wdt:P31 wd:Q5 ;
wdt:P569 ?naissance ;
p:P2048 ?t .
?t psn:P2048 ?tm ; #unité SI
rdf:type wikibase:BestRank .
optional {?t pq:P585 ?date.}
?tm wikibase:quantityAmount ?taille .
?tm wikibase:quantityUnit ?unit.
FILTER (?taille < 1) #moins de 1 mètre
BIND(YEAR(NOW()) AS ?year)
BIND(IF(!BOUND(?date),?year,YEAR(?date)) as ?P585test)
FILTER (?P585test - YEAR(?naissance) >= 18) #au moins 18 ans
FILTER( ?item NOT IN (wd:Q15397819, wd:Q13406268, wd:Q4115189, wd:Q190) ) . # bac à sable et pas un-e dieu|déesse
}
ORDER BY (?taille)
#Personnes les plus lourdes
SELECT DISTINCT ?itemLabel ?poids ?item WHERE {?item wdt:P31 wd:Q5 ;
p:P2067 ?valeur .
minus {?valeur wikibase:rank wikibase:DeprecatedRank}.
?valeur psn:P2067 [wikibase:quantityAmount ?poids; wikibase:quantityUnit ?unit] .
FILTER(?poids > 440) .
}
order by desc (?poids)
#Durée de vie moyenne par profession ayant plus de 300 éléments recensés
SELECT ?occ ?occLabel ?avgAge ?avgBirthYear ?count
WHERE
{
{
# groupe de personne avec leur âge et profession
SELECT
?occ
(count(?p) as ?count)
(round(avg(?birthYear)) as ?avgBirthYear)
(avg(?deathYear - ?birthYear) as ?avgAge)
WHERE {
{
# personnes avec Get people with occupation + birth/death dates; combine multiple birth/death dates using avg
SELECT
?p
?occ
(avg(year(?birth)) as ?birthYear)
(avg(year(?death)) as ?deathYear)
WHERE {
?p wdt:P31 wd:Q5 ;
wdt:P106 ?occ ;
p:P569/psv:P569 [
wikibase:timePrecision "9"^^xsd:integer ; # precision of at least year
wikibase:timeValue ?birth ;
] ;
p:P570/psv:P570 [
wikibase:timePrecision "9"^^xsd:integer ; # precision of at least year
wikibase:timeValue ?death ;
] .
}
GROUP BY ?p ?occ
}
}
GROUP BY ?occ
LIMIT 200
}
FILTER (?count > 300) # professions recensant plus de 300 éléments
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
}
ORDER BY ASC(?avgAge)
#humains sans sexe mais avec un prénom sexué
select distinct ?itemLabel ?item ?prenom where
{SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?item wdt:P31 wd:Q5 ;
wdt:P3280 ?AN ;
wdt:P735 ?prenom .
?prenom wdt:P31 ?nature ;
#wdt:P31 wd:Q12308941 .
wdt:P31 wd:Q11879590 .
minus {?item wdt:P21 ?sexe .}
}group by ?itemLabel ?item ?prenom having(COUNT(DISTINCT ?nature) = 1)
#différence de masse entre les partenaires d'un couple, en kg et en ordre décroissant
select ?h1Label ?h2Label ?p1 ?p2 ?diff ?h1 ?h2 where
{SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?h1 (wdt:P451| wdt:P26) ?h2 .
FILTER( STR( ?h1 ) < STR( ?h2 ) ) .
?h1 p:P2067 ?p1_ .
?p1_ psn:P2067 [wikibase:quantityAmount ?p1; wikibase:quantityUnit ?unit1] .
?h2 p:P2067 ?p2_ .
?p2_ psn:P2067 [wikibase:quantityAmount ?p2; wikibase:quantityUnit ?unit2] .
bind (abs(?p2-?p1) as ?diff)
}
order by desc (?diff)
Souhaitées edit
#un jour peut-être...
select distinct ?itemLabel ?item where {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?item wdt:P31 wd:Q13442814 ; #article scientifique
wdt:P1433 ?pub . #la revue qui l'a publié
minus {?pub wdt:P407 ?lang .} #retirer les revues dont la langue est indiquée
}
limit 10 #comment régler le timeout?
Ressources edit
Voir
- b:en:SPARQL
- mw:Wikidata Query Service/User Manual/fr
- https://tools.wmflabs.org/wdq2sparql/w2s.php, https://query.wikidata.org
- Endpoint SPARQL de rechange :
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PetScan edit
- User:Simon Villeneuve/regex
- Catégorisé, mais sans la propriété sur Wikidata : petscan:1060512
Notes et références edit
- ↑ Traduit de b:en:SPARQL/UNION
- ↑ Traduction de Wittylama