RDF容器和集合有什么区别?

8

我从一本书中了解到:

容器和集合的区别在于容器总是开放的(即可以通过添加其他RDF语句来添加新成员),而集合可以被关闭。

我不太清楚这个区别。它说不能向集合中添加新成员。如果我将最后一个 rdf:rest 属性的值从 rdf:nil 更改为 _:xyz 并添加

_:xyz rdf:first <ex:aaa> .
_:xyz rdf:rest rdf:nil .

我能够添加一个新成员_:xyz。为什么它说集合已关闭?


1
注意:当您添加 _:xyz rdf:first <ex:aaa> ; rdf:rest rdf:nil 时,您要添加到列表中的元素是 <ex:aaa>,而不是 _:xyz。节点 _:xyz 是列表的结构的一部分,而 <ex:aaa> 是列表的一个元素。 - Joshua Taylor
是的,你说得对。谢谢指正 :) - Haya Hallian
1个回答

16

关键区别在于,您可以在容器中简单地继续添加新项,只需断言新的RDF三元组即可。在集合中,您必须先删除一个语句,然后才能添加新项。

这是特别针对RDF推理的重要区别。它很重要,因为RDF推理采用开放世界假设(OWA),简而言之,是指仅因为某个事实未知,并不意味着我们可以认为该事实是不真实的。

如果将此原则应用于容器中,并询问“容器中有多少项”,答案必须始终为“我不知道”,因为没有办法确定可能会有多少未知项在容器中。但是,如果我们有一个集合,我们就有了最后一个项目的明确标记,因此我们可以确定地说集合包含多少个项目 - 没有未知的附加项。


3
RDF语义学W3C推荐3.3.2 RDF容器3.3.3 RDF集合章节也是很好的资源。 - Joshua Taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接