** Left:** Formal syntax of DATR
** Up:** Syntax
** Right:** Inheritance in DATR

In practice, `DATR` descriptions consist only of definitional statements, and
include at most one statement for each node/path pair. In this section
we examine the significance of this observation from a formal
perspective. As already noted in Section 2, `DATR` nodes can be thought of semantically, to a first approximation,
as denoting partial functions from
paths (sequences of atoms) to values (sequences of atoms) Generalising this view in the obvious way, whole
`DATR` descriptions can be thought of as denoting functions from nodes
to (partial) functions from paths to values. This semantic notion
induces a notion of consistency for `DATR` descriptions: we say that a
`DATR` description is **consistent** if and only if it has a coherent
interpretation as a function, that is, if the extensional sentences
defined (explicitly or implicitly) for each node constitute a (partial)
function from paths to values.
The syntax of `DATR` does not itself prevent one from writing down
inconsistent descriptions:

VERB:
<syn cat> == verb
<syn cat> == noun.

However, such descriptions are of no utility and it is
be desirable to find a mechanical way of eliminating them.
In pursuit of
this, we can require `DATR` descriptions to be both definitional
and functional, as defined in Section 3.1.4, above.
The significance of this purely syntactic requirement arises from
the following
property:
Every functional definitional `DATR` description is consistent.

This theorem cannot be strengthened to a biconditional, however,
since consistent but non-functional `DATR` descriptions exist, as in
the following examples:
NONFUNC1:
<a> == UNDEF
<a> == 1.
NONFUNC2:
<a> == <b>
<a> == 1
<b> == 1.
NONFUNC3:
<a> == <b>
<b> == <a>
<a> == 1.

In `NONFUNC1`, `UNDEF` is a node with no associated definitions, so
the first statement imposes no constraint on the value of `<a>`; in
`NONFUNC2`, two definitions for `<a>` are provided which happen to
define the same value; in `NONFUNC3`, we establish a mutual dependence
between `<a>` and `<b>`, and then define a value for one (either) of
them. However, we have not encountered any examples of nonfunctional but
consistent descriptions which are not better expressed by a
straightforward functional counterpart (`NONFUNC3` perhaps
comes closest, but adding statements about extensions of either `<a>` or
`<b>` quickly breaks the illusion that the two are in some sense
``unified''). Indeed, we suspect (but have no proof) that every
consistent `DATR` description is extensionally equivalent to (that is,
defines the same extensional sentences as) a functional one.
In the light of these considerations, we assume here, and elsewhere,
that definitionality and functionality are reasonable restrictions
to place on `DATR` descriptions.
The advantage of this is that it is completely trivial to check that
a `DATR` description is definitional and functional and hence
guarantee its consistency. In other words, we can substitute a
straightforward syntactic constraint on descriptions for the less
tractable notion of semantic consistency, apparently without
significant loss of expressive power. Among other things, this means
that implementations of `DATR` can thus either treat attempted
violations of functionality as syntactic errors and require the user
to eliminate them, or (more commonly in existing implementations)
they can treat apparent violations as intentional corrections and
silently erase earlier statements for the node and path for which a
violation has been detected.

** Left:** Formal syntax of DATR
** Up:** Syntax
** Right:** Inheritance in DATR
Copyright © Roger Evans, Gerald Gazdar & Bill Keller, Tuesday 10 November 1998