We have decided to retain the `atom overrides variable' principle, despite the plausible intuitive reasons given in the recent discussion favouring the extension of the `longest path wins' principle to LHS paths containing variables, and note that this solution appears to have been implicitly advocated in an earlier communication in 1996 by Jim Kilbury. We adduce the following reasons for this decision:
In ZDATR, the semantics of declared variables therefore differ from the semantics of on-the-fly variables.
<a> == foo
<$a $b $c> == bar
where query path <a b> matches <a>,
but query path <a b c> matches <$a $b $c>,
i.e. where there is a path containing variables which is longer than
the query path.
If the `atom overrides variable' principle does not hold, but
the `longest path wins' principle is extended to variables,
then nondeterministic path/tree search of arbitrary depth (depending
on the length of defined paths and query paths) is involved in
matching <a b>.
In this case, DATR matching is only deterministic relative to local nodes if paths are matched `holistically' (possibly the original intention). If variables are not involved, matching is, in addition, left-to-right deterministic at the level of individual attributes (assuming coding of the equations as a decision tree). But if variables are involved, this is not necessarily true, as the above example shows.
Since matching in DATR is intended to be deterministic, we take this as a breach of the `spirit of DATR'.