EBISPOT / OLS

Ontology Lookup Service from SPOT at EBI
http://www.ebi.ac.uk/ols
Apache License 2.0
96 stars 40 forks source link

GO displays a huge list of direct children of root terms in spite of more specific classification #450

Closed balhoff closed 3 years ago

balhoff commented 3 years ago

At https://www.ebi.ac.uk/ols/ontologies/go 'biological_process' shows more than 8000 direct children. However in the pre-classified version of the ontology at http://purl.obolibrary.org/obo/go.owl, 'biological_process' has ~30 direct children.

It seems like OLS is injecting SubClassOf relations for operands in equivalent class expressions.

For example, negative regulation of B cell proliferation has a logical definition:

'negative regulation of B cell proliferation' EquivalentTo biological_process and ('negatively regulates' some 'B cell proliferation')

The published ontology asserts only these SubClassOf relations:

The OLS web UI adds a direct relation to 'biological_process'. Can this be disabled?

Thank you!

cmungall commented 3 years ago

IMO:

I don't think OLS should inject any axioms that are not present in the released ontology.

When building the tree display and the graph display, OLS should only use the asserted axioms of the form:

  1. A SubClassOf B
  2. A SubClassOf R some B

i.e. the relational graph or existential graph (see this blog for motivation)

where A and B are named classes, and where R is in the set of hierarchy-driving object properties (which I think is currently hardcoded to BFO_0000050, but should be user-defined?)

I think this should be universal rather than per ontology. Ontologies can have complete control over 1 and 2.

cmungall commented 3 years ago

this is a big issue for other ontologies too, e.g. Mondo. Compare the view in OLS which has lots of random things floating to the root with the correct view in ontobee

I can't emphasize enough: as an ontology producer it is incredibly important for me to control how the ontology looks, and for browsers not to inject axioms into the ontology where I don't intend them

henrietteharmse commented 3 years ago

If I look at "biological process" of GO in OLS I 30 direct children rather 8000: image

which seems to match what is shown in Protege. image

What am I missing here?

matentzn commented 3 years ago

Protege is also using the structural reasoner - so it's again wrong. The only correct way is using the existential graph - if there is an A subclass B, add a link A--isa-->B, if there is an A subclass R some B, add an A--R-->B. The structural reasoner does more things, and wrong things. All of this will be solved by your latest push to rapid indexing!

matentzn commented 3 years ago

@henrietteharmse seems GO has changed its definitions; look instead at the "biological regulation" branch, which has thousands of children in Protege and OLS, while it only has three in actuality:

image

image

balhoff commented 3 years ago

seems GO has changed its definitions; look instead at the "biological regulation" branch, which has thousands of children in Protege and OLS, while it only has three in actuality

@matentzn this is right, we changed the genus of all these expressions. The problem still exists there.

henrietteharmse commented 3 years ago

@balhoff @cmungall Both Mondo and Go has been updated.

balhoff commented 3 years ago

Thanks @henrietteharmse, looks good!