The Gene Ontology project, or GO, provides a controlled vocabulary to describe gene and gene product attributes in any organism. It can be broadly split into two parts. The first is the ontology itself--actually three ontologies, each representing a key concept in Molecular Biology: the molecular function of gene products; their role in multi-step biological processes; and their localization to cellular components. The ontolog(ies) are continuously updated, and new versions are made available on a monthly basis.
The second part is annotation, the characterization of gene products using terms from the ontology. The members of the GO Consortium submit their data and it is made publicly available through the GO website.
The GO is also part of a larger classification effort, the Open Biomedical Ontologies (OBO).
The Gene Ontology was originally constructed in 1998 by a consortium of researchers studying the genome of three model organisms: Drosophila melanogaster (fruit fly), Mus musculus (mouse), and Saccharomyces cerevisiae (brewers' or bakers' yeast). Many other model organism databases have joined the Gene Ontology consortium, contributing both annotations for the genes of one or more organisms and also contributing to the development of the ontologies. As of the end of 2005, GO contains over 19,000 terms applicable to a wide variety of biological organisms. There is a significant body of literature on the development and use of GO, and it has become a standard tool in the bioinformatics arsenal.
Gene Ontology terms
Each GO term consists of a unique alphanumerical identifier, a common name, synonyms (if applicable), and a definition. When a term has multiple meanings depending on species, the GO uses a "sensu" tag to differentiate among them. Terms are classified into only one of the three ontologies, which are each structured as a directed acyclic graph.
New terms and annotations are suggested by members of the research and annotation communities. Once submitted, they are reviewed by members of the GO consortium to determine their applicability.
If it is decided that a term in the ontology is not appropriate, it is deprecated, or marked as "obsolete". This can happen for a number of reasons, such as being outside the scope of the ontology or being misleadingly named or defined.
The ontology file is freely available from the GO website; the terms can be searched and browsed online using the GO browser AmiGO. The Gene Ontology project also provides mappings of its terms to other classification systems covering the same areas of biology.
Gene Ontology Associations
A number of organizations, including model organism databases and large multispecies protein databases, perform analyses of protein sequences and issue tables of associations between putative gene products and GO terms. These are freely available from the GO website and can be downloaded individually or viewed online using AmiGO.
In many older genetic sequence databases, annotations bear little or no indication of their provenance so that a user cannot readily ascertain the nature and strength of the evidence behind them, which leads to what is known in the field as the 'transitive annotation problem.' Some gene is characterized by actual wet lab experiments, and its sequence deposited in a major public database with annotation from those experiments. Other sequences that have not been characterized in the lab are annotated based on their sequence similarity to this one, and these other sequences in turn form the basis for yet more annotations, and so forth. Thus a user cannot know how many steps of sequence similarity stand between the annotation for some genetic sequence and any actual wet-lab data.
A GO association has metadata indicating:
- Who made the assertion that this GO term applies to the putative product of this protein sequence
- When this assertion was made
- One or more three-letter Evidence code(s) denoting the type of evidence on which this assertion is based.
Any automatic program output that has not been curated by a human being gets the evidence code IEA meaning Inferred from Electronic Annotation. The use of a code other than IEA implies that a human curator has checked this annotation. For instance TAS for Traceable Author Statement means a curator has read a published scientific paper and the metadata for that association bears a citation to that paper. On the other hand, ISS for Inferred from Sequence Similarity means a human curator has reviewed the output from a sequence similarity search and verified that it is biologically meaningful.
GOCat - An Automatic GO Categorizer/Browser to help Functional Annotation from Biomedical Texts 
GoPubMed - Explore PubMed/MEDLINE with Gene Ontology
Protein Ontology Project — Provides access to the Protein Ontology (PO) and reference documents describing the PO and its uses.
EAGLi - A Terminology-powered (Gene Ontology, Swiss-Prot keywords...) MEDLINE search and visualisation engine 
- Gene Ontology Consortium — Provides access to the ontologies, software tools, annotated gene product lists, and reference documents describing the GO and its uses.