sparql - 如何在Sparql中选择一个彼此相等的

标签 sparql

例如,有一个简单的 select sparql 查询:

SELECT *  Where  
{
  CT:A skos:broader ?A.  
  CT:B skos:broader ?B.  
  FILTER(?A=?B)  
} 

使用FILTER,可以很容易地选择彼此相等的对象。 但是当有更多的三元组匹配时,例如,从 CT:A skos:broader ?ACT: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/

相关文章:

sparql - 在 SPARQL 中对多个查询进行分组的正确方法

rdf - 使用 DBpedia 和 SPARQL 获取所有定义的颜色

python - 在 python 中设置 rdf 三重存储的好解决方案?

python - 如何向 SPARQL 查询添加外部变量?

sparql - 两个资源之间的路径

sparql - 使用 SPARQL 查询 DBpedia 中的 'Wikipage disambiguates'

sparql - 属性路径深度实际上在 jena sparql 中可用吗?

SPARQL 查询按案例拆分

java - 在耶拿使用 ARQ (SPARQL) 进行 RDFS 推理

带有空白节点的 Sparql 查询可能很复杂