流式 XML 模式演化技术解析
1. 基于语言操作的 VPL 转换
在实际应用中,通过一组删除和插入操作来实现模式转换更为实用。我们可以分别定义允许的语言删除集合 $D = {D_1, …, D_m}$ 和插入集合 $I = {I_1, …, I_n}$。我们希望对给定的模式语言 $L$ 并行应用最多 $k$ 个来自 $D \cup I$ 的操作。
给定一个用于 $L$ 的可见下推自动机(VPA)$A = (Q, (\Sigma, f), \Gamma, \tau, q_0, F)$,我们扩展相关构造来实现这一目标。具体步骤如下:
1. 构建新的 VPA $A’ = (Q, (\Sigma’, f), \Gamma, \tau’, q_0, F)$:
- $\Sigma’ = \Sigma_c \cup \Sigma_r \cup {\dagger_1, …, \dagger_m} \cup {# 1, …, #_n}$
- $\tau’_c = \tau_c$
- $\tau’_r = \tau_r$
- $\tau’_l = {(q_i, \dagger_x, q_j) : q_i, q_j \in Q \text{ 且 } L {ij} \cap D_x \neq \varnothing, \text{ 对于 } 1 \leq x \leq m} \cup {(q_i, # y, q_i) : q_i \in Q \text{ 且 } 1 \leq y \leq n}$
2. $A’$ 接受的语言 $L’$ 包含带有任意数量特殊局部符号的单词。每个 $\dagger_x$ 代表对应 $D_x$ 的删除操