[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-10-10 11:30:06 +02:00
parent 30c7526927
commit 035f33e49a

View File

@ -1056,7 +1056,7 @@ Um diese Ereignisdatenströme nun zu Verarbeiten, werden die Anforderungen des S
\paragraph{Erkennung von Verschleiß am Fahrzeug} Um durch unsachgemäße Nutzung bedingten Verschleiß an den PKW feststellen zu können, sind Ereignisse vom Typ \texttt{CarStatusEvent} ein guter Einstiegspunkt. So lassen sich gleich mehrere Arten von Verschleiß hieraus ermitteln:
\begin{itemize}
\item Verschleiß des Motors durch starkes Beschleunigen:
\item \textbf{Verschleiß des Motors durch starkes Beschleunigen:}
Hierfür genügt es, zwei direkt aufeinanderfolgende \texttt{CarStatusEvent}s zu betrachten, die sich auf den selben PKW beziehen. Ermittelt man zwischen den beiden Ereignissen die Geschwindigkeits\-differenz und prüft, ob diese größer als ein gegebener Schwellwert (beispielsweise 25km/h) ist. Trifft dies zu, so wurde eine starke Beschleunigung erkannt.
Die hieraus resultierende, abstrakte CEP-Regel sieht wie folgt aus:
\begin{lstlisting}[mathescape=true,label={},caption={}]
@ -1066,11 +1066,11 @@ CONDITION ($CarStatusEvent\ AS\ c1 \rightarrow\ CarStatusEvent\ AS\ c2$)
$\wedge$ c2.speed-c1.speed AS deltaSpeed
$\wedge$ deltaSpeed > 25
ACTION
new StrongAccelerationEvent(relatedCar=c1.relatedCar, deltaSpeed=deltaSpeed)
new CarStrongAccelerationEvent(relatedCar=c1.relatedCar, deltaSpeed=deltaSpeed)
\end{lstlisting}
Übersetzt man dies in einen C-SPARQL-Query, so erhält man folgende Abfrage:
\begin{lstlisting}[label={},caption={}]
\begin{lstlisting}[label={lst:scenario_strong_acceleration},caption={Erkennung von starker Beschleunigung mit C-SPARQL}]
REGISTER STREAM getStronglyAcceleratingCars AS
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#>
@ -1100,13 +1100,14 @@ WHERE {
}
\end{lstlisting}
Diese muss nun lediglich als Ereignisdatenstrom an der Engine registriert werden, und kann dann innerhalb von weiteren C-SPARQL-Queries verwendet werden.
\item Verschleiß der Bremsen durch sehr starke Bremsmanöver
\item Verschleiß des Motors durch Fahrt mit überhöhter Motordrehzahl
\item \textbf{Verschleiß der Bremsen durch sehr starke Bremsmanöver:}
Die Umsetzung hier ist sehr ähnlich zu dem Query aus Listing~\ref{lst:scenario_strong_acceleration}, da der einzige Unterschied die Beschleunigungsrichtung ist. Somit ist für die Erkennung lediglich die Vertauschung der beiden Geschwindigkeitsparameter bei der Differenzbildung notwendig. Am Ende der Auswertung wird dann ein Ereignis vom Typ \texttt{CarStrongBrakeEvent} gefeuert.
\item \textbf{Verschleiß des Motors durch Fahrt mit überhöhter Motordrehzahl:}
\item Verschleiß der Handbremse durch Fahren mit angezogener Handbremse
\item Verschleiß der Reifen durch Fahren mit zu niedrigem Reifendruck
\item \textbf{Verschleiß der Handbremse durch Fahren mit angezogener Handbremse:}
\item \textbf{Verschleiß der Reifen durch Fahren mit zu niedrigem Reifendruck:}
\end{itemize}