diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index e248ac0..35b54b5 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -92,7 +92,7 @@ \includegraphics[width=0.2\textwidth]{res/Wortmarke_WI_schwarz.pdf} { ~ \sffamily \vfill - {\Huge\bfseries CEP auf RDF-Datenströmen (unter Integration von Hin\-ter\-grund\-wis\-sen) in der C-SPARQL-Engine} + {\Huge\bfseries Complex Event Processing auf RDF-Da\-ten\-strö\-men mit C-SPARQL} \bigskip {\Large Jan Philipp Timme @@ -159,13 +159,6 @@ Die Ereignisdaten aus diesen Strömen bilden kleine Teile der Realität zumindes Ereignisse haben für sich alleine betrachtet neben einer begrenzten Gültigkeit eine begrenzte Aussagekraft, daher ist es zum höheren Verständnis der dahinter verborgenen Situation notwendig, sie mit zuvor aufgetretenen Ereignissen in einen Kontext zu setzen. Dadurch können mehrere kleine, hochfrequent auftretende Ereignisse zu einzelnen, niederfrequent auftretenden komplexen Ereignissen aggregiert werden und mittels Mustererkennung höherwertige Informationen aus den Ereignissen extrahiert werden. In Abbildung~\ref{fig:aggregation_patternmatching} wird die Aggregation von Ereignissen sowie die Mustererkennung exemplarisch dargestellt. -\begin{figure}[htbp] -\centering -\includegraphics[width=\textwidth]{img/aggregation-patternmatching.pdf} -\caption{Aggregation und Mustererkennung auf einem Ereignisstrom} -\label{fig:aggregation_patternmatching} -\end{figure} - Die Integration von \emph{Domänenwissen}\footnote{Hintergrundwissen für den Kontext der Ereignisverarbeitung, verändert sich während der Verarbeitung nur selten} ist ein weiterer Schritt, der die Brücke zwischen den aus komplexen Ereignissen gewonnenen Kenntnissen und bereits bekannten Fakten schlagen soll, um die gewonnenen Kenntnisse in einen eindeutigen Zusammenhang stellen und eine eindeutige Interpretation zu ermöglichen. Um unter diesen Bedingungen viele Ereignisdatenströme mit hochfrequenten Ereignissen in nahezu Echtzeit zu verarbeiten ist \emph{CEP}\footnote{Complex-Event-Processing} das Mittel der Wahl: Mit CEP werden die Ereignisse der verschiedenen Datenströme für begrenzte Zeiträume im Speicher vorgehalten und innerhalb von sogenannten \emph{Sliding-Windows}\footnote{Mehr dazu in Kapitel~\ref{cpt:cep_intro}} betrachtet. Dabei können Ereignismuster erkannt werden und verschiedene Ereignisse aggregiert werden um neue komplexe Ereignisse zu erzeugen. @@ -314,7 +307,7 @@ carOnt:drives rdfs:range carOnt:Car . In Listing~\ref{lst:sample_rdfs_data} werden zunächst die beiden Klassen \texttt{carOnt:car} und \texttt{carOnt:Driver} definiert. Im darauf folgenden Absatz wird dann das Merkmal \texttt{carOnt:drives} definiert und über \texttt{rdfs:domain} auf Subjekte der Klasse \texttt{Driver} und mit \texttt{rdfs:range} auf Objekte der Klasse \texttt{Car} eingeschränkt. Trifft man in diesem Kontext nun Tripel mit einem Prädikat \texttt{carOnt:drives} an, so kann man anhand der zugehörigen RDFS-Daten bereits erkennen, womit man es zutun hat. \paragraph{OWL-Ontologien} -In OWL (Web Ontology Language) formulierte Ontologien werden im semantischen Web neben RDF-Schemata sehr häufig zur Strukturierung von RDF-Daten verwendet. Ähnlich wie RDFS definieren OWL-Ontologien ein Vokabular mit logischen Do\-mä\-nen\-objekt\-klas\-sen und bestimmt für diese Objektklassen Prädikate und Attribute, um bestimmte Sachverhalte eindeutig abbilden zu können. Allerdings bietet OWL viel mehr Werkzeuge um feiner granulare Regeln für Objektklassen und Attribute aufzustellen. Eine Ontologie für Listing~\ref{lst:sample_rdf_data} könnte beispielsweise eine Objektklasse \texttt{Driver} definieren, auf welche das eigens hierfür definierte Prädikat \texttt{hasName} mit einem Attribut vom Typ \texttt{xsd:string} angewandt werden kann. Durch die Möglichkeiten dieser Restriktionen können RDF-Daten aus der Welt einer Ontologie --- ähnlich wie bei einem relationalen Datenbankschema --- eindeutig auf inhaltlicher Ebene strukturiert werden. +In OWL (Web Ontology Language) formulierte Ontologien werden im semantischen Web neben RDF-Schemata sehr häufig zur Strukturierung von RDF-Daten verwendet. Ähnlich wie RDFS definieren OWL-Ontologien ein Vokabular mit logischen Do\-mä\-nen\-objekt\-klas\-sen und bestimmt für diese Objektklassen Prädikate und Attribute, um bestimmte Sachverhalte eindeutig abbilden zu können. Allerdings bietet OWL mächtigere Sprachkonstrukte, um feiner granulare Regeln für Objektklassen und Attribute aufzustellen. Eine Ontologie für Listing~\ref{lst:sample_rdf_data} könnte beispielsweise eine Objektklasse \texttt{Driver} definieren, auf welche das eigens hierfür definierte Prädikat \texttt{hasName} mit einem Attribut vom Typ \texttt{xsd:string} angewandt werden kann. Durch die Möglichkeiten dieser Restriktionen können RDF-Daten aus der Welt einer Ontologie --- ähnlich wie bei einem relationalen Datenbankschema --- eindeutig auf inhaltlicher Ebene strukturiert werden. \paragraph{ABox und TBox} Bei der Modellierung von Wissen mit Hilfe von Beschreibungslogiken, zu denen auch OWL und RDFS zählen, werden die formulierten Aussagen in zwei Gruppen unterteilt\cite{hitzler:semanticweb}[Kapitel 6.1]: Die Assertion Box (ABox) und die Terminology Box (TBox). Während die TBox Aussagen mit terminologischem Schemawissen wie Definitionen von Objektklassen, Prädikaten und ihren Verhältnissen zueinander enthält, beinhaltet die ABox sogenanntes \emph{assertionales Instanzwissen}\cite{hitzler:semanticweb}[Kapitel 6.1], welches aus Aussagen über konkrete Klasseninstanzen und deren Merkmale und Beziehungen besteht. In diesen Aussagen der ABox wird dabei das in der TBox definierte Vokabular genutzt. @@ -664,24 +657,6 @@ Vielleicht geht das mit dem Reasoning später ja noch besser --- aktueller Stand \chapter*{Dummy-Kapitel für Tests und Notizen} - -\todo{Spätestens vor dem Druck muss dieses Kapitel raus aus dem Dokument.} - -Fähigkeitenliste, die auf C-SPARQL-Engine zutrifft. Eventuell für den Vergleich von CEP-Engines hier mal gucken, was davon relevant und interessant ist. -\begin{itemize} -\item Verarbeitung von mehreren Ereignisströmen -\item Verknüpfung von Ereignissen -\item Konstruktion neuer Ereignisse -\item Sliding/Tumbling Windows -\item Mustererkennung (Abfolge, Präsenz/Absenz von Ereignissen [zeitlicher Abstand]) -\item \enquote{COMPUTE EVERY} (Neuberechnung in festen Intervallen) -\item Ausführen von benutzerdefiniertem Code -\item Integration von Hintergrundwissen [aus weiteren Quellen] -\item Aggregationsfunktionen über mehrere Ereignisse (Sum, Avg, ...) -\item Vergleichsoperatoren für Selektionskriterien -\item Bonuspunkte: Reasoning (Logikoperationen und Schlussfolgerungen) -\end{itemize} - \textcolor{red}{Dieses Kapitel fliegt am Ende natürlich raus.} Sil-ben ge-trenn-t mit ei-nem Strich @@ -692,6 +667,13 @@ Und dann --- neben vielen anderen Zeichen --- gibt es mit drei Strichen den Geda Mit \enquote{enquote} wird Text in Anführungszeichen gesetzt, aber manchmal ist vielleicht der Einsatz von \texttt{texttt} sinnvoll. Im \textbf{Notfall} kann auch \textbf{textbf} genutzt werden. Dann gibt es noch \textit{textit}, \textsc{textsc}, \textsf{textsf} und \textsl{textsl}. +\begin{figure}[htbp] +\centering +\includegraphics[width=\textwidth]{img/aggregation-patternmatching.pdf} +\caption{Aggregation und Mustererkennung auf einem Ereignisstrom} +\label{fig:aggregation_patternmatching} +\end{figure} + Quellenreferenzen \begin{itemize} \item \cite{hsh:cep}[Einstieg in CEP mit Beispielen aus Esper-Welt]