While debugging an inconsistency I stumbled upon an unrelated InternalReasonerException in an ontology which was generated by SearchMinimalBug.
Although that Exception doesn't occur in my real application / ontology I thought it might be worth sharing with you, as it looks like an internal bug that you might want to take a look at. Feel free to just ignore / close this issue report, as it is an arbitrary ontology. I'm using version 2.6.5-SNAPSHOT / 9c5928a4b49c83e69889ab2894036494e5c95a0d.
In the ontology is a class Owner. Its subclass SingleRedCarOwner should be someone who has one car, and the color of the car must be red: hasCar exactly 1 (Car and (hasColour value Red)).
When I call kb.realize(); on that ontology an InternalReasonerException is thrown:
openllet.core.exceptions.InternalReasonerException: Nominal FunValue(http://de.athalis.owl.App.main()#Red) is not found in the KB!
at openllet.core.tableau.completion.rule.SomeValuesRule.applySomeValuesRule(SomeValuesRule.java:210)
at openllet.core.tableau.completion.rule.SomeValuesRule.apply(SomeValuesRule.java:60)
at openllet.core.tableau.completion.EmptySRIQStrategy.expand(EmptySRIQStrategy.java:300)
at openllet.core.tableau.completion.EmptySRIQStrategy.complete(EmptySRIQStrategy.java:156)
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:211)
at openllet.core.KnowledgeBaseImpl.classify(KnowledgeBaseImpl.java:1919)
at openllet.core.KnowledgeBaseImplFullSync.classify(KnowledgeBaseImplFullSync.java:385)
at openllet.core.KnowledgeBaseImpl.realize(KnowledgeBaseImpl.java:1938)
at openllet.core.KnowledgeBaseImplFullSync.realize(KnowledgeBaseImplFullSync.java:391)
While debugging an inconsistency I stumbled upon an unrelated InternalReasonerException in an ontology which was generated by SearchMinimalBug.
Although that Exception doesn't occur in my real application / ontology I thought it might be worth sharing with you, as it looks like an internal bug that you might want to take a look at. Feel free to just ignore / close this issue report, as it is an arbitrary ontology. I'm using version 2.6.5-SNAPSHOT / 9c5928a4b49c83e69889ab2894036494e5c95a0d.
You can find the ontology here (I flavored the original minimal ontology a bit with a random example so that it is easier to understand): https://gist.github.com/Locke/3b6e316a9efb963fb8d1da82cf539757#file-singleredcarownerinternalreasonerexception-owl
In the ontology is a class
Owner
. Its subclassSingleRedCarOwner
should be someone who has one car, and the color of the car must be red:hasCar exactly 1 (Car and (hasColour value Red))
.When I call
kb.realize();
on that ontology anInternalReasonerException
is thrown:As a workaround I added another definition:
hasCar only (Car and (hasColour value Red))
, see https://gist.github.com/Locke/3b6e316a9efb963fb8d1da82cf539757#file-singleredcarowner-owlWith this additional definition present the InternalReasonerException isn't thrown. That seems to support my theory of an internal bug.