robot
robot copied to clipboard
Updating ELK 0.43 to 0.5
Resolves #380 #660
- [ ]
docs/have been added/updated - [ ] tests have been added/updated
- [ ]
mvn verifysays all tests pass - [ ]
mvn sitesays all JavaDocs correct - [ ]
CHANGELOG.mdhas been updated
I am wondering how I can make sure ROBOT is using elk 0.5 in my local environment. Running mvn clean package works fine, I ran tests with GO plus and uberon..
See also https://github.com/liveontologies/elk-reasoner/issues/48
We can wait for 0.6 official release.
@jamesaoverton and I discussed this and we will move this to a future version of ROBOT, maybe ROBOT 2.0 :P
@matentzn @jamesaoverton I think it's a high priority for us to get ELK 0.5 into ROBOT. I started to look at publishing a version in one of our own orgs, so we wouldn't need to use the snapshot repo (which I think would prevent ROBOT from being published to Maven central). But I found this one already on Maven central: https://search.maven.org/artifact/au.csiro/elk-owlapi4/0.5.0/jar
Can we just use that for the time being?
I would suggest we do this asap:
- Start version Dev ODK
- Create an experimental ROBOT Elk 0.5 version of ROBOT and load it into ODK-dev
- We migrate all our universe to that ELK (esp. Github actions)
- Maybe even make a proper parallel robot release for people to test
- Use this for a while. Once all issues in the main OBO ontologies are identified and ironed out, we can schedule a proper ROBOT release.
Unless someone figures out how to have elk 0.4 and 0.5 co-exist, I am a bit worried who will deal with the 1 billion support issues coming from unsats revealed by 0.5.
I never tried to use two versions of the same dependency in a Java project before. Some quick research makes it look like black magic to me, but if someone else has experience then let us know.
I'm OK with creating a ROBOT branch and beta release robot-1.9.1-elk-0.5.0.jar (or something) using ELK 0.5. (Most of my projects use HermiT, so I haven't personally seen the problems with this ELK update.)
Maybe I am overthinking this. @jamesaoverton and I have decided to make a quick experiment with OBO Dashboard and see what will happen if we simply swap in ELK 0.5. Basically, we will compare unsats with ELK 0.4.3 and make a decision based on that.
Sorry I forgot it again @jamesaoverton. Was it somehow possible to run an action and obtain a ROBOT jar from a branch using a URL (this makes it easy to inject a DEV version of ROBOT into ODK)?
Ok, assigned this to @anitacaron, but it will have to wait until mid February until after the OntoSummit Dashboard session is finished: https://github.com/OBOFoundry/OBO-Dashboard/issues/82
Was it somehow possible to run an action and obtain a ROBOT jar from a branch using a URL (this makes it easy to inject a DEV version of ROBOT into ODK)?
Kinda. Our GitHub Actions do create a JAR file that you can download with a browser, BUT the link uses some JavaScript so you don't get a URL that you can just curl, and they expire after 90 days (or something). So this GitHub Actions logs and artifacts for this PR have expired.
I'll try to make a pre-release here in the repo.
Here is a pre-release with an attached JAR: https://github.com/ontodev/robot/releases/tag/v1.9.1-elk-0.5.0
I didn't know how to test that it actually includes ELK 0.5.0, so please confirm that before running hours of tests.
@jamesaoverton, checking in on this PR. Editors are switching over to Protégé 5.6.1 which has ELK 0.5.0. Based on the thread above, it is not clear what the next step is to update ROBOT to 0.5.0 and who needs to do it. Is there something specific someone needs to do to move this forward so Protégé and ROBOT can be aligned? Thanks for your attention.
@bvarner-ebi thanks for pushing, this is on me. I will soon create a ODK dev release with ELK 0.5 for testing
ELK 0.5 did not recognise this ontology (in a test) as incoherent, because it reverted to a wrong branch in the unsatisfiability testing framework in ROBOT due to an incomplete implementation (https://github.com/liveontologies/elk-reasoner/issues/66).
Prefix: : <http://x.org/>
Ontology: <http://purl.obolibrary.org/obo/test>
Class: C
Class: O
DisjointWith: C
ObjectProperty: P
Domain: C
ObjectProperty: Q
Domain: O
SubPropertyOf: P
Seems that ELK 0.43 was able to for some reason. Replicated this in Protege as well.
EDIT: this is now dealt with: https://github.com/liveontologies/elk-reasoner/issues/66
Given my new awesome diff system, I determined these cases with difference in unsats:
Differences in the number of unsatisfiable classes comparing Elk 0.4.3 and Elk 0.5
| ontology | 0.4.3 | 0.5 |
|---|---|---|
| ontoneo | 21 | 23 |
| aism | 0 | 1238 |
| upheno | 60521 | 83201 |
| psdo | 21 | 46 |
| rbo | 0 | 1 |
| nomen | 0 | 1 |
| kisao | 21 | 28 |
| ecocore | 0 | 9 |
cc @FernandaFarinelli @JCGiron @zachll @DanBerrios @mjy @jonrkarr @pbuttigieg
I hereby officially make my recommendation that this should be merged - its thoroughly tested, and ready for action. The differences in unsats are only revealing problems that are already there.
I don't have a good way to test this, so I'm taking @matentzn at his word.