Listing 2: Syntax of the Streaming MASSIF DSL. |
DSL -> NameSpace* EventDecl* RSPQL?
EventDecl -> ‘NAMED EVENT’ EventName (AbstractEvent | ComplexEvent)
AbstractEvent -> ‘AS’ DLDescription
ComplexEvent -> ‘MATCH’ (Modifier)? EventPattern (Guard)? (IFClause)?
EventPattern -> EventPattern EventOperator EventPattern|AbstractEvent|‘NOT’EventPattern
IFClause -> ‘IF’ ‘{’ (‘EVENT’ AbstractEvent ‘{’ BGP ‘}’)* ‘}’
EventOperator -> ‘AND’ | ‘OR’| ‘SEQ’
Modifier -> ‘EVERY’ | ‘FIRST’ | ‘LAST’
Guard -> ‘WHITIN’ Num ‘(’ TIMEUNIT ‘)’
TIMEUNIT -> ‘s’ | ‘m’ | ‘h’ | ‘d’
EventName -> String
Num -> [0-9]+
NameSpace -> SPARQL PREFIX SYNTAX
DLDescription -> MANCHESTER SYNTAX
BGP -> SPARQL BGP SYNTAX
RSPQL -> RSP-QL SYNTAX
|