我是 SPARQL 的初学者,想知道是否有一个查询可以帮助我返回传递关系。例如下面的 n3 文件,我想要一个返回“a 与 c 相同”或类似内容的查询。谢谢
@prefix : <http://websitename.com/links/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:a owl:sameas :b.
:b owl:sameas :c.
最佳答案
如果您使用适当启用的 SPARQL 1.1 引擎,则可以使用属性路径,并且您已标记您的问题 Jena,因此我假设您正在使用支持此功能的 ARQ 引擎。
因此您可以编写如下查询:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
WHERE
{
?x owl:sameAs+ ?y
}
注意谓词后面的+
,用于指示它应该查找由一个/多个步骤组成的关系。
属性路径的语法可以在here中找到。并且非常像正则表达式。使用此查询的唯一缺点是您无法获得有关路径有多长或中间节点是什么的任何信息。
关于rdf - SPARQL 查询传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569810/