Each annotation in the Gene Ontology (GO) pairs a single gene product identifier to a single term from the ontology. This very powerful format can also restrict the descriptiveness of a specific instance of a function or a sub-cellular location, as there must be a pre-existing (pre-composed) term in the ontology that provides full details of the specific aspects of the function.
It is not always possible to create individual terms that precisely describe the context of each activity, for example, the cellular or anatomical location, the dependency on other processes, or specific protein targets. Annotation Extensions allow the curator a less restrictive environment to combine additional terms in a single annotation and provide a more detailed functional description for an individual gene product. Extensions in GO annotations allows GO terms to be further specified, using gene product and chemical identifiers, or terms from GO and external OBO ontologies.
When curators choose to use an Annotation Extension, they are effectively creating on-the-fly cross-product terms (post-composition). The combinatorial term created by Annotation Extension is not added to the ontology, but Ontology Editors it may choose to create an appropriate GO term describing the information on the Extension at a later stage.
Examples about capturing information in annotation extensions such as specific substrates, products or targets, contextual information (e.g, spatial and temporal information), and details on data that cannot be captured by the current annotation format are available on the Annotations Extension Examples section in the GO Wiki.
Additional general information about annotation can be found in the GO Annotation Policies guide.