1. A non-transitory computer-readable storage medium storing a computer program including instructions for converting a natural language query into one or more logical queries, the instructions causing a general purpose computer to perform the steps comprising: storing a plurality of specialized tools to the non-transitory computer-readable storage medium, each of the plurality of specialized tools being adapted to perform a highly specific domain independent recognition task, each of the specialized tools operable independently from any of the other specialized tools, and each of the tools being adapted to operate independently of any particular data; receiving a natural language query; determining one or more knowledge bases for use by each of the specialized tools to perform its specific recognition task; and converting the natural language query to generate one or more logical queries in accordance with the one or more specialized tools.