RDF数据集的版本控制与变更验证
1. 引言
在数据集的协作和迭代开发过程中,对数据集的变更进行管理十分必要。用户和开发者对数据集的变更有着不同的视角。从用户角度看,变更与数据集的发布版本相关;而开发者更关注不同贡献所带来的变更,无论这些变更是否会成为新版本的一部分。
版本控制能将消费者与变更隔离开来,例如OWL 2通过区分本体IRI和版本IRI的概念,实现对特定版本本体的定位和导入。语义网上的数据集包含事实和概念知识,可分为本体、词表等知识组织系统。通常采用分层方法处理这些数据集,结构层面将其视为RDF数据集,更高层面则处理特定建模语言和应用的语义。
2. 理解变更
从编辑环境用户的角度来看,RDF数据集的变更可能与维护环境提供的任何操作相关。但这种变更语言难以推理,也难以判断变更是否冲突,选择性撤销变更还需定义操作的逆操作。
实际上,数据集的变更主要是三元组的添加或删除。因为在RDF数据模型中,三元组是“最小可直接管理的知识片段”,且只能添加或删除,不能修改。例如,删除三元组 :s :p :o1
并添加 :s :p :o2
时,RDF数据模型无法关联这两个编辑操作。同样,确定资源重命名也属于更高级别的判断。在语义层面,本体的变更主要也是公理的添加或删除。
2.1 空白节点
若将两个数据集 $d_1$ 和 $d_2$ 等同于它们关联的三元组集合 $d_1, d_2 \subseteq(IRI \cup BNODE) \times IRI \times (IRI \cup BNODE \cup LITERAL)$,则可通过集合相减计算