Begriff
Event Calculus
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Situation Calculus (A passiert nach B) ist gut für Roboter, die alleine handeln. Aber die echte Welt wartet nicht. "Um 12:00 Uhr geht die Sonne auf." "Um 12:05 Uhr drückt Hans den Knopf." Event Calculus modelliert Zeit als echte Zeitachse (Zahlen) und Events, die zu bestimmten Zeitpunkten passieren. Es fragt: "Was gilt im Zeitintervall zwischen 12:00 und 12:05?" Es kann mit Gleichzeitigkeit umgehen (zwei Events zur selben Sekunde). Es ist mächtiger für Geschichten und komplexe Szenarien.
Merksatz: Ein logischer Formalismus zur Darstellung von und zum Schließen über Aktionen und deren Auswirkungen im Zeitverlauf, der explizit mit Zeitpunkten und Zeitintervallen arbeitet.
In Prolog. Prädikate:
Happens(Event, Time): Wann passiert was?Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: In Prolog. Prädikate: Happens(Event, Time): Wann passiert was? Initiates(Event, Fluent, Time): Was startet eine Eigenschaft? Terminates(Event, Fluent, Time): Was beendet sie? HoldsAt(Fluent, Time): Gilt die Eigenschaft zum Zeitpunkt T? Regel: "Licht ist An zum Zeitpunkt T2, wenn ein 'An'-Event bei T1 passierte (T1 < T2) und kein 'Aus'-Event dazwischen lag." (Persistenz).Initiates(Event, Fluent, Time): Was startet eine Eigenschaft?Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: In Prolog. Prädikate: Happens(Event, Time): Wann passiert was? Initiates(Event, Fluent, Time): Was startet eine Eigenschaft? Terminates(Event, Fluent, Time): Was beendet sie? HoldsAt(Fluent, Time): Gilt die Eigenschaft zum Zeitpunkt T? Regel: "Licht ist An zum Zeitpunkt T2, wenn ein 'An'-Event bei T1 passierte (T1 < T2) und kein 'Aus'-Event dazwischen lag." (Persistenz).Terminates(Event, Fluent, Time): Was beendet sie?Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: In Prolog. Prädikate: Happens(Event, Time): Wann passiert was? Initiates(Event, Fluent, Time): Was startet eine Eigenschaft? Terminates(Event, Fluent, Time): Was beendet sie? HoldsAt(Fluent, Time): Gilt die Eigenschaft zum Zeitpunkt T? Regel: "Licht ist An zum Zeitpunkt T2, wenn ein 'An'-Event bei T1 passierte (T1 < T2) und kein 'Aus'-Event dazwischen lag." (Persistenz).HoldsAt(Fluent, Time): Gilt die Eigenschaft zum Zeitpunkt T? Regel: "Licht ist An zum Zeitpunkt T2, wenn ein 'An'-Event bei T1 passierte (T1 < T2) und kein 'Aus'-Event dazwischen lag." (Persistenz).
1. Kowalski & Sergot (1986)
Erfunden für juristische Logik ("British Nationality Act"). "Ist Person X zum Zeitpunkt T britischer Staatsbürger?" Das hängt von Events ab (Geburt, Umzug, Gesetzesänderung). Gesetze ändern sich über die Zeit. Ein Gesetz von 1950 gilt vielleicht 1980 nicht mehr. Event Calculus modelliert diese "Gültigkeitsdauer" (Fluents) perfekt.
2. Abductive Reasoning
Man kann es rückwärts nutzen (Abduktion). "Das Licht ist um 12:00 Uhr an. Was muss vorher passiert sein?" -> "Jemand muss den Schalter gedrückt haben." Das System generiert Erklärungen (Narratives) für beobachtete Zustände.
1. Das Trägheitsprinzip (Law of Inertia)
Im Event Calculus wird das Frame Problem durch das Prinzip der Trägheit gelöst.
Mathematisch wird dies durch Circumscription (eine Form der Minimierung) erreicht.
Man sagt: "Ein Fluent ändert sich NUR DANN, wenn es ein explizites Event gibt, das dies verursacht."
In der Inferenz bedeutet das: Wenn HoldsAt(LichtAn, t1) wahr ist und kein Event Terminates(SchalterAus, LichtAn, t) für $t1 < t < t2$ bekannt ist, dann folgt logisch HoldsAt(LichtAn, t2). Diese "Default-Annahme" macht den Event Calculus extrem effizient für die Modellierung von stabilen Welten mit sporadischen Änderungen.
2. Kontinuierliche Änderung (Trajectories)
Ein großer Vorteil gegenüber dem Situation Calculus ist die Fähigkeit, kontinuierliche Prozesse abzubilden.
Beispiel: Ein fallender Ball. Die Position ändert sich jeden Moment.
Man nutzt das Prädikat Trajectory(Fluent1, Time1, Fluent2, Offset).
"Wenn das Event 'Loslassen' bei Time1 passiert, dann entwickelt sich die 'Position' des Balls gemäß einer mathematischen Funktion (z.B. Gravitation) über die Zeit weiter."
Dies erlaubt es, diskrete Events (Knopf drücken) mit physikalischen Gesetzen in einem einzigen logischen System zu mischen – ideal für die Simulation von autonomen Fahrzeugen oder chemischen Prozessen.
3. Non-Monotonic Reasoning
Event Calculus ist nicht-monoton. Das bedeutet: Wenn ich erfahre, dass "LichtAn" bei $t=10$ gilt, ist das eine gültige Schlussfolgerung. Erfahre ich aber später zusätzlich, dass bei $t=5$ doch ein "Stromausfall-Event" stattfand, muss ich meine vorherige Schlussfolgerung revidieren. In der Produktion (z.B. bei der Analyse von Server-Logs) ist dies entscheidend: Man baut das Bild der Vergangenheit ständig um, während neue Daten (Events) eintrudeln, die erst retrospektiv Sinn ergeben.
Quick-Check
Unterschied zu Situation Calculus?
Situation Calculus: Diskrete Schritte ($S_0 \to S_1$). Event Calculus: Kontinuierliche Zeit ("Gilt das Licht während des Schlafens?"). Event Calculus ist flexibler bei parallelen Aktionen.Fluent?
Ein Zustand, der sich ändern kann (z. B. "IstVerheiratet"). Ein Event ("Heirat") startet das Fluent. Ein Event ("Scheidung" oder "Tod") beendet es.Warum nicht immer?
Rechenaufwändiger. Die Zeitachse kann unendlich fein sein. Man braucht Constraint Logic Programming, um das effizient zu lösen.