You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps will reproduce the problem?
1. Attempt to classify the FMA ontology from BioPortal
(http://data.bioontology.org/ontologies/FMA/submissions/5/download?apikey=8b5b78
25-538d-40e0-9e9e-5ab9274a9aeb)
with ELK 0.4.2. I tested both OWLAPI 4.0.2 and OWLAPI 3.5.0.
What is the expected output? What do you see instead?
Classification terminates with a NullPointerException:
java.lang.NullPointerException
at org.semanticweb.elk.util.hashing.HashGenerator.combinedHashCode(HashGenerator.java:85)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedObjectEntry.combinedHashCode(IndexedObjectEntry.java:54)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedObjectSomeValuesFromEntry.computeHashCode(IndexedObjectSomeValuesFromEntry.java:48)
at org.semanticweb.elk.util.collections.entryset.StrongKeyEntry.<init>(StrongKeyEntry.java:56)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedObjectEntry.<init>(IndexedObjectEntry.java:50)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedClassExpressionEntry.<init>(IndexedClassExpressionEntry.java:45)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedObjectSomeValuesFromEntry.<init>(IndexedObjectSomeValuesFromEntry.java:43)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedEntryConverter.visit(IndexedEntryConverter.java:86)
at org.semanticweb.elk.reasoner.indexing.entries.IndexedEntryConverter.visit(IndexedEntryConverter.java:57)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedObjectSomeValuesFrom.accept(IndexedObjectSomeValuesFrom.java:86)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedObjectSomeValuesFrom.accept(IndexedObjectSomeValuesFrom.java:91)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedObjectCache$IndexedClassExpressionViewFactory.createEntry(IndexedObjectCache.java:431)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedObjectCache$IndexedClassExpressionViewFactory.createEntry(IndexedObjectCache.java:423)
at org.semanticweb.elk.util.collections.entryset.KeyEntryHashSet.get(KeyEntryHashSet.java:132)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexedObjectCache.visit(IndexedObjectCache.java:163)
at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor$ClassOccurrenceUpdateFilter.visit(MainAxiomIndexerVisitor.java:304)
at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor$ClassOccurrenceUpdateFilter.visit(MainAxiomIndexerVisitor.java:254)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexObjectConverter.visit(IndexObjectConverter.java:194)
at org.semanticweb.elk.reasoner.indexing.hierarchy.IndexObjectConverter.visit(IndexObjectConverter.java:59)
at org.semanticweb.elk.owlapi.wrapper.ElkObjectSomeValuesFromWrap.accept(ElkObjectSomeValuesFromWrap.java:60)
at org.semanticweb.elk.reasoner.indexing.hierarchy.MainAxiomIndexerVisitor.indexSubClassOfAxiom(MainAxiomIndexerVisitor.java:145)
at org.semanticweb.elk.reasoner.indexing.hierarchy.AbstractElkAxiomIndexerVisitor.visit(AbstractElkAxiomIndexerVisitor.java:183)
at org.semanticweb.elk.reasoner.indexing.hierarchy.AbstractElkAxiomIndexerVisitor.visit(AbstractElkAxiomIndexerVisitor.java:63)
at org.semanticweb.elk.owlapi.wrapper.ElkSubClassOfAxiomWrap.accept(ElkSubClassOfAxiomWrap.java:58)
at org.semanticweb.elk.owlapi.wrapper.ElkClassAxiomWrap.accept(ElkClassAxiomWrap.java:51)
at org.semanticweb.elk.reasoner.indexing.hierarchy.DelegatingElkAxiomVisitor.visit(DelegatingElkAxiomVisitor.java:108)
at org.semanticweb.elk.reasoner.indexing.hierarchy.DelegatingElkAxiomVisitor.visit(DelegatingElkAxiomVisitor.java:74)
at org.semanticweb.elk.owlapi.wrapper.ElkSubClassOfAxiomWrap.accept(ElkSubClassOfAxiomWrap.java:58)
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.OwlOntologyLoader.load(OwlOntologyLoader.java:129)
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.owlapi.ElkReasoner.isConsistent(ElkReasoner.java:854)
at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl.getReasonerStatus(OWLReasonerManagerImpl.java:236)
at org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$1.uncaughtException(OWLReasonerManagerImpl.java:277)
at java.lang.Thread.dispatchUncaughtException(Thread.java:1986)
What version of the product are you using? On what operating system?
ELK 0.4.2, OWLAPI 3.5.0 and OWLAPI 4.0.2, on Ubuntu GNU/Linux.
Original issue reported on code.google.com by [email protected] on 24 May 2015 at 11:40
The text was updated successfully, but these errors were encountered:
Thank you for your detailed bug report! I can confirm that I was able to
reproduce this problem.
Further analysis has revealed that this version of FMA is not a valid OWL 2
ontology. Specifically, there are three axioms with the empty
ObjectIntersectionOf:
SubClassOf(<http://purl.org/sig/ont/fma/fma256019>
ObjectSomeValuesFrom(<http://purl.org/sig/ont/fma/attributed_part>
ObjectIntersectionOf()))
SubClassOf(<http://purl.org/sig/ont/fma/fma242199>
ObjectSomeValuesFrom(<http://purl.org/sig/ont/fma/attributed_part>
ObjectIntersectionOf()))
SubClassOf(<http://purl.org/sig/ont/fma/fma63841>
ObjectSomeValuesFrom(<http://purl.org/sig/ont/fma/attributed_constitutional_part
> ObjectIntersectionOf()))
According to the OWL 2 specification, ObjectIntersectionOf should have at least
two class expressions as parameters:
http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Intersection_of_Class_Expres
sions
I am not really sure why OWL API accepts such ontologies. Perhaps to be
backward compatible with OWL 1, in which such expressions are probably allowed.
You can test if your ontology is compatible with OWL 2 by, e.g., converting it
to OWL 2 functional-style syntax and loading it again via OWL API (in general,
OWL 2 functional-style or OWL 2 XML syntax are more stable and easier to parse
by OWL API than OWL 2 RDF XML syntax). For this ontology the OWL API functional
style parser would return an error.
Coincidently, this issue has been already fixed in the next development version
of ELK (0.5.0-SNAPSHOT). If there will be some further urgent problems, I might
consider fixing this problem in the 0.4.x branch and release a new minor
version. For now, I would just recommend fixing this problem in the ontology
directly, perhaps also notifying the developers of FMA.
Best regards,
Yevgeny
Original issue reported on code.google.com by
[email protected]
on 24 May 2015 at 11:40The text was updated successfully, but these errors were encountered: