previous up contents next
Left: Denotational semantics Up: Denotational semantics Right: Implicit information and default

DATR interpretations

  DATR theories can be viewed semantically as collections of definitions of partial functions (nodes in DATR parlance) that map paths onto values. A model of a DATR theory is then an assignment of functions to node symbols that is consistent with the definitions of those nodes within the theory. This picture of DATR as a formalism for defining partial functions is complicated by two features of the language, however. First, the meaning of a given node depends, in general, on the global context of interpretation, so that nodes do not correspond directly to mappings from paths to values, but rather to functions from contexts to such mappings. Second, it is necessary to provide an account of DATR's default mechanism. It will be convenient to present our account of the semantics of DATR in two stages. The present section considers a restricted version of DATR without the default mechanism. Section 4.2 then shows how implicit information can be modelled by treating value descriptors as families of values indexed by paths.

Definition 7423

A DATR interpretation is a triple $I =
(U,\kappa,F)$, where

1.
U is a set;
2.
$\kappa$ is a function assigning to each element of the set $(U
\times U^*)$ a partial function from $(U
\times U^*)$ to U*.
3.
F is a valuation function assigning to each node N and atom a an element of U, such that distinct atoms are assigned distinct elements.

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 $C = (U \times U^*)$ are called contexts and denoted by c. The function $\kappa$ 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 $P =
\langle a_1\cdots a_n\rangle$ ($n \ge 0$) we write F(P) to denote $u_1
\cdots u_n \in U^*$, where ui = F(ai) for each i ($1 \le i \le
n$).


  
Figure 1: Denotation function for DATR descriptors
\begin{figure*}
\begin{displaymath}
\begin{array}
{lcl}
\left[\!\left[ a \right]...
 ...} c = (u,v)
\mbox{ and } c' = (F(N), v)\end{array}\end{displaymath}\end{figure*}

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 $I =
(U,\kappa,F)$ a partial denotation function $\left[\!\left[ \right]\!\right]:\mbox{\sc desc}
\rightarrow (C \rightarrow U^*)$ and write $\left[\!\left[ d \right]\!\right]_c$ 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 $\phi = d_1 \cdots d_n$ ($n \ge 0$), we write $\left[\!\left[ \phi \right]\!\right]_c$ to denote $v_1 \cdots v_n \in U^*$ if $v_i =
\left[\!\left[ d_i \right]\!\right]_c$ ($1 \le i \le
n$) is defined (and $\left[\!\left[ \phi \right]\!\right]_c$ is undefined otherwise).

Now, let $I =
(U,\kappa,F)$ be an interpretation and T a theory. We will write $\left[\!\left[ \mbox{\em T}/N \right]\!\right]_c$ to denote that partial function from U* to U* given by

\begin{displaymath}
\left[\!\left[ \mbox{\em T}/N \right]\!\right]_c =
\bigcup_{...
 ... \mbox{\em T}}\{(F(P),\left[\!\left[ \phi \right]\!\right]_c)\}\end{displaymath}

It is easy to verify that $\left[\!\left[ \mbox{\em T}/N \right]\!\right]_c$ does indeed denote a partial function (it follows from the functionality of the theory T). Let us also write $\left[\!\left[ N \right]\!\right]_c$ to denote that partial function from U* to U* given by $\left[\!\left[ N \right]\!\right]_c(v) =
\kappa(c)(F(N),v)$, for all $v \in U^*$. Then, I models T just in case the following containment holds for each node N and context c:

\begin{displaymath}
\left[\!\left[ N \right]\!\right]_c \supseteq \left[\!\left[ \mbox{\em T}/N \right]\!\right]_c\end{displaymath}

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.

---------------------------------------------------------

previous up contents next
Left: Denotational semantics Up: Denotational semantics Right: Implicit information and default
Copyright © Roger Evans, Gerald Gazdar & Bill Keller, Tuesday 10 November 1998