A UML profile for the OBO relation ontology

Background Ontologies have increasingly been used in the biomedical domain, which has prompted the emergence of different initiatives to facilitate their development and integration. The Open Biological and Biomedical Ontologies (OBO) Foundry consortium provides a repository of life-science ontologies, which are developed according to a set of shared principles. This consortium has developed an ontology called OBO Relation Ontology aiming at standardizing the different types of biological entity classes and associated relationships. Since ontologies are primarily intended to be used by humans, the use of graphical notations for ontology development facilitates the capture, comprehension and communication of knowledge between its users. However, OBO Foundry ontologies are captured and represented basically using text-based notations. The Unified Modeling Language (UML) provides a standard and widely-used graphical notation for modeling computer systems. UML provides a well-defined set of modeling elements, which can be extended using a built-in extension mechanism named Profile. Thus, this work aims at developing a UML profile for the OBO Relation Ontology to provide a domain-specific set of modeling elements that can be used to create standard UML-based ontologies in the biomedical domain. Results We have studied the OBO Relation Ontology, the UML metamodel and the UML profiling mechanism. Based on these studies, we have proposed an extension to the UML metamodel in conformance with the OBO Relation Ontology and we have defined a profile that implements the extended metamodel. Finally, we have applied the proposed UML profile in the development of a number of fragments from different ontologies. Particularly, we have considered the Gene Ontology (GO), the PRotein Ontology (PRO) and the Xenopus Anatomy and Development Ontology (XAO). Conclusions The use of an established and well-known graphical language in the development of biomedical ontologies provides a more intuitive form of capturing and representing knowledge than using only text-based notations. The use of the profile requires the domain expert to reason about the underlying semantics of the concepts and relationships being modeled, which helps preventing the introduction of inconsistencies in an ontology under development and facilitates the identification and correction of errors in an already defined ontology.


Metaclass Base Class Description OBORelation
DirectedRelationship OBO Relation is an abstract metaclass that represents the properties of all binary and directed relations that apply to <<Continuant>>, <<Material>>, <<Immaterial>> and <<Process>> entity classes.

Metaclass Base Class Description FoundationalRelation
OBORelation Foundational Relation is an abstract metaclass that represents a specific type of OBO Relation. This metaclass represents the properties of the so-called foundational relations.

Stereotype Base Class Description
Instance_of <<instance_of>> FoundationalRelation Dependency <<instance_of>> represents a relation between a biological entity class and an instance of this class. For continuants this relation is established between a class and an instance which it instantiates at a specific time. For processes this relation is established between a class and an instance which it instantiates holding independently of time.

Stereotype Base Classes Description
Is_a <<is_a>> FoundationalRelation Generalization <<is_a>> is a specific type of Foundational Relation that represents a relation between a source biological entity class that is a subtype of a target biological entity class, acting as a supertype. <<is_a>> expresses that any source instance also instantiates the target class. <<is_a>> can be interpreted as "is subtype of" and connects two continuants or two processes.

Stereotype Base Classes Description
Part_of <<part_of>> FoundationalRelation Association <<part_of>> is a specific type of Foundational Relation that represents a relation between a source and a target biological entity class. Each instance of the source class is part of a "whole" represented by an instance of the target class. <<part_of>> connects two continuants or two processes.

Stereotype Base Class Description
Integral_part_of <<integral_part_of>> Part_of <<integral_part_of>> represents a specific type of <<part_of>> in which a source biological entity class is part of a target biological entity class (<<part_of>> relation) and at the same time the target class has the source class as its part (<<has_part>> relation).

Stereotype Base Class Description
Proper_part_of <<proper_part_of>> Part_of <<proper_part_of>> is a specific type of <<part_of>> that associates a source biological entity class to a target biological entity class. Each instance of the source class is part of a "whole" represented by an instance of the target class. However, this relation has the additional constraint that the source and target classes must be distinct.

Metaclass Base Classes Description SpatialRelation OBORelation Association
A Spatial Relation is an abstract metaclass that represents a specific type of OBO Relation. This metaclass represents the properties of all spatial relations that connect biological entity classes in terms of spatial regions occupied by their instances.

