如何解决如何解决错误启动应用程序:使用 SWRL API 时创建查询引擎 Drools 时出错?
我收到此错误消息
启动应用程序时出错:创建查询引擎 Drools 时出错。异常:java.lang.NoSuchMethodError。消息:'void org.semanticweb.owlapi.util.PriorityCollection.add(java.io.Serializable)'
我使用 swrl API for Java 在 OWL 本体上运行 SQWRL 查询。因此,我从 Maven 构建了 edu.stanford.swrl swrlapi-example,在 pom 文件中更新了默认的 swrl API 和 swrlapi-drools-engine 从版本 1.0.3 到 2.0.9,以及从默认的 4.2.3 到 5.1 的 owl API。 17.我在可执行文件 main 中运行此代码:
OWLOntologyManager ontologyManager = OWLManager.createOWLOntologyManager();
File file = new File("C:\\Users\\Hugo\\Desktop\\Universidad\\SUPAERO\\S4\\swrlapiTEST\\Prueba.owl");
OWLOntology ontology = ontologyManager.loadOntologyFromOntologyDocument(file);
ontologyManager.createOntology();
SQWRLQueryEngine queryEngine = swrlAPIFactory.createSQWRLQueryEngine(ontology);
程序在最后一个命令处停止。我不知道我做错了什么。如果我使用 swrl api 和 swrlapi-drools-engine 的 1.0.3 版,它可以工作,但我想使用 tBox 和 aBox 库中包含的一些命令,这些命令在那个古老的版本中没有实现。
解决方法
您看到的异常是类路径中存在多个不兼容的 OWLAPI 版本的症状。确保你只使用了一个版本(你所说的 5.1.17)。如果找不到问题,请添加有关如何设置类路径的详细信息(您可以在代码开头打印 java.class.path 环境变量以获取正在使用的确切类路径)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。