A dialog-based system configured for providing an interface to application functionality of a device that allows a user to interact with and receive services from an application server, wherein the device comprises a home appliance, the system comprising: one or more processors; and, memory in communication with the one or more processors, the memory comprising code (612, 614, 616), that when executed, causes the one or more processor to control the system to: control an interactive dialog with a user; determine marked-up text from an input text of the user wherein an entity extractor extracts one or more entities from the input text of the user to form the marked-up text, wherein the one or more entities comprise one or more of dates, times, and locations; determine, by a controller implemented by the execution of the code on the one or more processors, a mask over available actions from the marked-up text, wherein the mask indicates which actions of a set of actions are allowed and which are disallowed based on which entity types were extracted from the input text; provide, by the controller, the mask and a set of features to a recurrent neural network, wherein the set of features include the input text of the user, an indication of the types of entities extracted from the input text, an indication of a previous action if a previous action took place and at least one feature associated with the previous action if the previous action took place (214, 216); receive, by the controller, an indication of a selected action from the recurrent neural network; update an internal state of the controller based on the indication of a selected action; and, initiate, by the controller, the selected action (326, 332, 338) to interface with an application back-end to control the home appliance. one or more processors; and, memory in communication with the one or more processors, the memory comprising code (612, 614, 616), that when executed, causes the one or more processor to control the system to: control an interactive dialog with a user; determine marked-up text from an input text of the user wherein an entity extractor extracts one or more entities from the input text of the user to form the marked-up text, wherein the one or more entities comprise one or more of dates, times, and locations; determine, by a controller implemented by the execution of the code on the one or more processors, a mask over available actions from the marked-up text, wherein the mask indicates which actions of a set of actions are allowed and which are disallowed based on which entity types were extracted from the input text; provide, by the controller, the mask and a set of features to a recurrent neural network, wherein the set of features include the input text of the user, an indication of the types of entities extracted from the input text, an indication of a previous action if a previous action took place and at least one feature associated with the previous action if the previous action took place (214, 216); receive, by the controller, an indication of a selected action from the recurrent neural network; update an internal state of the controller based on the indication of a selected action; and, initiate, by the controller, the selected action (326, 332, 338) to interface with an application back-end to control the home appliance. control an interactive dialog with a user; determine marked-up text from an input text of the user wherein an entity extractor extracts one or more entities from the input text of the user to form the marked-up text, wherein the one or more entities comprise one or more of dates, times, and locations; determine, by a controller implemented by the execution of the code on the one or more processors, a mask over available actions from the marked-up text, wherein the mask indicates which actions of a set of actions are allowed and which are disallowed based on which entity types were extracted from the input text; provide, by the controller, the mask and a set of features to a recurrent neural network, wherein the set of features include the input text of the user, an indication of the types of entities extracted from the input text, an indication of a previous action if a previous action took place and at least one feature associated with the previous action if the previous action took place (214, 216); receive, by the controller, an indication of a selected action from the recurrent neural network; update an internal state of the controller based on the indication of a selected action; and, initiate, by the controller, the selected action (326, 332, 338) to interface with an application back-end to control the home appliance.