[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-07-27 16:26:58 +02:00
parent b119713988
commit aa6053414f
1 changed files with 7 additions and 5 deletions

View File

@ -220,7 +220,7 @@ Insgesamt liegt die Herausforderung von CEP darin, in kürzester Zeit große Dat
\subsection{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.
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}]
:personA rdf:type :person
@ -234,7 +234,7 @@ Das Ressource Description Framework (RDF) wird bereits im semantischen Web zur E
: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 abgebildete Person durch Informationen aus weiteren Ontologien ergänzt werden.
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}
@ -245,16 +245,18 @@ Da innerhalb des semantischen Web angestrebt wird, in RDF vorliegende Informatio
\item Und dann kann man noch reguläre Schlussfolgerungen fahren in der Richtung OWL
\end{itemize}
Die Mächtigkeit von OWL entfaltet sich durch die Möglichkeit, auf RDF-Daten Ontologie-gestützt Schlussfolgerungen durchführen zu können (sogenanntes \enquote{Reasoning}). 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}.
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}.
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}]
\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}]
SELECT ?nameOfBrother
WHERE {
?marie rdf:type ex:person .