首页 > 解决方案 > 在 RDF 中制作元三元组的正确方法是什么?

问题描述

我一直在阅读有关 RDF、三元存储等方面的内容,我见过的最强大的概念之一是元三元组的概念(即描述其他三元组的三元组)。为了说明我的意思,假设我们有一些像这样的三元组:

(person:jb -> foaf:firstName -> string:Joe)
(person:jb -> foaf:lastName -> string:Blow)

如果我们想声明这些三元组的真实性,例如,谁说它们是真实的(为了这个示例的目的,某人被标识为xyz),我们可以将原始的两个三元组放入一个标识符bar为然后将三元组添加到另一个 RDF 图(可能是 RDF 数据集中的默认图,包含由 标识的图bar),如下所示:

(bar -> claimedBy -> person:xyz)

我的问题是:当有人后来出现并想要制作一个关于 Graph 中的三元组之一的元三元组时会发生bar什么?似乎如果您想保留创建元三元组来描述每个三元组的能力,那么实际上每个三元组都需要在自己的图中。这与 RDF 图的概念模糊地“不一致”,这里将其描述为“一组 RDF 三元组”。现在,一个集合当然仍然是一个集合,但是如果每个图只包含一个三元组,RDF 图的概念似乎几乎没有意义,但是如果想要保留三元组的单独可寻址性,这似乎是不可避免的。

更糟糕的问题似乎是,如果有一个包含多个三元组的图表需要被拆分成多个图表,以便从原始图表中生成一个元三元组来引用单个三元组,那么识别这两个三元组的能力(属于原始 Graph 的那个,以及被拆分成一个单独的 Graph 以便可以单独描述的副本)因为相同的三元组将会消失。这似乎是一个严重的问题!

在查看序列化格式(N-Quads 等)时,这个问题似乎被四元组的概念所捕获,其中它是 <code>(主题、谓词、对象、上下文),并且每个三元组都可以(在该序列化格式内) 有自己的上下文,但随后这些四边形被序列化回由 N 个图组成的数据集,这些图实际上是按上下文分组的三元组。

我理解对了吗?我在这里错过了一些基本的东西吗?为了制作描述它们的元三元组,是否有一些理由只是允许所有三元组单独寻址?

标签: rdfsemantic-web

解决方案


推荐阅读