The reason I ran across XSB was I was looking for a
relational system that did not only memoization (I then
discovered "tabling" was a synonym used in the prolog
world) but, could support ongoing observation of a
query for changes in the database. This would result
in a feature something like:
which would operate as a normal query except that
instead of terminating after ouputting the current
state of the query, it would start delivering asserts
and retracts to modify the current state of the query
in accordance with the changes in the underlying database.
Is this pie-in-the-sky wishful thinking or is it
doable? Seems to me with tabling you're one step away
from making it doable.
Most real world programming problems boil down to
nothing more than keeping a currently observed state up
to date, but people keep solving the problem in bad ways.