1. A method, comprising: receiving, from a user via a user interface, a task specification in natural language form; parsing the task specification into a plurality of components; searching a database for an existing concept having a pattern that approximates at least a portion of the plurality of components, the concept including semantic meanings that are representable by textual patterns; identifying any components of the plurality of components that are not included in the existing concept; and building a new concept that combines the existing concept and the components of the plurality of components that are not included in the existing concept.