In the Language Grid, automatically composing Web services is a crucial task. This task involves vertical and horizontal composition. Vertical composition consists of defining an appropriate combination of simple processes to perform a composition task. Horizontal composition consists of determining the most appropriate Web service from among a set of functionally equivalent ones for each component process. The latter is important in language services. For the horizontal composition of Web services, we propose a generic formalization of any Web service composition problem based on a constraint optimization problem (COP) and then propose an incremental user-intervention-based protocol to find the optimal composite Web service according to some predefined criteria at run-time.