Various implementations described herein are directed to a method for generating an instance of a finite state machine. The method may receive a configuration comprising a value for each of one or more configuration points of a finite state machine. The method may determine a configuration point of the finite state machine that is not defined with a value in the configuration. The method may determine a default value for the determined configuration point of the finite state machine that is not defined with a value in the configuration. The method may also generate, based on the configuration and the default value, an instance of the finite state machine. The instance of the finite state machine collects data using a dialog system.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method, comprising: receiving, by a processor, a configuration comprising a value for each of one or more configuration points of a finite state machine; determining, by the processor, a configuration point of the finite state machine that is not defined with a value in the configuration; determining, automatically by the processor, a default value for the determined configuration point of the finite state machine that is not defined with a value in the configuration; and generating, by the processor and based on the configuration and the default value, an instance of the finite state machine, wherein the instance of the finite state machine is usable to collect data using a dialog system. 2. The method of claim 1, wherein the configuration comprises instructions to perform a grounding behavior, instructions to perform a backend read behavior, instructions to perform an evaluate dependency behavior, a description of mandatory attributes, a maximum number of candidates to be accepted, a minimum number of candidates to be accepted, a threshold for a refinement on candidates, a description of concepts to update, or combinations thereof. 3. The method of claim 1, wherein the configuration comprises a description of one or more mandatory attributes for data collected by the instance of the finite state machine. 4. The method of claim 3, further comprising: receiving, by the instance of the finite state machine, a first input; determining, by the instance of the finite state machine, that the first input does not comprise a mandatory attribute of the one or more mandatory attributes; and requesting, from a user, and responsive to determining that the first input does not comprise the mandatory attribute, a second input. 5. The method of claim 1, wherein the configuration comprises a maximum number of scalar values for the finite state machine to return. 6. The method of claim 5, further comprising: receiving, by the instance of the finite state machine and from a user, an input; retrieving, by the instance of the finite state machine and based on the input, a plurality of candidates based on the input; determining, by the instance of the finite state machine, that the plurality of candidates comprises a greater number of candidates than the maximum number of scalar values for the finite state machine to return; and receiving, from the user, a selection of one or more candidates of the plurality of candidates. 7. The method of claim 1, wherein the instance of the finite state machine comprises a ground data state, a check missing data state, a perform backend read state, a dependency evaluation state, and a check data update state. 8. The method of claim 1, wherein the configuration comprises an Extensible Markup Language data file corresponding to a document type definition of the finite state machine. 9. The method of claim 1, wherein the configuration comprises instructions for accessing a database and a maximum number of candidates to be kept from accessing the database. 10. The method of claim 9, further comprising: receiving, by the instance of the finite state machine, an input; and retrieving, by the instance of the finite state machine and based on the input, data from the database. 11. The method of claim 1, wherein generating the instance of the finite state machine comprises generating the instance of the finite state machine with a ground data state to receive input. 12. The method of claim 11, wherein generating the instance of the finite state machine comprises generating the instance of the finite state machine with a check missing data state to compare the input to one or more predefined mandatory attributes. 13. A method, comprising: generating, by a processor and based on a configuration, a plurality of instances of a finite state machine for a dialog system, wherein each instance of the plurality of instances is configured to collect a scalar data; receiving, by the processor, an input via the dialog system; determining, by the processor and based on the input, an instance of the plurality of instances of the finite state machine to process the input; and determining, by the processor and by using the instance of the plurality of instances of the finite state machine, a scalar data corresponding to the input. 14. The method of claim 13, wherein the configuration comprises a description of one or more mandatory attributes for data collected by each of the plurality of instances of the finite state machine. 15. The method of claim 13, wherein the configuration comprises a description of a maximum number of scalar values for each of the plurality of instances of the finite state machine to return. 16. The method of claim 13, wherein determining the instance of the plurality of instances of the finite state machine to process the input comprises comparing the input to a value in the configuration. 17. A method, comprising: generating, by a processor and based on a configuration, a first instance of a finite state machine to collect one or more scalar data via a dialog system; generating, by the processor and based on the configuration, a second instance of the finite state machine that corresponds to a complex data comprising the one or more scalar data; determining, by the process or and by using the first instance of the finite state machine, the one or more scalar data; and transmitting, by the processor and to the second instance of the finite state machine, the one or more scalar data. 18. The method of claim 17, further comprising, performing, by the second instance of the finite state machine and based on the one or more scalar data, a backend access. 19. The method of claim 17, wherein the configuration comprises a maximum number of scalar values for the first instance of the finite state machine to return and a maximum number of scalar values for the second instance of the finite state machine to return. 20. The method of claim 17, wherein the configuration comprises: instructions for the second instance of the finite state machine to access a database; and a maximum number of candidates for the second instance of the finite state machine to retrieve from the database.