Le parti principali di una regola sono la selezione evento, la chiave di raggruppamento, la finestra di tempo per le regole di stato, la risposta della regola, l'intervallo di attivazione e le azioni di durata. Una regola include anche espressioni e variabili. Un'espressione è un codice che contiene la logica personalizzata che può essere aggiunta ad una regola.
I criteri di selezione evento determinano gli eventi che sono accettati per l'elaborazione della regola. L'elemento <eventSelector> definisce i criteri di selezione evento per una regola. La selezione evento si applica a tutte le regole tranne quelle che sono definite dallo schema timer. Poiché la regola timer non elabora eventi, non contiene criteri di selezione evento.
In genere ogni regola attiva ha un'istanza della regola o una copia che è in esecuzione nell'engine dell'Active Correlation Technology. Tuttavia, talvolta la stessa regola è necessaria per gruppi diversi di eventi, spesso correlati ai diversi gruppi di risorse. La chiave di raggruppamento è un metodo per indirizzare una regola in modo da creare un'istanza della regola separata (o una sua copia) per ciascun gruppo di eventi che condividono caratteristiche comuni.
La chiave di raggruppamento serve come forma ulteriore di selezione evento. Se una regola viene definita con una chiave di raggruppamento e la regola riceve un evento con le caratteristiche definite dalla chiave di raggruppamento, l'evento viene inviato all'istanza della regola che sta elaborando gli eventi che condividono quella caratteristica. Ad esempio è possibile definire una regola che raccoglie tutti gli eventi di sicurezza del tipo Audit Failure e definire la chiave di raggruppamento in modo da essere attributo hostname di un evento. La regola può ora essere utilizzata più volte, con una copia separata della regola in esecuzione per ciascun valore univoco dell'attributo hostname. E' possibile anche controllare tutti i sistemi che ricevono l'evento Audit Failure per determinare se si verificano più di 10 eventi come questi in un periodo di tempo di 2 minuti per ogni nome host.
L'elemento <groupingKey> definisce la chiave di raggruppamento per una regola ed è valido per le regole che vengono definite dagli schemi di raccolta, calcolo, duplicato, sequenza e soglia.
Siccome le regole stateful correlano più eventi che si verificano durante un periodo di tempo specifico, una parte basilare di una regola stateful è la finestra di tempo definita dall'elemento <timeWindow>. La finestra di tempo specifica il periodo di tempo durante il quale la regola stateful è in elaborazione per abbinarsi al suo schema.
L'intervallo di attivazione definisce quando una regola è attiva e inattiva. L'elemento <activationInterval> definisce l'intervallo di attivazione per una regola.
Una regola può essere attivata o disattivata in una fase definita o da un evento specifico.
Se si specifica che una regola deve essere attivata o disattivata, in una fase definita e da un evento specifico, la regola viene attivata o disattivata in base a ciò che si verifica per primo, la fase o la ricezione dell'evento. Tuttavia, in questo caso, la regola potrebbe essere attivata o disattivata da molti eventi per tutta la durata. Ad esempio una regola potrebbe essere attivata da un evento, disattivata, attivata in una fase definita, disattivata di nuovo e attivata da un altro evento.
L'elemento <activationByGroupingKey> è un elemento contenuto nell'elemento <activationInterval>. L'elemento <activationByGroupingKey> contiene elementi che specificano gli eventi che possono attivare e disattivare un'istanza della regola definita dall'elemento <groupingKey>.
Le azioni attinenti al ciclo di vita definiscono le azioni da intraprendere nelle quattro fasi principali nel ciclo di vita di una regola: caricamento, attivazione, disattivazione e scaricamento.