【发布时间】:2012-07-10 13:28:04
【问题描述】:
我正在阅读Composite event specification in active databases: Model and implementation。其中描述了一种指定复合事件的方法,类似于正则表达式。让我解释一下基本情况:有事件历史。这些是一组原始事件,每个事件都有一个唯一的时间戳(因此可以将它们视为序列,但可以对它们使用集合操作)。还有事件表达式。这些是从历史到历史的功能。应用于h (E[h]) 的表达式E 是满足E 的h 的子集。例如,原始表达式 a 匹配 a's:a[a, b, a, c, b] = a, a(时间戳隐含)。
有这个操作符relative(E, F),它是这样定义的:
让E_i[h] 成为E[h] 中发生的第i 个事件;让h_i从h中得到,方法是删除所有时间戳小于或等于E_i[h]时间戳的事件发生。然后relative(E, F)[h] = union over all i:s F[h_i]。不太正式地,relative(E, F) 是h 中满足F 的事件发生,假设在h 发生E 的某个事件发生之后立即开始历史。例如。 relative(a, b)[b, c, a, c, b] = b(第二个b,因为前面有一个a)。
现在,有这个运算符relative+(E),我不明白它的意思。定义为:relative_1(E) = Erelative_i(E) = relative(relative_i-1(E), E)relative+(E) = union over all positive i:s relative_i(E)
relative+(E) 与 E 有何不同?按照我的理解,relative(E, E)[h] 始终是E[h] 的子集,因此它们的并集将等于E[h]。
【问题讨论】:
标签: computer-science regular-language