[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-09-29 11:30:55 +02:00
parent 503a03483d
commit 510472b03a
1 changed files with 13 additions and 9 deletions

View File

@ -599,7 +599,7 @@ Unter Berücksichtigung dieser Kriterien fiel die Wahl auf die CEP-Engine C-SPAR
\chapter{CEP auf RDF-Datenströmen anhand der C-SPARQL Engine}
Nachdem die Wahl der CEP-Engine im vorherigen Kapitel auf die C-SPARQL-Engine gefallen ist, sollen in diesem Kapitel nun ihre Möglichkeiten zur Verarbeitung von RDF-Datenströmen beleuchtet werden. Hierfür wird die Abbildung von Ereignisdaten mit RDF erläutert und die in Kapitel~\ref{cpt:cep_intro} eingeführte abstrakte Sprache für CEP-Regeln verwendet werden, um die Fähigkeiten von C-SPARQL-Queries zu demonstrieren --- der Regelsprache der C-SPARQL-Engine.
Nachdem die Wahl der CEP-Engine im vorherigen Kapitel auf die C-SPARQL-Engine gefallen ist, sollen in diesem Kapitel nun ihre Möglichkeiten zur Verarbeitung von RDF-Datenströmen beleuchtet werden. Hierfür wird die Abbildung von Ereignisdaten mit RDF erläutert und die in Kapitel~\ref{cpt:cep_intro} eingeführte abstrakte Sprache für CEP-Regeln verwendet werden, um die Fähigkeiten von C-SPARQL-Queries zu demonstrieren --- die auf SPARQL aufgebaute Regelsprache der C-SPARQL-Engine.
\section{Ereignisinstanzen in RDF-Datenströmen}
Ereignisse --- genauer: Ereignisinstanzen --- werden aufgrund der Nutzung von RDF-Datenströmen als Transportmedium nun durch RDF-Tupel beschrieben. Diese tragen neben den typischen Inhalten von Tripeln (Subjekt, Prädikat und Objekt) nun eine vierte Information mit sich: den Zeitstempel, zu dem das Ereignis ausgelöst wurde. Da die Tupel nun mit dem Zeitstempel insgesamt vier Angaben enthalten, werden sie als \emph{Quadrupel} bezeichnet.
@ -630,20 +630,24 @@ Wie aus Listing~\ref{lst:sample_abstract_event_data} zu erkennen ist, ist jede E
Wie in Listing~\ref{lst:sample_event_rdf_quads} zu sehen ist, wurde die ID der Ereignisinstanzen zur Generierung der Subjekt-URI verwendet, die in den Quadrupeln verwendet werden, um die Ereignisse zu beschreiben. Aus dem Ereignistyp wurde eine Aussage, die die Subjekt-URI via \texttt{rdf:type} mit einer RDFS-Objektklasse verknüpft, die diesen Ereignistypen repräsentieren soll. Alle weiteren Attribute der Ereignisinstanzen wurden über eigens hierfür definierte RDFS-Prädikate dem Ereignissubjekt zugeordnet. Die Angabe des PKW, auf den sich die Ereignisinstanzen beziehen, wurde durch eine direkte Verknüpfung der Ereignissubjekte mit dem zugehörigen PKW-Subjekt modelliert. Die PKW-Subjekte sind hierbei im Domänenwissen hinterlegt; dazu später mehr\todo{Kapitelreferenz!}.
\section{C-SPARQL als Sprache für CEP-Regeln}
Um die Ereignisdatenströme mit RDF-Quadrupeln nun in der C-SPARQL-Engine verarbeiten zu können, werden im Verarbeitungsprozess in C-SPARQL-Queries formulierte CEP-Regeln benötigt.
\paragraph{Sliding Windows}
Um mit der Verarbeitung von Ereignisdatenströmen beginnen zu können, müssen die kontinuierlich einströmenden Ereignisdaten auf eine endliche Menge an Daten reduziert werden. Da je nach Anforderungen ältere Ereignisse in die Verarbeitung mit eingebezogen werden sollen, muss eine CEP-Regel in der Lage sein, Einfluss auf das Sliding Window zu nehmen, indem sie dessen Größe definiert.
Um die Ereignisdatenströme mit RDF-Quadrupeln nun in der C-SPARQL-Engine verarbeiten zu können, werden im Verarbeitungsprozess in C-SPARQL-Queries formulierte CEP-Regeln benötigt. Die Konstrukte und Fähigkeiten von C-SPARQL sollen in diesem Abschnitt erläutert werden.
Da C-SPARQL die Abfragesprache SPARQL lediglich erweitert, kann ein einfacher SPARQL-\texttt{SELECT}-Query als Ausgangspunkt verwendet werden:
\begin{lstlisting}
SELECT ...
FROM STREAM <http://example.org/carSim/stream/carStream> [RANGE 10 MIN STEP 30 SEC]
FROM STREAM <> [RANGE 10 MIN TUMBLING]
WHERE {
...
...
}
\end{lstlisting}
\paragraph{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 STREAM <\emph{streamUri}> [RANGE \emph{window}]} wird zwischen den Klauseln \texttt{SELECT} und \texttt{WHERE} angegeben und definiert neben der URI des zu konsumierenden RDF-Datenstroms auch das 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.
\begin{lstlisting}
[RANGE 10 MIN STEP 30 SEC]
[RANGE 10 MIN TUMBLING]
[RANGE 150 TUPLES]
\end{lstlisting}
\paragraph{Aggregation von Ereignissen}
\dots