我有一个sparql查询:
PREFIX kpsp:<http://www.kalikautsar.com/kpsp#>
SELECT ?name (COUNT(?yesanswer) AS ?yestotal) ?Right ?Doubt ?Wrong
WHERE {
?instance rdf:type kpsp:bayi.
?instance kpsp:name ?name.
?instance kpsp:yes_answer ?yesanswer.
BIND (?yestotal >8 AS ?Right)
BIND (?yestotal >6 && ?yestotal <9 AS ?Doubt)
BIND (?yestotal <7 AS ?Wrong)
}
GROUP BY ?name ?Right ?Doubt ?Wrong
但是?Right ?Doubt ?Wrong
的结果没有出来,我认为一旦我使用?yestotal
就会出现问题。那么如何绑定?yestotal
(作为?yesanswer count
的结果)以便我可以在上面的计算中使用它?
答案 0 :(得分:1)
此查询在语法上无效。尝试http://sparql.org/query-validator.html(添加缺少的前缀声明后)
COUNT导致存在单个组并聚合WHERE模式。没有明确的GROUP BY变量。
在?name
中使用?Right
,?Doubt
,?Wrong
,SELECT
不合法,因为它们既不是GROUP BY变量也不是聚合。