sparql - 出现次数 SPARQL
问题描述
嗨,我正在使用 SPARQL 查询 LMDB ( http://data.linkedmdb.org/snorql/ ),并且我一直在尝试在返回一些查询结果时获取实例数。我一直在尝试添加(COUNT(?something) AS ?somethingElse)
,然后添加GROUP or ORDER BY
到我的查询中,但随后该变量?somethingElse
替换了所有其他结果。我认为最好的方法是UNION
在单独的行中使用和获取结果,这与其他行无关,但由于某种原因我找不到正确的解决方案。
我的查询:
PREFIX mov: <http://data.linkedmdb.org/resource/movie/>
SELECT DISTINCT ?Names WHERE
{ ?link mov:actor_name 'guy boyd' .
?movie mov:actor ?link;
mov:actor ?Link_To_Actor_Page.
?Link_To_Actor_Page mov:actor_name ?Names. }
如果您运行此查询,一切都很好,但是如果您(COUNT(?Names) AS ?total)
只添加?total
,则会打印出来。所以我想我的问题是如何打印出我想要的尽可能多的变量并将其COUNT(?something)
作为一个单独的列。基本上没有COUNT(?)
替换?variable
查询中的其他所有内容。
解决方案
早晨,
只需将您需要的内容添加到该SELECT
方法中即可。请求元素的数量不受限制。
这是您更正的示例:
PREFIX mov: <http://data.linkedmdb.org/resource/movie/>
SELECT DISTINCT ?Names (COUNT(?Names) as ?total)
WHERE {
?link mov:actor_name 'guy boyd' .
?movie mov:actor ?link ;
mov:actor ?Link_To_Actor_Page .
?Link_To_Actor_Page mov:actor_name ?Names .
} GROUP BY ?Names
这是 SPARQL 端点的位置:http ://www.linkedmdb.org/snorql/
希望对你有所帮助,而不是不理解就简单给你答案。