gpt4 book ai didi

java - 无法加载 Creole.xml GATE

转载 作者:行者123 更新时间:2023-11-30 08:05:48 25 4
gpt4 key购买 nike

我正在尝试将 GATE 嵌入到我的 java 项目中。我已阅读有关如何构建 GATE 独立应用程序的 GATE 指南。但是,我收到许多错误,指出无法加载每个插件(ANNIE、Twitter 等)的 creole.xml。这是我的代码:

public class NERGate {
public NERGate(){}
public static void main(String args[]) throws GateException, MalformedURLException{
Gate.setGateHome(new File("/Applications/GATE_Developer_8.1"));
Gate.setPluginsHome(new File("/Applications/GATE_Developer_8.1/plugins"));
Gate.init();
}
}

下面是我的控制台上的输出:

Using /Applications/GATE_Developer_8.1 as GATE home
Using /Applications/GATE_Developer_8.1/plugins as installed plug-ins directory.
Using /Applications/GATE_Developer_8.1/gate.xml as site configuration file.
Using /Users/adibangun/.gate.xml as user configuration file
Using /Users/adibangun/.gate.session as user session file
edu.stanford.nlp.util.Function is available via both the system classpath and a plugin; the plugin classes will be ignored
edu.stanford.nlp.ling.CoreLabel is available via both the system classpath and a plugin; the plugin classes will be ignored
edu.stanford.nlp.trees.Tree is available via both the system classpath and a plugin; the plugin classes will be ignored
edu.stanford.nlp.trees.GrammaticalStructureFactory is available via both the system classpath and a plugin; the plugin classes will be ignored
edu.stanford.nlp.tagger.maxent.MaxentTagger is available via both the system classpath and a plugin; the plugin classes will be ignored
edu.stanford.nlp.process.LexedTokenFactory is available via both the system classpath and a plugin; the plugin classes will be ignored
CREOLE plugin loaded: file:/Applications/GATE_Developer_8.1/plugins/Stanford_CoreNLP/
Cannot load file:/Applications/GATE_Developer_8.1/plugins/Twitter/ CREOLE repository.
gate.util.GateException: couldn't open creole.xml
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:299)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:317)
at gate.Gate.initCreoleRepositories(Gate.java:449)
at gate.Gate.init(Gate.java:220)
at thmeaticAnalysis.controller.NERGate.main(NERGate.java:29)
at thematicanalysis.GUI.Home.GateNERButtonActionPerformed(Home.java:169)
at thematicanalysis.GUI.Home.access$200(Home.java:24)
at thematicanalysis.GUI.Home$3.actionPerformed(Home.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: Lpt/tumba/spell/SpellChecker;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at gate.creole.CreoleAnnotationHandler.processParameters(CreoleAnnotationHandler.java:502)
at gate.creole.CreoleAnnotationHandler.processCreoleResourceAnnotations(CreoleAnnotationHandler.java:343)
at gate.creole.CreoleAnnotationHandler.processAnnotationsForResource(CreoleAnnotationHandler.java:313)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:283)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:286)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:269)
at gate.creole.CreoleRegisterImpl.processFullCreoleXmlTree(CreoleRegisterImpl.java:365)
at gate.creole.CreoleRegisterImpl.parseDirectory(CreoleRegisterImpl.java:348)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:293)
... 43 more
Caused by: java.lang.ClassNotFoundException: pt.tumba.spell.SpellChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 55 more
Cannot load file:/Applications/GATE_Developer_8.1/plugins/ANNIE/ CREOLE repository.
gate.util.GateException: couldn't open creole.xml
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:299)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:317)
at gate.Gate.initCreoleRepositories(Gate.java:449)
at gate.Gate.init(Gate.java:220)
at thmeaticAnalysis.controller.NERGate.main(NERGate.java:29)
at thematicanalysis.GUI.Home.GateNERButtonActionPerformed(Home.java:169)
at thematicanalysis.GUI.Home.access$200(Home.java:24)
at thematicanalysis.GUI.Home$3.actionPerformed(Home.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: Lpt/tumba/spell/SpellChecker;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at gate.creole.CreoleAnnotationHandler.processParameters(CreoleAnnotationHandler.java:502)
at gate.creole.CreoleAnnotationHandler.processCreoleResourceAnnotations(CreoleAnnotationHandler.java:343)
at gate.creole.CreoleAnnotationHandler.processAnnotationsForResource(CreoleAnnotationHandler.java:313)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:283)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:286)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:269)
at gate.creole.CreoleRegisterImpl.processFullCreoleXmlTree(CreoleRegisterImpl.java:365)
at gate.creole.CreoleRegisterImpl.parseDirectory(CreoleRegisterImpl.java:348)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:293)
... 43 more
Caused by: java.lang.ClassNotFoundException: pt.tumba.spell.SpellChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 55 more
Cannot load file:/Applications/GATE_Developer_8.1/plugins/Tools/ CREOLE repository.
gate.util.GateException: couldn't open creole.xml
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:299)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:317)
at gate.Gate.initCreoleRepositories(Gate.java:449)
at gate.Gate.init(Gate.java:220)
at thmeaticAnalysis.controller.NERGate.main(NERGate.java:29)
at thematicanalysis.GUI.Home.GateNERButtonActionPerformed(Home.java:169)
at thematicanalysis.GUI.Home.access$200(Home.java:24)
at thematicanalysis.GUI.Home$3.actionPerformed(Home.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: Lpt/tumba/spell/SpellChecker;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at gate.creole.CreoleAnnotationHandler.processParameters(CreoleAnnotationHandler.java:502)
at gate.creole.CreoleAnnotationHandler.processCreoleResourceAnnotations(CreoleAnnotationHandler.java:343)
at gate.creole.CreoleAnnotationHandler.processAnnotationsForResource(CreoleAnnotationHandler.java:313)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:283)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:286)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:269)
at gate.creole.CreoleRegisterImpl.processFullCreoleXmlTree(CreoleRegisterImpl.java:365)
at gate.creole.CreoleRegisterImpl.parseDirectory(CreoleRegisterImpl.java:348)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:293)
... 43 more
Caused by: java.lang.ClassNotFoundException: pt.tumba.spell.SpellChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 55 more
Cannot load file:/Applications/GATE_Developer_8.1/plugins/Stanford_CoreNLP/ CREOLE repository.
gate.util.GateException: couldn't open creole.xml
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:299)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:317)
at gate.Gate.initCreoleRepositories(Gate.java:449)
at gate.Gate.init(Gate.java:220)
at thmeaticAnalysis.controller.NERGate.main(NERGate.java:29)
at thematicanalysis.GUI.Home.GateNERButtonActionPerformed(Home.java:169)
at thematicanalysis.GUI.Home.access$200(Home.java:24)
at thematicanalysis.GUI.Home$3.actionPerformed(Home.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: Lpt/tumba/spell/SpellChecker;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at gate.creole.CreoleAnnotationHandler.processParameters(CreoleAnnotationHandler.java:502)
at gate.creole.CreoleAnnotationHandler.processCreoleResourceAnnotations(CreoleAnnotationHandler.java:343)
at gate.creole.CreoleAnnotationHandler.processAnnotationsForResource(CreoleAnnotationHandler.java:313)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:283)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:286)
at gate.creole.CreoleAnnotationHandler.processAnnotations(CreoleAnnotationHandler.java:269)
at gate.creole.CreoleRegisterImpl.processFullCreoleXmlTree(CreoleRegisterImpl.java:365)
at gate.creole.CreoleRegisterImpl.parseDirectory(CreoleRegisterImpl.java:348)
at gate.creole.CreoleRegisterImpl.registerDirectories(CreoleRegisterImpl.java:293)
... 43 more
Caused by: java.lang.ClassNotFoundException: pt.tumba.spell.SpellChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 55 more

