[TASK] Generic commit.
This commit is contained in:
parent
03091d527c
commit
c3466a83e6
|
@ -72,14 +72,14 @@
|
||||||
\item Immer mehr Geräte sind mit dem Internet verbunden
|
\item Immer mehr Geräte sind mit dem Internet verbunden
|
||||||
\item Sollen überwacht werden beziehungsweise überwachen selbst etwas
|
\item Sollen überwacht werden beziehungsweise überwachen selbst etwas
|
||||||
\item Bieten kontinuierlich aktuelle Zustands- und Messinformationen
|
\item Bieten kontinuierlich aktuelle Zustands- und Messinformationen
|
||||||
\item In Form von RDF-Ereignisdatenströmen abrufbar
|
\item $\rightarrow$ In Form von RDF-Ereignisdatenströmen abrufbar
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Ereignisdatenströme}
|
\begin{frame}{Ereignisdatenströme}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Transportieren Daten von einzelnen Ereignissen
|
\item Transportieren Daten von einzelnen Ereignissen
|
||||||
\item Ereignisse bilden kleine Teile der Realität ab
|
\item Jedes Ereignis bildet kleinen Teil der Realität ab
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \dots sofern Daten korrekt sind (Messfehler, Übertragungsfehler, \dots)
|
\item \dots sofern Daten korrekt sind (Messfehler, Übertragungsfehler, \dots)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -91,14 +91,14 @@
|
||||||
|
|
||||||
\begin{frame}{Verarbeitung der Ereignisdatenströme}
|
\begin{frame}{Verarbeitung der Ereignisdatenströme}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Ereignisse für sich tragen kaum Bedeutung
|
\item Ein Ereignis für sich trägt kaum Bedeutung
|
||||||
\item Betrachtung in Kontext notwendig
|
\item Betrachtung in Kontext notwendig
|
||||||
\item Der Kontext ergibt sich \dots
|
\item Der Kontext ergibt sich \dots
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \dots durch relevante, weitere Ereignisse
|
\item \dots durch relevante, weitere Ereignisse
|
||||||
\item \dots durch Integration von \emph{Domänenwissen}
|
\item \dots durch Integration von \emph{Domänenwissen}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Möglichst schnelle Verarbeitung erforderlich
|
\item Möglichst schnelle Verarbeitung gefordert
|
||||||
\item $\rightarrow$ Complex Event Processing (CEP)
|
\item $\rightarrow$ Complex Event Processing (CEP)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
@ -122,6 +122,7 @@
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\section{Exkurs: Grundlagen RDF}
|
\section{Exkurs: Grundlagen RDF}
|
||||||
|
|
||||||
\begin{frame}{Exkurs: RDF}
|
\begin{frame}{Exkurs: RDF}
|
||||||
|
@ -162,17 +163,23 @@ car:23 carOnt:hasNickname "Alf"^^xsd:string .
|
||||||
\caption{Prädikate verknüpfen ein Subjekt mit Objekt und Literalwert}
|
\caption{Prädikate verknüpfen ein Subjekt mit Objekt und Literalwert}
|
||||||
\label{fig:triple_spo}
|
\label{fig:triple_spo}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
\begin{lstlisting}
|
||||||
|
car:23 carOnt:isCarModel carModel:42 .
|
||||||
|
car:23 carOnt:hasNickname "Alf"^^xsd:string .
|
||||||
|
\end{lstlisting}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Assertion Box (ABox) und Terminlogy Box (TBox)}
|
\begin{frame}{Assertion Box (ABox) und Terminlogy Box (TBox)}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Unterscheidung zwischen Faktenbasis (ABox) und Terminologie (TBox)
|
\item Unterscheidung zwischen Faktenbasis (ABox) und Terminologie (TBox)
|
||||||
\item TBox enthält Vokabular mit definierter Bedeutung
|
\item TBox enthält Vokabular mit definierter Bedeutung
|
||||||
|
\item $\rightarrow$ Analog: Klassendefinition in OOP
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Objektklassen
|
\item Objektklassen
|
||||||
\item Prädikate
|
\item Prädikate
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item ABox enthält konkrete Fakten
|
\item ABox enthält konkrete Fakten
|
||||||
|
\item $\rightarrow$ Analog: Instanzen in OOP
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item z.B. Wissen über existierende Objekte, \dots
|
\item z.B. Wissen über existierende Objekte, \dots
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -180,7 +187,7 @@ car:23 carOnt:hasNickname "Alf"^^xsd:string .
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]{Beispiel für eine TBox}
|
\begin{frame}[fragile]{Beispiel für eine TBox}
|
||||||
Definition der Klassen \texttt{Car}, \texttt{CarModel} und \texttt{Driver} in RDFS:
|
Definition der Klassen \texttt{Car}, \texttt{CarModel} und \texttt{Driver} in RDF-Schema (RDFS):
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
:Car rdf:type rdfs:class .
|
:Car rdf:type rdfs:class .
|
||||||
:CarModel rdf:type rdfs:class .
|
:CarModel rdf:type rdfs:class .
|
||||||
|
@ -192,7 +199,7 @@ Definition der Klassen \texttt{Car}, \texttt{CarModel} und \texttt{Driver} in RD
|
||||||
|
|
||||||
:isCarModel rdf:type rdf:Property .
|
:isCarModel rdf:type rdf:Property .
|
||||||
:isCarModel rdfs:domain :Car .
|
:isCarModel rdfs:domain :Car .
|
||||||
.isCarModel rdfs:range :CarModel .
|
:isCarModel rdfs:range :CarModel .
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
@ -218,7 +225,7 @@ driver:1 :hasName "Max Mustermann"^^xsd:string .
|
||||||
\item Ermittelt in der ABox enthaltenes, implizites Wissen
|
\item Ermittelt in der ABox enthaltenes, implizites Wissen
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Dazu folgt nun ein Beispiel
|
Dazu folgt nun ein Beispiel \dots
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]{Beispiel: Reasoning}
|
\begin{frame}[fragile]{Beispiel: Reasoning}
|
||||||
|
@ -228,13 +235,13 @@ Gegeben sei folgende ABox:
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Führt man nun Reasoning mit Hilfe dieser TBox durch:
|
Führt man nun Reasoning mit Hilfe dieser TBox durch:
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
:Vehicle rdf:type rdfs:class .
|
|
||||||
:Car rdf:type rdfs:class .
|
|
||||||
:Car rdfs:subclassOf :Vehicle .
|
|
||||||
|
|
||||||
:drives rdf:type rdf:Property .
|
:drives rdf:type rdf:Property .
|
||||||
:drives rdfs:domain :Driver .
|
:drives rdfs:domain :Driver .
|
||||||
:drives rdfs:range :Car .
|
:drives rdfs:range :Car .
|
||||||
|
|
||||||
|
:Vehicle rdf:type rdfs:class .
|
||||||
|
:Car rdf:type rdfs:class .
|
||||||
|
:Car rdfs:subclassOf :Vehicle .
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
So ergibt sich daraus folgendes, zusätzliches Wissen:
|
So ergibt sich daraus folgendes, zusätzliches Wissen:
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
|
@ -244,35 +251,6 @@ So ergibt sich daraus folgendes, zusätzliches Wissen:
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}{Abfragen von RDF-Daten mit SPARQL}
|
|
||||||
\begin{itemize}
|
|
||||||
\item \enquote{SPARQL Protocol And RDF Query Language}
|
|
||||||
\item Schlüsselwörter sehr ähnlich zu SQL
|
|
||||||
\item Größter Unterschied in der \texttt{WHERE}-Klausel
|
|
||||||
\begin{itemize}
|
|
||||||
\item Gesuchte Tripelmuster werden formuliert
|
|
||||||
\item Tripel mit Platzhaltern (z.B. \texttt{?carModel})
|
|
||||||
\end{itemize}
|
|
||||||
\item Auch hier: Prefixe können genutzt werden\footnote{\dots und werden auf den folgenden Folien für die Übersichtlichkeit weggelassen}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Es folgt ein beispielhafter SPARQL-Query
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}[fragile]{Beispielhafte SPARQL-Abfrage}
|
|
||||||
\begin{lstlisting}
|
|
||||||
PREFIX carOnt: <http://example.org/carSim/carSimulationOntology#>
|
|
||||||
PREFIX car: <http://example.org/carSim/objects/Car#>
|
|
||||||
|
|
||||||
SELECT ?maxMotorRPM
|
|
||||||
WHERE {
|
|
||||||
car:0 carOnt:isCarModel ?carModel .
|
|
||||||
?carModel carOnt:maximumMotorRPM ?maxMotorRPM .
|
|
||||||
}
|
|
||||||
\end{lstlisting}
|
|
||||||
Diese Abfrage selektiert zu dem PKW \texttt{car:0} die maximal zulässige Motordrehzahl über das Modell des PKW.
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}{Zusammenfassung RDF-Exkurs}
|
\begin{frame}{Zusammenfassung RDF-Exkurs}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item RDF-Daten bestehen aus Tripeln (Subjekt, Prädikat, Objekt)
|
\item RDF-Daten bestehen aus Tripeln (Subjekt, Prädikat, Objekt)
|
||||||
|
@ -281,12 +259,12 @@ Diese Abfrage selektiert zu dem PKW \texttt{car:0} die maximal zulässige Motord
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \dots dafür ist eine TBox notwendig
|
\item \dots dafür ist eine TBox notwendig
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Mittels SPARQL können RDF-Daten abgefragt werden
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\section{Complex Event Processing mit C-SPARQL}
|
\section{Complex Event Processing mit C-SPARQL}
|
||||||
|
|
||||||
\begin{frame}{Complex Event Processing}
|
\begin{frame}{Complex Event Processing}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Ereignisdaten werden in Sliding Windows betrachtet
|
\item Ereignisdaten werden in Sliding Windows betrachtet
|
||||||
|
|
Loading…
Reference in New Issue