Patent ID: 8688714

Claim:
A computer-implemented method, comprising: receiving, from a computer device, a query that includes terms and that is in a format that is unstructured for a plurality databases; determining, by a data processing apparatus, a selected service requirement from the terms of the query, the selected service requirement being selected from a plurality of service requirements fulfilled by the databases, the determining the selected service requirement from the terms of the query comprising: accessing data defining, for each of the databases, a service requirement fulfilled by the database and parameter types associated with the service requirement, each parameter type defining a parameter input type or parameter output type that the database receives as input or provides as output, respectively, for a search operation particular to the database that fulfills the service requirement; selecting, from the query, terms that define parameter values for parameter types associated with service requirements; and selecting the service requirement based on the terms that define parameter values for the parameter types of the service requirements; determining, for each of the databases, a service requirement score for the database, the service requirement score being a measure of an ability of the database to fulfill the selected service requirement, the determining comprising determining a first score based on matches of the parameter values defined by the terms to the parameter types of the service requirement fulfilled by the database and the number of different parameter values of the matching parameter types in the database; selecting one of the databases based on the service requirement scores; determining, from the query, parameter values for the selected service requirement; providing the parameter values to a search interface of the selected database and in the form of a structured query input for a search operation by the selected database and receiving from the selected database search results responsive to the parameter values and the search operation; determining, based on the selected database search results responsive to the parameter values and the search operation, a search constraint for the search query that is not included in the search query; revising the search query to include the search constraint and providing the revised search query to a search engine; and providing search results to the computer device, the search results identifying resources that the search engine determined to be responsive to the revised query.