Guidelines for Building the Ontology
The FAO is being developed and maintained according to
guidelines very similar to those used for the GO ontologies. This page
contains a distillation of information found in the General GO
Documentation put together by the GO Curators and describing
guidelines for developing GO ontologies.
Ontology Structure
The structure of the FAO is a directed acyclic graph (DAG). This is similar to a hierarchy, except that in a hierarchy, a term may have only one parent,
while in a DAG, a term may have zero, one or more parents. This is to ensure that a concept is represented in all relevant biological contexts. For more
details on the structure of ontologies and a graphical representation
of a DAG, see the SGD GO
Help page.
There are several important aspects to the DAG that should be
considered when adding to or re-organizing the ontology.
- Terms at the top levels of the ontology represent general
concepts and child terms represent more specific concepts
(sometimes called more granular concepts).
- Indentations reflect parent-child relationships. In the example below, basidiocarp is a child of
fruitbody, basidium is a child of basidiocarp, and basidium is a
grandchild of fruitbody.
%fruitbody
%basidiocarp
<basidium
- The terms in the ontology represent the normal state of the
structure or organism, not mutant types.
- The terms are not arranged according to the function of the
structures they represent. They are arranged simply on the basis
of whether a structure is a part of a larger structure
(represented with 'part_of' or '<') or whether the structure is an
example of a structure (represented with 'isa' or '%').
- Each term inherits the meaning of all of its parent terms. For
instance, the structure of the node below implies that a basidium is
a part of a basidiocarp and a basidiocarp is an example of a
fruitbody. It implies that a basidium is part of a fruitbody.
%fruitbody
%basidiocarp
<basidium
[top]
True Path
- Child terms inherit the meaning of all of their parent terms. This
means that when a new term is added, the definitions of all parent
terms must apply to the new term. Stated another way, tracing from the child term up to every
one of its parents must reflect legitimate biology in all instances. When it does not,
this is called a true path violation. Here is an example of a true
path violation:
%fruitbody
%ascocarp
<ascus
It is true that an ascus is often part of an ascocarp but it is not
always true. Ascomycetes such as Saccharomyces cerevisie
produce asci from a single cell, not an ascocarp. A special
term will have to be made that denotes an ascus found in an ascocarp in
order to alleviate the true path violation:
%fruitbody
%ascocarp
< ascocarp-specific ascus
Additional explanation of true path can be found in the General GO Guidelines
[top]
Terms and Definitions
- Terms should reflect the normal state of the structure, not a
mutant type.
- Common synonyms can be associated with a term and should be suggested.
- Terms and definitions should be spelled with American English
- The format of the defintions is the following: the first word of a
defintion is capitalized and there is a period after the last word.
- Every definition should have a reference. The reference can be
yourself (Organization:name), a book (ISBN:#), a PubMed ID
(PMID:#), or some other source.
- A definition has multiple components in the definitions
file. If you are making suggestions for new terms to developers, you should include information for as many of these fields as is possible or applicable.
term:
faoid:
definition:
definition_reference:
comments:
term: ascospore
faoid: (don't assign an ID, the software does it automatically)
definition: A spore made by Ascomycetes.
definition_reference: FAO:curators
[top]
Assigning Parentage
- A term should be made a child of every appropriate parent. In
biology an 'ascocarp-specific ascus' is not only a part of an ascocarp, it is
also an example of a sporophore, a structure that contains spores. Since 'sporophore' is already
a term in the FAO, 'ascocarp-specific ascus' should also be a child of
'sporophore' (see below). If you are suggesting new terms to developers, you should try
to find and suggest all of the relevant parents for your terms. If you
are not sure, just ask.
%fruitbody
%ascocarp
< ascocarp-specific ascus
%sporophore
%ascocarp-specific ascus
%ascus
Note that both paths are true for 'ascocarp-specific ascus'!