Sparql 两个节点之间任意长度的无向属性路径
我想制定一个SPARQL查询,询问节点a和d之间是否存在无向路径 我的数据如下:Sparql 两个节点之间任意长度的无向属性路径,sparql,rdf,Sparql,Rdf,我想制定一个SPARQL查询,询问节点a和d之间是否存在无向路径 我的数据如下: <a> <p1> <b> <c> <p2> <b> <c> <p3> <d> 这是一个相同数据的小ascii图形 (a) --> (b) <-- (c) --> (d) (a)-->(b)(d) 我尝试了以下查询: ASK WHERE { <a> (<
<a> <p1> <b>
<c> <p2> <b>
<c> <p3> <d>
这是一个相同数据的小ascii图形
(a) --> (b) <-- (c) --> (d)
(a)-->(b)(d)
我尝试了以下查询:
ASK
WHERE {
<a> (<>|^<>)* <d> .
}
询问
在哪里{
(|^)* .
}
当被问到a和d之间是否有无向路径时,如何进行ASK SPARQL查询并返回yes?数据中没有属性,因此这将不匹配。“任意边”的常见模式是
|代码>,即数据中不存在的属性p
或非p
((|!)|^(|!)*
应该在您的示例中起作用。您的数据中没有属性
,因此该如何匹配。任何边的通用图案都是|代码>,即数据中不存在的p的p与否((|!)| ^(|!)*
可能有效我的理解是,,,和匹配,我是否误解了什么?为什么我要匹配“不是p”,我只想要存在的路径!我在我的示例数据上尝试了这个模式,它很有效。您能否解释一下为什么此路径可以解决我的问题?
不是通配符,而是一个实体,其URI将相对于当前的基本URI进行解析。属性路径没有通配符,但解决方法是使用数据中不存在的URI,然后在两个节点之间始终存在路径,因为必须满足p或not p。这是很明显的,因为谓词的URI不能确定both@AKSW请随意发布答案,我会接受的。干杯