如何在SPARQL中构造结合两个过渡性封闭的新三元组?

阿里·维贾扬蒂(Ari Wijayanti)

我有一个带有多个关系的RDF文件。有些关系暂时关闭。我之前在此链接中发布了一个有关如何在Sparql中构造属性的传递闭包的问题现在,我可以使用属性的可传递闭包构造新的三元组,这意味着在整个路径上都进行提取。例如,存在一个part_of关系,如果?aispart_of ?b?bis part_of ?c,那么我们可以推断出ais part_of ?c然后我这样查询:

construct {?a :part_of ?b} where {?a :part_of+ ?b . filter(?a != ?b) }

然后我有另一个传递闭包。例如,存在一个is_a关系,如果?a is_a ?b?b is_a ?c,则可以推断出?a is_a ?c然后我这样查询:

construct {?a :is_a ?b} where {?a :is_a+ ?b . filter(?a != ?b)}

然后,我还有另一个条件,其中包括这两个传递闭包:例如,如果?a part_of ?b?b is_a ?c,则可以推断出?a part_of ?c那我可以这样查询吗?

construct {?a :part_of ?c}
where {
      ?a :part_of+ ?b . 
      ?b :is_a+ ?c .
      filter(?a != ?c)
}
约书亚·泰勒(Joshua Taylor)

然后,我还有另一个条件,其中包括这两个传递闭包:例如,如果?a part_of?b和?b is_a?c,那么我们可以推断出?a part_of?c。那我可以这样查询吗?

单独写,就是:

construct { ?a :part_of ?c }
where {
  ?a :part_of ?b .
  ?b :is_a ?c
}

(不过,我不确定这是否真的有意义。毕竟,?c是类型,而不是实例。我的手指是我的一部分,我是人类,但我的手指不是人类的一部分。 ,即使手指可以成为人类的一部分。)

由于在构造部分中不使用?b,因此甚至可以将其转换为属性路径:

construct { ?a :part_of ?c }
where { ?a :part_of/:is_a ?c }

但是,这些都不能解决问题的传递部分。让我们看看。您说的是,每当您可以遵循:part_of链时,应该有一个:part_of链接,每当有一个:part_of后跟一个:is_a时,就应该有一个:part_of链接。您可以将它们与:

construct { ?a :part_of ?c }
where { ?a (:part_of+/:is_a?)+ ?c }

该路径(:part_of+/:is_a?)+表示:

  • (1)一种或多种情况:
    • (2):part_of的一个或多个出现
    • (3)可选地后跟
    • (4):is_a出现零次或一次

如果查看要推论:part_of关系的每个地方,您会发现此模式匹配。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SPARQL - 超过 56000 个三元组的文件 - 如何一次性检查条件

来自分类Dev

如何在Marklogic JSON文档中插入一个以上的三元组?

来自分类Dev

如何在满足给定条件的榆树中创建一组三元组?

来自分类Dev

如何在满足给定条件的榆树中创建一组三元组?

来自分类Dev

如何更快地添加芝麻2.7.7中的100万个三元组

来自分类Dev

SPARQL选择剩余的三元组

来自分类Dev

SPARQL 三元组中不区分大小写的匹配

来自分类Dev

如何删除三元组列表中每个元组的第二个元素?

来自分类Dev

如何区分SQL三元组与显式三元组?

来自分类Dev

从保存在2D列表中的三元组单词构造文本

来自分类Dev

如何编写一个接受一个数字并返回一个三元组列表的函数“三元组”?

来自分类Dev

Python,如何返回一个三元组?

来自分类Dev

如何从MySql创建三元组

来自分类Dev

在数组中查找三元组,以便两个数字的和也是给定数组中的数字

来自分类Dev

验证JSON-LD中的三元组

来自分类Dev

从列表中删除相邻号码的三元组

来自分类Dev

验证JSON-LD中的三元组

来自分类Dev

目标架构三元组中“ pc”的含义

来自分类Dev

如何从SCALA中的三元组列表中创建多图?

来自分类Dev

如何使用 PHP if/else 三元实现两组可能性

来自分类Dev

RDF重复三元组

来自分类Dev

三元组的最佳合并

来自分类Dev

编号三元组

来自分类Dev

三元组的稀疏矩阵

来自分类Dev

编号三元组

来自分类Dev

处理三元组的重复

来自分类Dev

F#:如何在不牺牲运行时性能的情况下为元组,三元组和四元组提供fst

来自分类Dev

使用SPARQL提取包含特定子字符串的三元组

来自分类Dev

SPARQL代数:基于它们具有的三元组排除节点

Related 相关文章

热门标签

归档