1. A method of representing user tasks to be performed by interaction of a plurality of electronic devices in a task orchestration system, the method comprising the steps of: expressing device functionality as a device description specifying a function that the device can perform; and generating task suggestions based on device descriptions, wherein each task suggestion represents a user task as an abstraction of one or more of the device descriptions; whereby user tasks are decoupled from the devices.