Skip to content

Interfaces

maphih edited this page Sep 5, 2025 · 1 revision

Several interfaces are important for providing non-entailment explanation services. All of the following interfaces can be found in the module evee-protege-core:

  1. The most important interface is INonEntailmentExplanationService, which is the core connection point between the Protégé interfaces and classes on the one side and the Evee interfaces and classes on the other side.
  2. The interfaces IExplanationLoadingScreenEventGenerator and IExplanationLoadingScreenEventListener are used to enable communication between the loading screen displayed during computation of an explanation and the main view component displayed to the user.
  3. The interfaces ISignatureModeificationEventGenerator and ISignatureModificationEventListener are used to allow a specific explanation service to modify the signature selected in the main UI displayed in the Protégé view Missing Entailment Explanation.
  4. The interfaces IPreferencesChangeEventGenerator and IPreferencesChangeListener are used to enable the NonEntailmentGeneralPreferencesManager to send a GeneralPreferencesChangeEvent to its listeners. These events are used to change the layout displayed in the view Missing Entailment Explanation and to enable/disable a simplified view.

The INonEntailmentExplanationService extends the following interfaces:

  1. The Protégé interface ProtegePluginInstance which all Protégé plugins need to extend.
  2. The Evee interface IExplanationGenerator<T> (foudn in the module evee-data), which is an Evee interface that all non-entailment explanation services need to implement. This interface specifies a method to return some result of type T and another method that returns some error message. Note that the generic return type allows using this interface in various places. This interface is for example also used by the class EveeProofGenerationThread where the return type is an object implementing the interface IProof.
  3. The Evee interface ISignatureModificationEventGenerator (found in the module evee-protege-core), which is responsible for allowing information about signature changes to be propagated to the relevant classes.
  4. The Evee interface IOWLNonEntailmentExplainer (found in the module evee-data) which extends the interface INonEntailmentExplainer (also found in the module evee-data) and replaces the generic types of this interface with the relevant classes of the OWL API. The interface INonEntailmentExplainer specifies the core functionalities neccessary to generate explanations for non-entailments.

Note that in the non-entailment explanation plugins, the implementatin of the method supportsExplanation of the interface INonEntailmentExplainer should be very fast, as this method is called whenever the explanation service is changed, whenever the missing entailment is edited and whenever the vocabulary is changed.

Clone this wiki locally