是否可以使用SPARQL查询在连接到给定文本的模型中检索给定类C的所有资源?
例如:
S1, p1, o1
S1, type, C
O1, p2, L1
S2, p3, o2
S2, type, C
O2, p4, o3
O3, p5, L1对于文字L1,我想检索S1和S2。
发布于 2016-06-20 20:33:11
如果您提供我们可以实际使用的数据,总是会更容易。例如,这是Turtle中的数据,我们可以通过实际查询的方式查询这些数据。今后,请尽量提供我们可以使用的最低限度的数据样本。
@prefix : <urn:ex:>
:s1 a :C ;
:p1 :o1 .
:o1 :p2 "l1" .
:s2 a :C ;
:p3 :o2 .
:o2 :p4 :o3 .
:o3 :p5 "l1" .这里有一个查询,它从subject ?s查找路径,该路径是:C到文字"l1"的实例。(:|!:)*是使用“通配符”的属性路径。由于我们已经定义了:前缀,:是一个IRI,而且由于每个IRI要么是:,要么不是(!:),一个零或多个:|!:重复的路径就是从?s到"l1"的路径。有关通配符属性路径的更多信息,请参见SPARQL property path queries with arbitrary properties。
prefix : <urn:ex:>
select ?s {
?s a :C ; (:|!:)* "l1"
}-------
| s |
=======
| :s2 |
| :s1 |
-------https://stackoverflow.com/questions/37929681
复制相似问题