1. A recommendation system for assisting mashup developers at build time comprising: a processor; a repository manager analyzes a repository of mashups and pulls from the mashup repository a list of all existing mashups, the repository manager including a catalog manager, which keeps track of all mashups, services and service outputs in the repository of mashups, 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 accesses one or more databases and provides a similarity score upon request of the repository manager for any pair of terms in the list of all existing mashups to the statistics manager, the repository manager then computing a table of frequencies for all outputs and services based on the similarity scores; an output ranker receives a partial mashup from the mashup developer and generates a ranked output list from the list of all existing mashups provided by the repository manager, excluding outputs appearing in the partial mashup, the output ranker assigns a relevance score to each candidate output, said score reflecting the relevance of the output to any of the terms in the partial mashup, and ranks candidate outputs based on their scores, the ranked candidate outputs being provided as recommended outputs to the mashup developer; and a planner receiving a selected recommended output from the mashup developer and computing a combination of repository services that will produce the selected output, the combination being based on the similarity scores from the semantic matcher and the table of frequencies from the repository manager, the computed combination of repository services being added to the mashup developer's mashup.