基于部分建模的语言无关细化
1. 开放世界(OW)部分性与细化
在建模中,我们可以将模型视为一个由一组语法事实组成的“数据库”,例如“类 C1 是类 C2 的超类”等。不完整性对应于该数据库的开放世界假设(原子列表未封闭),而完整性对应于封闭世界假设。开放世界(OW)部分性允许建模者明确声明其模型是否不完整(即是否可以扩展)。这里的注释是针对整个模型,而非单个原子。注释来自格 O = ⟨{comp, inc}, ⪯⟩,其中 inc ≺ comp。
对 OW 模型的细化意味着使其“更完整”。OW 模型 P 的基础细化,对应于其具体化集合 [P],是其“完整”的扩展。
2. 部分性类型的组合与应用
2.1 组合部分性类型
前面描述的四种部分性类型在表达部分性方面有不同的实际用途,并且可以在单个模型中组合使用,以表达更多的情况。我们将这种组合称为 MAVO 部分性,它允许使用来自乘积格 M × A × V(定义为 MAV = ⟨{e, m} × {p, s} × {c, v}, ⪯⟩)的元素对模型原子进行 May、Abs 和 Var 部分性注释。例如,将一个类标记为 (m, s, c) 表示它代表一组可能为空的类,而标记为 (e, s, v) 表示它是一组非空的类,但在细化过程中可能会变成不同的类集合。OW 部分性仅在模型级别使用,用于指示完整性。
MAVO 细化是将四种类型的细化按组件方式组合。如果 MAVO 模型 P1 被模型 P2 细化,那么存在从 P1 的原子到 P2 的原子的映射,并且 P2 中的注释值不小于 P1 中对应原子的注释值。例如,标记为 (m, s, c) 的类可以细化为具有 (m, p, c)
基于部分建模的语言无关细化方法
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



