【发布时间】: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,我想通了。而且也明白你说的。我只需要将相关公理转移到其他本体。感谢您的宝贵时间。