我正在使用OWL-API v3.4.3和HermiT 1.3.8.4开发maven插件来验证OWL本体。一些OWL本体是专有的,因此无法在Web上获得。
查看文档,我正在使用loadOntologyFromOntologyDocument()
加载OWL文件来执行验证:
OWLOntology onto = ontoManager.loadOntologyFromOntologyDocument(new File($fileName))
Reasoner hermit = new Reasoner(onto);
当本体不导入任何专有本体时,这可以正常工作,但否则会返回UnloadableImportException
错误。我见过人们使用addIRIMapper
在本体URI和定义实体的物理文件之间建立链接,但我认为它不适用于我的情况(主要是因为文件名未知)
有没有办法告诉OWL API忽略导入?如果有,我可以迭代文件夹中的文件,并利用OWLOntologyMerger
一起验证所有本体。
答案 0 :(得分:1)
OWLOntologyManager
有setSilentMissingImportsHandling(boolean b)
您可以使用。将参数设置为true
会停止抛出异常。
但是,我不确定您为什么会收到这些错误 - 除非检查是离线完成的?或者导入的本体无法下载。 我可以看到的问题是HermiT执行的验证不包括实际用于推理的所有本体,因此您可能会从验证中获得误报和漏报。