-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
provide URIs for synonym types within OMO #122
Comments
closely related: #70 |
I think its fine, we also do this sometimes. I don't really believe that this should be necessary - how many synonym types make only sense in a local context? I would even say such synonyms should not be annotated with the normal synonyms. |
Can someone say which class each "synonym type" should go under as a subclass? |
not a class (a property), but to preserve current parsers etc should go under |
I don’t understand - shouldn’t a synonym type be the object of this property |
Haha sorry forgot how confusing this is. This is a design pattern, and anti-pattern, that snug into our stack 10 years ago. Synonym types and subset declarations, both of which would be best conceptually represented as owl:Individuals, have been decided to be represented as owl:AnnotationProperty. A part of @cmungall now regrets this decision, but that is how it was done. So synonym types are represented as OWL annotation properties - unless we change that entirely in the new OBO 1.6 spec, which could mean quite a bit of churn - but possible. |
alright thanks for the suggestion. See #124 for the first few additions I made and let me know if I'm on the right track |
There are still some synonym types from Chris's list left, but I think the core idea from this issue has been addressed. It might be good to add something like a unstandardized synonym checker to the OQUAT dashboard (tracked in biopragmatics/oquat#10) |
Before commenting, read the details on how many ontologies like GO, Mondo, Uberon, HPO, CL manage synonyms. We are lacking good central OMO docs on this, but for now you can read https://github.com/obophenotype/uberon/wiki/Using-uberon-for-text-mining
Briefly:
oio:has{Exact,Broad,Narrow,Related}Synonym
). These are sometimes called synonym scopes for historic reasons, but formally they can be better thought of as the primary predicate connecting entity and literaloio:hasSynonymType
predicate, which links the synonym assertion to a URI that lumps synonyms into broad categories, e.gEffectively this means that synonym assertions have a biaxial system of classification that is largely orthogonal. The primary predicate (scope) is used by most NLP/TM tools and search portals (see this doc) whereas the synonymType can provide an orthogonal classification that used for other purposes
The synonym types are very important for some ontologies (e.g. layperson synonyms and HPO - see https://www.nature.com/articles/s41588-018-0096-x for background)
The purpose of this issue is not to discuss this overall data model, but purely to discuss the value of the synonymType axiom annotations.
Currently these have horrible hash URIs. This is a legacy of conventional usage of these in OBO format https://owlcollab.github.io/oboformat/doc/obo-syntax.html#5.0.2
Some examples:
Full list is attached
Some of these reflect bad practice - e.g. inappropriate use to designate language synonyms or chemical formulae. But some reflect common use cases, and it would be good to use a common non-hash based URI across multiple ontologies, and OMO seems a good home
there are arguments for making some of these primary predicates, e.g abbreviation. however, this can lead to predicate lattices, e.g.
exactLaypersonSynonym is-a {LaypersonSynonym, ExactSynonym}
.For synonym types that are truly local to an ontology, we should come up with a scheme for providing identifiers for these that do not result in hashes. One possibility is to use the primary ID space from the ontology, but these have historically been used to denote entities with the ontologies' domain rather than metadata elements.
obo-synonym-types.txt
The text was updated successfully, but these errors were encountered: