Identifiers
From OBO Foundry
Contents |
OBO Identifier Lifecycle
In the .obo format, an identifier is always bipartite, of the form ID-Space : Local-ID. The Local-ID should be meaningless in and of itself, and it is recommended the local-ID be a number. Examples:
- GO:0008150
- CL:0000001
The ID-Space should come from an OBO-sanctioned list of ID-spaces. Contact the OBO-Foundry administrators to get an ID-space
In OWL, all identifiers are URIs. At the first OBO Foundry meeting we decided to adopt a standard form for URI - a presentation describing this is here
Briefly, the standard URL for a OBO identifier would be: http://purl.obofoundry.org/obo/<ID-Space>_<Local-ID>, where Local-ID is padded to at least 7 digits with leading 0s, and with the namespace as all upper case.
The URL can be created from the OBO id via the regular expression substitution pattern (in perl syntax):
$id =~ s/^([^:]+):0*(.*)/"http:\/\/purl.obofoundry.org\/obo\/".uc($1)."_"."0"x(7-length($2)).$2/e;
Permanence
Once granted, an ID cannot be revoked. It exists in perpetuity. However, IDs can be obsoleted. It is strongly recommended that obsolete IDs are accompanied by metadata indicating:
- reason for obsoletion
- suggested or required replacements
In .obo, this metadata is encoded using the comment, consider and replaced_by tags. We currently have no recommended corresponding AnnotationProperty for OWL as yet
Resolvability
The URL form of the id will redirect to some information about the term or the ontology, minimally the ontology detaul page.
Uniqueness
The identifier should be unique within OBO. This means the local part of the ID (eg the numeric part) must uniquely identify a term within an ontology
Identity
The ID is an identifier for a definition, not a name. If a new definition is minted, it must get a new ID.
Procedure for changing the definition of a term
In OBO (both the repository and the .obo format), an identifier uniquely and persistently identifiers a definition, which itself unambiguous identifies some type of biological entity. The ID is for the definition, NOT the name.
This means that a term/class can change its name yet keep the same ID. External resources refering to this ID are not affected.
When the meaning of a term changes (ie its definition changes in a non-trivial way) then the ID must be obsoleted. Additional metadata suggesting possible replacement terms should be provided.
For details on how to do this in OBO-Format, see the section on obsoletion:
See also the GO style guide:
