-
Notifications
You must be signed in to change notification settings - Fork 47
InteractionRelations
We frequently want interaction relations to 'shadow' biological process relations. This document describes our current implementation for this.
The implementation is not perfect, comments welcome
NOTE: THIS DOCUMENTATION NEEDS TO BE UPDATED WHEN ONTOBEE IS BACK UP
Whether dealing with biotic relations, or protein-protein interactions, we frequently have to deal with the fact that OWL forces us to choose whether model something with an instance of an object property.
For example, if protein A interacts with B, this can be represented as a triple / object property assertion
a interactsWith b
(where a and b are instances)
Or
ixn rdf:type Interaction
ixn has-participant a
ixn has-participant b
(note: not quite as simple on the class level, the first pattern may need to assert a reciprocal)
Both have uses. In RO we take the process representation as being primary and shadow these as relations.
Unfortunately, OWL is not expressive enough to properly interconvert between these forms. There is a way to partially express, this but unfortunately it is rather abstruse...
To relationalize a process class P:
- Create a process (I think this should be property, not process) "isP"
- Manually place isP in the http://purl.obolibrary.org/obo/RO_0002464 'helper' hierarchy. Place as deep as possible
- Create an object property "P to" (e.g. interacts in protein-protein interaction with)
- Manually place P-to in the object property hierarchy
- Create a property chain axiom (see below)
- Declare characteristics (symmetric, transitive) as appropriate
- Create the inverse property, and declare the inverse. You do not need to create a property chain
Property chain:
'subject participant in' o isP o inverse('target participant in') SubPropertyOf P-to
Comment from Ramona: I don't know if this works if the subject and target are the same type of entities. In PCO, we need to define classes that have at least two enities of the same type that participate in the same interaction process. The instance model works well for PCO, but it would be nice to have a way to specify classes.
TODO - fill in when OntoBee online
See also GloBI:
- (1) Poelen, J. H., Simons, J. D., & Mungall, C. J. (2014). Global Biotic Interactions: An open infrastructure to share and analyze species-interaction datasets. Ecological Informatics, 24, 148–159. doi:10.1016/j.ecoinf.2014.08.005
- complex
- abstruse
- outside EL subset of OWL (doesn't work with Elk)
We need a high-level way to define these, and derive OWL patterns from this (e.g. Tawny-OWL)
Explore use of rule languages
We make a subset of RO with every release that is just interaction relations. Subsets of this (e.g. for biotic interactions) can be made on request.
To what extent should a relation hierarchy mirror a process hierarchy? A purist approach would be to always use processes, but it is useful in many applications to have the relational form.
It would be overkill to mirror everything. Currently in molecular interactions RO has 'core' activities such as phosphorylation/kinase, uniquitination. E.g. a relation for each molecule or group that could be added or removed. This is open to discussion.