1

我正在开发一个 Maven 插件来使用 OWL-API v3.4.3 和 HermiT 1.3.8.4 验证 OWL 本体。一些 OWL 本体是专有的,因此在 Web 上不可用。

查看文档,我正在使用loadOntologyFromOntologyDocument()加载 OWL 文件来执行验证:

OWLOntology onto = ontoManager.loadOntologyFromOntologyDocument(new File($fileName))
Reasoner hermit = new Reasoner(onto);

当本体不导入任何专有本体时,这可以正常工作,UnloadableImportException否则会返回错误。我见过人们使用addIRIMapper在本体 URI 和定义实体的物理文件之间创建链接,但我认为它不适用于我的情况(主要是因为文件名未知)。

有没有办法告诉 OWL API 忽略导入?如果有,我可以遍历文件夹中的文件并利用OWLOntologyMerger来验证所有本体。

4

1 回答 1

1

OWLOntologyManager有一个setSilentMissingImportsHandling(boolean b)你可以使用的。将他的参数设置为true停止抛出异常。

但是我不确定您为什么会收到这些错误 - 除非检查是离线完成的?或者导入的本体无法下载。我可以看到的问题是 HermiT 执行的验证不会包括所有实际用于推理的本体,因此您可能会从验证中得到误报和误报。

于 2015-06-12T06:16:32.250 回答