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

Updated explain command #779

Merged
merged 11 commits into from
Jan 20, 2021
Merged

Updated explain command #779

merged 11 commits into from
Jan 20, 2021

Conversation

matentzn
Copy link
Contributor

@matentzn matentzn commented Nov 26, 2020

Various updates

Resolves [#756, #329, #686]

This pull request contains a number of changes to the explain command. The original command behaviour (which I refer to as entailment explanations) are untouched. See updated documentation for details.

Summary of changes:

  1. We can now generate explanations for
    • inconsistent ontologies
    • unsatisfiable classes (all at once, root unsats, random subset)
  2. Markdown exports get a summary which shows the most frequently used axioms across all found ontologies. This will help with debugging by focusing the attention on likely culprits.
  3. Added some unit tests to explain and updated docs.

To achieve the above, there are now two new options:

  • -M\--mode: allows switching between entailment (default), inconsistency and unsatisfiablity.
  • -u\--unsatisfiable: allows various fine grained options for generating explanations for unsatisfiable classes:
    • all (generate explanations for all unsats)
    • root (generate explanations for root unsats)
    • random:n subset (generate explanations for n random unsatisfiable classes.
Example entailment summary (under the normal explanations in the markdown export):

uvular muscle SubClassOf Nothing

epimysium SubClassOf Nothing

skeletal muscle tissue SubClassOf Nothing

dense irregular connective tissue SubClassOf Nothing

skeletal muscle organ SubClassOf Nothing

palatal muscle SubClassOf Nothing

Axiom Impact

Axioms used 5 times

Axioms used 4 times

Axioms used 3 times

Axioms used 1 times

Ontologies used:

Various updates
@matentzn
Copy link
Contributor Author

@dosumis @cmungall FYI

@matentzn
Copy link
Contributor Author

I have just added a way to see which ontologies an axiom comes from in the markdown overview. Note this only works with real imports, not with the source_ontology annotation.

@matentzn
Copy link
Contributor Author

matentzn commented Dec 8, 2020

I walked @cmungall through this PR and he is happy

Copy link
Contributor

@balhoff balhoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great!

I have just added a way to see which ontologies an axiom comes from in the markdown overview.

Does this also work with the previous entailment mode?

@matentzn
Copy link
Contributor Author

matentzn commented Dec 9, 2020

It does! But only in the summary at the bottom. So for a 1 explanation scenario it will be redundant, but yes, you get that information!

Copy link
Contributor

@beckyjackson beckyjackson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall code looks good - see comments.

@matentzn matentzn marked this pull request as draft December 17, 2020 15:48
@matentzn
Copy link
Contributor Author

I converted this to draft to incorporate all of @beckyjackson feedback from the measure command first before giving this up for review.

#778

@matentzn matentzn marked this pull request as ready for review January 2, 2021 21:10
@jamesaoverton
Copy link
Member

I tried updating the japicmp pluging in robot-core/pom.xml to the latest version 0.15.2. Then the integration tests passed under Java 8. Under Java 15 (in Docker) I got one failure involving the order of prefixes in one test file. I don't think that's a problem with the code here. I also made a general issue about updating plugins #798.

@jamesaoverton
Copy link
Member

Sorry for the delay @matentzn.

@beckyjackson Please merge when ready.

@beckyjackson beckyjackson merged commit a803db7 into master Jan 20, 2021
@beckyjackson beckyjackson deleted the updated-cmd-explain branch January 20, 2021 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants