answer scalar-value relation NO boolean-value yes true no false number-value integer real-number relation ( tuple ) scalar-value boolean-value number-value string tuple ( value ) value scalar-value NILWe assume as primitives the values integer , real-number , and string . Integers and reals are not distinguished, and only non-exponential real numbers are allowed. Strings must always be enclosed in double quotes (i.e., "DFW" ), are case-sensitive, and should be upper-case (since strings in the ATIS database are). The special tokens yes , no , true , false , no answer and nil are not case-sensitive.
Answer relations must be derived from the existing relations in the database, either by subsetting and combining relations or by operations like averaging, summation, etc. NIL as the representation of missing data is allowed as a special case for any value, so a legal answer indicating the costs of ground transportation in Boston would be
(("L" 5.00 ) ("R" nil ) ("A" nil ) ("R" nil ))Empty tuples are not allowed (but empty relations are). All the tuples in a relation must have the same number of values, those values must be of the same respective types (boolean, string, or number), and the types in the answer must be the same as the types in the database (i.e., database values like "1355" cannot be converted from strings to numbers in answer expressions).