Further tests and bug reports revealed the following problems in Version 1.0 and Version 1.01, which have been rectified in Version 1.1:
One error with a segmentation fault could not be reduplicated. Bug reports are very welcome and should be sent to gibbon@spectrum.uni-bielefeld.de.
Evaluation of undefined paths has been modified. If no path match is found, by default evaluation halts and the programme exits with an error message. If the command line switch -u is set, the null atom is returned. Note that returning an atom as the value of an undefined path is equivalent to including at each node which has no empty LHS path an equation with an empty LHS path and evaluating to this atom.
ZDATR has different semantics for on the fly variables from some other DATR implementations. In case of a clash between an atom and a variable, the `atom wins over variable' default principle wins. This strategy permits implementation of `any' or `else' variables. In other DATR implementations (e.g. QDATR), the `longest path wins' strategy is extended to variables. This strategy involves non-deterministic search for query variable matching with paths containing variables, and is not adopted in ZDATR. We are indebted to Petra Barg, James Kilbury, Gerald Gazdar and Roger Evans for discussion of this point, though we have not followed their advice.