DELP is a Description Logic syntax for Event Processing.
EventClause -> ['NAMED'] 'EVENT' eventIRI (EventDecl | PatternDecl)
EventDecl -> Manchester Syntax Description
PatternDecl -> 'WHEN' PatternExpr [IFDecl]
PatternExpr -> 'MATCH' FollowedByExpr [WITHIN TimePeriod ]
TimePeriod -> INTEGER (ms | s | m | h | d | w)
FollowedByExpr -> orExpr ((['NOT'] FOLLOWED_BY) andExpr)*
OrExpr -> andExpr (OR andExpr)*
AndExpr -> qualifyExpr ( AND qualifyExpr)*
EveryOrNotExpr -> ['EVERY' | 'NOT' ] ( eventIRI ['AS' eventAltIri] | '(' patternExpr ')' )*
IFDecl -> 'IF' '{' 'EVENT' (eventIRI | Var) FilterExpr '}'
FilterExpr -> '{' ( BGP | Filter)* '}'
##Example
PREFIX : http://example.org [...]
EVENT :SmokeDetectionEvent subClassOf
( ssniot:hasContext some ( ssniot:observedProperty some (ssn:Smoke) ) ) .
EVENT :HighTemperaturEvent subClassOf
( ssniot:hasContext some ( ssniot:observedProperty some (ssn:Temperature) ) )
NAMED EVENT :Fire {
MATCH :HighTemperaturEvent -> :SmokeDetectionEvent WITHIN (5m)
IF {
EVENT :SmokeDetectionEvent { ?l1 dul:hasDataValue ?v}
EVENT :HighTemperaturEvent { ?l2 dul:hasDataValue ?v}
}
}