1. A computer-implemented method comprising: storing information in a datastore, the information corresponding to a plurality of computer applications, wherein the plurality of computer applications have associated annotations, the annotations comprising a verb describing one or more activities performed by an associated application and a noun describing work objects on which the activities are performed, and wherein users access the applications in the datastore; receiving an input from a user; providing a first verb and a first noun corresponding to a user intent based on said input; and specifying one or more of said plurality of applications based on the verb and noun annotations for the plurality of applications and the first verb and first noun corresponding to the user intent.
1. A computer-implemented method comprising: storing information in a datastore, the information corresponding to a plurality of computer applications, wherein the plurality of computer applications have associated annotations, the annotations comprising a verb describing one or more activities performed by an associated application and a noun describing work objects on which the activities are performed, and wherein users access the applications in the datastore; receiving an input from a user; providing a first verb and a first noun corresponding to a user intent based on said input; and specifying one or more of said plurality of applications based on the verb and noun annotations for the plurality of applications and the first verb and first noun corresponding to the user intent. 15. The method of claim 1 further comprising: storing activities for a user; and determining whether or not an activity is routine or non-routine, wherein if an activity is routine, the method further comprises automatically invoking a routine application corresponding to said activity, and if the activity is not routine, the method further comprises recommending a non-routine application corresponding to said activity.