我正在尝试使用 SWRLAPI 和 OWLAPI 将 SWRL 规则添加到我的本体中。我正在尝试使用与 SWRLAPI 兼容的 OWLAPI 版本。但是,我在创建规则时仍然会出错。这似乎是依赖管理的问题。我正在使用 gradle 作为依赖管理器,所以这应该可以解决问题。
例外是:
创建规则引擎 Drools 时出错。例外:java.lang.NoClassDefFoundError。消息:org/drools/runtime/rule/AgendaFilter"
我的 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);
}
是否存在必须手动添加的依赖项才能解决此问题?