1. A system comprising: instructions which, if executed, cause at least one processor to: learn to translate natural language queries into database language queries using historical data associated with previously received natural language queries; and respond to a new natural language query based on an analysis of the historical data, the historical data comprising: associations between keywords contained in the previously received natural language queries and attributes of a database model, the associations being adaptable for disambiguating associations between one keyword and multiple attributes of the database model; and a context free grammar, the context free grammar being adaptable for disambiguating associations between one attribute of the database model and multiple attribute types.