A great interpreter ought not to need interpretation.–John Morley
In this chapter, I describe the Absity semantic interpreter. Absity meets five of the six requirements for an interpreter listed in section 2.5, and provides a foundation for further research in meeting the remaining requirement.
Absity is part of the artificial intelligence research project at Brown University that was described in section 1.3. It uses one of the project's parsers, Paragram (see section 1.3.1), and the project's frame representation language, Frail (section 1.3.2). The implementation to be described is therefore necessarily dependent upon the nature of these other components, as are many aspects of Absity's design. Nevertheless, in keeping with the goals of this work, the design has been kept as independent as possible of the representation formalism and the parser. The main ideas in Absity should be usable with other representations that have a suitable notion of semantic object and also, in particular, with other parsers, transformational or otherwise.
The organization of this chapter is as follows. In the first half, Absity is gradually built up, by explaining alternately a strategy and then its use in Absity. I then give some examples and some implementation details. In the second half, Absity is put on trial, and its strengths and weaknesses are evaluated.
Two strategies: Strong typing and tandem processing
In the design of Absity, we will make use of two features of Montague's formalism (see section 2.2.2): a strong typing of semantic objects, and running syntax and semantics not just in parallel but in tandem. These strategies will allow us to simplify the system of semantic rules.