1. A system comprising: at least one processor; an indexer which, upon execution, causes the at least one processor to determine, based on source code text of a plurality of program modules, which keywords are likely to appear in a natural language query and to associate each keyword of the keywords with a program module of the plurality of program modules that are executable to obtain data in response to natural language queries; a language learner which, upon execution, causes the at least one processor to alter an association between a keyword of the keywords and a program module of the plurality of program modules, in response to determining that the altered association is more likely to trigger an accurate response to a natural language query; a query translator which, upon execution, causes the at least one processor to determine whether at least one determined keyword of the keywords determined by the indexer appears in a received natural language query; and a results generator which, upon execution, causes the at least one processor to: respond to the received natural language query with data generated by each program module, of the plurality of program modules, that is associated with the at least one determined keyword appearing in the received natural language query, and rank the data returned by each program module associated with the at least one determined keyword based on a probability that the data is a correct response to the received natural language query.