A DATR interpretation is a triple , where
Elements of the set U are denoted by u and elements of U* are denoted by v. Intuitively, U* is the domain of (semantic) values/paths. Elements of the set are called contexts and denoted by c. The function can be thought of as mapping global contexts onto (partial) functions from local contexts to values. The function F is extended to paths, so that for () we write F(P) to denote , where ui = F(ai) for each i ().
Intuitively, value descriptors denote elements of U* (as we shall see, this will need to be revised later in order to account for DATR's default mechanism). We associate with the interpretation a partial denotation function and write to denote the meaning (value) of descriptor d in the global context c. The denotation function is defined as shown in Figure 1. Note that an atom always denotes the same element of U, regardless of the context. By contrast, the denotation of an inheritance descriptor is, in general, sensitive to the global context c in which it appears. Note also that in the case of a global inheritance descriptor, the global context is effectively altered to reflect the new local context c'. The denotation function is extended to sequences of value descriptors in the obvious way. Thus, for (), we write to denote if () is defined (and is undefined otherwise).
Now, let be an interpretation and T a theory. We will write to denote that partial function from U* to U* given by
It is easy to verify that does indeed denote a partial function (it follows from the functionality of the theory T). Let us also write to denote that partial function from U* to U* given by , for all . Then, I models T just in case the following containment holds for each node N and context c:
That is, an interpretation is a model of a DATR theory just in case (for each global context) the function it associates with each node respects the definition of that node within the theory.