SPARQL-Max()不工作

SPARQL-Max()不工作,sparql,semantic-web,protege,Sparql,Semantic Web,Protege,我试图在Protege2000中执行这个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)) 例外情况如下: SparqlReas

我试图在Protege2000中执行这个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
请求在没有请求的情况下工作,因此我想没有问题 用我的本体论。 所以请任何人告诉我问题出在哪里。谢谢


我不知道你为什么在这里使用group by,但也许你有原因。一种方法是使用orderby。我提供了一个关于dbpedia的示例

选择不同的?x计数?y作为?计数 在哪里{ ?x一只猫头鹰:人。 ?x dbpprop:作者?y } 按描述订购?计数 限制1
结果是。

为have提供的表达式不应该计算为布尔值吗?当您提供的只是一个从MAX返回的数值时,您认为这将如何实现?另外,您的查询是否缺少一些翻译?在第一行中,您使用的是一个变量?cherchur,但在WHERE子句中,您使用的是?searcher。很抱歉,我把它修改错了。你没有注意到这一点,这是真的。该请求的通缉含义是:选择发布了最多出版物的搜索者。我怎样才能做到这一点?有什么想法吗?谢谢,谢谢,它起作用了!如果没有GROUP BY,它就无法工作,我仍然不知道为什么。@Artemis,即使Virtuoso接受,该查询也不是合法的SPARQL。您可以使用sparql.org的查询验证程序进行检查。“那需要算上什么,”约书亚·泰勒说,“那么你的意思是大括号不见了,或者逻辑出了问题?网站不可用,所以我无法检查。只有大括号。逻辑是正确的