RO:Main Page

From NCBO Wiki
Revision as of 13:16, 20 May 2008 by Djs93 (talk | contribs) (version 1.1)
Jump to: navigation, search

RO - OBO Relation Ontology

The main RO page is located on The OBO Foundry Website

You can browse the ontology and get e-mail list details there.

Open issues

There's an RO expert meeting happening in May, 2008. See OntologyRelations

Note that requests for new terms etc should go in the RO tracker

Three types of relations

The OBO Relation Ontology (aka the OBO Relationship Types Ontology) distinguished three families of relations, according to whether they hold between instances, types, or combinations thereof, for example:

  • 1. instance_of holding between an instance and a type
  • 2. part_of holding between an instance and an instance
  • 3. part_of holding between a type and a type

We use bold face to mark out those relational expressions used in ontologies such as GO to represent the relations between the types these ontologies represent.

In the original Genome Biology paper we focused primarily on defining relations of type 3. in terms of those of types 1. and 2. This was to meet the need among biologists for clear guidance as to what the relational expressions used in ontologies such as GO precisely mean.

In our treatment of relations of types 1. and 2. we focused primarily on picking out certain instance level relations which we fixed on as primitive -- meaning that they are so basic to the relational architecture of reality that they cannot be defined in terms of anything more basic. The primitive relations selected were as follows:

  • c instance_of C at t - a primitive relation between a continuant instance and a class which it instantiates at a specific time
  • p instance_of P - a primitive relation between a process instance and a class which it instantiates holding independently of time
  • c part_of c1 at t - a primitive relation between two continuant instances and a time at which the one is part of the other
  • p part_of p1, r part_of r1 - a primitive relation of parthood, holding independently of time, either between process instances (one a subprocess of the other), or between spatial regions (one a subregion of the other)
  • c located_in r at t - a primitive relation between a continuant instance, a spatial region which it occupies, and a time
  • r adjacent_to r1 - a primitive relation of proximity between two continuants
  • t earlier t1 - a primitive relation between two times
  • c derives_from c1 - a primitive relation involving two distinct material continuants c and c1
  • p has_participant c at t - a primitive relation between a process, a continuant, and a time
  • p has_agent c at t - a primitive relation between a process, a continuant and a time at which the continuant is causally active in the process

In proposing new relations (both on the wiki and in the Sourceforge Tracker], please specify to which of the three types your proposed relation belongs.

  • If it is an instance-level relation, please answer the following questions:
    • a. is it already on the list above?
    • b. is it primitive in the above-mentioned sense?
  • If the answer to both of these questions is no,
    • c. can it be defined in terms of the relations on the above list?
  • If yes, please supply a definition (an example is provided below)
  • If no, please propose also those primitive instance-level relations which would need to be added to the RO in order to define it.

How to Define an Instance-Level Relation

First, check whether your proposed relation needs a definition -- perhaps it is primitive (see above).

All definitions specify necessary and sufficient conditions. Thus if we are defining what it is to be an A, then the definition might read, for example:

x is an A =def. x has features F1, F2, F3.

This definition would be correct if and only if everything which has features F1, F2, and F3 is an A, and everything which is an A has features F1, F2, and F3.

For instance-level relations, the definition might read as follows:

x stands in instance-level relation r to y =def. x has features F1, F2, y has features F3, F4, x stands in instance-level relations r1, r2 to y.

For a specific example consider preceded_by, a relation between occurrents (drawn from the RO paper).

With the primitive relations has_participant and earlier at our disposal we first define the instance-level relation p occurring_at t as follows:

p occurring_at t =def. for some c, p has_participant c at t.

We can then define:

c exists_at t =def. for some p, p has_participant c at t

p preceded_by p1 =def. for all t, t1, if p occurring_at t and p1 occurring_at t1, then t1 earlier t

t first_instant p =def.
p occurring_at t, and
for all t1, if t1 earlier t, then not p occurring_at t1
t last_instant p =def.
p occurring_at t and
for all t1, if t earlier t1, then not p occurring_at t1
p immediately_preceded_by p1 =def.
for some t, t first_instant p and
t last_instant p1.

In these terms we can also define the instance-level relation has_duration proposed by Liju:

p has_duration y =def.
p is an occurrent, and
for some t1, t1 first_instant p, and
for some t2, t2 last_instant p, and
for all t, t1 earlier t and t earlier t2 implies p occurring_at t [this to ensure that p is continuous; has no gaps],
y is the interval (t1,t2).

Here a new functional operator 'the interval ( , )' has been introduced, which generates the name of an interval from a pair of names for times.

Proposed new type-level relations

