-
Notifications
You must be signed in to change notification settings - Fork 30
Temporal interpretation of relations Design Pattern
Like most anatomy ontologies, Uberon uses OWL to encode relationships between structures, providing a formal interpretation that can be reasoned over. For example, the axiom
Class: autopod
SubClassOf: part_of some limb
Means that every instance of an autopod
(i.e. hand or foot) is part of a limb
.
This OWL interpretation lacks a temporal component. How are we to interpret these axioms in a dynamic, developmental context?
We desire to have an interpretation consistent with the original Relations Ontology Paper, i.e. if an autopod exists at a particular time t, then there must exist a limb such that the autopod is part of this limb at t. Another way to state this is: at no time is there an autopod that is not part of a limb.
Our means of providing this interpretation in a way consistent with OWL semantics is to assume every axiom A is scoped within a forall(t)... sentence.
Thus if the interpretation of
Class: autopod
SubClassOf: part_of some limb
is
forall p :
autopod(p) ->
exists w : limb(w) & part_of(p,w)
according to OWL semantics, we assume this is embedded further such that:
forall t
forall p :
autopod(p,t) ->
exists w : limb(w,t) & part_of(p,w,t)
Where the binary predicate autopod(p,t)
means that p instantiates the class autopod at time t.
This interpretation is only made for a subset of relations such as part_of - these relations are marked in the RO as having a temporal interpretation of "at all times".
The details are more complex for nested expressions, and will be documented separately. This gives a rough flavour of the approach.
In general has part relations will be less common in uberon. This is because a part is typically existentially dependent on a larger structure, but those larger structures can manage without certain parts. Additionally, composition of structures typically varies with increased phylogenetic distance and ontogenetic distance.
This means you will not see the following axiom:
Class: limb
SubClassOf: has_part some autopod
Even though all species that posses a limb (arguably, as a matter of definition) also posses autopods, the axiom does not hold true ontogenetically (for all times).
This is because there exists a time t where every limb does not possess an autopod (i.e. early in development). Obligatory pedantry: This is somewhat a matter of definitional boundaries - one could define a limb to be a structure that comes into being simultaneous with an autopod, but this would be artificial, and in any case this is not what we have done with Uberon, which follows developmental ontologies such as EMAPA and EHDAA2 in making "limb" temporally inclusive.
What is more justifiable in an axiom such as the following:
Class: adult-limb
SubClassOf: has_part some autopod
where adult-limb is a non-temporally rigid class defined as:
Class: adult-limb
EquivalentTo: limb and during some adult-stage
The parthood axiom has the following interpretation:
forall t
forall w :
adultLimb(w,t) ->
exists p : autopod(p,t) & has_part(w,p,t)
We consider this reasonable (of course, there may be developmental anomalies, and amputations, but we consider this out of scope as we are building a reference model. We do not count structures such as python spurs as counter-examples, as these would not fit our definition of limb).
Note that our axioms above could have been written as a single General Class Inclusion axiom (pedant note: not currently expressible in Manchester syntax, but we will do this anyway):
Class: limb and during some adult-stage
SubClassOf: has_part some autopod
It should be noted that the design pattern here is identical to Evolutionary-variability-GCIs. We are simply qualifying our statement over ontogenetic time rather than phylogenetic time.
Note this intepretation works for other kinds of axioms. For example, Part-disjointness-Design-Pattern lays out how we create statements that forbid spatial overlap. Informally, the temporal interpretation of this is simply "at no time, do X and Y have parts in common".
E.g.
(part_of some autopod) DisjointWith (part_of some zeugopod)
Is interpreted as:
forall t
not exists x, y, z :
autopod(x,t) & zeugopod(y,t) & part_of(z,x,t) & part_of(z,y,t)
which is equivalent to:
not exists t, x, y, z :
autopod(x,t) & zeugopod(y,t) & part_of(z,x,t) & part_of(z,y,t)
If a relation is tagged with the at-all-times interpretation then the same interpretation holds as above. Typically all spatial relations, e.g. adjacency have this interpretation. These relations are used to make statements that have an interpretation at a single instant.
Relationships such as develops_from cover more than one instant in time, and are thus not expanded with an additional t argument.
Uberon is a multi-species anatomy ontology and knowledge base, find out more on the home page