Discovering composable web services using functional semantics and service dependencies based on natural language requests