relations between generically dependent continuants and specifically dependent continuants:

  • concretizes
  • is_concretized_by
  • about
  • inheres_in
  • depends_on
  • output_of
  • has_input
  • has_function
  • has_quality
  • realization_of
  • lacks

The lacks family of relations is discussed at: [1]

The treatment of the derives_from relation has been criticised from an ontological point of view: [2]. Transformation_of is always, by definition a 1-1 relation. The thesis in the original RO paper was (A) that the derives_from relation could be n-1 or 1-n (for n > 1) but also (B) that there are examples of 1-1 derives from relations (e.g. the relation between a living organism and a corpse). This thesis (B) has now been dropped. The relation between a corpse and the predecessor organism is one of transformation.

There is also the terminological problem that "derives_from" is used specifically for evolutionary relationships by some. We will report back on this after the september NCBO anatomy meeting. We may create a "develops_from" parent for transformation_of corresponding to how that relation is currently used in MOD AOs

See also


The relation of overlaps

X overlaps Y =def. for every t and every x, if x instance_of X at t, then there is some instance y of Y at t such that (x overlaps y at t)


x overlaps y at t =def there is some z such that z is part_of x at t and z part_of y at t

Note that it can be the case that X overlaps Y as thus defined, even though Y does not overlap X.

Thus uterine tracts overlaps urinogenital sysem but not uriongenital system OVERLAPS uterine tract (because of male urinogenital systems)

Actually uterine tract is part_of urinogenital system, which raises the question of whether each of X's parts overlaps X.

Proposed Gene Ontology 'Regulates' Relations

[Typedef] id: OBO_REL:regulates name: regulates def: "A relation between a process and a process or quality. A regulates B if the unfolding of A affects the frequency, rate or extent of B. A is called the regulating process, B the regulates process" [] transitive_over: OBO_REL:part_of

[Typedef] id: OBO_REL:positively_regulates name: positively_regulates def: "A regulation relation in which the unfolding of the regulating process *increases* the frequency, rate or extent of the regulated process" [] is_a: OBO_REL:regulates transitive_over: OBO_REL:part_of

[Typedef] id: OBO_REL:negatively_regulates name: negatively_regulates def: "A regulation relation in which the unfolding of the regulating process *decreases* the frequency, rate or extent of the regulated process" [] is_a: OBO_REL:regulates transitive_over: OBO_REL:part_of

Example file: tions_test.obo

Some follow-up comments at the sourceforge tracker page func=detail&aid=1874192&group_id=76834&atid=947684 here:

Hunter/Bada Proposal for new relations


We assert that the level of granularity/specifity of the proposed relations is a central issue that, once resolved, will provide useful guidelines as to what is needed to capture a piece of knowledge by a relational link. The examples in this proposal use process terms from the Gene Ontology, but we believe that this issue applies to other OBOs as well.

We assert that the addition of relations should be primarily guided by the effort to link OBO terms with other OBO terms, as is being done in the OBO cross-product project. A composite set of links from a given more complex OBO terms to more atomic OBO terms will provide the (hopefully complete) definition of the former. A given link from the term being defined, employing an RO relation, must unambiguously capture some piece of knowledge, some part of the definition, of this term. It is this unambiguous representation of some part of the complete definition of the term that should determine the specificity of the relation. This may require the use of a specific relation, but we assert that it is more important to avoid losing knowledge in the represented definition than to exclusively use general relations.

It is ideal to use general, reusable relations in such definitions without losing information, and we believe that this is sometimes possible. For example, for the many GO process terms that use “during” to specify a process that is taking place within the span of another process (e.g., “actin filament reorganization during cell cycle”), it is acceptable to use a standard temporal relation, as no information is lost by doing so. However, especially in the definitions of processes, we assert that the unambiguous capture of roles of participants will require relatively specific relations.

There have been efforts to use general relations to denote roles, but they have been difficult to define (e.g., has_agent, has_patient, has_central_participant) and/or insufficient to specify the role (e.g., has_output_participant). If suitably precise general relations cannot be defined, relatively specific relations are needed. Thus, for all of the growth terms (e.g., “organ growth”, “filamentous growth”), if a general relation to indicate what is growing cannot be suitably defined, then a specific relation must be created to capture this, either in the form of a lexically analogous relation (e.g., results_in_growth_of) or as one that incorporates the template definitions of the term (e.g., results_in_increase_in_size_or_mass_of, since most of the growth terms are defined as the increase in size or mass of an entity). These two approaches by themselves are computationally synonymous but differ in terms of human comprehension. The former, while not adding information for human users, can be straightforwardly formed. The latter, while helpful for human users, can get unwieldy in the case of complex definitions. For example, the detection-of-stimulus terms are defined as the series of events in which a stimulus is received by an entity and converted into a molecular signal, and results_in_reception_of_stimulus_and_conversion_into_molecular_signal_of is clearly getting ridiculous.

