ontodev / robot

ROBOT is an OBO Tool
http://robot.obolibrary.org
BSD 3-Clause "New" or "Revised" License
259 stars 73 forks source link

Consider adding `--reasoner elk5` #660

Open jamesaoverton opened 4 years ago

jamesaoverton commented 4 years ago

There are some compatibility problems with ELK 0.5 that I don't fully understand. What about packaging both ELK 0.4.x and ELK 0.5.x in ROBOT? We would keep ELK 0.4.x as --reasoner elk and add ELK 0.5.x as --reasoner elk5.

The JARs might just conflict too much, but I think we should try.

matentzn commented 4 years ago

What kind of compatibility issues are you facing? I would love elk5 as a reasoner alongside elk, but I would be a bit surprised if you could make it work. All the man classes like ElkReasonerFactory and so on I believe still have the same path..

cmungall commented 4 years ago

We could of course have two ODK docker containers, one with a branch of robot that is built using Elk5. Of course this is not optimal for many people, but the groups that need to be running tests (uberon, go, ...) are already using odk.

I realize I am the blocker here, I added many high level constraints in various ontologies a while ago, these introduced cryptic incoherencies that are only resolved using Elk5, rolling out Elk5 universally now would cause a lot of problems...

jamesaoverton commented 4 years ago

I'm not sure if it's possible, but I think it's worth spending an hour to try this out.

balhoff commented 4 years ago

I think we probably need to publish a shaded version that renames the ELK packages to keep them separate.

matentzn commented 4 years ago

As a last resort, Chris suggestion is also ok. It would allow us to switch between elk and elk5 without changing our often quite complex makefiles, so it has some benefits as well. I would still like to see James little experiment first. Elk5 Parameter would be nice.

matentzn commented 2 years ago

I am wondering if its time now.. The "cryptic incoherencies" for GO and Uberon have been resolved.. Unfortunately we still do not know if there is soon going to be an ELK 0.6 with even more advanced features.

What are the feeling all around - maybe create for now a branch with ELK 0.5, add it as a robot-dev command to ODK, play with it for 6 months and then discontinuing our support for ELK 0.43 altogether?

matentzn commented 2 years ago

You can check out the branch and run:

mvn clean package
bin/robot reason -I http://purl.obolibrary.org/obo/go/extensions/go-plus.owl --reasoner elk -o test.owl

To see whats up. It looks safe, but will require serious testing obviously.