1. A method of utilizing and modifying a grammar in a semantic parser, the method comprising: identifying a set of surface semantic non-terminals from user input using a context-free grammar; using a semantic description language grammar that describes relationships between semantic non-terminals to identify a semantic parse based in part on the identified semantic non-terminals; receiving an instruction to change the semantic description language grammar; and changing the semantic description language grammar based on the instruction by deleting a non-terminal through steps comprising: determining that the non-terminal is defined at least in part by a child semantic entity that does not define another non-terminal in the semantic description language grammar; and deleting the child semantic entity based on the determination.