[TASK] Generic commit.
This commit is contained in:
parent
a9a7205f99
commit
63d61cf8da
@ -446,7 +446,7 @@ Nimmt man nun die oben angegebene Beispielfolge und formuliert daraus ein Muster
|
||||
Dieses Muster kann man nun in einer CEP-Regel einsetzen, jedoch ist noch nicht garantiert, dass die auf das Muster passenden Ereignisinstanzen sich auf den \emph{selben} PKW beziehen --- es fehlen noch \emph{Kontextbedingungen}. Um diese zu definieren muss innerhalb der CEP-Regel Zugriff auf die Daten der gefundenen Ereignisinstanzen möglich sein. Um dies zu ermöglichen, gibt es drei Hilfsmittel:
|
||||
\begin{itemize}
|
||||
\item Die \textbf{Aliasanweisung} \texttt{AS} ermöglicht die Definition eines Variablennamens innerhalb des Ereignismusters, der die für einen Ereignistypen gefundene Ereignisinstanz enthalten soll. So würde das Ereignismuster $(A\ AS\ eventA)$ dafür sorgen, dass die gefundene Ereignisinstanz vom Typ A in der Variable \texttt{eventA} für den Rest der CEP-Regel verfügbar ist.
|
||||
\item Um nun auf Attribute einer Ereignisinstanz zuzugreifen, wird der \textbf{Attributoperator} \enquote{\texttt{.}} verwendet: Gegeben sei eine Ereignisinstanz, welche das Attribut \texttt{pkwID} enthält und in der Variable \texttt{eventA} enthalten ist, so würde der Ausdruck \[eventA.pkwID\] den Wert dieses Attributs zurückgeben.
|
||||
\item Um nun auf Attribute einer Ereignisinstanz zuzugreifen, wird der \textbf{Attributoperator} \enquote{\textbf{.}} verwendet: Gegeben sei eine Ereignisinstanz, welche das Attribut \texttt{pkwID} enthält und in der Variable \texttt{eventA} enthalten ist, so würde der Ausdruck \[eventA.pkwID\] den Wert dieses Attributs zurückgeben.
|
||||
\end{itemize}
|
||||
Geht man davon aus, dass die Ereignistypen A und C aus dem obigen Ereignismuster die ID des PKW, von dem das Ereignis ausgelöst wurde, in dem Attribut \texttt{pkwID} enthalten, so kann man mit der Kontextbedingung
|
||||
\[a.pkwID\ =\ c.pkwID\]
|
||||
@ -494,7 +494,7 @@ In einer CEP-Regel können Aggregation mit dem Konstrukt
|
||||
\begin{lstlisting}
|
||||
AGGREGATE(event, "attribute", function)
|
||||
\end{lstlisting}
|
||||
notiert werden, wobei \texttt{event} eine Ereignisinstanz enthält, \texttt{'attribute'} den Namen des zu aggregierenden Attributs nennt, und \texttt{function} die Funktion nennt, mit der die Daten aggregiert werden sollen. Folgende Funktionen stehen zur Verfügung:
|
||||
notiert werden, wobei \texttt{event} eine Ereignisinstanz enthält, \texttt{'attribute'} den Namen des zu aggregierenden Attributs nennt, und \texttt{function} die Funktion nennt, mit der die Daten aggregiert werden sollen. Das Ergebnis der Aggregationsfunktion kann direkt in Kontextbedingungen verwendet werden oder mit dem \texttt{AS}-Operator einer lokalen Variable zugewiesen werden. Die folgenden Funktionen stehen zur Verfügung:
|
||||
\begin{itemize}
|
||||
\item COUNT: Zählt alle Ereignisinstanzen; die Angabe des Attributnamen wird nicht berücksichtigt.
|
||||
\item SUM: Bildet Summe über Attributwerte
|
||||
@ -503,10 +503,11 @@ notiert werden, wobei \texttt{event} eine Ereignisinstanz enthält, \texttt{'att
|
||||
\item MAX: Ermittelt maximalen Attributwert
|
||||
\end{itemize}
|
||||
|
||||
Beispiel: Innerhalb eines 15 Minuten Zeitfensters soll die durchschnittliche Geschwindigkeit von PKW bestimmt werden, die einen Messpunkt an einer Straße passieren. Unterschreitet die Durchschnittsgeschwindigkeit den Wert von 60km/h, so soll die Regel feuern.
|
||||
Um die Verwendung von Aggregationsfunktionen innerhalb von CEP-Regeln zu demonstrieren, folgt nun ein Beispiel: Innerhalb eines 15 Minuten Zeitfensters soll die durchschnittliche Geschwindigkeit von PKW bestimmt werden, die einen Messpunkt an einer Straße passieren. Unterschreitet die Durchschnittsgeschwindigkeit den Wert von 60km/h, so soll die Regel feuern.
|
||||
\begin{lstlisting}[mathescape=true,label={lst:abstract_cep_rule_four},caption={Beispiel zur Nutzung von \texttt{AGGREGATE()}}]
|
||||
CONDITION ($MeasureEvent\ AS\ m$)
|
||||
$\wedge$ AGGREGATE(m, "speed", AVG) < 60
|
||||
$\wedge$ AGGREGATE(m, "speed", AVG) AS averageSpeed
|
||||
$\wedge$ averageSpeed < 60
|
||||
ACTION
|
||||
... auszulösende Aktionen ...
|
||||
\end{lstlisting}
|
||||
|
Loading…
Reference in New Issue
Block a user