[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-10-10 11:17:37 +02:00
parent e042e4ea5c
commit 30c7526927
2 changed files with 31 additions and 0 deletions

Binary file not shown.

View File

@ -1069,6 +1069,37 @@ ACTION
new StrongAccelerationEvent(relatedCar=c1.relatedCar, deltaSpeed=deltaSpeed) new StrongAccelerationEvent(relatedCar=c1.relatedCar, deltaSpeed=deltaSpeed)
\end{lstlisting} \end{lstlisting}
Übersetzt man dies in einen C-SPARQL-Query, so erhält man folgende Abfrage:
\begin{lstlisting}[label={},caption={}]
REGISTER STREAM getStronglyAcceleratingCars AS
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX car: <http://example.org/carSim/carSimulationOntology#>
CONSTRUCT {
[] rdf:type car:CarStrongAcceleratingEvent
; car:relatedCar ?car
; car:deltaSpeed ?deltaSpeed .
}
FROM STREAM <http://example.org/carSim/stream/carStream> [RANGE 5s STEP 1s]
WHERE {
?e1 rdf:type car:CarStatusEvent .
?e1 car:relatedCar ?car .
?e1 car:speed ?speed1 .
?e2 rdf:type car:CarStatusEvent .
?e2 car:relatedCar ?car .
?e2 car:speed ?speed2 .
FILTER NOT EXISTS {
?ex rdf:type car:CarStatusEvent .
FILTER(f:timestamp(?e1,rdf:type,car:CarStatusEvent) < f:timestamp(?ex,rdf:type,car:CarStatusEvent))
FILTER(f:timestamp(?ex,rdf:type,car:CarStatusEvent) < f:timestamp(?e2,rdf:type,car:CarStatusEvent))
}
BIND(?speed2 - ?speed1 AS ?deltaSpeed)
FILTER(f:timestamp(?e1,rdf:type,car:CarStatusEvent) < f:timestamp(?e2,rdf:type,car:CarStatusEvent))
FILTER(?deltaSpeed > 25)
}
\end{lstlisting}
Diese muss nun lediglich als Ereignisdatenstrom an der Engine registriert werden, und kann dann innerhalb von weiteren C-SPARQL-Queries verwendet werden.
\item Verschleiß der Bremsen durch sehr starke Bremsmanöver \item Verschleiß der Bremsen durch sehr starke Bremsmanöver
\item Verschleiß des Motors durch Fahrt mit überhöhter Motordrehzahl \item Verschleiß des Motors durch Fahrt mit überhöhter Motordrehzahl