Like many computer-oriented languages, KIF has two varieties. In linear KIF, all expressions are strings of ASCII characters and, as such, are suitable for storage on serial devices (such as magnetic disks) and for transmission on serial media (such as phone lines). In structured KIF, the legal ``expressions'' of the language are structured objects. Structured KIF is of special use in communication between programs operating in the same address space.
Fortunately, there is a simple correspondence between the two varieties of KIF. For every character string, there is exactly one corresponding list structure; and, for every list structure, there is exactly one corresponding character string (once all unnecessary white space is eliminated).
In what follows, we first define the mapping between the linear and structured forms of the language; and, thereafter, we deal exclusively with the structured form.