这是我的pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenproject2</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>owlapi-distribution</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>org.semanticweb.hermit</artifactId>
<version>1.3.8.500</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
我只想举这样的简单例子:
OWLOntology o = manager.loadOntologyFromOntologyDocument(file);
System.out.println("--------------------------");
OWLReasonerFactory rf = new ReasonerFactory();
OWLReasoner r = rf.createReasoner(o);
r.precomputeInferences(InferenceType.CLASS_HIERARCHY);
但是系统无法识别ReasonerFactory。 我下载了jar文件,安装了maven,并使用maven项目打开了一个netbeans项目。为什么它不起作用?
答案 0 :(得分:0)
使用OWLAPI版本5.1.7和HermiT版本1.4.3.517。
这里的问题是,在您使用的版本中,ReasonerFactory
是Reasoner
类中的一个内部类,但是您的测试代码依赖于它是一个独立的类。那是在更高版本的HermiT中发生的。
1.4.3.517是最新版本,并包含一些错误修复,因此,我建议使用它代替所有其他OWLAPI 5兼容版本。