SPARQL属性路径,第一部分是唯一的,路径在之后重复

白羊座的尖锐

假设我们有三元组

a1  blah <http://foo.com/f>
a1  pt   c1
c1  pt   d1

我将如何构造一个SPARQL查询来选择a1orc1或or d1我需要能够遍历一个blah或多个pt谓词。

因此a1可以是以下三元组的一部分:a1 blah <http://foo.com/f>但我不知道如何指定其不是a1而是通过另一个路径在另一个方向上连接到a1的对象的情况。但是我还需要使用blah保留路径,因为那是a1或f1通过以下方式连接到对象的原因:

这是我如何使其工作的方式,但它并不漂亮:

select  * from
{
  # other sparql stuff before it
   { ?s blah <http://foo.com/f>
     ?s pt+  <c1>  }
   UNION
   { <c1> blah <http://foo.com/f>  }
}

我可以将“ c1”更改为“ a1”或“ d1”,并且上面的sparql仍然有效

约书亚·泰勒(Joshua Taylor)

AKSW的评论完全正确,您需要使用序列,而不是替代方案。根据您的示例,听起来您实际上想要的是通过零个或一次出现的“ blah”,然后是零次或更多次出现的“ pt”,将对象连接到特定对象。

如果要对可以使用IRI引用指定的特定谓词pq进行此操作,则只需

?x p?/q* ?y

*q表示零或更多,和跟随p表示零或一。

但是,如果您事先不知道特定的IRI,例如,您想使用变量,例如:

?x (?p)?/(?q)* ?y

那么您可能会不走运。SPARQL属性路径不支持变量。您可以使用诸如s |!s之属性路径获取通配符,因为每个URI要么s,要么不是,但是没有将可重复变量放入属性路径的规定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匹配路径名的第一部分和行尾的数字

来自分类Dev

如何删除哈希文件中文件路径的第一部分?

来自分类Dev

隐藏第一部分

来自分类Dev

给每行的第一部分上色

来自分类Dev

删除网址的第一部分

来自分类Dev

第一部分的 Youtube 背景

来自分类Dev

使用jQuery将类添加到特定div之后的第一部分

来自分类Dev

导航抽屉错误:不在顶部,没有显示标题,重复了第一部分

来自分类Dev

将行的第一部分与固定字符串匹配,并在第二部分中计算唯一值

来自分类Dev

VBA,TRIM路径的一部分

来自分类Dev

Android填写路径的一部分?

来自分类Dev

替换路径的一部分-python

来自分类Dev

UIBezierPath指向路径的一部分

来自分类Dev

找不到路径的一部分

来自分类Dev

批量提取路径的一部分

来自分类Dev

MemoryMappedFiles找不到路径的一部分

来自分类Dev

Java删除文件路径的一部分

来自分类Dev

找不到路径问题的一部分

来自分类Dev

StreamWriter找不到路径的一部分

来自分类Dev

UIBezierPath指向路径的一部分

来自分类Dev

删除文件路径的一部分

来自分类Dev

动态更改可变路径的一部分

来自分类Dev

VBA,TRIM路径的一部分

来自分类Dev

Print_r 路径的一部分

来自分类Dev

正则表达式,从图像的src属性中删除第一部分

来自分类Dev

IF语句的第一部分被忽略

来自分类Dev

简单的正则表达式替换URL的第一部分

来自分类Dev

推导PCA第一部分中使用的变量

来自分类Dev

grep不匹配行的第一部分?