Sequence Detector

Dieses Projekt entstand in Zusammenarbeit mit der intive GmbH.

In vielen Anwendungen ist es entscheidend, komplexe Muster in Zeitreihen zu erkennen. Ein spezielles Beispiel ist die Mustererkennung in Fahrzeug-Busdaten. Ziel ist es, Szenarien automatisch zu identifizieren und nur bei relevanten Ereignissen die Busdaten aufzuzeichnen und in die Cloud zu übertragen.

Dafür haben wir ein Programm entwickelt, das es ermöglicht, gesuchte Muster in einer SQL-ähnlichen Syntax nahe der natürlichen Sprache zu beschreiben. Ein Beispiel für die Erkennung einer starken Bremsung:

match within 1m: speed > 120 for at least 5s then within 5s speed < 10

Die zugrundeliegende Grammatik ist in der Abbildung dargestellt.

Bei der Implementierung mussten zahlreiche Sonderfälle berücksichtigt werden, etwa die Erkennung überlappender Muster. Alle Fälle wurden präzise analysiert und umfassend dokumentiert. Schließlich wurde das Programm in der Programmiersprache Go implementiert.