我试图运行Simple Hierarchy example of OWL API。我将{lib}文件夹中的owlapi-osgidistribution-4.0.2.jar
和所有库包含在项目类路径中。但是我还有一个未解决的导入:
import static org.semanticweb.owlapi.search.EntitySearcher.getAnnotationObjects;
与该导入相关联的一个未定义方法:
for (OWLAnnotation anno : getAnnotationObjects(clazz, ontology)) {
anno.accept(le);
}
我看到EntitySearcher
类在OWL API库中。我错过了什么吗?
答案 0 :(得分:1)
EntitySearcher位于owlapi-api模块中,因此应该在类路径中找到。
该示例是针对每个owlapi构建进行例行编译的,因此不应出现任何特定问题。
注意:如果您在4.0.2发布之前或之后添加了您提及的方法,我无法回想起来。它可能是为4.1.0添加的。
答案 1 :(得分:0)
我昨天经历了完全相同的问题,有点巧合。
您正在查看的代码应该与最新版本的OWL API一起使用,即4.1.0-RC4。我已经找到了浏览mailing list问题的提示。不幸的是,目前唯一可用的打包版本是4.0.2,而Maven资源库中的最新版本是4.1.0-RC2,它没有附带示例中使用的方法。
我暂时解决的问题"问题是使用Maven依赖关系定位版本4.1.0-RC2并向类路径添加从git存储库构建的4.1.0-RC4的二进制分发版(覆盖Maven解析的旧版本的版本)。
假设您知道如何使用Maven,这是POM文件的相关条目:
<dependency>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>owlapi-osgidistribution</artifactId>
<version>4.1.0-RC2</version>
</dependency>
要构建最新版本的OWL API,只需克隆git存储库或将其下载为zip文件,解压缩然后运行mvn clean install
:要添加到类路径的jar应该出现在{ {1}}目录。
您也可能会收到有关记录器的警告,如果您想要修复它,您需要获取./distribution/target/
的tarball,其版本与Maven解决的版本匹配(来自here,我使用的版本是1.7.7),构建它然后将slf4j
添加到类路径中。
希望这有帮助。