如何检索连接到给定值的给定类的所有资源

时间:2016-06-20 18:47:03

标签: java sparql jena apache-jena

使用SPARQL查询是否可以在连接到给定文字的模型中检索给定类C的所有资源?

例如:

S1, p1, o1
S1, type, C
O1, p2, L1

S2, p3, o2
S2, type, C
O2, p4, o3
O3, p5, L1

对于文字L1,我想要检索S1S2

1 个答案:

答案 0 :(得分:1)

如果您提供我们实际可以使用的数据,它总是更容易。例如,这里是您在Turtle中的数据,并且我们可以实际查询。将来,请尝试提供我们可以使用的最小数据样本。

@prefix : <urn:ex:>

:s1 a :C ;
    :p1 :o1 .

:o1 :p2 "l1" .

:s2 a :C ;
    :p3 :o2 .

:o2 :p4 :o3 .

:o3 :p5 "l1" .

此处有一个查询,用于查找主题的路径,该路径是:C 的实例,文字&#34; l1& #34; 即可。 (:|!:)*是使用&#34;通配符&#34;的属性路径。由于我们已定义:前缀,:是IRI,并且由于每个IRI都是:或不是!:),路径为零或更多重复:|!:是从&#34; l1&#34; 的路径。有关通配符属性路径的详细信息,请参阅SPARQL property path queries with arbitrary properties

prefix : <urn:ex:>

select ?s {
  ?s a :C ; (:|!:)* "l1"
}
-------
| s   |
=======
| :s2 |
| :s1 |
-------