我收到以下错误消息
启动应用程序时出错:创建查询引擎Drools时出错。例外: java.lang.NoSuchMethodError。消息:‘无效org.semanticweb.owlapi.util.PriorityCollection.add(java.io.Serializable)’
我正在使用SWRL API for Java在OWL本体上运行SQWRL查询。因此,我从Maven构建了swrlapi edu.stanford.swrl示例,在pom文件中将默认的swrl API和swrlapi drools-engine从版本1.0.3更新到了2.0.9,并将owl API从默认的4.2.3更新到了5.1.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);程序在最后一条命令处停止。我不知道我做错了什么。如果我使用1.0.3版本的swrl api和swrlapi drools-engine,但我想使用tbox和abox库中包含的一些命令,这些命令在旧版本中没有实现。
发布于 2021-03-24 04:02:00
您看到的异常是类路径中存在多个不兼容的OWLAPI版本的症状。确保您只有一个正在使用的版本(与您所说的5.1.17相同)。如果找不到问题,请添加有关如何设置类路径的详细信息(您可以在代码的开头打印java.class.path环境变量,以获得所使用的确切类路径)。
https://stackoverflow.com/questions/66765289
复制相似问题