[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-10-10 11:07:33 +02:00
parent addc1509bb
commit 09e2ff5c84
2 changed files with 20 additions and 4 deletions

View File

View File

@ -995,7 +995,7 @@ Die Details der technischen Implementierung von Reasoning in der C-SPARQL-Engine
\chapter{Umsetzung des Beispielszenarios}\label{cpt:csparql_in_practice}
Nachdem die Umsetzung von CEP-Regeln in C-SPARQL im vorherigen Kapitel erläutert wurde, soll nun das in Kapitel~\ref{cpt:scenario} angerissene Beispielszenario der Autoverleihgesellschaft umgesetzt werden. Gegeben hierfür sind zwei Ereignisdatenströme, eine lokale Wissensbasis (ABox) sowie ein grundlegendes Vokabular (TBox), welches Definitionen von Objektklassen und Attributen enthält. Mit diesen Resourcen soll die Umsetzung des Beispielszenarios Schritt für Schritt durchgeführt werden.
Nachdem die Umsetzung von CEP-Regeln in C-SPARQL im vorherigen Kapitel erläutert wurde, soll nun das in Kapitel~\ref{cpt:scenario} angerissene Beispielszenario der Autoverleihgesellschaft umgesetzt werden. Gegeben hierfür sind zwei Ereignisdatenströme, eine lokale Wissensbasis (ABox) und ein grundlegendes Vokabular (TBox), welches Definitionen für die in der ABox und in den Ereignisdatenströmen verwendeten Objektklassen und Attributen enthält. Mit diesen Resourcen soll die Umsetzung der Anforderungen des Beispielszenarios Schritt für Schritt durchgeführt werden.
Im Folgenden werden zunächst die beiden zu verarbeitenden RDF-Ereignisdatenströme vorgestellt:
@ -1054,11 +1054,27 @@ Es folgt ein gekürzter Auszug aus der ABox der lokalen Wissensbasis:
\section{Umsetzung der Anforderungen}
Um diese Ereignisdatenströme nun zu Verarbeiten, werden die Anforderungen des Szenarios aus Kapitel~\ref{cpt:scenario} zunächst genauer betrachtet und CEP-Regeln für sie formuliert.
\paragraph{Erkennung von Verschleiß am Fahrzeug} Um durch Nutzung bedingten Verschleiß an den PKW feststellen zu können, lohnt sich ein Blick auf die \texttt{CarStatusEvent}s, die ein PKW periodisch auslöst. So lassen sich gleich mehrere Arten von Verschleiß hieraus ermitteln:
\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, sowie Fahrt mit überhöhter Motordrehzahl
\item 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={}]
CONDITION ($CarStatusEvent\ AS\ c1 \rightarrow\ CarStatusEvent\ AS\ c2$)
$\wedge$ c1.relatedCar = c2.relatedCar
$\wedge$ c2.speed > c1.speed
$\wedge$ c2.speed-c1.speed AS deltaSpeed
$\wedge$ deltaSpeed > 25
ACTION
new StrongAccelerationEvent(relatedCar=c1.relatedCar, deltaSpeed=deltaSpeed)
\end{lstlisting}
\item Verschleiß der Bremsen durch sehr starke Bremsmanöver
\item Verschleiß des Motors durch Fahrt mit überhöhter Motordrehzahl
\item Verschleiß der Handbremse durch Fahren mit angezogener Handbremse
\item Verschleiß der Bremsen durch häufige, sehr starke Bremsmanöver
\item Verschleiß der Reifen durch Fahren mit zu niedrigem Reifendruck
\end{itemize}