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.
