A development framework, implemented by one or more computer devices, for developing a spoken natural language interface, comprising: a development system, comprising: a developer interface module configured to provide a development interface, the developer interface module comprising: logic configured to receive a set of seed templates, each seed template identifying a command phrasing for use in invoking a particular function performed by a program, when spoken; and logic configured to collect a set of added templates, each added template identifying another command phrasing for use in invoking the particular function, the set of seed templates and the set of added templates forming an extended set of templates with all of the templates in the extended set providing a different command phrasing for use in invoking the particular function; a resource interface module configured to interact with one or more development resources to provide the set of added templates; and a data store (132, 134) for storing the extended set of templates associated with the particular function, the extended set of templates being used to generate one or more models for use on a user device, and said one or more models being for use in interpreting commands spoken by an end user, comprising determining whether any command spoken by the end user is a member of the extended set of templates so as to invoke the particular function. a development system, comprising: a developer interface module configured to provide a development interface, the developer interface module comprising: logic configured to receive a set of seed templates, each seed template identifying a command phrasing for use in invoking a particular function performed by a program, when spoken; and logic configured to collect a set of added templates, each added template identifying another command phrasing for use in invoking the particular function, the set of seed templates and the set of added templates forming an extended set of templates with all of the templates in the extended set providing a different command phrasing for use in invoking the particular function; a resource interface module configured to interact with one or more development resources to provide the set of added templates; and a data store (132, 134) for storing the extended set of templates associated with the particular function, a developer interface module configured to provide a development interface, the developer interface module comprising: logic configured to receive a set of seed templates, each seed template identifying a command phrasing for use in invoking a particular function performed by a program, when spoken; and logic configured to collect a set of added templates, each added template identifying another command phrasing for use in invoking the particular function, the set of seed templates and the set of added templates forming an extended set of templates with all of the templates in the extended set providing a different command phrasing for use in invoking the particular function; logic configured to receive a set of seed templates, each seed template identifying a command phrasing for use in invoking a particular function performed by a program, when spoken; and logic configured to collect a set of added templates, each added template identifying another command phrasing for use in invoking the particular function, the set of seed templates and the set of added templates forming an extended set of templates with all of the templates in the extended set providing a different command phrasing for use in invoking the particular function; a resource interface module configured to interact with one or more development resources to provide the set of added templates; and a data store (132, 134) for storing the extended set of templates associated with the particular function, the extended set of templates being used to generate one or more models for use on a user device, and said one or more models being for use in interpreting commands spoken by an end user, comprising determining whether any command spoken by the end user is a member of the extended set of templates so as to invoke the particular function.