Closed balhoff closed 2 years ago
Would this be a constant or scaling hit? We're at like 7min now, which I think is fine.
materialzing direct + indirect?
Generally direct inferences are materialized upstream
@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.
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...
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.
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. &
(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.
BTW - is there an RL only reasoner I could be using with Protege for testing purposes?
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.
@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.
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.