J'ai ce code SPARQL qui est destiné à travailler sur Wikidata:Capitaliser la première lettre d'un jeu de résultats
SELECT
?game
(group_concat(distinct ?gameLabel ; separator = ", ") AS ?gameLabels)
(group_concat(distinct ?genreLabel ; separator = ", ") AS ?genreLabels)
WHERE {
?game wdt:P31 wd:Q7889;
wdt:P136 wd:Q744038.
OPTIONAL {?game wdt:P136 ?genre}
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en".
?game rdfs:label ?gameLabel.
?genre rdfs:label ?genreLabel.
}
}
GROUP BY $game
ORDER BY ASC (?gameLabels)
Vous pouvez tester le code ici:
Supposons que ?genreLabel
est toujours en minuscules par défaut. Comment puis-je mettre en majuscule la première lettre de chaque valeur renvoyée? Merci.
Ceci est légèrement hors-sujet, mais certains titres de jeux sont en anglais, en anglais britannique et en anglais canadien. (Je n'ai aucune idée pourquoi.) Comment filtrer juste pour l'anglais régulier en utilisant la commande LANGMATCHES? 'FILTER (LANGMATCHES (LANG (...)," en "))' ne semble pas suffisant. Merci. – posfan12
À droite, les fonctions 'LANGMATCHES' sont utilisées pour être agnostique en ce qui concerne la portée d'une langue, c'est-à-dire anglais anglais, anglais américain, etc. Pour éviter ces doublons, n'utilisez pas' LANGMATCHES', ie 'FILTER (LANG (? GL) = "en") ' – AKSW