Joh*_*rae 5 rdf semantic-web sparql
以下查询计算商店中的所有三元组
SELECT count(*) where { ?s ?p <http://dbpedia.org/resource/Cat> }
Run Code Online (Sandbox Code Playgroud)
并返回预期的结果
但是,当我第一次尝试它时,我不小心留下了ORDER BY语句,例如,
select count(*) { ?s ?p <http://dbpedia.org/resource/Cat> } order by ?s
Run Code Online (Sandbox Code Playgroud)
然后我得到一个很长的结果列表
任何人都可以解释为什么会出现这种结果及其含义?它可能是Virtuoso SPARQL实现的错误吗?
如果你在不同的商店运行相同类型的查询,例如http://api.talis.com/stores/bbc-backstage/services/sparql(不运行virtuoso),它看起来就像一个bug
第一个查询有效......
SELECT (count(?s) as ?c)
WHERE {
?s ?p <http://purl.org/ontology/po/Version> .
}
Run Code Online (Sandbox Code Playgroud)
第二个......
SELECT (count(?s) as ?c)
WHERE {
?s ?p <http://purl.org/ontology/po/Version> .
} order by ?s
Run Code Online (Sandbox Code Playgroud)
...给出相同的结果.
实际上,计数+排序在这里没有多大意义,因为?s没有选择要检索.但正如你所说,你不小心尝试了......它确实看起来像一个bug.
我的建议是向virtuoso-user邮件列表发送一封电子邮件,以通知此问题.