[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-09-29 13:21:49 +02:00
parent 0a47130d41
commit 290b547f1a

View File

@ -642,7 +642,9 @@ WHERE {
\end{lstlisting}
\paragraph{Ereignisdatenströme in Sliding Windows}
Um mit der Verarbeitung von Ereignisdatenströmen beginnen zu können, müssen die für die Verarbeitung benötigten RDF-Datenströme in der CEP-Regel angegeben werden. Das Konstrukt \texttt{FROM [NAMED] STREAM <\emph{streamUri}> [\emph{window}]} wird zwischen den Klauseln \texttt{SELECT} und \texttt{WHERE} angegeben und definiert neben der in \texttt{streamUri} zu hinterlegenden URI des zu konsumierenden RDF-Datenstroms auch das an Stelle von \texttt{window} zu definierende Sliding Window, in dem dieser betrachtet werden soll\cite{barbieri:csparql}. Die Angabe des Sliding Windows ist hier zwingend erforderlich, da die kontinuierlich einströmenden Ereignisdaten zur Verarbeitung auf eine endliche Datenmenge reduziert werden müssen. Weiterhin ist die Spezifikation des Sliding Window sinnvoll, da je nach Anforderungen der CEP-Regel Ereignisse aus bestimmten Zeiträumen für die Verarbeitung interessant sind --- je nach Zweck der CEP-Regel können diese Zeiträume sich stark unterscheiden.
Um mit der Verarbeitung von Ereignisdatenströmen beginnen zu können, müssen die für die Verarbeitung benötigten RDF-Datenströme in der CEP-Regel angegeben werden. Das Konstrukt \texttt{FROM [NAMED] STREAM <\emph{streamUri}> [\emph{window}]} wird zwischen den Klauseln \texttt{SELECT} und \texttt{WHERE} angegeben und definiert neben der in \texttt{streamUri} zu hinterlegenden URI des zu konsumierenden RDF-Datenstroms auch das an Stelle von \texttt{window} zu definierende Sliding Window, in dem dieser betrachtet werden soll\cite{barbieri:csparql}. Die Angabe des Schlüsselworts \texttt{NAMED} ist hierbei optional und funktioniert ähnlich wie in herkömmlichen SPARQL-Queries indem die Herkunft der einströmenden Tripel in Variablen vorgehalten wird, die über die \texttt{GRAPH}-Klausel verwendet werden können.
Die Angabe des Sliding Windows ist zwingend erforderlich, da die kontinuierlich einströmenden Ereignisdaten zur Verarbeitung auf eine endliche Datenmenge reduziert werden müssen. Weiterhin ist die Spezifikation des Sliding Window sinnvoll, da je nach Anforderungen der CEP-Regel Ereignisse aus bestimmten Zeiträumen für die Verarbeitung interessant sind --- je nach Zweck der CEP-Regel können diese Zeiträume sich stark unterscheiden.
Um ein Sliding Window zu definieren, wird die folgende Grammatik (entnommen aus \cite{barbieri:csparql}) ab dem Einstiegspunkt \texttt{Window} verwendet:
\begin{lstlisting}[mathescape=true]
@ -672,6 +674,12 @@ beschrieben werden. In der Abfragesprache C-SPARQL kann dieses Tumbling Window d
Übersetzt man diese Definition in die C-SPARQL-Abfragesprache, so erhält man \texttt{[RANGE TRIPLES 150]}.
\end{itemize}
Um einen RDF-Ereignisdatenstrom innerhalb einer C-SPARQL-Abfrage verwenden zu können, ist also lediglich die Nutzung des \texttt{FROM STREAM}-Konstrukts notwendig. Gegeben sei ein RDF-Datenstrom, der innerhalb eines Sliding Window über einen Zeitraum von 30 Minuten bei einer Schrittgröße von 5 Minuten betrachtet werden soll, der unter der URI \texttt{http://example.org/exampleStream} erreichbar ist. Um ihn in eine C-SPARQL-Abfrage unter den genannten Bedingungen einzubringen, muss also die Anweisung
\begin{lstlisting}
FROM STEAM <http://example.org/exampleStream> [RANGE 30 MIN STEP 5 MIN]
\end{lstlisting}
verwendet werden.
\paragraph{Mustererkennung}
\todo{\dots} Ereignismuster lassen sich durch Sequenzen von auftretenden bzw. nicht auftretenden Ereignissen definieren. Um diese zu finden, müssen Tripel selektiert werden, die zu den benötigten Ereignistypen korrespondieren, wobei diese später über \texttt{FILTER}-Anweisungen in ihrer Reihenfolge festgelegt werden. Über Differenzen der durch \texttt{f:timestamp(?s,?p,?o)} angegebenen Zeitstempel von gegebenen Tripeln lassen sich auch zeitliche Beziehungen eingrenzen und festlegen.