复杂事件处理:从XChangeEQ到ETALIS语言
1. XChangeEQ程序的不动点解释
XChangeEQ程序的不动点解释为程序提供了明确的语义。设 $P_i = \bigcup_{j\leq i} P_j$ 表示第 $i$ 层及以下的所有规则集合。对于具有分层结构 $P = P_1 \cup \cdots \cup P_n$ 的XChangeEQ程序 $P$,在事件流 $E$ 下的不动点解释 $M_{P,E}$ 是通过逐层计算不动点来定义的:
- $M_0 = E = T_{\varnothing}^{\omega}(E)$
- $M_1 = T_{P_1}^{\omega}(M_0)$
- $\cdots$
- $M_{P,E} = M_n = T_{P_n}^{\omega}(M_{n - 1})$
这个不动点解释也被称为 $P$ 在 $E$ 下的预期模型,它指定了声明性语义。例如,对于图1中的XChangeEQ程序 $P$ 和上述事件流 $E$:
$M_0 = E =$
${ temp { area{a}, sensor{s}, value{40} [60,63],$
$smoke { area {a} } [65,68],$
$temp { area{a}, sensor{s}, value{41} } [70,80] } = T_{\varnothing}^{\omega}(E)$
$M_{P,E} = M_1 = M_0 \cup$
${ fire { area {a} } [65,80],$
$burnt down { sensor {s} } [70,92],$ <
超级会员免费看
订阅专栏 解锁全文
14

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



