Patent ID: 7634259
Filing Date: 2009-12-15
Classification: G10L

Abstract:
1. An applications server operable to provide a plurality of modular user driven services by running an application program, the application program being arranged to provide the modular services in response to user commands for selecting service options, the applications server comprising in accordance with the application program a state machine operable by a state machine engine to determine a current state of the application program from one of a pre-determined set of states defining a logical procedure through the user selected service options, the states of the state machine including for each of the modular services, one or more states defined by one or more forms within the service, each form defining a state of a user interface for providing the services to the user, and each state including one or more sub-states representing situations, defining the commands to be recognized and conditions to be satisfied to select each sub-state depending upon the estimated user commands and the session state of the user session, a command recognition engine, the command recognition engine including a grammar processor operable to provide the command recognition engine with grammar rules to establish a set of possible user commands which can be provided for a particular state, the possible user commands constituting a menu of available user commands for each form, the possible commands determining the states which can be reached from the current state, the command recognition engine being operable in response to a received user command to provide the state machine engine with an estimate of at least one of the possible commands, which the user may have provided, the state machine being operable to change state in response to the estimated user command, wherein the state machine is operable to determine at run-time a set of eligible states and the possible transitions between the states, the grammar processor being operable to adapt the possible user commands to be recognized for a current state in association with the state transitions, which are determined at run-time.