From 979cda0a55c93e29e6eed15ab90a5f24a2cb1e2d Mon Sep 17 00:00:00 2001 From: Jan Philipp Timme Date: Thu, 6 Oct 2016 13:44:34 +0200 Subject: [PATCH] [TASK] Generic commit. --- Bachelorarbeit.tex | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index a210ba6..e7cf7b9 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -961,20 +961,25 @@ Die Verknüpfung von Ereignisdaten mit lokalem Domänenwissen ist bei der Nutzun \section{Reasoning auf RDF-Datenströmen} -Die C-SPARQL-Engine unterstützt die automatische Anreicherung von RDF-Daten durch implizites Wissen, welches durch ein gegebenes RDFS-Vokabular abgeleitet werden konnte. - +Die C-SPARQL-Engine unterstützt die automatische Anreicherung von RDF-Datenströmen und Abfrageergebnissen durch implizites Wissen, welches durch ein gegebenes RDFS-Vokabular abgeleitet werden konnte. Hierfür wird in der C-SPARQL-Engine die Implementierung des \texttt{GenericRuleReasoner} aus Apache Jena verwendet. Diesem Reasoner wird ein eigenes Regelwerk zugeführt, welches die Axiome und Folgerungsregeln von RDFS implementiert. Um die Funktion zu aktivieren, müssen folgende Dinge berücksichtigt werden: -\paragraph{Aktivierung von Inferenz} -Bei der Registrierung einer C-SPARQL-Abfrage an der Engine muss im zweiten Parameter angegeben werden, ob Inferenz für diesen Query verwendet werden soll oder nicht. Wird als zweiter Parameter \texttt{true} angegeben, so wird Inferenz für diesen Query angewendet: +\paragraph{Aktivierung der Inferenz} +Bei der Registrierung einer C-SPARQL-Abfrage an der Engine muss angegeben werden, ob Inferenz mit dem Reasoner für diesen Query verwendet werden soll. Die folgende Zeile zeigt diesen Schritt, wobei der zweite Parameter ausschlaggebend für die Aktivierung ist: \begin{lstlisting} -resultProxy = engine.registerQuery(query, true); +CsparqlQueryResultProxy resultProxy = engine.registerQuery(query, true); \end{lstlisting} -\paragraph{Angabe des Reasoners} -Nun muss für den \texttt{CsparqlQueryResultProxy} angegeben werden, welcher Typ von Reasoner verwendet werden soll (Zur Wahl stehen Forward-, Backward-, Hybridreasoner), welche Entailment-Regeln für im Reasoning verwendet werden sollen und das grundlegende Vokabular der TBox. +\paragraph{Konfiguration des Reasoners} +Hat man auf diese Weise einen Query an der Engine registriert, so muss als nächstes für den \texttt{CsparqlQueryResultProxy} Parameter angegeben werden, unter denen das Reasoning durchgeführt werden soll. Neben der Angabe des zu verwendenden Regelwerks, welches in diesem Fall RDFS implementiert, muss eine TBox mit Basisvokabular angegeben werden, die als Basis für die Schlussfolgerungen dient. Weiterhin ist es möglich zu konfigurieren, welche Logik zum Anstellen der Schlussfolgerungen verwendet werden soll. Hierbei gibt es drei Auswahlmöglichkeiten, die nun grob erklärt werden: +\begin{itemize} +\item \textbf{Forward Chaining}: Geht von den bereits existierenden Fakten aus und prüft anhand dieser Fakten, ob es Regeln gibt, die durch diese Fakten erfüllt sind. Ist dies der Fall, werden diese erfüllten Regeln verwendet, um daraus Wissen abzuleiten. Stellt das standardmäßige Vorgehen dar, falls keine Logik explizit angegeben wurde. +\item \textbf{Backward Chaining: Stellt quasi das gegenteilige Vorgehen zu Forward Chaining dar. Begonnen wird bei einer Aussage, die darauf überprüft werden soll, ob sie zutrifft. Nun werden alle Regeln gesucht, die zu dieser Aussage führen und geprüft, ob diese erfüllt sind. Somit sind alle Bedingungen dieser Regeln wiederrum Aussagen, die geprüft werden müssen. Dieser Ansatz setzt sich über weitere Regeln so weit fort, bis entweder ein erfüllender Fakt gefunden wurde, oder alle Regeln negativ getestet worden sind. +\item \textbf{Hybrid}: Ein Ansatz, welcher Forward Chaining und Backward Chaining kombiniert. +\end{itemize} -Weiterführendes über Reasoning auf RDF-Datenströmen mit der C-SPARQL-Engine kann in der Masterarbeit von Stefan Lier\cite{hsh:reasoning} nachgelesen werden. +\todo{!} +Weiterführendes über Reasoning auf RDF-Datenströmen mit der C-SPARQL-Engine kann in der Masterarbeit von Stefan Lier\cite{hsh:reasoning} nachgelesen werden. Über die Implementierung von Reasoning in der C-SPARQL-Engine kann in \cite{barbieri:reasoning} gelesen werden. \chapter{Umsetzung des Beispielszenarios}\label{cpt:csparql_in_practice}