出现次数SPARQL

时间:2018-04-28 09:34:04

标签: sparql semantic-web

您好我正在使用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

1 个答案:

答案 0 :(得分:1)

上午,

只需添加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/

我希望它能帮到你,而不是简单地在没有理解的情况下给你答案。