Protege Best Practices: Export Inferred Axioms
Updated: Oct 15, 2019
One of the most useful options in Protege that I find many new users aren't aware of is the command:
File>Export inferred axioms as ontology
This is useful in many situations. The reasoner can make all sorts of changes to your ontology. It can make individuals instances of different classes, infer new values for individuals, etc. However, these changes are not saved when you save your ontology in the standard way. You need to re-run the reasoner every time you open the ontology.
For many uses this is not an issue but there are often times when you want to save your inferences. For example, there are tools such as WebVOWL that provide enhanced visualization of your ontology. I don't typically use WebVOWL when I design an ontology. However, when I want to display an ontology to a wider group, some of whom may not have a deep understanding of OWL or Protege, WebVOWL presents a very nice graphical way to do this. Usually you don't just want to show the ontology without the inferences, you want to include all the inferred values.
Another example is when uploading files to WebProtege. As of this post date WebProtege does not include reasoners. So if you upload a file into WebProtege for others to view and comment on they will often be missing a great deal of information that would be provided by the reasoner.
Another example is the Individuals Matrix tab. This is a very useful tab for displaying individuals and the values of their object and data properties in a spreadsheet style table. However, this tab only displays values that are declared by the user, not those inferred by the reasoner.
In these cases and others the Export command solves the problem. It saves all the inferences as if they are user axioms so that these various tools will display them.
When using this option you will be presented with a Wizard that walks you through generating the export file (see the picture below for the first screen in this wizard). The wizard will present you with several options, e.g, what type of inferences (subclasses, object properties, etc.) to export. The default is that not all the inferences are checked however I typically check all the boxes. You will receive a warning for the last two check boxes that saving those may take a while but for most ontologies this is not the case. My strategy is to always try to save everything and then on the rare occasion when saving takes a long time, go back and uncheck those last two boxes and perhaps other options.
One other thing to be aware of is that the dialog for saving the inferred axioms file looks like a standard file saving dialog that will include the ".owl" extension to the file. Unfortunately, as of the time of this post (Protege version 5.5.0) this is not the case. The saved file does not have an extension so if you try to open it with Protege or some other tool it will not be recognized as an OWL file. There is a simple work around. Either include ".owl" at the end of the file name when you enter it into the Wizard (normally this would cause the file to be named "File.owl.owl" but in this case it will just have the normal ".owl" extension) or after you save the exported file navigate to the file in your operating system and edit the name and add the ".owl" extension. You will get a warning that this will change the way the file can be processed but of course this is what you want, you want it to be recognized by the OS and applications as an OWL file.