SELECT
?item ?itemLabel
WHERE {
BIND(wd:Q133262867 AS ?item)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],mul,en,da". }
}
没有插值的标准SPARQL似乎是不可能的。我想?
对于其余语言的后备标签('mul','en','da'),我能想到的模式将是具有多种选择性的一种,而cocce则像
[AUTO_LANGUAGE]
SELECT
?item ?itemLabel
WHERE {
BIND(wd:Q133262867 AS ?item)
OPTIONAL {
?item rdfs:label ?label_mul .
FILTER (LANG(?label_mul) = 'mul')
}
OPTIONAL {
?item rdfs:label ?label_en .
FILTER (LANG(?label_en) = 'en')
}
OPTIONAL {
?item rdfs:label ?label_da .
FILTER (LANG(?label_da) = 'da')
}
BIND(COALESCE(?label_mul, ?label_en, ?label_da) AS ?itemLabel)
}
...这仅适用于一个变量。应该有更好的解决方案吗?
SELECT
?item ?itemLabel ?itemDescription
WHERE {
BIND(wd:Q133262867 AS ?item)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],mul,en,cz,da,fr". }
}