[TASK] Add references to listings within text.
This commit is contained in:
parent
a5f2dd21f5
commit
ae19055e3e
@ -173,8 +173,8 @@ Eine Speicherung der Ereignisse hat aufgrund der begrenzten Gültigkeitsdauer ih
|
|||||||
|
|
||||||
Die Informationen der Ereignisse stellen den momentanen Zustand dar; allerdings sind sie für sich alleine betrachtet Kontext- und somit Bedeutungslos. Betrachtet man beispielsweise das Ereignis \enquote{Die gemessene Motortemperatur beträgt 40°C.}, so ist daraus nicht zu erkennen, ob das Fahrzeug gerade seit kurzem auf der Straße unterwegs ist oder lediglich im Hochsommer in der Sonne steht. Auch ist nicht zu erkennen, ob es sich bei dem Motor überhaupt um einen Automotor handelt. Dass überhaupt von einer \enquote{Motortemperatur} die Rede sein kann impliziert bereits die Existenz von \emph{Hintergrundwissen} darüber, wo der Temperatursensor platziert ist - und somit, worauf sich die gemessene Temperatur bezieht.
|
Die Informationen der Ereignisse stellen den momentanen Zustand dar; allerdings sind sie für sich alleine betrachtet Kontext- und somit Bedeutungslos. Betrachtet man beispielsweise das Ereignis \enquote{Die gemessene Motortemperatur beträgt 40°C.}, so ist daraus nicht zu erkennen, ob das Fahrzeug gerade seit kurzem auf der Straße unterwegs ist oder lediglich im Hochsommer in der Sonne steht. Auch ist nicht zu erkennen, ob es sich bei dem Motor überhaupt um einen Automotor handelt. Dass überhaupt von einer \enquote{Motortemperatur} die Rede sein kann impliziert bereits die Existenz von \emph{Hintergrundwissen} darüber, wo der Temperatursensor platziert ist - und somit, worauf sich die gemessene Temperatur bezieht.
|
||||||
|
|
||||||
Ein weiterer wichtiger Faktor ist der Zeitraum, in dem Ereignisse auftreten. Um dies näher zu erläutern, betrachten wir beispielhaft den folgenden Ereignisstrom:
|
Ein weiterer wichtiger Faktor ist der Zeitraum, in dem Ereignisse auftreten. Um dies näher zu erläutern, betrachten wir beispielhaft den Ereignisstrom aus Listing~\ref{lst:sample_eventstream}.
|
||||||
\begin{lstlisting}[caption={Exemplarischer Ereignisstrom: Motortemperatur eines PKW}]
|
\begin{lstlisting}[caption={Exemplarischer Ereignisstrom: Motortemperatur eines PKW},label={lst:sample_eventstream}]
|
||||||
[T=1] Temperatursensor: 40°C
|
[T=1] Temperatursensor: 40°C
|
||||||
[T=2] Temperatursensor: 48°C
|
[T=2] Temperatursensor: 48°C
|
||||||
[T=3] Temperatursensor: 61°C
|
[T=3] Temperatursensor: 61°C
|
||||||
@ -189,18 +189,18 @@ Insgesamt liegt die Herausforderung bei CEP also darin große Ströme von Ereign
|
|||||||
|
|
||||||
\section{Complex Event Processing auf RDF-Datenströmen}
|
\section{Complex Event Processing auf RDF-Datenströmen}
|
||||||
|
|
||||||
Um Ereignisse aus verschiedenartigen Quellen gemeinsam zu verarbeiten ist das RDF-Format das Mittel der Wahl. Das Ressource Description Framework (RDF) wird bereits im semantischen Web zur Erfassung und Verknüpfung von Wissen verwendet und kann leicht über die Sprache SPARQL (\enquote{SPARQL Protocol And RDF Query Language}) abgefragt werden. Hierbei werden die Ereignisdatenströme der Engine entweder direkt als RDF-Datenstrom zugeführt oder falls nötig zuvor in einen RDF-Datenstrom konvertiert und dann in die Engine eingespeist. RDF-Daten bestehen aus einer Menge von Tripeln, welche sich aus den drei Komponenten Subjekt, Prädikat und Objekt zusammensetzen. Aufgrund dieser Struktur ist es möglich, jede Form von Informationen auf Tripel verlustfrei abzubilden.
|
Um Ereignisse aus verschiedenartigen Quellen gemeinsam zu verarbeiten ist das RDF-Format das Mittel der Wahl. Das Ressource Description Framework (RDF) wird bereits im semantischen Web zur Erfassung und Verknüpfung von Wissen verwendet und kann leicht über die Sprache SPARQL (\enquote{SPARQL Protocol And RDF Query Language}) abgefragt werden. Hierbei werden die Ereignisdatenströme der Engine entweder direkt als RDF-Datenstrom zugeführt oder falls nötig zuvor in einen RDF-Datenstrom konvertiert und dann in die Engine eingespeist. RDF-Daten bestehen aus einer Menge von Tripeln, welche sich aus den drei Komponenten Subjekt, Prädikat und Objekt zusammensetzen. Aufgrund dieser Struktur ist es möglich, jede Form von Informationen auf Tripel verlustfrei abzubilden. (Siehe Listing~\ref{lst:sample_rdf_event})
|
||||||
|
|
||||||
\begin{lstlisting}[caption={Beispielhafte Ereignisse im RDF-Format}]
|
\begin{lstlisting}[caption={Ereignis im RDF-Format},label={lst:sample_rdf_event}]
|
||||||
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#carID http://myexample.org/cars#8
|
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#carID http://myexample.org/cars#8
|
||||||
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentTemperature "27"^^http://www.w3.org/2001/XMLSchema#integer
|
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentTemperature "27"^^http://www.w3.org/2001/XMLSchema#integer
|
||||||
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentSpeed "13"^^http://www.w3.org/2001/XMLSchema#integer
|
http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentSpeed "13"^^http://www.w3.org/2001/XMLSchema#integer
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Der große Vorteil bei der Arbeit mit SPARQL auf RDF-Daten liegt darin, innerhalb einer einzigen SPARQL-Abfrage Ereignisse aus verschiedenen Quellen miteinander zu kombinieren, direkt mit Hintergrundwissen zu kombinieren, nach eigenen Kriterien zu filtern, einfache Berechnungen anzustellen und aus dem Ergebnis neue Ereignisse beliebiger Struktur zu erzeugen.
|
Der große Vorteil bei der Arbeit mit SPARQL auf RDF-Daten liegt darin, innerhalb einer einzigen SPARQL-Abfrage Ereignisse aus verschiedenen Quellen miteinander zu kombinieren, direkt mit Hintergrundwissen zu kombinieren, nach eigenen Kriterien zu filtern, einfache Berechnungen anzustellen und aus dem Ergebnis neue Ereignisse beliebiger Struktur zu erzeugen.
|
||||||
Somit muss der Anwender neben SPARQL keine weitere Programmiersprache lernen oder sich anderweitig mit der Engine auseinandersetzen, sondern kann sich komplett auf die zu analysierenden Ereignisse konzentrieren.
|
Somit muss der Anwender neben SPARQL keine weitere Programmiersprache lernen oder sich anderweitig mit der Engine auseinandersetzen, sondern kann sich komplett auf die zu analysierenden Ereignisse konzentrieren. Listing~\ref{lst:sample_combine_events_sparql} zeigt einen SPARQL-Query, in dem zwei aufeinanderfolgende Ereignisse mit Angaben zur Momentangeschwindigkeit eines Autos zu einem komplexeren Beschleunigungsereignis kombiniert werden.
|
||||||
|
|
||||||
\begin{lstlisting}[caption={Erzeugung von neuen Ereignissen aus vorhandenen Ereignissen mit SPARQL}]
|
\begin{lstlisting}[caption={Kombination von Ereignissen mit SPARQL},label={lst:sample_combine_events_sparql}]
|
||||||
REGISTER QUERY ConstructAcceleratingCars AS
|
REGISTER QUERY ConstructAcceleratingCars AS
|
||||||
PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#>
|
PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#>
|
||||||
PREFIX cars: <http://myexample.org/cars#>
|
PREFIX cars: <http://myexample.org/cars#>
|
||||||
@ -221,6 +221,7 @@ WHERE {
|
|||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{Gegenüberstellung existierender CEP-Engines}
|
\chapter{Gegenüberstellung existierender CEP-Engines}
|
||||||
|
|
||||||
Es gibt bereits einige Technologien um Ereignisströme zu verarbeiten.
|
Es gibt bereits einige Technologien um Ereignisströme zu verarbeiten.
|
||||||
@ -228,6 +229,8 @@ Im Folgenden stelle ich nun ein paar bekannte Systeme kurz vor.
|
|||||||
|
|
||||||
\section{Anforderungen an CEP-Engines}
|
\section{Anforderungen an CEP-Engines}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Wichtig wären gegebenenfalls diese Kriterien:
|
Wichtig wären gegebenenfalls diese Kriterien:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
Loading…
Reference in New Issue
Block a user