Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional OWL reasoner tests are failing #2059

Open
cmungall opened this issue Apr 8, 2024 · 1 comment
Open

Optional OWL reasoner tests are failing #2059

cmungall opened this issue Apr 8, 2024 · 1 comment
Assignees
Labels

Comments

@cmungall
Copy link
Member

cmungall commented Apr 8, 2024

The compliance framework tests each framework (jsonschema, pydantic, owl) ability to correctly validate different test cases. Some of these require extracts (pyshacl) and that's fine.

The way the owl tests work is a bit wonky. First it will check if robot is on the path. If yes, it will proceed to run the tests using hermit as a reasoner, invoking robot on the command line. Otherwise, it will continue. In practice neither the actions environment nor most devs have robot on their path so this test is omitted.

Unsurprisingly, some recent refactors have broken this test. It looks like some efficiency gains in not writing files scupper us when we run

coherent = robot_check_coherency(ttl_path, output_path, str(ttl_path) + ".reasoned.owl")

Where output_path is expected to be the generated .owl.ttl file.

This should be switched such that using robot/hermit is a true extra, switched on in the test environment, and properly incorporated into the validator framework. Ideally would use https://robot.obolibrary.org/python rather than hokey command line tomfoolery.

But first step is to fix the tests...

@cmungall
Copy link
Member Author

cmungall commented Apr 8, 2024

Actually the short term problem is immediately fixed by running the tests --with-output. But this defeats the purpose of the original optimization. We really only need to materialize outputs for the owl tests (and only do this if we have robot available).

However, there is probably a better way of doing all this. We should skip the robot merge step altogether and do this in-memory using rdflib, that way we bypass the need for an intermediate .owl pure tbox file

@cmungall cmungall self-assigned this Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants