geneontology / noctua

Graph-based modeling environment for biology, including prototype editor and services
http://noctua.geneontology.org/
BSD 3-Clause "New" or "Revised" License
36 stars 13 forks source link

Reasoner broken in noctua? #402

Closed dosumis closed 7 years ago

dosumis commented 7 years ago

I expected to see some inference on this model:

image

Including these inferences on the cell proliferation node:

image

Any clue why this is not working?

kltm commented 7 years ago

The reasoner seems to be working as far as the stack goes. Maybe @cmungall or @balhoff could speak to why you're not seeing what you expect here.

cmungall commented 7 years ago

Unfortunately the configuration is not very introspectable, but I suspect it's because minerva is using --slme-elk. The deeper classes will typically not be in the module.

We experimented with just using elk, no module extraction. I hypothesized this would actually be much faster since most of the slowness was actually in the module extraction step. AFAICR we were still somewhat reluctant to switch the config, but I don't recall why

cmungall commented 7 years ago

Previous discussion here: https://github.com/geneontology/minerva/issues/33

And yes, use of slme-elk is hardcoded in the gulpfile:

https://github.com/geneontology/noctua/blob/master/gulpfile.js#L390-L406

balhoff commented 7 years ago

I checked and slme-elk is in use in the deployed Minerva. However I loaded that file into Protege and after running ELK I don't see the inferred types that @dosumis showed. @dosumis are you using only official release ontologies?

balhoff commented 7 years ago

The model has an instance of CL:0002405 gamma-delta thymocyte which doesn't have any semantics in go-lego.owl. gamma-delta T cell proliferation GO:0046630 refers to gamma-delta T cell CL:0000798 in its logical definition.

cmungall commented 7 years ago

@balhoff if you have the same abox model combined with go-lego, and the proliferation class is not deepened, it could be because

balhoff commented 7 years ago

This works if you additionally import the complete cl.owl, but not with go-lego.owl. @dosumis had you added an import of CL?

dosumis commented 7 years ago

This works if you additionally import the complete cl.owl, but not with go-lego.owl. @dosumis had you added an import of CL?

Yep.

The inference to regulation of proliferation should work without this though. I’ve seen work it in other models.

dosumis commented 7 years ago

Similar inference on reg seems to be working fine here:

http://noctua.berkeleybop.org/editor/graph/gomodel:580685bd00000071

balhoff commented 7 years ago

The specific problem we have is that the axiom gamma-delta thymocyte SubClassOf gamma-delta T cell is not in go-plus (i.e not in cl_import). I guess because gamma-delta T cell is referenced when making the module but all its subclasses are not pulled in. If you can reference any CL or UBERON term within Noctua models, reasoning will always be potentially incomplete if the full versions of these ontologies aren't included.

dosumis commented 7 years ago

If you can reference any CL or UBERON term within Noctua models, reasoning will always be potentially incomplete if the full versions of these ontologies aren't included.

Would it be viable to run a reasoner with complete ontologies (rather than just imports). If not, can we run SLME in the background to generate ontology slices on the fly for use in reasoning. Perhaps this could be run in the background as terms are added?

BTW - doesn't TermGenie cope with this issue, and if so, how?

kltm commented 7 years ago

Any comment on the current status of this ticket? If it is still open/ongoing, please change the title to something more specific.