The following BNF describes the syntax of the Common Answer Specification for the ATIS domain:
  
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     NIL   
We 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).