I am using Openllet to compute the class hierarchy of an ontology. I discovered a case, where Openllet throws an exception when doing the precomputation of the class hierarchy.
OWLOntologyDocumentSource source = new FileDocumentSource(ontFile, new FunctionalSyntaxDocumentFormat());
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OwlOntology ont = manager.loadOntologyFromOntologyDocument(source);
OpenlletReasonerFactory rf = new OpenlletReasonerFactory();
OWLReasoner openllet = rf.createReasoner(ont);
/// precomputation for class hierarchy
if (openllet.isConsistent()) {
openllet.precomputeInferences(InferenceType.CLASS_HIERARCHY);
}
Exception in thread "main" openllet.core.exceptions.InternalReasonerException: Caching inconsistent results for FunAnd([FunNot(http://www.absoluteiri.edu/RELAPPROXC1252),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/CARO_0000000)),FunNot(http://purl.obolibrary.org/obo/CARO_0000000),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000298)),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://www.absoluteiri.edu/RELAPPROXC1252)),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000281)),FunNot(http://purl.obolibrary.org/obo/PORO_0000203),FunNot(http://purl.obolibrary.org/obo/PORO_0000281),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000601)),FunNot(http://purl.obolibrary.org/obo/PORO_0000298),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://www.absoluteiri.edu/RELAPPROXC1255)),FunNot(http://purl.obolibrary.org/obo/PORO_0000001),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000203)),FunNot(http://purl.obolibrary.org/obo/PORO_0000150),FunNot(http://www.absoluteiri.edu/RELAPPROXC1255),FunAll(http://purl.obolibrary.org/obo/RO_0002202,FunNot(http://purl.obolibrary.org/obo/PORO_0000475)),http://purl.obolibrary.org/obo/PORO_0000002,FunNot(http://purl.obolibrary.org/obo/PORO_0000601),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000001)),FunNot(http://purl.obolibrary.org/obo/PORO_0000019),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000150)),FunAll(http://purl.obolibrary.org/obo/BFO_0000050,FunNot(http://purl.obolibrary.org/obo/PORO_0000019)),FunAll(http://purl.obolibrary.org/obo/RO_0002202,FunNot(http://purl.obolibrary.org/obo/PORO_0000017))])
at openllet.core.tableau.cache.AbstractConceptCache.putSat(AbstractConceptCache.java:81)
at openllet.core.tableau.completion.EmptySRIQStrategy.addCacheSat(EmptySRIQStrategy.java:211)
at openllet.core.tableau.completion.EmptySRIQStrategy.complete(EmptySRIQStrategy.java:189)
at openllet.core.boxes.abox.ABoxImpl.lambda$isConsistent$12(ABoxImpl.java:1417)
at openllet.core.utils.Timers.execute(Timers.java:118)
at openllet.core.boxes.abox.ABoxImpl.isConsistent(ABoxImpl.java:1417)
at openllet.core.boxes.abox.ABoxImpl.isSatisfiable(ABoxImpl.java:621)
at openllet.core.taxonomy.CDOptimizedTaxonomyBuilder.checkSatisfiability(CDOptimizedTaxonomyBuilder.java:757)
at openllet.core.taxonomy.CDOptimizedTaxonomyBuilder.classify(CDOptimizedTaxonomyBuilder.java:804)
at openllet.core.taxonomy.CDOptimizedTaxonomyBuilder.classify(CDOptimizedTaxonomyBuilder.java:266)
at openllet.core.taxonomy.CDOptimizedTaxonomyBuilder.classify(CDOptimizedTaxonomyBuilder.java:212)
at openllet.core.KnowledgeBaseImpl.classify(KnowledgeBaseImpl.java:1919)
at openllet.core.KnowledgeBaseImplFullSync.classify(KnowledgeBaseImplFullSync.java:385)
at openllet.owlapi.PelletReasoner.precomputeInferences(PelletReasoner.java:1289)
I am using Openllet to compute the class hierarchy of an ontology. I discovered a case, where Openllet throws an exception when doing the precomputation of the class hierarchy.