It is also ideal for relations, especially relatively specific ones as exemplified above, to be formally defined (i.e., in a computationlly procesable way) in terms of more atomic relations. However, it will be very difficult to produce formal definitions in terms of more atomic relations, especially for relatively specific relations. We assert that the linking of OBO terms to generate cross-products should be a priority, and this requires the specification of relations (as discussed above) to link the terms. A requirement for any proposed relation to have a formal decomposed definition in terms of more atomic relations would be a significant bottleneck to this process. Just as there is no requirement for an added OBO term to have a formal definition, there should be no such requirement for an added OBO relation. We would like to be clear that we believe it extremely beneficial to have such formal definitions (and thus efforts should continually be put into creating such definitions), but this should not be an obstacle to the introduction of new relations.


We propose that each relation should canonically be in the form of a verb phrase. We assert that this promotes usability in that it emphasizes the fact that these are relationships between entities.

TAIR Relations


Relations between continuants and occurrents:

  • has (function)
  • involved in
  • functions as
  • required for
  • functions in
  • has protein modification of type
  • contributes to
  • is upregulated by
  • is downregulated by

Relations between continuants:

  • located in
  • expressed in
  • colocalizes with
  • is subunit of
  • constituent of
  • has protein-protein physical interaction with
  • has protein-DNA interaction with
  • binds to cis-element of
  • acts upstream of
  • acts downstream of
  • expressed during
  • protein is modified by
  • is regulated by
  • represses

Relations between continuants and qualities (phenotypes in our case):

  • suppresses gene
  • enhances gene
  • partially enhances gene
  • partially suppresses gene

Proposed homologous_to relation

version 1.2

x1 directly_descends_from x2 iff there are y1, y2 such that:

- y1 is an organism

- x1 is an anatomical structure

- x1 part_of y1

- y2 is an organism

- x2 is an anatomical structure

- x2 part_of y2

- y2 is a parent of y1

- the genetic sequence that determined the morphology of x1 is partially a copy of the genetic sequence that determined the morphology of x2.

descends_from is the instance level relation which is the transitive closure over directly_descends_from

A in B descends_from C in D  :

For all A(a) -> exists b, d, c: B(b) & C(c) & D(d)

a part_of b

a descends_from c

c part_of d

(Note – B must be a subclade of the clade descending* from D)

A1 in B1 homologous_to A2 in B2


exists A3, B3:

A1 in B1 descends_from A3 in B3


A2 in B2 descends_from A3 in B3

(Note B1 and B2 must both be subclades of the clade descending* from D)

(*In the genealogical sense)

Note: Do we need to include time (exists & existed)? FN – just to be on the safe side we can include time – it's not useful but it could stop the some people complaining and it won't affect the logic at all.

Since this definition includes 'descended_from', we've been discussing the following more extensive definition:

Continuant D in species R is genealogically descended from continuant E in species S when there is passage of genetic information from species S sufficient to generate continuant E, to species R which is sufficient to generate continuant D.

instance-level: a genealogical descends from a if a is a child+ of b class-level: Taxon A genealogical descends from Taxon B if for all a in A, a genealogical descends from some b in B.


Taxon A is disjoint from Taxon B

All instances of continuant X part_of some organism which is an instance of taxon A

All instances of continuant Y part_of some organism which is an instance of taxon B

All instances of continuant Z part_of some organism which is an organism which is the most recent common ancestor of some A and B.

All instances of continuant D part_of some organism which is part of species R

All instances of continuant E part_of some organism which is part of species S

X is homologous_to Y

IF (and only if)

All instances of X descended_from some instance of Z


All instances of Y descended_from some instance of Z

Note: The all/some looks wrong in the first 3 sentences of this definition Perhaps make third sentence '...MRCA all A and all B ? (comment added by David OS).

Note that there are a number of synonyms for descended_from, including 'evolutionarily_derived_from' which is currently in ROproposed as follows:

id: OBO_REL:evolutionarily_derived_from

name: evolutionarily_derived_from

def: "Instance 3-ary relation: x edf y as T iff x specified_by gx and gx ancestral_copy_of gy and gy specifies y" []

synonym: "derived_from" RELATED []

synonym: "descended_from" RELATED []

synonym: "evolved_from" RELATED []

is_transitive: true

OWL Conversion

The standard GO obo->owl conversion is used. See OboInOwl:Main_Page for details

obo1.2 defines "builtin" tags for relations that are hardwired into the obo semantics - is_a and instance_of are tagged builtin. These are not exported in OWL, as these are also part of the OWL language