三重作为主题

triple as subject

PROV-O 允许表示出处数据。但它与图中的任何其他数据在同一级别上执行此操作。我的意思是我可以断言 Dave 生成​​了文档 #01221,但这并没有说明断言本身的实际出处。 我需要的是对同一商店内的其他断言进行断言。

这是一个 real-world 场景:代表 Dave 的外部应用程序在 session 期间记录商店中的一些事实,该项目是持续三年的项目的一部分。当然,在这个项目中,许多其他 session 正在影响许多其他甚至那些事实。 Provenance ontology 允许我断言发生了什么但仅限于节点。我无法表达在特定的 session 或 activity 期间哪些事实是 created/modified/deleted... 并最终获得与商店中的事实相关的项目行动时间表。

我什至想走得更远:我想存储有关断言的其他信息,如可靠性、有效期等。这些既不与主题相关,也不与 object 相关,而是与它们之间的 link 相关。在 ER 中,这将是关系的一个属性。

这可以通过添加关于断言本身的断言来实现。据我所知,在 RDF 中,三元组没有任何独立身份,看起来 SPARQL 也不支持这样的东西。因此,我看不到任何用 RDF 实现我想要的东西的机会。但是有没有其他元模型具有RDF的灵活性并支持我的需求。

在 RDF 世界中,您所说的被称为 具体化

一种具体化 RDF 的方法是使用纯 "triple" 模型,通过识别每个断言以及每个断言的每个元素,例如 --

_:b1  rdf:type       rdf:Statement ;
      rdf:subject    :moon ;
      rdf:predicate  :consistsOf ;
      rdf:object     :greenCheese .

另一种方法是转向四元模型,通常使用 "named graphs"(SPARQL 支持)。命名图可能由单个三元组组成,通常表示为 { Subject Predicate Object Graph },类似于 --

{ :moon :consistsOf :greenCheese _:b1 }

-- 或 { Graph { Subject Predicate Object } } 类似 --

{ _:b1 { :moon :consistsOf :greenCheese } }

对于其中任何一个,您现在可以说 _:b1 由 Joe 在 1958-12-24 断言,由 Neil 在 1969-07-21 否认,等等。

有多种方法可以将单断言图收集成多断言图——例如,将图 X 描述为由图 M、N、O 组成,将图 Y 描述为由图 X 组成, P、Q -- 这样您就可以适当地描述(包括提供出处)单个断言、一组断言等。