我正在尝试使用SWRLAPI和OWLAPI向我的本体添加SWRL规则。我正在尝试使用与SWRLAPI兼容的OWLAPI版本。但是,创建规则时仍然出现错误。依赖管理似乎是一个问题。我使用gradle作为依赖项管理器,因此应该可以解决问题。

异常(exception)是:



我的build.gradle依赖文件:

dependencies {
    compile group: 'net.sourceforge.owlapi', name: 'owlapi-distribution', version: '4.1.3'
    compile group: 'net.sourceforge.owlapi', name: 'org.semanticweb.hermit', version: '1.4.1.513'
    compile 'edu.stanford.swrl:swrlapi:2.0.5'
    compile 'edu.stanford.swrl:swrlapi-drools-engine:2.0.5'
}

执行 createSWRLRuleEngine 方法时会发生异常:
public void addNewSWRLRule(SWRLRuleModel rule) throws SWRLBuiltInException, SWRLParseException {
    SWRLRuleEngine swrlRuleEngine = SWRLAPIFactory.createSWRLRuleEngine(ontology);
    swrlRuleEngine.infer();
    swrlRuleEngine.createSWRLRule(rule.getName(), rule.getRule(), rule.getComment(), true);
}

是否必须手动添加依赖项才能解决此问题?

最佳答案

您正在使用HermiT 1.4.1.513。这与owlapi 5(而不是4)兼容(补丁号与owlapi版本匹配)。使用HermiT 1.3.8.413。

09-13 02:09