The purpose of the present section is to remedy the deficiencies of the work described in E&G 1989b by furnishing DATR with a transparent, mathematical semantics. It is easy to see DATR as a language for representing a certain class of non-monotonic inheritance networks (`semantic nets'). While this perspective provides an intuitive and appealing way of thinking about the structure and representation of lexical knowledge, it is less clear that it provides an accurate or particularly helpful picture of the DATR language itself. In fact, there are a number of constructs available in DATR that are impossible to visualize in terms of simple inheritance hierarchies. For this reason, the approach adopted here reflects a rather different perspective on DATR, as a language for defining certain kinds of partial functions by cases. In the following pages, this viewpoint is made more precise. Section 3.1.4, above, presented the syntax of the DATR language and introduces the notion of a DATR theory. The semantics of DATR is now covered in two stages. Section 4.1 introduces DATR interpretations and describes the semantics of a restricted version of the language without defaults. The treatment of implicit information is covered in Section 4.2, which provides a definition of a default model for a DATR theory. And, in Section 4.3, we make some concluding comments about the semantics given here.