Bonjour à tous,
J'essaye de récupérer la liste des noms de villes qui s'écrivent différemment en anglais et en français.
Par exemple, London et Londres.
J'utilise la base Wikidata pour cela.
Voici ma requête (pour un petit pays, pour simplifier) :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 SELECT DISTINCT ?countryLabel_en ?cityLabel_en ?cityLabel_fr WHERE { ?city wdt:P31 wd:Q515 . # Les éléments qui sont des villes ?city wdt:P17 ?country . # Les villes du pays sélectionné ?country rdfs:label ?countryLabel_en . # Le nom du pays en anglais ?city rdfs:label ?cityLabel_en . # Le nom de la ville en anglais FILTER (LANG(?cityLabel_en) = "en" && LANG(?countryLabel_en) = "en") OPTIONAL { ?city rdfs:label ?cityLabel_fr . # the city name in French FILTER (LANG(?cityLabel_fr) = "fr") } FILTER (REGEX(?countryLabel_en, "^ER", "i")) # Les pays qui commencent par ER (insensible à la casse) FILTER (?cityLabel_en != ?cityLabel_fr ) } ORDER BY ASC(?countryLabel_en) ASC(?cityLabel_en)
Dans les 18 résultats, le filtre FILTER (?cityLabel_en != ?cityLabel_fr ) ne semble pas être pris en compte.
Je lance la requête depuis le site https://query.wikidata.org/
Pourquoi ce filtre ne fonctionne pas ?
Merci pour votre aide
Partager