From 097a43e87a1c25fabbcb1bad54d7597fbd97908e Mon Sep 17 00:00:00 2001 From: Jan Philipp Timme Date: Thu, 28 Jul 2016 14:53:09 +0200 Subject: [PATCH] [TASK] Generic commit. --- Bachelorarbeit.tex | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index b0b5122..2286d5e 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -251,26 +251,26 @@ Weiterhin ist es möglich, beliebig viele verschiedene Ontologien gleichzeitig z \item RDF-Daten meist verlinkt, SPARQL muss dem folgen können \end{itemize} -Die Abfrage von RDF-Daten erfolgt über die Sprache SPARQL (\enquote{SPARQL Protocol And RDF Query Language}). Eine weiterführende Beschreibung von SPARQL ist unter \cite{w3c:sparql} nachzulesen. +Die Abfrage von RDF-Daten erfolgt über die Sprache SPARQL (\enquote{SPARQL Protocol And RDF Query Language}). Eine detaillierte Beschreibung von SPARQL ist unter \cite{w3c:sparql} nachzulesen. 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 des Namens des Bruders von Marie aus Daten von Listing~\ref{lst:sample_rdf_data}},label={lst:sample_sparql_query}] SELECT ?nameOfBrother WHERE { - ?marie rdf:type ex:person . - ?marie ex:hasName "Marie" . - ?marie ex:hasSibling ?brother . - ?brother ex:hasName ?nameOfBrother . + ?marie rdf:type :person . + ?marie :hasName "Marie" . + ?marie :hasSibling ?brother . + ?brother :hasName ?nameOfBrother . } \end{lstlisting} -\section{Schlussfolgerungen auf RDF-Daten (Reasoning)} +\section{Schlussfolgerungen auf RDF-Daten} \begin{itemize} \item Was ist Reasoning? -\item Welche Ebenen gibt es? (OWL, RDFS?) +\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. @@ -279,16 +279,13 @@ WHERE { \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. +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 in RDF-Daten vorhandenen Fakten (Terminology Box, kurz: TBox) und den in den verwendeten Ontologien definierten Objektklassen, Regeln und Zusammenhängen (Assertion Box, kurz: ABox) neues Wissen abgeleitet \cite{hsh:integrating} und die lokale Datenbasis damit angereichert. 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}. +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, über die unvollständiges Wissen vorliegt. 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} +Da Ontologien auch genutzt werden können, um Wissen aus den Strukturen einer Ontologie in die Struktur einer anderen Ontologie zu übersetzen, kann ein Reasoner die daraus resultierende Übersetzung direkt errechnen und der lokalen Datenbasis hinzufügen. Dadurch steht Abfragen, die schon auf die Ziel-Ontologie zugeschnitten sind, ein viel größerer Informationspool zur Verfügung, aus dem das Abfrageergebnis berechnet werden soll. + +Diesen Vorteil erkauft man sich durch einen nicht unerheblichen Einsatz von Rechenleistung, da im Prozess des Reasoning eine Menge von zusätzlichen Daten entsteht, für die zusätzlich zu den bereits vorhandenen Daten die Regeln aller genutzten Ontologien berücksichtigt werden müssen. Behandelt man lediglich statische Daten, die sich kaum bis garnicht ändern, so ist der nötige Aufwand für Reasoning übersichtlich und liegt auch für große Mengen von Daten und Ontologien in einem akzeptablem Rahmen. Ändern sich jedoch häufig Daten, so muss für das Subset der sich geänderten Daten der Reasoning-Prozess erneut durchgeführt werden um eine aktuelle Datenbasis zu erhalten. \chapter{CEP auf RDF-Datenströmen}