Sorting and disabling functionality for ExplanationServices #1059
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request modifies the general Explanation preferences. Users can choose between (a) always using the most recently used explanation service when requesting a new explanation (current behavior and default) and (b) using the explanation services according to a user-defined order. Additionally, individual explanations services can be disabled in the preferences. The reason is that a user may always want to compute justifications first (because it may be faster), and only request more expensive explanations when the justifications aren't enough.
This came out of a discussion on liveontologies/protege-proof-explanation#2, where this functionality would be useful for sorting and filtering many different proof services (e.g., supplied by https://github.com/liveontologies/elk-reasoner or https://github.com/de-tu-dresden-inf-lat/evee). It makes sense if this functionality is not only implemented at the level of proof services, but also in general for all explanation services. The proof service preferences can then also use the configuration options (a/b) described above.
For now, I tested this with the two explanation services https://github.com/protegeproject/explanation-workbench and https://github.com/liveontologies/protege-proof-explanation, but a similar implementation was tested for 10+ proof services.