0
我有一個,就是對維基數據工作,此SPARQL代碼:大寫結果的第一個字母設置
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)
您可以測試這裏的代碼:
假設?genreLabel
默認情況下總是小寫。我如何將每個返回值的首字母大寫?謝謝。
這是有點題外話題,但一些遊戲標題是英語,英國英語和加拿大英語。 (我不知道爲什麼。)如何使用LANGMATCHES命令過濾普通英語? '過濾器(LANGMATCHES(LANG(...),「en」))'似乎不夠。謝謝。 – posfan12
正確的說,'LANGMATCHES'函數對於語言的範圍是不可知的,也就是說它匹配英式英語和美式英語等。爲了避免這些重複,不要使用'LANGMATCHES',即'FILTER (LANG(?gL)=「en」)' – AKSW