例如,有一个简单的 select sparql 查询:
SELECT * Where
{
CT:A skos:broader ?A.
CT:B skos:broader ?B.
FILTER(?A=?B)
}
使用FILTER
,可以很容易地选择彼此相等的对象。
但是当有更多的三元组匹配时,例如,从 CT:A skos:broader ?A
到 CT:Z skos:broader ?Z
,我该如何过滤满足 ?A=?B=?C=.....?Z?
想说清楚。
最佳答案
我认为你的查询应该写成
select ?a where { ct:a skos:broader ?a. ct:b skos:broader ?a
这意味着你想找到一个 ?a
,它的 skos:broader
值对于 ct:a
和 ct:b
。如果您想为所有 ct:a, ct:b, ... ct:z
制作等价物,那么您只需重复该模式:
select ?a where { ct:a skos:broader ?a. ct:b skos:broader ?a. ct:c skos:broader ?a ... ct:z skos:broader ?a
关于sparql - 如何在Sparql中选择一个彼此相等的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395516/