1. A computer implemented method of determining an appropriate response to an input, comprising: linking by a computer system a plurality of attributes to a plurality of response templates using a plurality of Boolean expressions, each attribute associated with a set of patterns, with each pattern within the set of patterns being equivalent; receiving by the computer the input; and determining by the computer system an appropriate response template for the received input, the appropriate response template selected from the plurality of response templates based on the input, by: determining by the computer system matches of the input to patterns; ranking by the computer system the patterns; and selecting by the computer the corresponding response template based on the ranked patterns.