previous up contents next
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:

        <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:
        <a> == UNDEF
        <a> == 1.
        <a> == <b>
        <a> == 1
        <b> == 1.
        <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.


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