-
Notifications
You must be signed in to change notification settings - Fork 230
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
Proposed extensions to "display relationships in class hierarchy" view #900
Comments
Yes, makes sense. A common set of annotation properties would be great. I think I would prefer the just the presence of the annotation assertion to indicate inclusion... i.e. the value of the assertion could be anything that's useful for the project in question.
Okay will think about a solution to this based on your comments. Is there a common set of glyphs that could be used? e.g. circle, square, up-arrow, down-arrow etc.? These could be combined with colors and initials etc. It would be possible to have a default yaml config file embedded in Protege for certain property IRIs. Could also be part of ODK ;)
Definitely. On the todo list! |
I would also like to add that currently, if you have this situation
The hierarchy is rendered as:
which is confusing in ontologies that are not built on a string isa backbone (there are many 'strays' under the root). Would it make sense to simply show:
when the feature is active? @cmungall |
meh, those ontologies should declare superclasses however, a general edge-label-independent transitive reduction checkbox would be useful for many ontologies like go, uberon, etc. This would handle your scenario as just one case. |
@cmungall You know what my background is, but to play devils advocate here: why should this be necessary? I mean to have a superclass for everything? What is the argument we give to groups that, say, just build a partonomy? |
|
The original feature request by @cmungall would still be extremely valuable. I don't think glyphs are a big priority, but being able to display relationships in the other / expected direction within the hierarchy would be much needed! |
For my own purposes I took a deep-dive into the Protege codebase and changed the direction of relationships shown in the class tree. I think this direction should be default, since it produces more intuitive results for most ontologies. The fork: https://github.com/matthias-samwald/protege (this is just a quick hack and I cannot claim to have fully wrapped my mind around OWL API, so no guarantees). Regarding glyphs and customizability, I think this would be best handled by a specific annotation property that can be used to annotate object properties. Instead of using custom gifs, I think using Unicode glyphs/strings specified in such an annotation property would be a very powerful and simple solution. BTW I think it would also make sense to be able to display class relations that are made through annotation properties in the tree view, not only relations based on existential restrictions on object properties. |
@matthewhorridge Would there be a better / more performant way to use OWL API? If SubClassOf(A ObjectSomeValuesFrom(p B))... Your original code retrieves all A for given class B
My seemingly functional but probably not optimal code replacement, retrieving all B for a given class A:
|
The new "Display relationships in class hierarchy" option is great!
This is generally fantastic, but sometimes this can be confusing when used with all OPs, e.g. it's a bit unintuitive to see this for "X has-part some Y" axioms are many are trained to read the hierarchy as going from "bigger/broader" to "smaller/narrower". Also I suspect that for some classes we end up with explosions of paths to roots which may slow things down for some people, but have not fully investigated
Can we have the ability to have this work for a select set of object properties? We could also have this be driven by annotations on the OP. That way OLS could use it too (it's currently hardcoded just to include part-of). cc @simonjupp.
It would be useful to have a visual indicator of the relationship type.
E.g. see http://amigo.geneontology.org/amigo/term/GO:0097194
We have GIFs for each of the relation glyphs that we show (cc @kltm) e.g.
http://amigo.geneontology.org/static/images/negatively_regulates.gif
These could also be shared in OLS etc.
I can see how that would be harder to implement, so one possibility is to just include as text, e.g.
Another thing I am not sure how to approach is inclusion of these in the inferred view. Currently the "display relationships" only works for the asserted view, which makes a certain amount of sense. This view is derived from the reasoner API which just gives you the direct named superclasses. But I like to tell people to live in the inferred view, so they don't get confused when hierarchies look flatter than they expect. So it would be great if relationships could be shown here in a way that preserves overall coherency. Thoughts @dosumis @balhoff?
The text was updated successfully, but these errors were encountered: