1. A method for a computer system to interpret an input from a user and generate a response, comprising: receiving a user input; converting the user input into an input array comprising rows and columns having a plurality of concepts; determining if any of the plurality of concepts in the input array is derived from a root concept; if any of the plurality of concepts is derived from a root concept, replacing each such derived concept with the corresponding root concept, identifying one or more related concepts that relate to the root concept, and generating a multi-dimensional array based on the input array that includes the one or more related concepts; generating one or more additional multi-dimensional arrays, based on the input, containing any composite concepts, each derived from two or more concepts contained in the original array; marking one or more concepts in the multi-dimensional arrays as essential based on application-specific criteria; correlating a plurality of concepts in the multi-dimensional array to a plurality of first elements in a database by comparing a plurality of linear arrays derived from the multidimensional array to the plurality of elements in the database, wherein the first elements in the database includes a link to a second element in the database do not comprise possible responses; determining a plurality of possible responses to the user input based on the correlation of the multi-dimensional array and the plurality of elements in the database; and generating a response to the user input.