首页 > 解决方案 > 出现次数 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查询中的其他所有内容。

标签: sparqlsemantic-web

解决方案


早晨,

只需将您需要的内容添加到该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/

希望对你有所帮助,而不是不理解就简单给你答案。


推荐阅读