【问题标题】:UnloadableImportException when loading ontology file with OWLAPI使用 OWLAPI 加载本体文件时出现 UnloadableImportException
【发布时间】:2015-06-12 14:16:32
【问题描述】:

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

【问题讨论】:

    标签: java validation owl owl-api reasoning


    【解决方案1】:

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

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

    【讨论】:

    • 这些是我们不在线发布的专有本体,因此无法下载。我使用了setSilentMissingImportsHandling(true),但这会导致导入语句被忽略。正如您所描述的,这不会提供对组合本体中不可满足的实体的正确概述。有没有办法定义应该检查某些文件夹是否包含 OWL 文件?或者我们可以定义一个目录(比如在 protege 中)将 URI 链接到文件位置?
    • 如果要导入的所有本体都定义在一个文件夹中,如果我使用AutoIRIMapper会解决问题吗?
    • 是的,它应该可以工作。请注意,AutoIRIMapper 仅支持几种格式。如果本体是 RDF/XML 你应该没问题。
    • @Ignazio,我已经检查过 OWL API 4.1.3 没有这个选项,如何在这个版本中管理这个?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多