1. A method for interpreting a user request, the method comprising: receiving, by a processor, an initial user request from a user; interpreting, by the processor, the initial user request, where the processor fails to fully interpret the initial user request due to a presence of at least one un-interpretable expression in the initial user request wherein the interpreting comprises: identifying an abstracted version of a previous user request that matches the initial user request, wherein at least one attribute value in the abstracted version of the previous request has been replaced with a variable; and replacing the variable with an attribute defined in the initial user request to produce a modified version of the initial user request; and generating, by the processor, at least one alternative request in a context of the initial user request, the at least one alternative request being phrased in a manner that the processor can successfully interpret and that satisfies a combination of semantic constraints, syntactic constraints, and contextual constraints relating to the initial user request, wherein the generating comprises: retrieving a modified version of the previous user request that is stored with the abstracted version of the previous user request; and adapting the modified version of the initial user request in accordance with the modified version of the previous user request to produce the at least one alternative request, where the modified version of the previous user request has been fully interpreted by the processor.
1. A method for interpreting a user request, the method comprising: receiving, by a processor, an initial user request from a user; interpreting, by the processor, the initial user request, where the processor fails to fully interpret the initial user request due to a presence of at least one un-interpretable expression in the initial user request wherein the interpreting comprises: identifying an abstracted version of a previous user request that matches the initial user request, wherein at least one attribute value in the abstracted version of the previous request has been replaced with a variable; and replacing the variable with an attribute defined in the initial user request to produce a modified version of the initial user request; and generating, by the processor, at least one alternative request in a context of the initial user request, the at least one alternative request being phrased in a manner that the processor can successfully interpret and that satisfies a combination of semantic constraints, syntactic constraints, and contextual constraints relating to the initial user request, wherein the generating comprises: retrieving a modified version of the previous user request that is stored with the abstracted version of the previous user request; and adapting the modified version of the initial user request in accordance with the modified version of the previous user request to produce the at least one alternative request, where the modified version of the previous user request has been fully interpreted by the processor. 10. The method of claim 1 , wherein the interpreting results in a semantic structure representing an overall interpretation status of the initial user request, the semantic structure comprising: at least one task specified by the initial user request; and a plurality of nodes labeled by domain concepts, attributes, or constraints specified by the initial user request, wherein the plurality of nodes are connected by a set of relational links, wherein at least one of the plurality of nodes represents the at least one un-interpretable term and is labeled as unknown, thereby rendering the semantic graph only partially connected.