SmartDataAnalytics / DL-Learner

A tool for supervised Machine Learning in OWL and Description Logics
http://dl-learner.org
GNU General Public License v3.0
152 stars 34 forks source link

Pellet ConcurrentModificationException #31

Closed SimonBin closed 8 years ago

SimonBin commented 9 years ago

(reproducible on a private ontology)

Caused by: java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
        at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
        at com.clarkparsia.pellet.rules.ContinuousRulesStrategy.applyRuleBindings(ContinuousRulesStrategy.java:147)
        at com.clarkparsia.pellet.rules.ContinuousRulesStrategy.complete(ContinuousRulesStrategy.java:254)
        at org.mindswap.pellet.ABox.isConsistent(ABox.java:1423)
        at org.mindswap.pellet.ABox.isConsistent(ABox.java:1260)
        at org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:2017)
        at org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:2089)
        at com.clarkparsia.pellet.owlapiv3.PelletReasoner.isConsistent(PelletReasoner.java:849)
        at org.dllearner.reasoning.OWLAPIReasoner.init(OWLAPIReasoner.java:246)

changing for( PartialBinding ruleBinding : partialBindings ) to for( PartialBinding ruleBinding : new HashSet(partialBindings) ) on com.clarkparsia.pellet.rules.ContinuousRulesStrategy line 147 only results in

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at org.mindswap.pellet.EdgeList.<init>(EdgeList.java:80)
        at org.mindswap.pellet.EdgeList.<init>(EdgeList.java:76)
        at org.mindswap.pellet.EdgeList.getEdges(EdgeList.java:202)
        at org.mindswap.pellet.Individual.getRNeighborEdges(Individual.java:678)
        at com.clarkparsia.pellet.rules.TrivialSatisfactionHelpers$TestProperty.check(TrivialSatisfactionHelpers.java:317)
        at com.clarkparsia.pellet.rules.TrivialSatisfactionHelpers$TestIndividualProperty.check(TrivialSatisfactionHelpers.java:295)
        at com.clarkparsia.pellet.rules.TrivialSatisfactionHelpers.isAtomTrue(TrivialSatisfactionHelpers.java:402)
        at com.clarkparsia.pellet.rules.ContinuousRulesStrategy.createDisjunctionsFromBinding(ContinuousRulesStrategy.java:410)
        at com.clarkparsia.pellet.rules.ContinuousRulesStrategy.applyRuleBindings(ContinuousRulesStrategy.java:224)
        at com.clarkparsia.pellet.rules.ContinuousRulesStrategy.complete(ContinuousRulesStrategy.java:331)
        at org.mindswap.pellet.ABox.isConsistent(ABox.java:1423)
        at org.mindswap.pellet.ABox.isConsistent(ABox.java:1260)
        at org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1989)
        at org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:2061)
        at com.clarkparsia.pellet.owlapiv3.PelletReasoner.isConsistent(PelletReasoner.java:849)
        at org.dllearner.reasoning.OWLAPIReasoner.init(OWLAPIReasoner.java:246)
tobias-hammerschmidt commented 9 years ago

Most likely you are also hit by this issue.

SimonBin commented 8 years ago

thanks @tobias-hammerschmidt , applied