Out Of Memory Problem using Protege 4.x

128 views
Skip to first unread message

Paulo Picota

unread,
Nov 28, 2013, 9:24:15 AM11/28/13
to pellet...@googlegroups.com
hello friends, 

I have an issue with a out of memory error.

Im runing Protege 4.2.0, win 7 64 bit , 4gb ram. I have a large set of individuals and im getting an out of memory error from the pellet reasoner. I haver been asking on other mailing list and it seems it  is a Pellet related issue, but I really dont know how to test it. 

Im new to the use of ontologies and reasoners, here I will copy the errors as shown in my protege log: 

Error 1 Logged at Sun Nov 17 21:49:48 COT 2013 OutOfMemoryError: Java heap space com.clarkparsia.pellet.rules.rete.Index$IndexNode.(Index.java:43) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:55) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index.add(Index.java:173) com.clarkparsia.pellet.rules.rete.BetaNode.join(BetaNode.java:131) com.clarkparsia.pellet.rules.rete.Interpreter.processBetaNodes(Interpreter.java:109) com.clarkparsia.pellet.rules.rete.Interpreter.run(Interpreter.java:236) com.clarkparsia.pellet.rules.ContinuousRulesStrategy.applyRete(ContinuousRulesStrategy.java:179) com.clarkparsia.pellet.rules.ContinuousRulesStrategy.complete(ContinuousRulesStrategy.java:291) org.mindswap.pellet.ABox.isConsistent(ABox.java:1423) org.mindswap.pellet.ABox.isConsistent(ABox.java:1260) org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1987) org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:2061) org.mindswap.pellet.KnowledgeBase.ensureConsistency(KnowledgeBase.java:2075) org.mindswap.pellet.KnowledgeBase.classify(KnowledgeBase.java:2083) com.clarkparsia.pellet.owlapiv3.PelletReasoner.precomputeInferences(PelletReasoner.java:1067) org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.precompute(OWLReasonerManagerImpl.java:417) org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner.run(OWLReasonerManagerImpl.java:356)

java.lang.Thread.run(Thread.java:722)

Error 2 Logged at Sun Nov 17 21:50:37 COT 2013 OutOfMemoryError: Java heap space java.util.HashMap.createEntry(HashMap.java:869) java.util.HashMap.addEntry(HashMap.java:856) java.util.HashMap.put(HashMap.java:484) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:56) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index$IndexNode.add(Index.java:58) com.clarkparsia.pellet.rules.rete.Index.add(Index.java:173) com.clarkparsia.pellet.rules.rete.BetaNode.join(BetaNode.java:131) com.clarkparsia.pellet.rules.rete.Interpreter.processBetaNodes(Interpreter.java:109) com.clarkparsia.pellet.rules.rete.Interpreter.run(Interpreter.java:236) com.clarkparsia.pellet.rules.ContinuousRulesStrategy.applyRete(ContinuousRulesStrategy.java:179) com.clarkparsia.pellet.rules.ContinuousRulesStrategy.complete(ContinuousRulesStrategy.java:291) org.mindswap.pellet.ABox.isConsistent(ABox.java:1423) org.mindswap.pellet.ABox.isConsistent(ABox.java:1260) org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1987) org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:2061) com.clarkparsia.pellet.owlapiv3.PelletReasoner.isConsistent(PelletReasoner.java:849) org.protege.editor.owl.model.inference.OWLReasonerManagerImpl.getReasonerStatus(OWLReasonerManagerImpl.java:236) org.protege.editor.owl.model.OWLWorkspace.updateReasonerStatus(OWLWorkspace.java:750) org.protege.editor.owl.model.OWLWorkspace.handleModelManagerEvent(OWLWorkspace.java:351) org.protege.editor.owl.model.OWLWorkspace.access$000(OWLWorkspace.java:140) org.protege.editor.owl.model.OWLWorkspace$1.handleChange(OWLWorkspace.java:253) org.protege.editor.owl.model.OWLModelManagerImpl.fireEvent(OWLModelManagerImpl.java:818) org.protege.editor.owl.model.inference.OWLReasonerManagerImpl$ClassificationRunner$1.run(OWLReasonerManagerImpl.java:430) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721) java.awt.EventQueue.access$200(EventQueue.java:103) java.awt.EventQueue$3.run(EventQueue.java:682) java.awt.EventQueue$3.run(EventQueue.java:680) java.security.AccessController.doPrivileged(Native Method)

In my corrent ontology im runing some SWRL rules and about 1300 individuals in diferent classes. 

Please is there a way I can test to see exactly what is causing this error? 

Thanks for everything. 

Paulo Picota

unread,
Dec 16, 2013, 3:11:46 PM12/16/13
to pellet...@googlegroups.com
Hello friends, 
I had this problem a while back. Im picking this up again. 

the issue comes from the pellet reasoner. also a GC Overhead limit. This is obviusly an issue regarding the handelling that pellet does in the memory. 

I dont know how to test it or fix it. 

Any advise will be great!! 

thnx. 

ashish nijhara

unread,
Dec 16, 2013, 9:48:32 PM12/16/13
to Paulo Picota, pellet...@googlegroups.com
Hi Paulo,

Are you using SWRL rules as well? If yes, any chances of reducing them and formulate OWL constructs instead?

Thanks,
Ashish


--
You received this message because you are subscribed to the Google Groups "Pellet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pellet-users...@googlegroups.com.
To post to this group, send email to pellet...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pellet-users/68912ba3-feef-41dc-ae2e-870ee4d1ea49%40googlegroups.com.

Paulo Picota

unread,
Dec 17, 2013, 10:40:47 AM12/17/13
to ashish nijhara, pellet...@googlegroups.com
Hello ashish,

I havent get into that. I will read and double check on this OWL constructs. 

again.. im very new to this =D. 

Q: what is the advantage of using OWL construct over SWRL rules?





              | Paulo A. Picota C.          
  | Ing. Sis. Computación     
  | CCNA CNCO11876553  
  | Celular: 6426 9482













 
             

 

Facebook LinkedIn


              | Paulo A. Picota C.          
  | Ing. Sis. Computación     
  | CCNA CNCO11876553  
  | Celular: 6426 9482













 
             

 

Facebook LinkedIn


2013/12/16 ashish nijhara <nijhara...@gmail.com>

ashish nijhara

unread,
Dec 17, 2013, 9:18:45 PM12/17/13
to Paulo Picota, pellet...@googlegroups.com
Well as per my understanding, to compute inferences using SWRL, the Pellet KB has to store a lot more than desired. OWL constructs on the other hand are evaluated on demand. If you notice, the out of Memory exception occurs while executing the SWRL (ContinuousRulesStrategy). SWRL rules especially those which are running on multiple individuals would be the biggest memory consumers, obviously because facts are required to be kept for all the instances while executing the rules.
It would be nice someone from Clark & Parsia can validate this understanding. 
Reply all
Reply to author
Forward
0 new messages