Open main menu

User:Simon Villeneuve/SPARQL

GénéralitésEdit

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. }
Expressions & fonctions
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)

Try it!

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)

Try it!

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)

Try it!

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)

Try it!

Liste de requêtesEdit

GénéralesEdit

  • 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 .
}

Exemple : 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 .
}

Try it!

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)

Try it!

  • 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É)

Try it!

  • É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)

Try it!

  • Élément dont une propriété possède un mot particulier
SELECT DISTINCT ?item ?nom WHERE
{
    ?item  wdt:P3219 ?nom . 
    FILTER regex (?nom, "exposition").
}

Try it!

#É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)

Try it!

Labels, descriptions et aliasEdit

  • 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

Try it!

  • Actrices sans description en français
#Actresses without a description in French
#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

Try it!

  • É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")).
}

Try it!

  • label particulier dans une langue donnée
SELECT DISTINCT ?item ?label
WHERE
{
  ?item schema:description "LABEL"@CODE DE LANGUE.
  OPTIONAL {
    ?item rdfs:label ?label.
    FILTER(LANG(?label) = "CODE DE LANGUE DU LABEL").
  }
}

Try it!

#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")
  })
  }
}

Try it!

  • 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)

Try it!

  • 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).
}

Try it!

#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") .}
}

Try it!

#É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.*") )
}

Try it!

#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, "].")).
}

Try it!

PetScanEdit

Template:Article connexe

Encyclopédies, dictionnaires et bibliothèquesEdit

  • 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)) }

Try it!

#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
}

Try it!

  • É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

Try it!

  • 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". }
}

Try it!

#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". }
}

Try it!

DiversEdit

#Metro lines in Montreal, Quebec, Canada
#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" . }
}

Try it!

#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

Try it!

#É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

Try it!

#É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

Try it!

#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

Try it!

#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 [] . } 
  }

Try it!

#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

Try it!

#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.*") )
}

Try it!

#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)

Try it!

#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 [].}
}

Try it!

#É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". }
}

Try it!

#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" . } }

Try it!

#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 [] . } 
}

Try it!

#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)
}

Try it!

#É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))
}

Try it!

#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).

Try it!

#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

Try it!

#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)

Try it!

RessourcesEdit

Notes et référencesEdit

  1. Traduit de b:en:SPARQL/UNION
  2. Traduction de Wittylama