Joh*_*hsm 8 select count sparql
似乎可以使用单个实体来计算
(COUNT(DISTINCT ?x) as ?count)
Run Code Online (Sandbox Code Playgroud)
以及查询中所有变量使用的不同元组的数量
(COUNT(DISTINCT *) as ?count)
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何计算特定(不同)元组.就像是
(COUNT(DISTINCT ?a ?b ?c) as ?count)
Run Code Online (Sandbox Code Playgroud)
似乎不起作用.我做错了还是在SPARQL 1.1中真的不允许这样做?或者它应该工作,并且在Sesame 2.6.0中不支持我用于测试它?
欢迎来到StackOverflow!
确保您的中间结果仅包含?a ?b ?c您感兴趣的三个变量.
一种方法是使用子查询.子查询只投影三个所需的变量.像这样的东西:
SELECT (COUNT(*) AS ?count) {
SELECT DISTINCT ?a ?b ?c {
…
}
}
Run Code Online (Sandbox Code Playgroud)
(我不确定Sesame是否支持子查询.)
另一种方法是简单地确保您的查询仅包含三个变量.如果查询中需要更多变量,则可以使用空白节点替换它们.SPARQL图形模式中的空白节点的工作方式类似于"匿名变量".虽然有一些有趣的范围问题,所以子查询方法可能更好.