diff --git a/Bachelorarbeit.tex b/Bachelorarbeit.tex index f77b669..c276c36 100644 --- a/Bachelorarbeit.tex +++ b/Bachelorarbeit.tex @@ -841,10 +841,10 @@ Ergeben sich für Ereignismuster über ein Sliding Window eine größere Menge a Nachdem nun die grundlegenden Werkzeuge zur Aggregation von Daten in C-SPARQL erläutert wurden, sollen diese in mit einem Beispiel demonstriert werden: Gegeben seien Statusmeldeereignisse von PKW, die zur weiteren Auswertung aggregiert werden sollen. Hierbei sollen für jeden einzelnen PKW, dessen durchschnittliche Motordrehzahl über 3000 Umdrehungen pro Minute liegt, die minimale beziehungsweise maximale Motordrehzahl ermittelt werden. -Um dies umzusetzen, müssen die Ereignistupel nach den PKW, auf die sie sich beziehen mit \texttt{GROUP BY} gruppiert werden. Dann können die gewünschten Werte in der \texttt{SELECT}-Klausel unter Nutzung der Funktionen \texttt{MIN()} und \texttt{MAX()} selektiert werden. Zuletzt kann das Kriterium, dass die durchschnittliche Motordrehzahl 3000 Umdrehungen pro Minute überschreitet mit einer \texttt{HAVIN}-Anweisung umgesetzt werden. Die folgende C-SPARQL-Abfrage demonstriert dies: +Um dies umzusetzen, müssen die Ereignistupel nach den PKW, auf die sie sich beziehen mit \texttt{GROUP BY} gruppiert werden. Dann können die gewünschten Werte in der \texttt{SELECT}-Klausel unter Nutzung der Funktionen \texttt{MIN()} und \texttt{MAX()} selektiert werden. Zuletzt kann das Kriterium, dass die durchschnittliche Motordrehzahl 3000 Umdrehungen pro Minute überschreitet mit einer \texttt{HAVING}-Anweisung umgesetzt werden. Die folgende C-SPARQL-Abfrage demonstriert dies: \begin{lstlisting}[label={lst:sample_csparql_aggregation_query},caption={Ermittlung minimaler und maximaler Motordrehzahl pro PKW}] SELECT (MIN(?carRPM) AS ?minRPM) (MAX(?carRPM) AS ?maxRPM) -... +FROM STREAM ... WHERE { ?carStatusEvent rdf:type carOnt:CarStatusEvent . ?carStatusEvent carOnt:relatedCar ?car .