复杂事件处理(CEP)语言与查询综述
1. 逻辑语言概述
逻辑语言以逻辑风格的公式来表达事件查询。早期具有代表性的是事件演算,虽然它本身并非事件查询语言,但已被用于在诸如 Prolog 或 Prova 等逻辑编程语言中对事件查询和推理任务进行建模。其中,Prova 结合了声明式和面向对象编程的优点,它融合了 Prolog 和 Java 的语法,可作为生物医学数据集成中分布式 Web 应用的基于规则的支柱。Prova 的一个关键优势在于它能将逻辑、数据访问和计算分离开来。
XChangeEQ 借鉴了类似事件演算的方法,并对其进行扩展和调整,以满足表达性高的高级事件查询语言的需求。它识别并支持事件查询的四个互补维度:数据提取、事件组合、事件间的时间(及其他)关系和事件累积。其语言设计强制将这四个查询维度分离开来。
还有 Reaction RuleML,它将推导规则、反应规则和其他规则类型(如完整性约束)整合到逻辑编程的通用框架中。
2. 传感器网络用例
2.1 XChangeEQ 规则结构
XChangeEQ 规则由两部分组成:
- ON 部分(规则主体):是一个复杂的事件查询,它可以是简单或复杂事件查询的合取或析取,还可以包含一个可选的 WHERE 块,其中包含对查询事件的时间和其他条件。
- DETECT 部分(规则头部):使用相应事件查询返回的变量绑定来构建一个复杂事件。
需要注意的是,XChangeEQ 不会将事件转换为关系元组或面向对象编程语言的对象,也不允许有意识或无意识地操作事件时间戳,并且支持相对定时器事件。
超级会员免费看
订阅专栏 解锁全文
1011

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



