我正在尝试在PROTEGE 2000中执行此SPARQL查询,但MAX函数无效。就像Max()不接受?cpt的类型。
SELECT ?searcher (COUNT(?publication) AS ?cpt)
WHERE {ont:GradeP ont:isFor ?searcher.
?publication ont:isPublishedBy ?searcher.}
GROUP BY ?searcher
HAVING (MAX(?cpt))
这是例外:
SparqlReasonerException: org.openrdf.query.QueryEvaluationException: Unsupported value expr type: class org.openrdf.query.algebra.Max
请求在没有
HAVING
的情况下正常运行,所以我猜没有问题 用我的本体论。 所以可以请任何人告诉我问题在哪里。谢谢!
答案 0 :(得分:2)
我不确定你为什么在这里使用group by
,但也许你有理由。一种方法是使用order by
。我在dbpedia上提供了一个例子。
select distinct ?x count(?y) as ?count
where{
?x a dbpedia-owl:Person.
?x dbpprop:author ?y
}
order by desc(?count)
limit 1
结果是here。