Java OWL Api,将类从父级A移动到父级B
我有一个关于OWLAPI使用的快速问题 假设我有一个叫做物种的类,它有一个哺乳动物亚类,它有一个灵长类,它有一个人类亚类 物种->哺乳动物->灵长类->人类 出于某种原因,我想在我们的软件中对其进行重新分类,并说灵长类不再被视为哺乳动物,它们应该是一个物种的直接亚类 这意味着我们的图表现在应该是这样的 物种->灵长类->人类 谁能给我指一下正确的方向吗 使用OWLAPI查找父类非常简单Java OWL Api,将类从父级A移动到父级B,java,owl,owl-api,Java,Owl,Owl Api,我有一个关于OWLAPI使用的快速问题 假设我有一个叫做物种的类,它有一个哺乳动物亚类,它有一个灵长类,它有一个人类亚类 物种->哺乳动物->灵长类->人类 出于某种原因,我想在我们的软件中对其进行重新分类,并说灵长类不再被视为哺乳动物,它们应该是一个物种的直接亚类 这意味着我们的图表现在应该是这样的 物种->灵长类->人类 谁能给我指一下正确的方向吗 使用OWLAPI查找父类非常简单 reasoner.getSuperClasses(chield, true).entities().colle
reasoner.getSuperClasses(chield, true).entities().collect(Collectors.toSet[OWLClass])
但是我现在如何将类从父类中“分离”出来呢?如果您有一个本体,其中的关系:
- 物种->哺乳动物
- 哺乳动物->灵长类
- 灵长类->人类
manager.remove(ontology, axiom)
manager.add(ontology, axiom)
如果专门化关系没有在本体中直接断言;这将更加复杂。你必须知道为什么“人类”是“哺乳动物”的一个子类。“推理机”的“解释”系统可能会对您有所帮助。不仅仅是“可能”——如果子类axiom被断言,则必须删除它才能更改层次结构。如果是推断的,则有必要了解原因并删除/抵消推断的原因。非常感谢。这也将保留人类所有潜在的子类和个体。还是我必须手动跟踪它们?
manager.remove(ontology, axiom)
manager.add(ontology, axiom)