diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index acebc9e..9c2f466 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -178,16 +178,17 @@ Insgesamt liegt die Herausforderung von CEP darin, in kürzester Zeit große Dat \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. (Siehe Listing~\ref{lst:sample_rdf_event}) +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. RDF-Daten bestehen aus einer Menge von Tripeln, welche sich aus den drei Komponenten Subjekt, Prädikat und Objekt zusammensetzen. Ein Subjekt wird durch eine eindeutige URI repräsentiert; über Prädikate aus Ontologien können diesem Subjekt über Spezifikation im Objekt-Teil des Tripels bestimmte Attribute mit Werten zugesprochen werden oder Verknüpfungen mit anderen Subjekten hergestellt werden. Aufgrund der Flexibilität dieser Struktur ist es möglich, nahezu jede Art von Informationen auf Tripel abzubilden. +Zur Verarbeitung von Ereignissen im RDF-Format werden die Ereignisdatenströme der verarbeitenden Engine entweder direkt als RDF-Datenstrom zugeführt oder gegebenenfalls vor der Zuführung in einen RDF-Datenstrom konvertiert. In Listing~\ref{lst:sample_rdf_event} aufgeführt sind RDF-Tripel, die ein beispielhaftes Zustands-Ereignis aus einem PKW zeigen. \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#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 \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. -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. +Der große Vorteil bei der Ereignisverarbeitung mit SPARQL auf RDF-Daten liegt in der Mächtigkeit dieser Abfragesprache: Innerhalb einer einzigen SPARQL-Abfrage ist es möglich 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 Implementierung 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={Kombination von Ereignissen mit SPARQL},label={lst:sample_combine_events_sparql}] REGISTER QUERY ConstructAcceleratingCars AS @@ -209,8 +210,6 @@ WHERE { } \end{lstlisting} - - \chapter{Gegenüberstellung existierender CEP-Engines} Es gibt bereits einige Technologien um Ereignisströme zu verarbeiten. @@ -218,8 +217,6 @@ Im Folgenden stelle ich nun ein paar bekannte Systeme kurz vor. \section{Anforderungen an CEP-Engines} - - Wichtig wären gegebenenfalls diese Kriterien: \begin{itemize}