Я не могу найти способ фильтровать объекты по имени. Например, этот запрос должен ограничивать объекты страны только теми, у кого официальное название «Канада»:
SELECT DISTINCT ?country ?official_name WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,fr". }
?country wdt:P31 wd:Q6256.
?country wdt:P1448 ?official_name.
?country wdt:P1448 "Canada".
}
LIMIT 100
Здесь находится прямая ссылка на запрос.
Любые идеи?
?country wdt:P1448 "Canada"@en.
- person UninformedUser   schedule 25.09.2018FILTER (?official_name="Canada"@en)
, а такжеVALUES ?official_name {"Canada"}
возвращают только одну запись (вместо строки?country wdt:P1448 "Canada"@en
)? - person Cleb   schedule 25.09.2018"Canada"@en
один из них, есть еще"Canada"@fr
. - person Stanislav Kralin   schedule 25.09.2018P1448
из-за проблем с качеством данных. Однако значениеP1488
должно быть на исходном языке этого региона, см. . грамм. Q159 - person Stanislav Kralin   schedule 25.09.2018@en
и@fr
, используяVALUES
? - person Cleb   schedule 25.09.2018filter(str(?official_name) = "Canada")
? - person Stanislav Kralin   schedule 25.09.2018VALUES
? Это будет работать, но тогда нужно указать часть@
:VALUES ?official_name {"Canada"@en "Canada"@fr}
. - person Cleb   schedule 25.09.2018values (?official_name_str) {("Canada")} ... filter(str(?official_name)=?official_name_str)
? - person Stanislav Kralin   schedule 25.09.2018filter
, но просто любопытно с технической точки зрения. - person Cleb   schedule 25.09.2018