我想知道我的项目配置是否有问题或奇怪,因为我尝试创建一个仅导入 GATE 的新项目,并且当我使用 Gate.init() 初始化 Gate 时它没有显示任何错误。此外,所有插件都是存在于我的/Applications/GATE_Developer_8.1/plugins 上,并带有自己的 creole.xml。有谁知道有什么问题吗?任何意见和建议将不胜感激。非常感谢:)

最佳答案

所有插件的根本错误是

java.lang.ClassNotFoundException: pt.tumba.spell.SpellChecker

此类由 Twitter 插件中的 Normalizer PR 使用。我能想到的最有可能的原因是,您是否(无意或故意)将 GATE 的 Twitter 插件中的 twitter.jar 添加到应用程序的主类路径中无需添加它所依赖的 jaspell.jar 文件。

理想情况下,您应该在主应用程序类路径中包含任何插件 JAR 文件,而只需让插件机制以与您时相同的方式加载 JAR将插件加载到 GATE Developer 中。这确实意味着您无法对任何插件类进行静态编译时引用,但在 99% 的情况下这是不必要的。 ProcessingResourceLanguageAnalyserCorpusController 等所有顶级接口(interface)都包含在 gate.jar 中,因此您不需要在代码中导入特定的 PR 类来执行它,您只需转换为LanguageAnalyser即可。

关于java - 无法加载 Creole.xml GATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com