首页 > 解决方案 > 如何使用 OWLReasoner 更新本体

问题描述

我是 OWL API 的新手,我想知道是否有办法使用推理器(HermiT)拾取的所有新关系来更新本体。我找不到教程或太多文档,所以我假设调用

    reasoner.classifyClasses();
    reasoner.classifyDataProperties();
    reasoner.classifyObjectProperties();
    reasoner.precomputeInferences();
    reasoner.flush();

将对新关系进行分类。然后,我不确定如何翻译这些新关系以创建更新的本体。我知道如何手动迭代新关系并在它们不存在于本体中时添加它们,但我正在寻找一种更简单的方法来做到这一点。另外,我不完全确定上述代码是否为我解释了所有新关系,所以请告诉我是否应该进行任何更正。

标签: owl-apireasonerhermit

解决方案


您可以InferredOntologyGenerator用于此目的。可以使用推理器作为输入创建该类,并使用InferredOntologyGenerator::fillOntology将所有可以推断的公理添加到新本体的方法来创建该类。

请注意,公理生成可能是一个非常缓慢的操作。首先尝试使用一个小的本体,看看结果是否是你需要的。


推荐阅读