1. A method of extracting information from a natural language input using a computer having a processor and memory, comprising: accessing a semantic schema with a structured language model, the semantic schema having a template with a structure of frames that corresponds to one or more pieces of information to be extracted for an application program; generating, with the processor, a candidate parse by parsing the natural language input with the structured language model, wherein, during generation, the structured language model generates hypothesis parses of a portion of the natural language input by applying the template and accepts only those hypothesis parses, as possible candidate parses, if the hypothesis parses completely match the structure of frames from the template, and discards all hypothesis parses, during construction of the hypothesis parses, that do not completely match the structure of frames from the templates, each accepted candidate parse including syntactic head words, and semantic labels, and using the head words and semantic labels in each accepted candidate parse to predict a next word in the natural language input, to obtain an overall parse for the natural language input, the overall parse having a semantic frame label and one or more constituents of the natural language input each having a semantic slot label, the overall parse being constrained based on the semantic schema accessed; and identifying, with the processor, an information extraction frame corresponding to the natural language input based on the frame label and filling in slots in the frame with the one or more constituents labeled by the slot labels.