It's part of "good old fashioned AI". It allows a program to reason logically about the world and create a plan that will get you from your initial state (eg. "I'm hungry") to some desired end state ("Not hungry"). I don't know if it's actually used in industry much, because the generality of logical reasoning makes it slow, and specialized algorithms often perform better.
As far as AI research goes, its main problem is that it can't handle uncertainty, which is why it's not all that popular anymore.
So I'm not an expert on this but I actually think that this can generalize beyond AI. I think that to some extent this can be applied e.g. to reactive programming since, just like reactive, it reifies events. Idk if this view really brings anything new to the table though.
These kind of models can be extended with some sort of dempster-shafer or broadly bayesian model of belief. Typically iterated belief revision is used to update the plausibility/credibility of statements in the system or something like that.
Oh, I'm sure there is, but it's hard to do without also losing the nice properties of the purely logical formulation, and AFAIK that's the main reason why these approaches are not more popular.
If you have a link to an interesting take on it, please share!
If you're interested in this then you should check out the fluent calculus which solves many of the problems of event/situation/etc calculus. In particular it has a much more elegant solution for the frame problem by distinguishing states from situations. But it also has many interesting and useful extensions
I'm really very interested in this, but it is beyond my ability and feels out of reach. I'm not looking for a shortcut, but where would a self taught programmer start if this field interested her?
This feels very heavy and not as useful as other models such as Markov Decision Processes. Can someone enlighten me where this would be more convenient to reason with than an MDP?
A programming language analogy: An MDP can be thought of as a class of programs that satisfy certain conditions. They can be written in any language. Event Calculus happens to be a Turing complete programming language.
(Note: First-order logic, which Event Calculus is based upon, can simulate a universal Turing machine.)
I tried reading it but I had a hard time just parsing sentences.