13. A computer-program product, embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to: receive a search query, wherein the search query is received by a software component; parse the search query into keywords and non-keywords; identify a category for each keyword in the search query; group the keywords according to category, wherein categories include a file type, wherein metadata associated with a file type includes one or more parameters, wherein a parameter specifies a rule, and wherein grouping the keywords includes linking keywords in the same category using a Boolean OR; generate a machine interpreted search query by linking the grouped keywords with the non-keywords using a Boolean AND; and transmit the machine interpreted search query, wherein when the machine interpreted search query is received by another software component, the machine interpreted search query is used to perform a search.
13. A computer-program product, embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to: receive a search query, wherein the search query is received by a software component; parse the search query into keywords and non-keywords; identify a category for each keyword in the search query; group the keywords according to category, wherein categories include a file type, wherein metadata associated with a file type includes one or more parameters, wherein a parameter specifies a rule, and wherein grouping the keywords includes linking keywords in the same category using a Boolean OR; generate a machine interpreted search query by linking the grouped keywords with the non-keywords using a Boolean AND; and transmit the machine interpreted search query, wherein when the machine interpreted search query is received by another software component, the machine interpreted search query is used to perform a search. 15. The computer-program product of claim 13 , wherein a rule specifies how to parse, identify, or group keywords within a category.