The other major component of DATR is definition by default. This mechanism allows a DATR definitional statement to be applicable not only for the path specified in its left-hand-side, but also for any rightward extension of that path for which no more specific definitional statement exists. In effect, this ``fills in the gaps'' between paths which are defined at a node, on the basis that an undefined path takes its definition from the path which best approximates it without being more specific (see Sections 4.2 and 5.4, below). Of course, to be effective, this ``filling in'' has to take place before the operation of the inheritance mechanisms described in the previous section.
Consider for example, the definition of Do we gave above.
Do:
<> == VERB
<mor root> == do
<mor past> == did
<mor past participle> == done
<mor present tense sing three> == does.
Filling in the gaps between these definitions, we can see that many
paths will be implicitly defined only by the empty
path specification. Examples include:
Do:
<mor> == VERB
<syn> == VERB
<mor present> == VERB
<syn cat> == VERB
<syn type> == VERB
<mor present tense sing one> == VERB.
If there had been no definition for <>, then none of these example paths
would have been defined at all, since there would have been no leading
subpath with a definition.
Note how <mor> itself takes its definition from <>,
since all the explicitly defined <mor ...> specifications have at
least one further attribute.
The definition for <mor past> overrides default definition from
<> and in turn provides a definition for longer paths. However,
<mor past participle> blocks default definition from
<mor past>. Thus the following arise
:
Do:
<mor past tense> == did
<mor past tense plur> == did
<mor past tense sing three> == did
<mor past participle plur> == done
<mor past participle sing one> == done.
Similarly all the <mor present> forms inherit from VERB except
for the explicitly cited <mor present tense sing three>.
Definition by default introduces new DATR sentences each of whose left-hand-side paths is an extension of the left-hand-side paths of some explicit sentence. This path extension carries over to any paths occurring on the right-hand-side as well. So for example, the sentence:
VERB:
<mor present tense> == "<mor root>"
<mor form> == <mor "<syn form>">.
gives rise to the following, inter alia:
VERB:
<mor present tense sing> == "<mor root sing>"
<mor present tense plur> == "<mor root plur>"
<mor form present> == <mor "<syn form present>" present>
<mor form passive> == <mor "<syn form passive>" passive>.
This extension occurs for all paths in the right-hand-side, whether they
are quoted or unquoted and/or nested in descriptor sequences or
evaluable paths.
The intent of this path extension is to allow descriptors to provide
not simply a single definition for a path but a whole set of
definitions for extensions to that path, without losing path
information. In some cases this can lead to gratuitous extensions to
paths - path attributes specifying detail beyond any of the
specifications in the overall description. However, this does not
generally cause problems since such gratuitously detailed paths,
being unspecified, will always take their value from the most
specific path that is specified (effectively, gratuitous detail is
ignored)
. Indeed,
DATR 's approach to default information always implies an infinite
number of unwritten DATR statements, with paths of arbitrary length.