10. The method of claim 9 , wherein the probability is at least partially based on a number of associations between each respective program module associated with the at least one determined keyword and determined keywords appearing in the received natural language query.
9. A method comprising: determining, using at least one processor, keywords that are likely to appear in natural language queries, the determining of the keywords based on source code text of program modules executable to obtain data from a data structure in response to the natural language queries; associating, using the at least one processor, each determined keyword with a program module of the program modules; changing, using the at least one processor, an association between a determined keyword and a program module, in response to determining that changing the association is more likely to trigger an accurate response to a natural language query of the natural language queries; determining, using the at least one processor, whether at least one determined keyword of the determined keywords appears in a received natural language query; generating, using the at least one processor, a response to the received natural language query with data produced by each respective program module, of the program modules, that is associated with the at least one determined keyword appearing in the received natural language query; and ranking, using the at least one processor, the data returned by each respective program module associated with the at least one determined keyword based on a probability that the data returned is a correct response to the received natural language query.