Introduction to Cross Products

In the world of OBO Ontologies, the phrase "cross product" is a little fuzzy. It is often used to mean a simple relationship between two terms in different ontologies.

This is not what cross products mean in OBO-Edit!

In OBO-Edit, cross products are a special kind of logical definition called an "intersection". An intersection defines one term as equivalent to the intersection of two or more other terms. (Throughout this guide, the terms "cross product" and "intersection" are used interchangeably).

To use a simple, real world example, we might define a "mailman" as an intersection of two concepts: "man" and "mail delivery". Our cross product definition of a mailman might say "by definition a mailman is_a 'man' that has_job 'mail delivery'".

Our intersection definition gives the sufficient conditions to determine whether another class is a subclass of this class . One of the tasks of the reasoner is to discover and automatically create is_a links implied by cross product definitions.

Continuing our example above, imagine that our ontology also included the term 'package delivery man'. 'Package delivery man' has an is_a relationship to 'man', and a has_job relationship to 'package delivery'. Further, in this ontology, 'package delivery' has an is_a relationship to 'mail delivery'.

The reasoner would look at this information and realize that 'package delivery man' has an implied is_a relationship to 'mailman'. Since 'package delivery' is a kind of 'mail delivery', 'package delivery man' is_a 'man' that has_job 'mail delivery'. Thus, 'package delivery man' is_a 'mailman'. The reasoner would go ahead and create that implied link in the ontology.

Intersections are important for any complex ontology, but intersections that involve terms from many ontologies are particularly important in the world of biological ontologies. Biological ontologies tend to be very specialized, describing a specific organism or a specific class of concepts. These specialized ontologies often refer to concepts outside their limited domain. Cross products are used to give these references precise meanings.

Genus/Differentia

OBO standards encourage users to use the genus/differentia method of defining intersections. Genus/differentia definitions specify the meaning of a term by saying "Term X (the term of interest) is a subclass of term Y (the genus), differentiated by characteristics A, B, and C (the differentia)". In OBO-Edit, a genus/differentia definition will be an intersection that contains a single is_a relationship to a "genus" term, and one or more relationships of some other type to "differentia" terms.

Our mailman example above is a genus/differentia definition. A 'mailman' is a kind of 'man' differentiated by the fact that he has_job 'mail delivery'.

Consider a term like "larval locomotory behavior". A genus/differentia definition of "larval locomotory behavior" in OBO format might look like this:

 

[Term]
id: go_ext:larval_locomotory_behavior
name: larval locomotory behavior
intersection_of: is_a GO:behavior
intersection_of: affects go_ext:locomotion
intersection_of: affects go_ext:larva

Recall that a cross product defines the sufficient conditions for a term to be considered a subclass of another term. For example, the cross product definition of "larval locomotory behavior" above could be understood to mean "If a term X is_a "behavior" AND affects "locomotion" AND affects a "larva" it is BY DEFINITION a subclass of "larval locomotory behavior".