[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-10-10 12:02:39 +02:00
parent 2e59208c66
commit cd83481da3
1 changed files with 29 additions and 1 deletions

View File

@ -1148,7 +1148,35 @@ WHERE {
Auch diese Abfrage muss später in der Engine als Datenstrom registriert werden, um innerhalb von weiteren Abfragen auf die Ergebnisse dieses Queries zugreifen zu können.
\item \textbf{Verschleiß der Handbremse durch Fahren mit angezogener Handbremse:}
Da das \texttt{CarStatusEvent} Informationen zur Momentangeschwindigkeit eines PKW und zum Status dessen Handbremse liefert, ist es völlig ausreichend, für alle Statusereignisse ein neues Verschleißereignis auszulösen, in denen die Geschwindigkeit bei angezogener Handbremse größer als null ist. Abstrakt formuliert sieht dies so aus:
\begin{lstlisting}[mathescape=true,label={},caption={}]
CONDITION ($(CarStatusEvent\ AS\ statusEvent)$)[WindowSize:3s,StepSize:1s]
$\wedge$ statusEvent.handbrakeEngaged = true
$\wedge$ statusEvent.speed > 0
ACTION
new CarHandbrakeWearEvent(relatedCar=statusEvent.relatedCar)
\end{lstlisting}
In einem C-SPARQL-Query sieht dies wie folgt aus:
\begin{lstlisting}[label={},caption={Erkennung von Verschleiß der Handbremse}]
REGISTER STREAM getHandbrakeWear 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:CarHandbrakeWearEvent
; car:relatedCar ?car .
}
FROM STREAM <http://example.org/carSim/stream/carStream> [RANGE 3s STEP 1s]
WHERE {
?e rdf:type car:CarStatusEvent .
?e car:relatedCar ?car .
?e car:handbrakeEngaged ?handbrakeEngaged .
?e car:speed ?speed .
FILTER(?speed > 0)
FILTER(?handbrakeEngaged = true)
}
\end{lstlisting}
\item \textbf{Verschleiß der Reifen durch Fahren mit zu niedrigem Reifendruck:}