A request language for web services based on planning and constraint satisfaction