0

我正在阅读活动数据库中的复合事件规范:模型和实现。其中描述了一种指定复合事件的方法,类似于正则表达式。让我解释一下基础知识:有事件历史。这些是一组原始事件,每个事件都有一个唯一的时间戳(因此可以将它们视为序列,但可以对它们使用集合操作)。还有事件表达式。这些是从历史到历史的功能。E应用于h( E[h])的表达式是满足hwhere的子集。E例如,原始表达式a匹配 a's:
a[a, b, a, c, b] = a, a(timestamps implicit)。

有这个操作符relative(E, F),它是这样定义的: 设E_i[h]第 i 个事件发生在E[h]; 通过删除时间戳小于或等于 的时间戳的所有事件发生h_i来获得let 。然后。不太正式的是,假设历史在某个事件发生后立即开始,那么事件发生在哪里是满意的。例如(第二个 b,因为它前面有一个 a)。hE_i[h]relative(E, F)[h] = union over all i:s F[h_i]relative(E, F)hFhErelative(a, b)[b, c, a, c, b] = b

现在,有relative+(E)一个我不明白的运营商。它定义为:
relative_1(E) = E
relative_i(E) = relative(relative_i-1(E), E)
relative+(E) = union over all positive i:s relative_i(E)

relative+(E)just 有何不同E?我理解它的方式relative(E, E)[h]始终是 的子集E[h],因此它们的并集将等于E[h]

4

1 回答 1

1

我想到了。E[h]要查看和的结果之间的差异relative+(E)[h]E需要比仅匹配特定类型的所有事件的基本表达式更复杂。例如:假设我们有一个事件表达式first,它总是匹配历史中的第一个事件。thenfirst[h]当然是 的第一个元素h,whilerelative+(first)[h]h它本身,因为它是 的第一个h,然后是 的第一个之后的第一个h,等等。

于 2012-07-17T02:09:19.647 回答