我对使用 protege 和使用本体非常陌生。我正在创建一个 lil 程序来检查防火墙规则,并且在尝试运行 Pellet resoner 时遇到以下错误,日志中有 2 个不同的错误:
1
错误 1 记录于 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。分类(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)
2
错误 2 记录于 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(本机方法)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章、 (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(本机方法)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章、 (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(本机方法)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(本机方法)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(本机方法)第721章.AccessController.doPrivileged(本机方法)第721章.AccessController.doPrivileged(本机方法)
我一直在阅读,我已将 JVM 内存更改为近 3GB,这是我笔记本电脑上的最大容量。我仔细检查了所有数据类型都是根据设计的。
在我的正确本体中,我使用 SWRL 规则,我得到了大约 1300 个和一些个人,.owl 文件是 5.31Mb。我正在运行 64 位 Windows 7。
我认为主要问题是我的笔记本电脑无法运行这个大型本体。有什么办法我可能是错的吗?我在一些地方看到他们说这个错误消息可能具有误导性。
我该如何解决这个问题?我有什么选择?我是新来的,但我准备好阅读很多=)谢谢大家