【问题标题】:Merging a class sub hierarchy to another ontology using OWL API使用 OWL API 将类子层次结构合并到另一个本体
【发布时间】:2019-05-17 18:22:48
【问题描述】:

我有两个本体,称为本体 A 和本体 B,两者都没有任何个体。简单地说,我需要在本体 A 中获取一个概念 C1 及其子概念(概念的子层次结构),并将其合并到本体 B 中的一个概念。是否有一种简单的方法可以在 OWL API 中实现这一点,或者我必须编写代码这个逻辑从头开始?

我已经研究了一些其他相关问题,但它们不包含我需要的内容。 Protege 仅包含合并两个本体的选项,这不是我的要求(Merge Ontology with Protege-OWL API)。我发现的这个关于合并本体的问题也合并了完整的本体(How to properly merge 2 ontologies with OWL API 4 or 3.5)。我想要的是将本体的一部分合并到另一个。

很简单,OWL API 中是否有一种简单的方法可以将本体的一部分(概念的子层次结构)合并到另一个本体?

提前致谢。

【问题讨论】:

  • 只需从概念开始递归地获取子类公理,然后将它们添加到其他本体 - 是的,这很简单,大约。 10行Java代码
  • 感谢@AKSW 的回答。我是 owl api 的新手,我认为 owl api 中可能有一些简单的方法,而不是编写简单的逻辑。
  • 好吧,至少我不知道像getSubClassHierarchy(OWLClass root) 这样的任何方法 - 但正如我所说,实现起来非常简单。如果您有任何问题,请随时在这里询问
  • 不,不会自动更改任何内容。 OWL 基于公理,公理本身引用由 URI 标识的实体。如果您将公理从本体 1 复制到本体 2,您仍将拥有本体 1 中使用的 URI。如果您不希望这样做,则必须重命名类,这意味着您必须重新创建子类公理新的 URI。
  • @AKSW,我想通了。而且也明白你说的。我只需要将相关公理转移到其他本体。感谢您的宝贵时间。

标签: owl owl-api


【解决方案1】:

这个问题看似简单,但在编写代码之前需要明确一些重要的限制。

本体中只有命名类和命名类之间的子类公理的子层次结构很简单:

A subclassOf B
C subclassOf B

B 的子层次结构完全由这两个公理描述,因此您可以轻松选择并复制它们:

OWLOntology source = ...
OWLOntology destination = ...
OWLClass a = ...

source.subClassAxiomsForSuperClass(a).forEach(destination::addAxiom);
// repeat on the subclass in each axiom recursively

但是,如果有匿名类,问题很快就会变得更加复杂:

A subclassOf exist r D
exist r D subclassOf B
C subclassOf B

如果需要保留所有推理以及断言的层次结构(例如,上面示例中显示的 GCI。 有很多关于模块化和原子分解的文献,这两个研究领域都涵盖了选择公理的主题,这些公理允许所有引用初始签名的推理——在这种情况下,是你的起始类。

你可以使用SyntacticLocalityModuleExtractor获得公理集:

destination.addAxioms(new SyntacticLocalityModuleExtractor(
        source.getOWLOntologyManager(), 
        source, 
        ModuleType.STAR));

但是,您应该阅读文献中的相关文章,以了解可用方法的优点和局限性。一些起点:

http://owl.cs.manchester.ac.uk/research/modularity/

http://www.cs.man.ac.uk/~delvescc/dl-10.pdf

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3113511/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多