1. A system for managing annotations for a plurality of data sources of different type, each data source manipulated by an associated one of a plurality of applications running on a client computer, comprising: a processor; and a memory operatively connected to the processor, the memory containing: an annotation database for storing the annotations separately from the data sources associated with the annotations; a set of annotatable data object points defining portions of the data sources associated with the annotations; an annotation server configured to: (i) receive requests to access annotations for one or more of the annotatable data object points, wherein the requests are issued by one or more of the plurality of applications running on the client computer and (ii) generate a graphical user interface screen, based on an annotation structure associated with the one or more of the annotatable data object points, for creating or viewing annotations for the one or more annotatable data object points; and one or more configuration tools allowing a user to define annotation structures and associate annotation structures with one or more of the annotatable data object points, wherein at least one of the annotation structures contains an annotation field storing metadata used to index an annotation according to: (i) the indexing mechanism and (ii) a mapping function associated with one of the plurality of applications, wherein each of the plurality of applications specifies a different indexing mechanism for indexing the data source associated with the respective application, and whereby a subsequent request to annotate a given portion of one of the plurality of data sources results in a selection of one or more of the annotation structures based on a match between a role of a user making the subsequent request and a role associated with the one or more of the annotation structures.
3. The system of claim 1 , wherein the configuration tools allow users to associate one or more roles with one or more users.