1. A recommendation system for assisting mashup developers at build-time comprising: a repository manager which accesses a repository of mashups database and responds to mashup developer's requests to generate outputs that can be added to the developer's existing partial mashup, the repository manager including a catalog manger, which keeps track of all mashups, services and service outputs in the repository of mashups database, and a statistics manager, which collects statistics and determines probability distributions for the occurrence of different repository terms and their co-occurrence patterns; a semantic matcher which accesses one or more databases and provides a similarity score for any pair of terms to the statistics manager of the repository manager; an output ranker which receives the mashup developer's requests and communicates those requests to the repository manager, the output ranker receiving input from the semantic matcher and the repository manager and identifying a set of candidate outputs that can be added to the developer's existing partial mashup, assigns a relevance score to each candidate output and ranks candidate outputs based on their scores, the output ranker outputting ranked candidate outputs as recommended outputs to the mashup developer; and a planner receiving a selected recommended output from the mashup developer and communicating the selected output to the repository manager, the planner receiving input from the semantic matcher and the repository manager and outputting a best plan to generate the selected recommended output starting from information already present in the mashup developer's mashup.