OWLAPI加载本地owl导入文件(如果可用)

时间:2016-03-02 23:19:36

标签: import owl-api

是否有一种简单的方法可以在访问远程文件之前从本地文件加载OWL导入本体?

背景:我遇到了另一个本体导入的更新本体的问题。 import语句没有版本化,因此避免导入破坏本体的唯一方法是在本地提供旧版本。

问题: loadOntologyFromOntologyDocument(<DOCUMENT_IRI>)会自动从远程来源加载OWL导入。

我目前的尝试:

  1. 加载 root 本体
  2. 获取所有导入声明
  3. 检查是否有任何要导入的本体在本地可用(通过文件名映射)
  4. 如果找到本地版本,请将IRI映射器添加到本地文件
  5. (重新)导入本地版本
  6. 问题:第1步到第4步有效,但我无法启动第5步。理想情况下,我希望在第5步之前加载导入,然后决定是从远程源还是本地文件加载导入的本体。它不是理想的,但我也可以丢弃已经加载的远程版本并重新加载本地版本。不幸的是,当我只是触发loadOntologyFromOntologyDocument()时会抱怨,因为本体已经加载并使用removeOntology()Error loading the ontology: Unknown ontology

1 个答案:

答案 0 :(得分:1)

如果您使用{{1}}指向包含本地版本的文件夹,则会在尝试加载在线版本之前加载本地版本。

关于加载本体并尝试删除它的矛盾结果,听起来问题可能是文档IRI和本体IRI不同 - 因此您尝试通过文档IRI删除的本体实际上,经理称之为不同的本体论。如果您可以共享文档IRI,可能更容易诊断。