java - 使用 OWLAPI 加载本体文件时出现 UnloadableImportException

标签 java validation owl owl-api reasoning

我正在开发一个 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 来一起验证所有本体。

最佳答案

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

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

关于java - 使用 OWLAPI 加载本体文件时出现 UnloadableImportException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30789151/

相关文章:

logic - 巴拉克不喜欢唐纳德喜欢的任何东西

java - _XReply() 使用 _XIOError() 终止应用程序

java - 在 JavaFX 中为 Canvas 创建一个 "shadow"层?

java - 从 Javascript 调用 Applet 函数时出现问题

java - C JNI 帮助处理复杂代码

validation - 帐户用户名的最佳做法?

rdf - 将属性(property)值(value)限制为单一值?

validation - 导致 "Expression has changed after it was checked"异常的 FormBuilder 控件

forms - 将 $html->tagErrorMsg 从 CakePhp 1.1 更新到 1.2

uml - OWL/RDF到UML转换器