Я хотел бы спросить одну хитрую вещь о лейбле. Использование ключевого слова SERVICE
, например SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
, позволяет нам переключать метку языка, когда первое предпочтение не сопоставлено с меткой целевого объекта.
Тем не менее, я хочу исключить некоторые объекты, которые не имеют метки. Однако ключевое слово service
добавляет объект с меткой Qxxxx, если у объекта нет метки соответствия языка. Как я могу удалить объект из результата?
Я знаю, что мы можем отфильтровать это, используя rdfs:label
для всех переменных в явном виде, но установка всех переменных rdfs: label для всех переменных - еще одна головная боль. Поэтому я хотел бы знать, как улучшить запрос с помощью SERVICE wikibase:label
Я хочу отфильтровать сущность, у которой нет метки. Должен ли я заменить SERVICE
на rdfs:label
?
SELECT DISTINCT ?vLabel
WHERE {
hint:Query hint:optimizer "None" .
{
SELECT DISTINCT ?i {
?i wdt:P31 wd:Q515.
}LIMIT 15
}
?v wdt:P937 ?i.
SERVICE wikibase:label { bd:serviceParam wikibase:language "ko,en". }
}
LIMIT 3
RESULT:
Q59780594 <- no lang label
Q24642253 <- no lang label