diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index c287a05..8b70c51 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{Complex Event Processing auf RDF-Datenströmen} +\section{CEP auf RDF-Datenströmen} \begin{itemize} \item Was ist RDF? @@ -218,23 +218,38 @@ 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} -\subsection{Einführung in RDF} - -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 identifiziert; ü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, wie Listing \ref{lst:sample_rdf_data} zeigt. +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. \begin{lstlisting}[caption={RDF-Daten beschreiben zwei Geschwister},label={lst:sample_rdf_data}] -ex:a rdf:type ex:person -ex:a ex:isGender ex:female -ex:a ex:hasName "Marie" +:personA rdf:type :person +:personA :isGender :female +:personA :hasName "Marie" -ex:b rdf:type ex:person -ex:b ex:isGender ex:male -ex:b ex:hasName "Max" +:personB rdf:type :person +:personB :isGender :male +:personB :hasName "Max" -ex:b ex:hasSibling ex:a +:personB :hasSibling :personA \end{lstlisting} +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 (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 beschriebene Person durch eine andere Ontologie um weiteres Wissen ergänzt werden. + +\subsection{Schlussfolgerungen auf RDF-Daten} + +\begin{itemize} +\item Ontologien beschreiben Zusammenhänge zwischen Objektklassen +\item \dots eventuell auch bestimmte Attribute, die zu neuen Klassen führen? +\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 +\end{itemize} + + +\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}. \begin{lstlisting}[caption={Abfrage vom Namen des Bruders von Marie aus den Daten von Listing \ref{lst:sample_rdf_data}},label={lst:sample_sparql_query}]