Open naditina opened 8 years ago
Hi & thanks for reporting! Unfortunately I cannot reproduce this. I need more input.
Can you paste the log output of ELK? Are there any warning / error messages?
Also, can you try to pinpoint which exactly axiom addition triggers the error? As I can see from the stack trace, it is triggered when an equivalence axiom is being added. I need to know which one.
Ideally, could you provide a small example like the one here (with concrete ontology and class expressions) that triggers the problem in your case?
Hi Nadeschda, we were able to reproduce your error message if we query for the empty conjunctions, i.e., add axioms like:
EquivalentClasses(:tmp ObjectIntersectionOf())
Do you by chance create such expressions?
Although it is not a valid OWL 2 expression, OWL API allows to create expressions like this (probably to be backward compatible with the previous version of OWL). This should be related to issue #35
Hi Yevgeny,
indeed this was the cause. Thank you for looking into it.
Nadeschda
Reopening this to avoid similar problems in the future. Should treat empty conjunction as owl:Thing, empty disjunction as owl:Nothing, etc.
I am working with ELK (elk-distribution-0.4.3-owlapi-library) on the EL fragment of some version of galen. I added and subsequently removed several axioms that introduce fresh concept symbols as a shortcut for conjunctions built from subconcepts of that ontology. I get the following exception with the following stack trace:
Exception in thread "main" java.lang.NullPointerException at org.semanticweb.elk.util.collections.ArrayHashMap.get(ArrayHashMap.java:203) at org.semanticweb.elk.util.collections.chains.AbstractChain$1.next(AbstractChain.java:105) at org.semanticweb.elk.util.collections.chains.AbstractChain$1.next(AbstractChain.java:101) at org.semanticweb.elk.util.collections.chains.AbstractChain.find(AbstractChain.java:42) at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedSubClassOfAxiom$ThisCompositionRule.removeFrom(IndexedSubClassOfAxiom.java:162) at org.semanticweb.elk.reasoner.indexing.hierarchy.DifferentialIndex.add(DifferentialIndex.java:172) at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedSubClassOfAxiom.updateOccurrenceNumbers(IndexedSubClassOfAxiom.java:85) at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor$AxiomOccurrenceUpdateFilter.update(MainAxiomIndexerVisitor.java:384) at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor$AxiomOccurrenceUpdateFilter.visit(MainAxiomIndexerVisitor.java:394) at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor$AxiomOccurrenceUpdateFilter.visit(MainAxiomIndexerVisitor.java:373) at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor.indexSubClassOfAxiom(MainAxiomIndexerVisitor.java:148) at org.semanticweb.elk.reasoner.indexing.hierarchy.AbstractElkAxiomIndexerVisitor.visit(AbstractElkAxiomIndexerVisitor.java:166) at org.semanticweb.elk.reasoner.indexing.hierarchy.AbstractElkAxiomIndexerVisitor.visit(AbstractElkAxiomIndexerVisitor.java:63) at org.semanticweb.elk.owlapi.wrapper.ElkEquivalentClassesAxiomWrap.accept(ElkEquivalentClassesAxiomWrap.java:61) at org.semanticweb.elk.owlapi.wrapper.ElkClassAxiomWrap.accept(ElkClassAxiomWrap.java:51) at org.semanticweb.elk.reasoner.indexing.hierarchy.DelegatingElkAxiomVisitor.visit(DelegatingElkAxiomVisitor.java:103) at org.semanticweb.elk.reasoner.indexing.hierarchy.DelegatingElkAxiomVisitor.visit(DelegatingElkAxiomVisitor.java:74) at org.semanticweb.elk.owlapi.wrapper.ElkEquivalentClassesAxiomWrap.accept(ElkEquivalentClassesAxiomWrap.java:61) at org.semanticweb.elk.owlapi.wrapper.ElkClassAxiomWrap.accept(ElkClassAxiomWrap.java:51) at org.semanticweb.elk.reasoner.indexing.hierarchy.ChangeIndexingProcessor.visit(ChangeIndexingProcessor.java:57) at org.semanticweb.elk.owlapi.OwlOntologyChangeProcessorVisitor.visit(OwlOntologyChangeProcessorVisitor.java:78) at org.semanticweb.elk.owlapi.OwlOntologyChangeProcessorVisitor.visit(OwlOntologyChangeProcessorVisitor.java:39) at org.semanticweb.owlapi.model.AddAxiom.accept(AddAxiom.java:76) at org.semanticweb.elk.owlapi.OwlChangesLoader.load(OwlChangesLoader.java:90) at org.semanticweb.elk.reasoner.stages.AxiomLoadingStage.executeStage(AxiomLoadingStage.java:121) at org.semanticweb.elk.reasoner.stages.AbstractReasonerStage.execute(AbstractReasonerStage.java:165) at org.semanticweb.elk.reasoner.stages.AxiomLoadingStage.execute(AxiomLoadingStage.java:45) at org.semanticweb.elk.reasoner.stages.LoggingStageExecutor.execute(LoggingStageExecutor.java:53) at org.semanticweb.elk.reasoner.stages.AbstractStageExecutor.complete(AbstractStageExecutor.java:55) at org.semanticweb.elk.reasoner.stages.AbstractReasonerState.complete(AbstractReasonerState.java:145) at org.semanticweb.elk.reasoner.stages.AbstractReasonerState.loadAxioms(AbstractReasonerState.java:306) at org.semanticweb.elk.reasoner.stages.AbstractReasonerState.isInconsistent(AbstractReasonerState.java:284) at org.semanticweb.elk.reasoner.stages.AbstractReasonerState.getTaxonomy(AbstractReasonerState.java:324) at org.semanticweb.elk.owlapi.ElkReasoner.precomputeInferences(ElkReasoner.java:942) at simplification.ConceptMinimizer.computeConjunctions(ConceptMinimizer.java:254)
Nadeschda