Constraints
[1] Associations stereotyped by subtypes of SpatialRelation have two ends and only one of them is navigable: context SpatialRelation inv: self.memberEnd->size() = 2 and self.navigableOwnedEnd->size() = 1 [2] Each instance of the source end of associations stereotyped by subtypes of SpatialRelation must be associated to at least one instance of the target end: context SpatialRelation inv: self.source->forAll(x|x.spatialRelation->exists(y|not y.target->isEmpty()))

Stereotype Base Class Description
Adjacent_to <<adjacent_to>> SpatialRelation <<adjacent_to>> represents a specific type of Spatial Relation that connects a source continuant to a target continuant. <<adjacent_to>> expresses that the spatial region occupied by a source continuant is adjacent to the spatial region occupied by a target continuant.

Stereotype Base Class Description
Located_in <<located_in>> SpatialRelation <<located_in>> represents a specific type of Spatial Relation that connects two continuants (source and target). <<located_in>> expresses that at a given instant of time, a source continuant is located in a target continuant since the region occupied by the source instance is part of (is in) the region occupied by the target instance at this instant of time.

Stereotype Base Class Description
Contained_in <<contained_in>> SpatialRelation <<contained_in>> represents a specific type of Spatial Relation that connects a source material continuant to a target immaterial continuant. <<contained_in>> expresses that a source continuant is contained in a target continuant, but the source instance is not part of the target instance. Notation Example

Stereotype Base Class Description
Contains <<contains>> SpatialRelation <<contains>> is a specific type of Spatial Relation that represents the inverse of the relation <<contained_in>>.

Metaclass Base Classes Description TemporalRelation OBORelation Association
Temporal Relation is an abstract metaclass that represents a specific type of OBO Relation. This metaclass represents the properties of all temporal relations that connect biological entity classes whose instances exist at different instants of time.

Constraints
[1] Associations stereotyped by subtypes of TemporalRelation have two ends and only one of them is navigable: context TemporalRelation inv: self.memberEnd ->size() = 2 and self.navigableOwnedEnd->size()=1 [2] Each instance of the source end of associations stereotyped by subtypes of TemporalRelation must be associated to at least one instance of the target end: context TemporalRelation inv: self.source->forAll(x|x.temporalRelation->exists(y|not y.target->isEmpty()))

Stereotype Base Class Description
Transformation_of <<transformation_of>> TemporalRelation <<transformation_of>> represents a specific type of Temporal Relation that connects a source material continuant to a target material continuant. <<transformation_of>> expresses that some material continuant instantiates different entity classes at different instants of time.

Stereotype Base Class Description
Derives_from <<derives_from>> TemporalRelation <<derives_from>> represents a specific type of Temporal Relation that connects a source material continuant to a target material continuant. <<derives_from>> expresses that a source continuant immediately derives from a target continuant. Thus, the source continuant begins to exist at the same instant of time the target continuant ceases to exist and a portion of the target matter is inherited by the source.

Stereotype Base Class Description
Preceded_by <<preceded_by>> TemporalRelation <<preceded_by>> represents a specific type of Temporal Relation that connects a source process to a target process. <<preceded_by>> expresses that a source process occurs in an instant of time prior to the occurrence of a target process. Notation Example

Stereotype Base Class Description
Precedes <<precedes>> TemporalRelation <<precedes>> is a specific type of Temporal Relation that represents the inverse of the relation <<preceded_by>>.

Metaclass Base Classes Description ParticipationRelation OBORelation Association
Participation Relation is an abstract metaclass that represents a specific type of OBO Relation. This metaclass represents the properties of all participation relations of continuants in processes.

Constraints
[1] Associations stereotyped by subtypes of ParticipationRelation have two ends and only one of them is navigable: context ParticipationRelation inv: self.memberEnd ->size() = 2 and self.navigableOwnedEnd->size()=1 [2] Each instance of the source end of associations stereotyped by subtypes of ParticipationRelation must be associated to at least one instance of the target end: context ParticipationRelation inv: self.source->forAll(x|x.participationRelation->exists(y|not y.target->isEmpty()))

Stereotype Base Class Description
Has_participant <<has_participant>> ParticipationRelation <<has_participant>> represents a specific type of Participation Relation that connects a source process to a target continuant. <<has_participant>> expresses that a source process has a target continuant as its participant at any instant of time.