Buffer Overflow and Event Calculus

An interesting paper on measuring and controlling events.

This article presents the event calculus, a logic-based formalism for representing actions and their effects. A circumscriptive solution to the frame problem is deployed which reduces to monotonic predicate completion.

It uses the example of water filling a container to explain sequenced events without reference to time.

The domain comprises a TapOn event, which initiates a flow of liquid into the vessel. The fluent Filling holds while water is flowing into the vessel, and the fluent Level(x) represents holds if the water is at level x in the vessel, where x is a real number. An Overflow event occurs when the water reaches the rim of the vessel at level 10. The Overflow event initiates a period during which the fluent Spilling holds. A TapOff action is also included.


In other words, the formalisation yields the expected result that the water stops flowing into the vessel (at time 15), when it starts spilling over the rim, and that the level is subsequently stuck at 10.

I am reminded of system logs; events described on their own are all good until you try and map one system of measure against another system of measure…then you need some way to express events relative to a central measure, or time. The TapOn event would be at 5:15UTC, for example. I also am reminded of the scientists who marvelled at an Amazonian tribe.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.