Episode Recognizer Framework Rahmenwerk zur Episodenerkennung Christian A. Kopf Institut für Informatik FU Berlin 18.05.2006 Übersicht • Motivation • Wozu werden unterschiedliche Episodenerkenner benötigt • Warum ist ein Rahmenwerk dafür von Vorteil • Ideen und Ansätze • Reguläre Ausdrücke und ihre Grenzen • (Keller-)Automaten und Typ2-Sprachen • Aufbau und Struktur • Kleines Klassenmodell • Abbildung des Automatenmodells • Anwendungsablauf • Offene Probleme • Die Map- und MatchMap-Strukturen • Komplexere Episoden?! Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Motivation - Episodenerkenner • Episodenerkennung ist ein zentraler Aspekt der Untersuchung des Mikroprozesses der Softwareentwicklung • Grundidee: • Aus einem Strom von Basisereignissen typische Aktivitätsmuster (Episoden) ausfindig machen. • Wird eine solche Episode erkannt kann sie ebenfalls in den Ereignisstrom einfließen. • Mehrere Episodenerkenner werden sequentiell abgearbeitet. • Episodenerkenner können sehr unterschiedliche Komplexitäten annehmen: • simpel: Zeitintervall (z.B.: Wie lange war Datei x geöffnet?) • komplex: • Verfolgen von Codekopien (letzte Woche) • Trial-and-Error-Episoden (heute) Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Motivation – Rahmenwerk • Situation bisher: • Episodenerkenner als ECG-Modul • Einbindung in ECG (also an den Datenstrom des ECG) recht komfortabel: • Implementierung • Komplett eigenständig • Gesamte Java-Komplexität gegeben • Viele, teilweise komplexe If-Kaskaden • • • • Unübersichtlich Schwer zu Implementieren Fehleranfällig Schwer zu Optimieren • Zielsetzung: Verbesserung der Abstraktion • Schnelle, fehlerfreie und effektive Implementierung durch einfache Handhabung und Erweiterung von Objekten und Klassen bei gleicher möglicher Komplexität Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Ideen und Ansätze – reg. Ausdrücke • Reguläre Ausdrücke bieten eine einfache und relativ • mächtige Möglichkeit um Sequenzen miteinander zu vergleichen, bzw. um eine (Teil-)Sequenz auf ein bestimmtes Schema (Episode) hin zu untersuchen. Abstrakter: • Alle möglichen Auftretenden Basisereignisse stellen zusammen ein Alphabet E dar. • Regulärer Ausdruck für eine bestimmte Episode definiert eine Sprache L über dem Alphabet E. • Regelmäßige Überprüfung unseres Ereignisstroms X • Falls X Element aus L dann liegt die gesuchte Episode vor. Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Ideen und Ansätze – reg. Ausdrücke • Nachteile: • Problem der sequentiellen Abarbeitung mehrerer Episodenerkenner: • Ereignisse die ein Erkenner in den Strom einfügt müssen dem Alphabet hinzugefügt werden. • Problem während der Analyse: • Im Endeffekt muss nach jedem neuen Ereigniss der gesamte bisherige Ereignisstrom erneut überprüft werden. • Reg. Ausdrücke eher zum nachträglichen Untersuchen bereits beendeter Datenströme geeignet. • Problem der Mächtigkeit: • Reg. Ausdrücke können lediglich Typ 3-Sprachen erkennen, d.h.: Typ2-Sprachen, wie zum Beispiel: L = A^n B^n, können nicht erkannt werden, da eine Variable n innerhalb eines regulären Ausdruckes nicht gespeichert werden kann. Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Ideen und Ansätze - Automaten • Automaten sind ein einfaches Werkzeug um Sprachen zu • • beschreiben und abstrakt darzustellen. Automaten bestehen aus Zuständen und Übergängen (mit Ereignissen, Bedingungen und Aktionen). Mit endlichen Automaten lassen sich alle regulären Sprachen (Typ-3) darstellen. Dies ist nicht ausreichend, da genauso mächtig wie reguläre Ausdrücke. Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Ideen und Ansätze - Automaten • Lösung: Keller-Automaten • Kellerautomaten besitzen zusätzlich einen Kellerspeicher (Stack), der nun sowohl für die Bedingungen als auch für die Aktionen mit genutzt werden kann. • Mit Kellerautomaten lassen sich alle kontextfreien Sprachen (Typ-2) darstellen. Ferner auch A^n B^n. Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Aufbau und Struktur - Klassenmodell Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Aufbau und Struktur - Abbildung • Übergänge und Zustände -> Klassen • Übergang verweist auf Start- und Zielzustand. • Die Ereigniss-Bedingung des Übergangs ist Attribut (Typ • “MatchMap”) -> Vergleich mit Ereignissen (Typ „Map“) Sonstige Bedingungen: • MatchMap-Struktur • Controller (Java-Mächtigkeit) • Aktionen -> Controller-intern • Keller: • Variablen innerhalb des Controllers Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Aufbau und Struktur - Anwendung • Der Controller ist mit dem Datenstrom des ECG verbunden und wird vom Nutzer erweitert. Klassen Übergang und Zustand stehen zur Verfügung • • Der Controller reicht jedes Ereignis als „Map“ an die zum • aktuellen Zustand assoziierten Übergänge Bei Übereinstimmung mit internem „MatchMap“-Schema wird im Controller die zugehörige Aktion ausgeführt (aktuellen Zustand setzt, Episode als erkannt melden, neues Ereignis, ...) Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Offene Probleme – Map & MatchMap • welche Datenstrukturen existieren, die diese Aufgaben • übernehmen können: Anforderungen an Map: • benötigt lediglich die Möglichkeiten eines assoziatives Feldes • Anforderungen an MatchMap: • möglichst vielfältige Möglichkeiten zum Vergleichen mit Map • möglichst viele Bedingungen umsetzen können; Z.B.: • Zugriff auf Variablen • Verwendbarkeit von regulären (bzw. boolschen) Ausdrücken • Beispiele: • event = new map{(typ, „xyz“),(datei, „abc.txt“)} • ereigniss = new MatchMap{(typ, event.typ),(datei, regExp)} • Habt Sie IDEEN ???? Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Offene Probleme - Komplexität • Gibt es Episoden die sich durch das Modell nicht verwirklichen lassen? • Anforderung: alle möglichen Episodenerkenner • Haben Sie... • Ideen zu solchen „kritischen“ Episoden? • Sonstige Mängel am Konzept entdeckt? Episode Recognizer Framework - Christian Andreas Kopf ([email protected]) Vielen Dank! Episode Recognizer Framework - Christian Andreas Kopf ([email protected])