... | ... | @@ -16,7 +16,11 @@ These steps are necessary in order to run the plug-in: |
|
|
* Install the Ontology Debugger Plugin with Protégé's Update Function```File->Check for Plugins...``` and select *Ontology Debugger* ![installation_plugin](/uploads/19bb8181c61d7982936f275fe877d2b4/installation_plugin.png)
|
|
|
* **As an alternative** you can also download the [latest jar-file](http://isbi.aau.at/ontodebug/plugin) of the *Ontology Debugger* and copy the jar-File into the ```plugins``` subfolder of your Protégé 5 desktop client.
|
|
|
* If your Protégé client is already running, you will have to restart the client to load the plugin.
|
|
|
* After your Protégé client has restarted you will see the additional menu entry ```Tools->Debug Ontology ...``` ![debug_ontology_menuentry](/uploads/4d52afa2f4c3591f9e408cb193f85de5/debug_ontology_menuentry.png)*These three menu items in the Tools menu show that the Ontology Debugger is installed correctly*
|
|
|
* After your Protégé client has restarted you will see the additional menu entry ```Tools->Debug Ontology ...```
|
|
|
|
|
|
![debug_ontology_menuentry](/uploads/4d52afa2f4c3591f9e408cb193f85de5/debug_ontology_menuentry.png)
|
|
|
|
|
|
*These three menu items in the Tools menu show that the Ontology Debugger is installed correctly*
|
|
|
|
|
|
# About the Ontology Debugger Plug-In for Protégé
|
|
|
The Ontology Debugger's main task is to ***support the user*** in the process of ***finding the faulty axioms*** in [inconsistent and/or incoherent ontologies](http://ontogenesis.knowledgeblog.org/1329).
|
... | ... | @@ -43,13 +47,19 @@ in the ***consistent but incoherent*** [*Koala ontology*](http://protege.stanfo |
|
|
|
|
|
Select ```File->Open from URL... ``` and enter the URL http://protege.stanford.edu/ontologies/koala.owl or select the appropriate URL from the Bookmarks.
|
|
|
|
|
|
![koala](/uploads/3de58c1126cd7b4b641a131c28195ca7/koala.PNG)*For our tutorial please select the incoherent Koala ontology from the Bookmarks*
|
|
|
![koala](/uploads/3de58c1126cd7b4b641a131c28195ca7/koala.PNG)
|
|
|
|
|
|
*For our tutorial please select the incoherent Koala ontology from the Bookmarks*
|
|
|
|
|
|
### Step 2: Select a reasoner
|
|
|
The process of formulating queries and finding the faulty axioms the Ontology Debugger requires the usage of a reasoner.
|
|
|
You have to select a reasoner such as HermiT, Pellet, FaCT++ or ELK to be able to start a debugging session.
|
|
|
|
|
|
For our tutorial let us choose the already installed *Hermit Reasoner* in the ```Reasoner``` menu. ![reasoner](/uploads/654ee6fdd1959cc9f947945776142d1b/reasoner.PNG)*The Ontology Debugger requires a reasoner. For our tutorial we choose HermiT.*
|
|
|
For our tutorial let us choose the already installed *Hermit Reasoner* in the ```Reasoner``` menu.
|
|
|
|
|
|
![reasoner](/uploads/654ee6fdd1959cc9f947945776142d1b/reasoner.PNG)
|
|
|
|
|
|
*The Ontology Debugger requires a reasoner. For our tutorial we choose HermiT.*
|
|
|
|
|
|
Please note that reasoners use different techniques to reason over ontologies. Therefore one reasoner may perform better than others on a specific ontology and worse on another ontology. Sometimes it might be helpful to select a different reasoner if the debugging is too time consuming [1].
|
|
|
|
... | ... | @@ -57,7 +67,9 @@ Please note that reasoners use different techniques to reason over ontologies. T |
|
|
|
|
|
Once you have loaded the *Koala ontology*, you can open the *Ontology Debugger Tab* by selecting ```Tools->Debug Ontology...``` in the menu. You can also open the tab by selecting ```Window->Tabs->Debugger```. The initial layout of the *Ontology Debugger* should look similar to this screenshot:
|
|
|
|
|
|
![step3](/uploads/1b7a63618ffc50cd0cd5dc333b50e3ce/step3.png)*The Ontology Debugger Tab after the Koala ontology has been opened*
|
|
|
![step3](/uploads/1b7a63618ffc50cd0cd5dc333b50e3ce/step3.png)
|
|
|
|
|
|
*The Ontology Debugger Tab after the Koala ontology has been opened*
|
|
|
|
|
|
**Note:** if you do not see this layout or if you see errors then the layout has changed with a new version of the debugger. Please select ```Window->Reset selected tab to default state``` in such a case to display the current layout.
|
|
|
|
... | ... | @@ -86,7 +98,9 @@ In the mid section the so called **acquired** and **original test cases** of the |
|
|
|
|
|
In the image below we see an example with three Entailed Testcases and one Non Entailed Testcase which have been acquired during the interaction with the user.
|
|
|
|
|
|
![acquired_testcases](/uploads/cd4ad4276d8c4d7f03eca85d6230bcbd/acquired_testcases.PNG)*The Acquired Test Cases show us the answers - the yellow background color highlights an inferred axiom*
|
|
|
![acquired_testcases](/uploads/cd4ad4276d8c4d7f03eca85d6230bcbd/acquired_testcases.PNG)
|
|
|
|
|
|
*The Acquired Test Cases show us the answers - the yellow background color highlights an inferred axiom*
|
|
|
|
|
|
##### Original Test Cases
|
|
|
Below the set of Acquired Test Cases the **Original Test Cases** are shown that are defined beforehand.
|
... | ... | @@ -110,18 +124,26 @@ Let's press the button Start to start a new debugging session! |
|
|
The ontology debugger first checks if the ontology is consistent and coherent.
|
|
|
|
|
|
If you debug a consistent and coherent ontology, the debugger recognizes the correctness of the ontology and informs the user about the correctness of her ontology. The camera ontology (http://protege.stanford.edu/ontologies/camera.owl) for example would be such a consistent and coherent ontology - our Ontology Debugger would recognize it, notify the user and no further debugging would be necessary.
|
|
|
![coherent_ontology](/uploads/2068ac4641163ca52b146085b79bc43e/coherent_ontology.PNG) *A information pops up if the ontology meets the requirements (coherency and/or consistency)*
|
|
|
|
|
|
![coherent_ontology](/uploads/2068ac4641163ca52b146085b79bc43e/coherent_ontology.PNG)
|
|
|
|
|
|
*A information pops up if the ontology meets the requirements (coherency and/or consistency)*
|
|
|
|
|
|
Since our Koala ontology is incoherent it will present us the following two statements as part of the first query:
|
|
|
|
|
|
In the Queries view you now will see these two axioms:
|
|
|
![first_two_axioms](/uploads/1e8f5381ed0541131964117598fc6fa9/first_two_axioms.PNG)*Note: if you got other axioms, then you probably have selected different preference values and/or have selected a different reasoner - use the default prefence values (see below) and HermiT for this tutorial*
|
|
|
|
|
|
![first_two_axioms](/uploads/1e8f5381ed0541131964117598fc6fa9/first_two_axioms.PNG)
|
|
|
|
|
|
*Note: if you got other axioms, then you probably have selected different preference values and/or have selected a different reasoner - use the default prefence values (see below) and HermiT for this tutorial*
|
|
|
|
|
|
#### The Possible Ontology Repairs View
|
|
|
|
|
|
Let us ignore these two axioms at first and let us concentrate on the lower part presenting the different **Possible Ontology Repairs**.
|
|
|
|
|
|
![possible_ontology_repairs](/uploads/ad82aabc72e11f3c36cdf56d33749e25/possible_ontology_repairs.PNG)*Repairs are possible erroneous axioms - we are finished when we get one such repair*
|
|
|
![possible_ontology_repairs](/uploads/ad82aabc72e11f3c36cdf56d33749e25/possible_ontology_repairs.PNG)
|
|
|
|
|
|
*Repairs are possible erroneous axioms - we are finished when we get one such repair*
|
|
|
|
|
|
These Possible Ontology Repairs represent sets of possibly faulty axioms and are calculated once the session has been started and are recalculated each time after the user submits a query answer.
|
|
|
|
... | ... | @@ -165,7 +187,9 @@ If she is not sure about the correct answer she can leave the question unanswere |
|
|
|
|
|
In our example we assume that both axioms are correct since only persons can have a degree, i.e. the domain of ```hasDegree``` is ```Person```, and we assume that only persons can be hard-working, i.e. the domain of ```isHardWorking``` is ```Person``` as well. Please note that as soon as the user answers/classifies one axiom the submit button becomes active - since, as previously stated, the user is not forced to answer all queries.
|
|
|
|
|
|
![step1](/uploads/b16660d4ac3eaa898adce04a71b752a6/step1.png)*Answer both statements with YES and press the SUBMIT button*
|
|
|
![step1](/uploads/b16660d4ac3eaa898adce04a71b752a6/step1.png)
|
|
|
|
|
|
*Answer both statements with YES and press the SUBMIT button*
|
|
|
|
|
|
Acknowledging this decision by pressing __Submit__ causes the Ontology Debugger to take the users answers into account for the calculation of a new set of repairs and a new query.
|
|
|
|
... | ... | @@ -175,7 +199,9 @@ After the calculation has finished, the user is presented a new query and a new |
|
|
|
|
|
The given answers are listed as __Entailed Testcases__ in the __Acquired Test Cases View__ in the mid section, since the user answered with *YES*. Negatively answered statements are listed as __Non Entailed Testcases__.
|
|
|
|
|
|
![step2](/uploads/b7aca8279cd4c9869d96384382aa39a7/step2.png)*A new query with a set of statements (including an inferred one) is presented to the user*
|
|
|
![step2](/uploads/b7aca8279cd4c9869d96384382aa39a7/step2.png)
|
|
|
|
|
|
*A new query with a set of statements (including an inferred one) is presented to the user*
|
|
|
|
|
|
### Step 7: Answer all queries until the Debugger gives us a solution
|
|
|
|
... | ... | @@ -183,7 +209,9 @@ Since the Ontology Debugger has not found a unique solution yet (i.e. there are |
|
|
|
|
|
**Note** that (1) performing adequate modifications to all the axioms in the obtained set of faulty axioms from the Possible Ontology Repair or (2) deleting all these axioms from the ontology is the only possible way of repairing the inconsistency / incoherency of the Input Ontology in the light of the query answers given during the debugging session. In other words, among all possible repairs of the Input Ontology, the one obtained at the end of the debugging session is the only one reflecting your desired domain model, i.e. in this case the domain model of Marsupials you believe is the correct one.
|
|
|
|
|
|
![finalstep](/uploads/3264b384e6aaef83d50c77d11d6da902/finalstep.png)*At the end of a debugging session the user gets notified that a Repair has been found*
|
|
|
![finalstep](/uploads/3264b384e6aaef83d50c77d11d6da902/finalstep.png)
|
|
|
|
|
|
*At the end of a debugging session the user gets notified that a Repair has been found*
|
|
|
|
|
|
As it can be seen in the image above, our debugging session ended up with a Possible Ontology Repair consisting of 3 faulty axioms:
|
|
|
- [x] ```KoalaWithPhD EquivalentTo Koala and (hasDegree value PhD)```
|
... | ... | @@ -198,6 +226,7 @@ Note that the axioms ```Quokka SubClassOf Person```as well as ```Koala DisjointW |
|
|
|
|
|
### Step 8: Searching the knowledge base
|
|
|
We can verify that the axiom ```Quokka SubClassOf Person```is indeed an inferred axiom by searching the knowledge base (possibly faulty axioms) for axioms containing the search expression ```Quokka``` using the search bar in the input ontology view.
|
|
|
|
|
|
![search](/uploads/c9ff4e4a0c61c1ddca456abc399a8c23/search.png)
|
|
|
|
|
|
The search can be either *case sensitive*, or restricted to have *whole words* or *ignoring white spaces* or a combination of these.
|
... | ... | |