【问题标题】:What good is the "relative+" operator?“相对+”运算符有什么用?
【发布时间】:2012-07-10 13:28:04
【问题描述】:

我正在阅读Composite event specification in active databases: Model and implementation。其中描述了一种指定复合事件的方法,类似于正则表达式。让我解释一下基本情况:有事件历史。这些是一组原始事件,每个事件都有一个唯一的时间戳(因此可以将它们视为序列,但可以对它们使用集合操作)。还有事件表达式。这些是从历史到历史的功能。应用于h (E[h]) 的表达式E 是满足Eh 的子集。例如,原始表达式 a 匹配 a's:
a[a, b, a, c, b] = a, a(时间戳隐含)。

有这个操作符relative(E, F),它是这样定义的: 让E_i[h] 成为E[h] 中发生的第i 个事件;让h_ih中得到,方法是删除所有时间戳小于或等于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) = E
relative_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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 2022-01-16
      • 2015-11-10
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多