There have been many studies on the automated composition of Web services. Most of previous works build a composite Web service by chaining the input and output of a Web service without considering the functional semantics of the Web service itself. However, they cannot guarantee that the service composed will provide a requested functionality. Furthermore, they have high time-complexity since every possible combination of available services should be considered. This paper proposes a composition method that explicitly specifies and uses the functional semantics of Web services. First, the proposed method constructs a graph model, which represents the functional semantics of Web services as well as the dependency among inputs and outputs. Second, composition paths with core services, which satisfy the functionality requested by a client, and value-added services, which support the transformation between I/O types, are searched in the graph model. Finally, possible composite services are built from the paths searched. The proposed method improves the semantic correctness of composite services by considering the functionalities of Web services, as well as the composition speed by only considering functionally related services.