Description I'm developing an OWL application that uses a reasoner. The classification takes too much time (more than 4 minutes) as I'm treating a relatively large ontology. I don't want to waste this time each time I run the application. The alternate is to save the reasoner inferred model and use the stored inferred one instead of running the reasoner each time.
Let's consider the following ontology:
Example
:A rdf:type owl:Class .
:A1 rdf:type owl:Class ;
rdfs:subClassOf :A .
:A2 rdf:type owl:Class ;
rdfs:subClassOf :A1 .
which asserts that A2 subClassOf A1 subClassOf A.
Problem When I use Protege 5 with some reasoner (e.g Pellet or even Hermit), start the reasoner and save the inferred model with all the available inference options. When I open the inferred model, I see that it doesn't state that A2 is a subclass of A. It only states that it's a subclass of A1. see below what it contains about A2:
A2 rdf:type owl:Class ;
rdfs:subClassOf :A1 .
I want all the implicit knowledge to become explicit. This work by Protege doesn't give me what I want (i.e. don't assert that A2 is also a subclass of A)? What is the problem? Any alternatives?
Remark: Saving the inferred model using some other tool (i.e. Jena or OWLAPI) will solve my problem as well, however, calling their methods to save the inferred model behaves the same way as Protege.