Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
There is an inconsistency between OWL_MICRO and OWL_MINI/OWL_RULES in handling of subClassOf hierarchies without class declarations.
Model model = ModelFactory.createDefaultModel();
String NS = "http://www.openjena.org/tests#";
Resource Person = model.createResource(NS + "Person");
Resource Mammal = model.createResource(NS + "Mammal");
Resource Animal = model.createResource(NS + "Animal");
model.add( Person, RDFS.subClassOf, Mammal);
model.add( Mammal, RDFS.subClassOf, Animal);
// Without these the class hiearchy closure is incorrect in Mini/Full
model.add( Person, RDF.type, OWL.Class);
model.add( Mammal, RDF.type, OWL.Class);
model.add( Animal, RDF.type, OWL.Class);
/create an OWL inference model based on previously created model./
InfModel inf = ModelFactory.createInfModel(ReasonerRegistry.getOWLMiniReasoner(), model);
printStatements(inf, Person, RDFS.subClassOf, null);
The problem is that that indirect deduction of rdfs8 via prototypical reasoning relies on owl:Class whereas type inference will only deduce rdfs:Class