In an embodiment, a method includes matching terms of a received query to a database of provider capabilities. The method further includes determining, for each portion of the received query, a respective provider to execute the portion of the received query. The method further includes sending each portion of the received query to its respective provider. The method further includes combining results from each respective provider to a returned query result.