A Tool for Reasoning about Qualitative Temporal Information: the Theory of S-languages with a Lisp Implementation