[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-09-29 13:45:11 +02:00
parent 84c72da171
commit beddc45dbc
1 changed files with 7 additions and 7 deletions

View File

@ -644,7 +644,7 @@ Neben der Angabe von Prefixen mit der \texttt{PREFIX}-Klausel, die hier aus Grü
\begin{lstlisting}
'REGISTER' ('QUERY'|'STREAM') QName 'AS' Query
\end{lstlisting}
Vorerst werden C-SPARQL-Queries unter Angabe des Schlüsselwortes \texttt{QUERY} registriert, mit dem Schlüsselwort \texttt{STREAM} wird sich später im Abschnitt (?)\todo{Referenz!} beschäftigt.
Somit sieht das Grundgerüst eines C-SPARQL-Queries, der unter dem Namen \enquote{exampleQuery} an der Engine registriert werden soll, wie folgt aus:
\begin{lstlisting}[label={lst:sample_csparql_query_structure},caption={Grundgerüst eines C-SPARQL-Queries}]
REGISTER QUERY exampleQuery AS
@ -658,11 +658,11 @@ Um mit der Verarbeitung von Ereignisdatenströmen beginnen zu können, müssen d
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 in C-SPARQL zu definieren, wird die folgende Grammatik (entnommen aus \cite{barbieri:csparql}) ab dem Einstiegspunkt \texttt{Window} verwendet:
Um ein Sliding Window in C-SPARQL zu definieren, wird die folgende Grammatik (entnommen aus \cite{barbieri:querying}) ab dem Einstiegspunkt \texttt{Window} verwendet:
\begin{lstlisting}[mathescape=true]
Window $\rightarrow$ 'RANGE' LogicalWindow | 'RANGE' PhysicalWindow
LogicalWindow $\rightarrow$ Number TimeUnit WindowOverlap
TimeUnit $\rightarrow$ 'MSEC' | 'SEC' | 'MIN' | 'HOUR' | 'DAY'
TimeUnit $\rightarrow$ 'ms' | 's' | 'm' | 'h' | 'd'
WindowOverlap $\rightarrow$ 'STEP' Number TimeUnit | 'TUMBLING'
PhysicalWindow $\rightarrow$ 'TRIPLES' Number
\end{lstlisting}
@ -673,12 +673,12 @@ Mit dieser Grammatik können drei verschiedene Sorten von Sliding Windows defini
\begin{lstlisting}
[WindowSize:15min,StepSize:5s]
\end{lstlisting}
definiert ein Sliding Window, welches Ereignisdaten über einen Zeitraum von 15 Minuten beinhaltet und nach jeder erfolgten Auswertung in 5 Sekunden-Schritten verschoben wird. Übersetzt man diesen Ausdruck mit der obigen Grammatik in einen C-SPARQL-Ausdruck, so erhält man \texttt{[RANGE 15 MIN STEP 5 SEC]}.
definiert ein Sliding Window, welches Ereignisdaten über einen Zeitraum von 15 Minuten beinhaltet und nach jeder erfolgten Auswertung in 5 Sekunden-Schritten verschoben wird. Übersetzt man diesen Ausdruck mit der obigen Grammatik in einen C-SPARQL-Ausdruck, so erhält man \texttt{[RANGE 15m STEP 5s]}.
\item Das \textbf{Tumbling Window} ist ein Sonderfall des Sliding Window, da es nach jeder erfolgten Auswertung um seine eigene Größe verschoben wird. Ein solches Ereignisfenster, welches Ereignisdaten über den Zeitraum einer Stunde fasst und nach jeder erfolgten Auswertung um diese Größe verschoben wird, kann durch den Ausdruck
\begin{lstlisting}
[WindowSize:1h,StepSize:1h]
\end{lstlisting}
beschrieben werden. In der Abfragesprache C-SPARQL kann dieses Tumbling Window durch den Ausdruck \texttt{[RANGE 1 HOUR TUMBLING]} definiert werden. Durch das Verschieben des Tumbling Windows um seine eigene Größe kommt es nicht zu Überlappungen zwischen den Fenstern, sodass eine Ereignisinstanz immer nur in einem Tumbling Window und somit auch nur in einer Auswertung vorkommt.
beschrieben werden. In der Abfragesprache C-SPARQL kann dieses Tumbling Window durch den Ausdruck \texttt{[RANGE 1h TUMBLING]} definiert werden. Durch das Verschieben des Tumbling Windows um seine eigene Größe kommt es nicht zu Überlappungen zwischen den Fenstern, sodass eine Ereignisinstanz immer nur in einem Tumbling Window und somit auch nur in einer Auswertung vorkommt.
\item Das \textbf{Physical Window} nutzt keine Zeiträume zur Festlegung seiner Größe, sondern eine feste Anzahl von Ereignisinstanzen, die es enthalten kann. Da die C-SPARQL-Engine bei dieser Art von Ereignisfenster keine Angabe einer Schrittgröße erlaubt\cite{barbieri:csparql}, um die das Fenster nach jeder Auswertung verschoben wird, wird davon ausgegangen, dass das Fenster immer nur um eine Ereignisinstanz verschoben wird. Der folgende Ausdruck definiert ein Physical Window, welches 150 Ereignisinstanzen erfasst und immer nur um eine Ereignisinstanz verschoben wird:
\begin{lstlisting}
[WindowSize:150events,StepSize:1event]
@ -688,7 +688,7 @@ beschrieben werden. In der Abfragesprache C-SPARQL kann dieses Tumbling Window d
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]
FROM STEAM <http://example.org/exampleStream> [RANGE 30m STEP 5m]
\end{lstlisting}
verwendet werden.
@ -703,7 +703,7 @@ AGGREGATE {
(?zielVariable, COUNT, { ?groupByVariableA, ?groupByVariableB } )
FILTER ( ?zielVariable > 5 )
}
\end{lstlisting}
\end{lstlisting}\cite{barbieri:csparql}
Mögliche Aggregationsfunktionen laut \cite{barbieri:csparql} sind:
\begin{itemize}
\item COUNT