提前感谢。 我有一个问题,即合并一些工作会为我的三重存储中的单个主题生成两个 guid。 我需要一种方法来隔离所有这些实例,以便我可以规范化这些 GUID。 我是SPARQL的新手。 我尝试通过 COUNT 和 FILTER 返回这些,但到目前为止失败了。 这就是我们正在关注的内容。
<http://example.com/#bar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://example.com/#choo> .
<http://example.com/#bar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://example.com/#terms> .
<http://example.com/#bar> <http://www.w3.org/2008/05/skos-xl#prefLabel>
<http://example.com/#bar/bar_en> .
<http://example.com/#bar> <http://www.foo.com/#guid> "17bda3bb-7db9-4afa-
bb95-29da6464f137" .
<http://example.com/#bar> <http://www.foo.com/#guid> "1fa33bad-a98d-4a7e-
8679-d8777e690c0c" .
抱歉,换行的文本使其更难阅读。 但是,你可以在这里看到我有一个主题,http://example.com/#bar 有两个指导。 我在同一个图表中有很多这样的案例,我需要一种方法来识别它们。 再次感谢。
正如@AKSW的评论中所提到的,您应该能够使用HAVING
来过滤聚合并按主题分组来实现这一点:
SELECT ?subject (COUNT(?guid) AS ?numGuids)
WHERE
{
?subject <http://www.foo.com/#guid> ?guid .
}
GROUP BY ?subject
HAVING (?numGuids > 1)