geneontology / minerva

BSD 3-Clause "New" or "Revised" License
6 stars 8 forks source link

Reason tbox with ELK before generating Arachne rules #127

Closed balhoff closed 2 years ago

balhoff commented 7 years ago

This would alleviate issues like this: https://github.com/geneontology/noctua/issues/462

However it would increase resource consumption and slow things down at startup.

kltm commented 7 years ago

Would this be a constant or scaling hit? We're at like 7min now, which I think is fine.

cmungall commented 7 years ago

materialzing direct + indirect?

Generally direct inferences are materialized upstream

balhoff commented 7 years ago

@cmungall it's a small number of direct inferences that have been missed, so the solution might better be to fix this upstream. Somewhere in go-lego, PR:protein is equated with CHEBI:protein, but the consequences of this are not materialized.

cmungall commented 7 years ago

got it.

@kltm - startup: Elk should only add a few seconds on top of that, although things can get unpredictable with lots of OPs.

Well we know we need to change the pipeline here. I hope minerva still isn't starting up from svn... (done originally to use the catalogs). I think we should probably have some upstream process that merges the imports, reasons, and makes a compressed owl file...

balhoff commented 7 years ago

On second thought I don't think this should be in Minerva. I implemented it in a branch, but it requires the InferredSubClassAxiomGenerator, which takes a lot more time than just classifying with ELK. So to fix the Noctua issue we should really have the upstream process that @cmungall suggests.

dosumis commented 7 years ago

Would like a better sense of what is being missed.

If I understand correctly, without Elk pre-reasoning, we may be missing some inferences from property chains + T-box axioms.

e.g. image & image

(These would require materialization - so would be slow. I still think these are v.important inferences, so would be great if we could look into strategies to achieve it. Perhaps a more focussed materialization step?)

I believe we've also seen other cases where materialization would not be required but elk (EL) reasoning still is - i.e. inferences of simple typing to named class dependent on axioms linking classes in the ontology. Will try to dig out.

dosumis commented 7 years ago

BTW - is there an RL only reasoner I could be using with Protege for testing purposes?

balhoff commented 7 years ago

I am part-way there with Arachne (made an OWLReasoner interface but need to implement Protege plugin). Have you tried the Noctua explanations UI?

Certain models will give you a null pointer exception, which I believe I've fixed but is waiting for a Minerva restart.

balhoff commented 7 years ago

@dosumis by the way I think the missing inferences you're talking about would require an ELK reasoning step after property assertions are materialized by Arachne. Also, if you would kind of need to create all possible "involved_in some X" classes to end up with inferences that wouldn't need a concrete individual of whatever process X.

balhoff commented 5 years ago

See https://github.com/geneontology/go-ontology/issues/16874