如何解决SPARQL查询 “分组依据”,然后根据条件“计数”分组中的某些项目包括计数为零的项目
我有一个数据集,其中包含许多以下TURTLE RDF格式的“电影”。我必须按升序排列,列出恐怖电影数量最少,至少一部戏剧或动作电影最多的5个国家。解决这个问题的逻辑如下:按国家/地区对数据进行分组,然后在每个组中计算“类型”中有多少“恐怖”的“电影”。因此,如果某组中不包含类型属于“恐怖”的电影,则该电影将被计为零。检查每个组是否至少有一部电影的类型包含“戏剧”或“动作”。我可以在W3上找到的唯一示例非常简单,由于我对SPARQL还是很陌生,所以我无法弄清楚如何将其应用于此问题。我对此的尝试低于数据示例。它不起作用,但是可以让我了解我正在尝试做什么。任何帮助表示赞赏。谢谢!
mov:Movie1 a mov:Movie;
mov:Name "Movie1";
mov:Country "Australia";
mov:Genres "Action|Adventure|Fantasy|Sci-Fi";
mov:Movie2 a mov:Movie;
mov:Name "Movie2";
mov:Country "USA";
mov:Genres "Action|Thriller|Horror|Sci-Fi";
...etc
select * {
{
select ?country {
?movie <country> ?country.
?movie <genres> ?genre .
{
select (count(regex(?genre,"Horror","i" )) as ?horror_count){
?movie <genres> ?genre
}
}
} group by ?country order by desc(xsd:integer(?horror_count)) limit 5
}
filter (regex(?genre,"Drama","i" ) || regex(?))
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。