2012-07-11 68 views
0

我在讀Composite event specification in active databases: Model and implementation。其中描述了一種指定複合事件的方式,與正則表達式類似。讓我來解釋一下基本知識:有事件歷史記錄。這些是原始事件集合,每個事件都有一個唯一的時間戳(所以人們可以將它們看作序列,但可以對它們使用集合操作)。並有事件表達式。這些是從歷史到歷史的功能。適用於h(​​)的表達式Eh的子集,其中滿足E。例如,原始表達式a匹配a:
a[a, b, a, c, b] = a, a(時間戳隱式)。「相對+」運算符有什麼好處?

存在此運算符relative(E, F),其定義如此: 令E_i[h]爲​​中的第i個事件發生;通過刪除時間戳小於或等於E_i[h]的時間戳的所有事件發生,從h獲得​​。然後relative(E, F)[h] = union over all i:s F[h_i]。不那麼正式,relative(E, F)是事件發生在hF納假設歷史立即開始按照h一些事件發生在該E發生。例如。 relative(a, b)[b, c, a, c, b] = 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)

如何從剛剛Erelative+(E)有什麼不同?我的理解是,relative(E, E)[h]總是會成爲​​一個子集,因此他們的工會只是要等於​​。

回答

1

我想通了。要查看​​和relative+(E)[h]結果之間的差異,E需要的東西不僅僅是一個基本表達式匹配某種類型的所有事件更加複雜。例如:假設我們有一個事件表達式first,它始終與歷史記錄中的第一個事件相匹配。然後first[h]當然是h的第一要素,而relative+(first)[h]h本身,因爲它是第一h,那麼第一個第一h後,等