diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index f27d7bf..999046f 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -204,7 +204,7 @@ Ein weiterer Kernaspekt von CEP ist die Mustererkennung in Ereignissen. Aus best Insgesamt liegt die Herausforderung von CEP darin, in kürzester Zeit große Datenströme von Ereignissen mit Hintergrundwissen anzureichern, diese zu höherwertigen Ereignissen zu kombinieren und bestimmte Muster zu finden, sowie die Ergebnisse mit möglichst geringer Verzögerung in Echtzeit ausgeben zu können oder Reaktionen einzuleiten. -\section{CEP auf RDF-Datenströmen} +\chapter{RDF und das semantische Web} \begin{itemize} \item Was ist RDF? @@ -218,7 +218,8 @@ Insgesamt liegt die Herausforderung von CEP darin, in kürzester Zeit große Dat \item Vorteile bei der Nutzung von CSPARQL? \end{itemize} -\subsection{RDF im semantischen Web} + +\section{RDF im semantischen Web} Das Ressource Description Framework (RDF) wird bereits im semantischen Web zur Erfassung und Verknüpfung von Wissen verwendet. 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 identifiziert; über Prädikate können diesem Subjekt mit 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, wie Listing~\ref{lst:sample_rdf_data} an einem Beispiel zeigt. @@ -237,21 +238,15 @@ Das Ressource Description Framework (RDF) wird bereits im semantischen Web zur E Da innerhalb des semantischen Web angestrebt wird, in RDF vorliegende Informationen gemeinsam zu nutzen, miteinander zu kombinieren und vernetzen zu können, werden in OWL (Web Ontology Language) formulierte Ontologien verwendet, um die Daten anhand dieser zu strukturieren. Eine Ontologie definiert ein Vokabular mit logischen Domänenobjektklassen und bestimmt für diese Objektklassen Prädikate, um bestimmte Sachverhalte eindeutig abbilden zu können. Eine Ontologie für Listing~\ref{lst:sample_rdf_data} würde beispielsweise eine Objektklasse \enquote{person} definieren, auf welches die eigenen Prädikate \enquote{isGender}, \enquote{hasName} und \enquote{hasSibling} angewandt werden können. Mit eigenen Attributwerten für das Prädikat \enquote{isGender} und spezifischen Regeln dafür, welche Attribute ein Prädikat wie \enquote{hasSibling} in Frage kommen können, werden Daten aus der Welt einer Ontologie --- ähnlich wie bei einem relationalen Datenbankschema --- eindeutig strukturiert. Allerdings ist es möglich, verschiedene Ontologien gleichzeitig auf Subjekten zu verwenden. Durch diese Flexibilität kann eine bereits in RDF abgebildete Person durch Informationen aus weiteren Ontologien ergänzt werden. -\subsection{Schlussfolgerungen auf RDF-Daten} +\section{Abfrage von RDF-Daten via SPARQL} \begin{itemize} -\item Ontologien beschreiben Zusammenhänge zwischen Objektklassen und Klassen, die auf bestimmte Sachverhalte zutreffen. -\item Naja, jedenfalls kann man da schonmal autocomplete-mäßig rechnen (RDFS) -\item Und dann kann man noch reguläre Schlussfolgerungen fahren in der Richtung OWL +\item SPARQL als Abfragesprache +\item Vorteil gegenüber relationalen Abfragesprachen? +\item Mächtigkeit durch Flexibilität der RDF-Daten +\item RDF-Daten meist verlinkt, SPARQL muss dem folgen können \end{itemize} -Durch den Einsatz von Ontologien ergibt sich die Möglichkeit, auf RDF-Daten Ontologie-gestützt Schlussfolgerungen anstellen zu können (\enquote{Reasoning}). In diesem Prozess werden aus den Fakten in RDF-Daten (Terminology Box, kurz: TBox) und den in den verwendeten Ontologien definierten Objektklassen, Regeln und Zusammenhänge (Assertion Box, kurz: ABox) neue Erkenntnisse abgeleitet.\cite{hsh:integrating} - -Enthält eine Ontologie Informationen über verschiedene Verwandtschaftsgrade in Familien, so ist es beispielsweise möglich auf Basis der Daten aus Listing~\ref{lst:sample_rdf_data} zusätzliche Verbindungen wie \enquote{isBrotherOf} und \enquote{isSisterOf} zu errechnen. Limitiert werden diese Möglichkeiten lediglich durch die OWA (Open World Assumption), also die Annahme einer offenen Welt mit unvollständigem Wissen. Deshalb dürfen für Reasoning nur explizit bekannte Fakten genutzt werden: Nur weil in Listing~\ref{lst:sample_rdf_data} keine Informationen über Eltern vorhanden sind, heißt das nicht, dass Max und Marie Waisenkinder sind. Weiterführende Beispiele zu OWL Reasoning befinden sich unter \cite{man:owl}. - - -\subsection{Abfrage von RDF-Daten} - Die Abfrage von RDF-Daten erfolgt über die Sprache SPARQL (\enquote{SPARQL Protocol And RDF Query Language}). Im Gegensatz zu Abfragesprachen von relationalen Datenbanksystemen wie SQL ist es mit SPARQL möglich, Daten über verschiedene Datenquellen wie Tripel- oder Quadstores hinweg miteinander zu verknüpfen. Auch ist im Gegensatz zu SQL keine spezielle Anpassung der Abfragen an ein Datenbankschema notwendig; lediglich die Art und Weise, wie die angeforderten Daten miteinander in Verbindung stehen, ist für SPARQL-Abfragen wichtig. Im Folgenden zeigt Listing~\ref{lst:sample_sparql_query} eine Abfrage auf den Daten aus Listing~\ref{lst:sample_rdf_data}. @@ -266,7 +261,36 @@ WHERE { } \end{lstlisting} -\subsection{Verarbeitung von Datenströmen im RDF-Format} + +\section{Schlussfolgerungen auf RDF-Daten (Reasoning)} + +\begin{itemize} +\item Was ist Reasoning? +\item Welche Ebenen gibt es? (OWL, RDFS?) +\item Warum ist es von Vorteil? +\item Mögliche Schwierigkeiten dabei? +\item Ontologien beschreiben Zusammenhänge zwischen Objektklassen und Klassen, die auf bestimmte Sachverhalte zutreffen. +\item Naja, jedenfalls kann man da schonmal autocomplete-mäßig rechnen (RDFS) +\item Und dann kann man noch reguläre Schlussfolgerungen fahren in der Richtung OWL +\item Warum ist Reasoning überhaupt wichtig und sinnvoll? +\end{itemize} + +Durch den Einsatz von Ontologien ergibt sich die Möglichkeit, auf RDF-Daten Ontologie-gestützt Schlussfolgerungen anstellen zu können (\enquote{Reasoning}). In diesem Prozess werden aus den Fakten in RDF-Daten (Terminology Box, kurz: TBox) und den in den verwendeten Ontologien definierten Objektklassen, Regeln und Zusammenhänge (Assertion Box, kurz: ABox) neue Erkenntnisse abgeleitet \cite{hsh:integrating}. So können beispielsweise implizite Klassentypen errechnet werden (Ein Kind ist eine Person), oder regelbasierte Attribute ermittelt werden: Max fährt ein Fahrzeug + das Fahrzeug ist ein Kran $\Longrightarrow$ Max ist Kranführer. + +Enthält eine Ontologie Informationen über verschiedene Verwandtschaftsgrade in Familien, so ist es beispielsweise möglich auf Basis der Daten aus Listing~\ref{lst:sample_rdf_data} zusätzliche Verbindungen wie \enquote{isBrotherOf} und \enquote{isSisterOf} zu errechnen. Limitiert werden diese Möglichkeiten lediglich durch die OWA (Open World Assumption), also die Annahme einer offenen Welt mit unvollständigem Wissen. Deshalb dürfen für Reasoning nur explizit bekannte Fakten genutzt werden: Nur weil in Listing~\ref{lst:sample_rdf_data} keine Informationen über Eltern vorhanden sind, heißt das erst einmal nicht, dass Max und Marie wirklich Waisenkinder sind. Weiterführende Beispiele zu den Möglichkeiten von OWL Reasoning finden sich unter \cite{man:owl}. + +\todo{Weiterschreiben!} +\begin{itemize} +\item Reasoning ist ein Mittel um aus vorhandenen Fakten neues Wissen zu errechnen +\item Anmerkung: Das Ganze ist nicht billig und benötigt durchaus eine größere Menge Rechenzeit +\item Im Bereich statischer Fakten ist das übersichtlich, da sich diese Daten selten ändern und dadurch keine kompletten Neuberechnungen nötig sind. +\end{itemize} + + +\chapter{CEP auf RDF-Datenströmen} + + +\section{Ereignisse als RDF-Datenstrom} Um Ereignisse aus verschiedenen Quellen gemeinsam zu verarbeiten ist das RDF-Format das Mittel der Wahl. Hierbei werden die Ereignisse gegebenenfalls vorher in das RDF-Format transformiert und als Datenstrom aus RDF-Quadrupeln der CEP-Engine zugeführt. Die Quadrupel führen neben den Informationen aus den Tripeln noch den Zeitstempel mit, zu dem das Ereignis ausgelöst wurde. Als Abfragesprache für die RDF-Datenströme kommt eine um zusätzliche Funktionalitäten erweiterte Form von SPARQL --- im Folgenden \enquote{CSPARQL} --- zum Einsatz. CSPARQL kann die eingehenden RDF-Datenströme mit sogenannten \enquote{Sliding Windows} erfassen und ermöglicht die Berücksichtigung der Zeitstempel der Ereignisse innerhalb der Abfrage durch die Bereitstellung von zusätzlichen Sprachkonstrukten und Funktionen. Dabei besteht weiterhin die Möglichkeit, lokal in Form von RDF-Daten vorhandenes Domänenwissen in die Abfrage einzubeziehen und mit den Ereignisdaten zu verknüpfen. @@ -278,6 +302,9 @@ http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentT http://myexample.org/cars/event#1468064960110 http://myexample.org/cars#currentSpeed "13"^^http://www.w3.org/2001/XMLSchema#integer \end{lstlisting} + +\section{SPARQL-Erweiterung zur Verarbeitung von RDF-Datenströmen} + 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. @@ -302,19 +329,11 @@ WHERE { \end{lstlisting} -\subsection{Reasoning über RDF-Daten} - -\begin{itemize} -\item Was ist Reasoning? -\item Welche Ebenen gibt es? -\item Warum ist es von Vorteil? -\item Mögliche Schwierigkeiten dabei? -\end{itemize} - -\subsection{Resoning auf RDF-Datenströmen?} +\section{Resoning auf RDF-Datenströmen?} Reasoning auf RDF-Datenströmen ist ein zur Zeit noch umforschtes Gebiet, da durch die begrenzte Gültigkeit von Daten aus Datenströmen relevante Zusammenhänge errechnet werden müssen und gleichzeitig möglichst wenig Rechenleistung gezogen werden soll. + \chapter{Gegenüberstellung existierender CEP-Engines} Es gibt bereits einige Technologien um Ereignisströme zu verarbeiten.