Systems and methods are provided for receiving a query created by a user, tokenizing the query to identify a plurality of elements for the query using a knowledge data source, determining whether additional elements should be included in the plurality of elements, and identifying at least one intent of the query based on the plurality of elements. The systems and methods further provide for identifying at least one function to perform to retrieve data associated with the intent of the query, performing the at least one function to produce an output of the function, and generating a response to the query based on the output of the function.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method comprising: receiving, at a server computer, a query created by a user; tokenizing, using one or more hardware processors of the server computer, the query to identify a plurality of elements for the query using a knowledge data source; determining, using one or more hardware processors of the server computer, whether additional elements should be included in the plurality of elements; identifying, using the one or more hardware processors of the server computer, at least one intent of the query based on the plurality of elements; identifying, using the one or more hardware processors of the server computer, at least one function to perform to retrieve data from a database, the data being associated with the intent of the query; performing, using the one or more hardware processors of the server computer, the at least one function to produce an output of the function; and generating a response to the query based on the output of the function. 2. The method of claim 1, wherein tokenizing the query to identify a plurality of elements further comprises correcting a spelling of at least one element of the plurality of elements. 3. The method of claim 1, wherein determining whether any additional elements should be included in the plurality of elements comprises: determining that an element is not available in the knowledge data source; determining synonyms for the element; searching the knowledge data source to find one of the synonyms for the element; replacing the element with the synonym in the plurality of elements. 4. The method of claim 1, wherein determining whether any additional elements should be included in the plurality of elements comprises using context-free grammar (CFG) rules. 5. The method of claim 1, wherein determining whether any additional elements should be included in the plurality of elements comprises: determining at least one additional element should be included in the plurality of elements based on a user profile or entity profile; and adding the at least one additional element in the plurality of elements. 6. The method of claim 1, wherein identifying at least one intent of the query based on the plurality of elements comprises: determining at least one input parameter from the plurality of elements; and determining at least one output parameter from the plurality of elements. 7. The method of claim 6, wherein identifying at least one function to perform to retrieve data associated with the intent of the query comprises: comparing the at least one input parameter and the at least one output parameter from the plurality of elements to a list of functions to determine at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter; and selecting the at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter. 8. The method of claim 1, wherein the output of the function generates a plurality of tables comprising data relevant to the query. 9. The method of claim 1, wherein the knowledge data source comprises metadata from at least one enterprise resource planning (ERP) system, master data from at least one entity, and document information related to transactions in the ERP system or in a system associated with the at least one entity. 10. A server computer comprising: one or more hardware processors; and a computer-readable medium coupled with the one or more hardware processors, the computer-readable medium comprising instructions stored thereon that are executable by the one or more hardware processors to cause the server computer to perform operations comprising: receiving a query created by a user; tokenizing the query to identify a plurality of elements for the query using a knowledge data source; determining whether additional elements should be included in the plurality of elements; identifying at least one intent of the query based on the plurality of elements; identifying at least one function to perform to retrieve data from a database, the data being associated with the intent of the query; performing the at least one function to produce an output of the function; and generating a response to the query based on the output of the function. 11. The server computer of claim 10, wherein tokenizing the query to identify a plurality of elements further comprises correcting a spelling of at least one element of the plurality of elements. 12. The server computer of claim 10, wherein determining whether any additional elements should be included in the plurality of elements comprises: determining that an element is not available in the knowledge data source; determining synonyms for the element; searching the knowledge data source to find one of the synonyms for the element; replacing the element with the synonym in the plurality of elements. 13. The server computer of claim 10, wherein determining whether any additional elements should be included in the plurality of elements comprises using context-free grammar (CFG) rules. 14. The server computer of claim 10, wherein determining whether any additional elements should be included in the plurality of elements comprises: determining at least one additional element should be included in the plurality of elements based on a user profile or entity profile; and adding the at least one additional element in the plurality of elements. 15. The server computer of claim 10, wherein identifying at least one intent of the query based on the plurality of elements comprises: determining at least one input parameter from the plurality of elements; and determining at least one output parameter from the plurality of elements. 16. The server computer of claim 15, wherein identifying at least one function to perform to retrieve data associated with the intent of the query comprises: comparing the at least one input parameter and the at least one output parameter from the plurality of elements to a list of functions to determine at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter; and selecting the at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter. 17. The server computer of claim 10, wherein the output of the function generates a plurality of tables comprising data relevant to the query. 18. The server computer of claim 10, wherein the knowledge data source comprises metadata from at least one enterprise resource planning (ERP) system, master data from at least one entity, and document information related to transactions in the ERP system or in a system associated with the at least one entity. 19. A non-transitory computer-readable medium comprising instructions stored thereon that are executable by at least one processor to cause a computing device to perform operations comprising: receiving a query created by a user; tokenizing the query to identify a plurality of elements for the query using a knowledge data source; determining whether additional elements should be included in the plurality of elements; identifying at least one intent of the query based on the plurality of elements; identifying at least one function to perform to retrieve data from a database, the data being associated with the intent of the query; performing the at least one function to produce an output of the function; and generating a response to the query based on the output of the function. 20. The non-transitory computer-readable medium of claim 19, wherein identifying at least one intent of the query based on the plurality of elements comprises: determining at least one input parameter from the plurality of elements; and determining at least one output parameter from the plurality of elements; and wherein identifying at least one function to perform to retrieve data associated with the intent of the query comprises: comparing the at least one input parameter and the at least one output parameter from the plurality of elements to a list of functions to determine at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter; and selecting the at least one function that has a function input parameter associated with the at least one input parameter and a function output parameter associated with the at least one output parameter.