Utilisateur:Gz260/Routes/RE/Wikidata/SPARQL
Apparence
Nombre de pays[modifier | modifier le code]
SELECT DISTINCT ?item ?itemLabel ?cpays WHERE {
{
SELECT DISTINCT ?item (count(?pays) as ?cpays) WHERE {
?item wdt:P31/wdt:P279* wd:Q34442 ; p:P16/ps:P16 wd:Q106123 ; wdt:P17 ?pays .
MINUS { ?item wdt:P361 ?part . ?part wdt:P16 wd:Q106123 }
} GROUP BY ?item
}
OPTIONAL { ?item wdt:P1824 ?p1824 }
BIND(STRLEN(str(?p1824)) as ?longp1824)
BIND(SUBSTR(str(?p1824),1,1) as ?statut)
BIND(SUBSTR(str(?p1824),2,(?longp1824 - 1)) as ?numero)
BIND(REPLACE(SUBSTR(str(?numero),1,4),"[A-Za-z ]","") as ?num)
BIND(STRLEN(str(?num)) as ?longnum)
BIND(CONCAT(IF(?longnum=1,"000",IF(?longnum=2,"00",IF(?longnum=3,"0",""))), str(?num)) as ?numz)
BIND(CONCAT(str(?statut),str(?num)) as ?numsp)
BIND(STRLEN(str(?numsp)) as ?longnumsp)
BIND((?longp1824 - ?longnumsp) as ?longprefixe)
BIND(SUBSTR(str(?p1824),(?longnumsp + 1),?longprefixe) as ?prefixe)
BIND(CONCAT(str(?statut),str(?numz),str(?prefixe)) as ?cledetri)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
} ORDER BY DESC(?cpays) ?cledetri
Au moins 2 pays[modifier | modifier le code]
SELECT DISTINCT ?item ?itemLabel ?cpays WHERE {
{
SELECT DISTINCT ?item (count(?pays) as ?cpays) WHERE {
?item wdt:P31/wdt:P279* wd:Q34442 ; p:P16/ps:P16 wd:Q106123 ; wdt:P17 ?pays .
MINUS { ?item wdt:P361 ?part . ?part wdt:P16 wd:Q106123 }
} GROUP BY ?item
}
FILTER (?cpays >= 2)
OPTIONAL { ?item wdt:P1824 ?p1824 }
BIND(STRLEN(str(?p1824)) as ?longp1824)
BIND(SUBSTR(str(?p1824),1,1) as ?statut)
BIND(SUBSTR(str(?p1824),2,(?longp1824 - 1)) as ?numero)
BIND(REPLACE(SUBSTR(str(?numero),1,4),"[A-Za-z ]","") as ?num)
BIND(STRLEN(str(?num)) as ?longnum)
BIND(CONCAT(IF(?longnum=1,"000",IF(?longnum=2,"00",IF(?longnum=3,"0",""))), str(?num)) as ?numz)
BIND(CONCAT(str(?statut),str(?num)) as ?numsp)
BIND(STRLEN(str(?numsp)) as ?longnumsp)
BIND((?longp1824 - ?longnumsp) as ?longprefixe)
BIND(SUBSTR(str(?p1824),(?longnumsp + 1),?longprefixe) as ?prefixe)
BIND(CONCAT(str(?statut),str(?numz),str(?prefixe)) as ?cledetri)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
} ORDER BY DESC(?cpays) ?cledetri
Un seul pays[modifier | modifier le code]
SELECT DISTINCT ?item ?itemLabel ?cpays WHERE {
{
SELECT DISTINCT ?item (count(?pays) as ?cpays) WHERE {
?item wdt:P31/wdt:P279* wd:Q34442 ; p:P16/ps:P16 wd:Q106123 ; wdt:P17 ?pays .
MINUS { ?item wdt:P361 ?part . ?part wdt:P16 wd:Q106123 }
} GROUP BY ?item
}
FILTER (?cpays = 1)
OPTIONAL { ?item wdt:P1824 ?p1824 }
BIND(STRLEN(str(?p1824)) as ?longp1824)
BIND(SUBSTR(str(?p1824),1,1) as ?statut)
BIND(SUBSTR(str(?p1824),2,(?longp1824 - 1)) as ?numero)
BIND(REPLACE(SUBSTR(str(?numero),1,4),"[A-Za-z ]","") as ?num)
BIND(STRLEN(str(?num)) as ?longnum)
BIND(CONCAT(IF(?longnum=1,"000",IF(?longnum=2,"00",IF(?longnum=3,"0",""))), str(?num)) as ?numz)
BIND(CONCAT(str(?statut),str(?num)) as ?numsp)
BIND(STRLEN(str(?numsp)) as ?longnumsp)
BIND((?longp1824 - ?longnumsp) as ?longprefixe)
BIND(SUBSTR(str(?p1824),(?longnumsp + 1),?longprefixe) as ?prefixe)
BIND(CONCAT(str(?statut),str(?numz),str(?prefixe)) as ?cledetri)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
} ORDER BY DESC(?cpays) ?cledetri
OSM (P402)[modifier | modifier le code]
SELECT DISTINCT ?item ?itemLabel ?osm (CONCAT("https://www.openstreetmap.org/relation/",?osm) AS ?url_osm) WHERE {
?item wdt:P31/wdt:P279* wd:Q34442 ; p:P16/ps:P16 wd:Q106123 ; wdt:P17 ?pays .
MINUS { ?item wdt:P361 ?part . ?part wdt:P16 wd:Q106123 }
?item wdt:P402 ?osm .
OPTIONAL { ?item wdt:P1824 ?p1824 }
BIND(STRLEN(str(?p1824)) as ?longp1824)
BIND(SUBSTR(str(?p1824),1,1) as ?statut)
BIND(SUBSTR(str(?p1824),2,(?longp1824 - 1)) as ?numero)
BIND(REPLACE(SUBSTR(str(?numero),1,4),"[A-Za-z ]","") as ?num)
BIND(STRLEN(str(?num)) as ?longnum)
BIND(CONCAT(IF(?longnum=1,"000",IF(?longnum=2,"00",IF(?longnum=3,"0",""))), str(?num)) as ?numz)
BIND(CONCAT(str(?statut),str(?num)) as ?numsp)
BIND(STRLEN(str(?numsp)) as ?longnumsp)
BIND((?longp1824 - ?longnumsp) as ?longprefixe)
BIND(SUBSTR(str(?p1824),(?longnumsp + 1),?longprefixe) as ?prefixe)
BIND(CONCAT(str(?statut),str(?numz),str(?prefixe)) as ?cledetri)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
} ORDER BY ?cledetri
Sans P402[modifier | modifier le code]
SELECT DISTINCT ?item ?itemLabel WHERE {
?item wdt:P31/wdt:P279* wd:Q34442 ; p:P16/ps:P16 wd:Q106123 ; wdt:P17 ?pays .
MINUS { ?item wdt:P361 ?part . ?part wdt:P16 wd:Q106123 }
MINUS { ?item wdt:P402 [] }
OPTIONAL { ?item wdt:P1824 ?p1824 }
BIND(STRLEN(str(?p1824)) as ?longp1824)
BIND(SUBSTR(str(?p1824),1,1) as ?statut)
BIND(SUBSTR(str(?p1824),2,(?longp1824 - 1)) as ?numero)
BIND(REPLACE(SUBSTR(str(?numero),1,4),"[A-Za-z ]","") as ?num)
BIND(STRLEN(str(?num)) as ?longnum)
BIND(CONCAT(IF(?longnum=1,"000",IF(?longnum=2,"00",IF(?longnum=3,"0",""))), str(?num)) as ?numz)
BIND(CONCAT(str(?statut),str(?num)) as ?numsp)
BIND(STRLEN(str(?numsp)) as ?longnumsp)
BIND((?longp1824 - ?longnumsp) as ?longprefixe)
BIND(SUBSTR(str(?p1824),(?longnumsp + 1),?longprefixe) as ?prefixe)
BIND(CONCAT(str(?statut),str(?numz),str(?prefixe)) as ?cledetri)
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" . }
} ORDER BY ?cledetri