繁体   English   中英

sparql查询以获取与其他三元组相关的三元组

[英]sparql query to get a triplet related to other triples

假设我们有许多与以下内容相关的RDF三元组:

1: <S,P1,O>        

2: <O,P2,O3>       
3: <O,P3,O4>  

4: <O3,P4,O5> 

我只想知道三号1,就想得到三号N°2、3和4,因为三号N°2和3与三号N°1共享“ O”,而三号N°4与三号N°2共享“ O3”,与三重N°1共享“ O”是否可以用不知道P2,P3,P4的sparql查询来表述?

先感谢您

当然。 该查询将做到这一点:

  CONSTRUCT {
     ?s ?p ?o . 
     ?o ?q ?z. 
     ?w ?r ?o .
  }
  WHERE {
        ?s ?p ?o . 
        FILTER (?s = :O || ?o = :O) 
        OPTIONAL { ?o ?q ?z . }
        OPTIONAL { ?w ?r ?o . }
   }

不过,它不太可能非常有效。 但是,如果不了解您的实际数据或为什么要获得此特定结果,将很难提出更好的解决方案。

听起来您好像知道:O ,您正在要求以三元组为主题的三元组,以及以这些三元组为对象的三元组。 那么,您是否要这样?

select * where {
  :O ?p2 ?o2 .
  optional { ?o2 ?p3 ?o3 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM