Я пытаюсь подсчитать количество значений для данного свойства и вывести каждый из полученных ресурсов вместе с этим числом. Я пытаюсь использовать BIND
для сохранения значения результата функции COUNT
в переменной и проецировать эту переменную на мои результаты. Однако это значение кажется пустым, и я не понимаю, почему это так.
Мой запрос в настоящее время выглядит так:
SELECT DISTINCT ?a ?c
WHERE {
?a <http://www.w3.org/2000/01/rdf-schema#label> ?b.
BIND(COUNT(?b) AS ?c).
}
LIMIT 100
Я думаю, что мне придется сгруппировать по ?a
, хотя я еще не уверен, как поступить, если я хочу сделать это для нескольких свойств, но это не касается этого вопроса: сейчас я просто хочу выяснить, почему ?c
кажется пустым.
Разве сейчас не должна быть ровно одна метка для каждой результирующей строки? Если да, то почему литерал 1^^xsd:integer
не привязан к ?c
или, по крайней мере, к некоторому большому числу, представляющему общее (несгруппированное) количество меток (аналогично тому, что произошло здесь) - например, на следующих конечных точках:
Я знаю, что функция, которую я ищу, может не поддерживаться некоторыми или всеми этими реализациями, но если это так, то кажется необычным, что COUNT
просто «проглатывается» без сообщения об ошибке (я получил сообщение об ошибке на некоторых других). конечные точки для синтаксиса).
Таким образом, мой вопрос: Почему возвращаемое значение COUNT
пусто?
- Is the
COUNT
function in that position not recognized by the endpoints?- As it seems to be syntactically valid there, is that a shortcoming of current SPARQL engines, or is that by design?
- Функция
COUNT
оценивается только позже (и если да, то почему она хотя бы не возвращает что-то вроде0
)?