[Pellet-users] Pellet and out of memory (heap space)
Evren Sirin
evren at clarkparsia.com
Thu Jan 31 18:15:46 UTC 2008
On 1/25/08 6:33 AM, Allyson Lister wrote:
> Hi all,
>
> Thanks a lot for providing Pellet: I'm using version 1.5.0.
>
> I have had a problem recently that, no matter how much memory I give Pellet
> (up to 2G, which is all I have), it runs out of heap space without a log
> message at all. I've tried a number of things to get the logging turned on,
> but nothing appears before the program runs out of memory.
>
It seems Pellet is dying on the first consistency check and with the
logging configuration you provide it is normal that you don't get any
message. If you set logging level for ABox to debug you will see a lot
of messages printed but those message probably wouldn't help.
> I've tried the following:
>
> I turned on logging by setting the log4j.properties as shown in the text at
> the bottom of this email. However, the reasoning failed after, at most, 2
> minutes, and the logging told me nothing related to the error. The most
> information I was able to get was:
>
> DEBUG [main] (ModelReader.java:116) - Reading
> file:///media/share/unsynched/IdeaProjects/MFO/trunk/owl/tests/protege4/together.owl
> INFO [main] (KnowledgeBase.java:1473) - Expressivity: SHIF(D), Classes: 363
> Properties: 17 Individuals: 20 Strategy: SHINStrategy
> DEBUG [main] (RoleTaxonomyBuilder.java:74) - Properties: 43
> INFO [main] (ABox.java:1530) - ABox consistency for 0 individuals
> java.lang.OutOfMemoryError: Java heap space
> at java.util.BitSet.ensureCapacity(BitSet.java:136)
> at java.util.BitSet.set(BitSet.java:261)
> at org.mindswap.pellet.DependencySet.<init>(DependencySet.java:97)
> at org.mindswap.pellet.DisjunctionBranch.tryBranch(DisjunctionBranch.java
> :175)
> at org.mindswap.pellet.Branch.tryNext(Branch.java:99)
> at org.mindswap.pellet.CompletionStrategy.applyDisjunctionRule(
> CompletionStrategy.java:1274)
> at org.mindswap.pellet.CompletionStrategy.applyDisjunctionRule(
> CompletionStrategy.java:1228)
> at org.mindswap.pellet.SHOIQStrategy.complete(SHOIQStrategy.java:244)
> at org.mindswap.pellet.ABox.isConsistent(ABox.java:1606)
> at org.mindswap.pellet.ABox.isConsistent(ABox.java:1490)
> at org.mindswap.pellet.KnowledgeBase.consistency(KnowledgeBase.java:1567)
> at org.mindswap.pellet.KnowledgeBase.isConsistent(KnowledgeBase.java:1588)
> at org.mindswap.pellet.jena.OWLReasoner.isConsistent(OWLReasoner.java:243)
> at org.mindswap.pellet.Pellet.checkConsistency(Pellet.java:251)
> at org.mindswap.pellet.Pellet.run(Pellet.java:459)
> at org.mindswap.pellet.Pellet.main(Pellet.java:900)
>
>
> I've tried the same thing via Tweezers (
> http://www.mindswap.org/~tw7/work/profiling/code/), and I get the same
> result: out of heap space, and no messages or stats. I really have no idea
> where to go from here in terms of optimizing my ontology (call it MFO). It's
> not a big ontology, and before I imported a second ontology (SBO) into MFO,
> it was reasoning both with Fact and Pellet. Now I have the import,
> everything's ground to a halt. (Prior to the import, I had simply created
> classes directly in MFO that matched those from SBO that I was interested
> in. This means switching to the import statement didn't change the
> properties/relationships at all.)
>
> In order to see if it was simply the import statement, I've artifically
> merged the two OWL files into a single OWL file (even though SBO and MFO
> retain their own namespaces). Even that didn't work.
>
> I'm really all out of ideas as to how to approach this problem. I can't get
> any useful stats or logs out of either Pellet or Tweezers. Any help you
> could give would be much appreciated!
>
Unfortunately, since the first initial consietency check is not
completed you won't get any stats. And I don't think increasing the
logging level will help in this case.
> Let me know if I should send around my OWL files.
>
Yes, sure. We'll investigate if this is a bug or an inefficiency.
Cheers,
Evren
>
> Thanks,
> Allyson :)
>
>
> log4j.properties:
>
> log4j.rootLogger=warn, stderr
>
> # Set up logging to include a file record of the output
> # Note: the file is always created, even if there is
> # no actual output.
> # log4j.rootLogger=info, stderr, R
>
> # Example of switching on debug level logging for part of tree
> log4j.logger.org.mindswap.pellet.jena.PelletQueryExecution=warn
>
> log4j.logger.org.mindswap.pellet.taxonomy.Taxonomy=debug
> log4j.logger.org.mindswap.pellet.KnowledgeBase=info
> log4j.logger.org.mindswap.pellet.ABox=INFO
> # log4j.logger.org.mindswap.pellet.dig.PelletDIGServer=debug
> log4j.logger.org.mindswap.pellet.utils.SizeEstimate=debug
> log4j.logger.org.mindswap.pellet.jena.ModelReader=debug
> log4j.logger.org.mindswap.pellet.utils.SizeEstimate=info
> log4j.logger.org.mindswap.pellet.query.QueryEngine=off
> log4j.logger.org.mindswap.pellet.test.WebOntTest=debug
> og4j.logger.org.mindswap.pellet.DependencyIndex=debug
> og4j.logger.org.mindswap.pellet.Node=debug
>
> # Log format to standard out
> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
> # Pattern to output the caller's category. Note that printing file
> # name and/or line number is extremely slow.
> log4j.appender.stderr.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
> # log4j.appender.stdout.layout.ConversionPattern=%5p (%c{1}) - %m%n
>
> # Log format to standard error
> log4j.appender.stderr=org.apache.log4j.ConsoleAppender
> log4j.appender.stderr.target=System.err
> log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
> # Pattern to output the caller's category. Note that printing file
> # name and/or line number is extremely slow.
> # log4j.appender.stderr.layout.ConversionPattern=%5p [%c{1}] - %m%n
> log4j.appender.stderr.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
>
> # File based log output
> log4j.appender.R=org.apache.log4j.RollingFileAppender
> log4j.appender.R.File=pellet.log
> log4j.appender.R.MaxFileSize=5000KB
> # Keep one backup file
> log4j.appender.R.MaxBackupIndex=1
> log4j.appender.R.layout=org.apache.log4j.PatternLayout
>
>
> log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
> _______________________________________________
>
> Sponsored by Clark & Parsia, LLC http://clarkparsia.com/
More information about the Pellet-users
mailing list