«Обратите внимание, что из-за логической позиции, в которой оценивается предложение HAVING, выражения, спроецированные предложением SELECT, не видны предложению HAVING».

аюсь получить список всех авторов, которые выполнили 3 или более работы (в DBpedia).

мой пример может быть запущен на:http://dbpedia.org/sparql

базовый код
select (count(?work) as ?totalWork), ?author
Where
{
  ?work dbo:author ?author.
}
GROUP BY ?author

Я получаю от каждого автора общее количество проделанной работы. Но когда я пытаюсь отфильтровать, чтобы показать только список авторов, которые имеют более 3-х работ. Я получаю ошибку:

Я пробовал иметь ключевое слово HAVING или ключевое слово FILTER.

Использование фильтра

select (count(?work) as ?tw), ?author
Where
{
  ?work dbo:author ?author.
  FILTER (?work > 3).
}
GROUP BY ?author

error: Virtuoso 22023 Error VECDT: SR066: Unsupported case in CONVERT (INTEGER -> IRI_ID)

Используя ключевое слово HAVING

select (count(?work) as ?tw), ?author
Where
{
  ?work dbo:author ?author.
}
GROUP BY ?author
HAVING (?tw > 3)

Virtuoso 37000 Error SP031: SPARQL compiler: Variable ?tw is used in the result set outside aggregate and not mentioned in GROUP BY clause