OWL API 从导入的本体中重命名实体

我有在 B 中导入的本体 A。我想重命名一个实体,所以我写:


OWLEntityRenamer renamer = new OWLEntityRenamer(manager, Collections.singleton(A));        

Map<OWLEntity, IRI> entity2IRIMap = new HashMap<>();             

entity2IRIMap.put(datafactory.getOWLNamedIndividual(iriBase+"Skyfos"), IRI.create(iriBase+"Skyphos"));       

manager.applyChanges(renamer.changeIRI(entity2IRIMap)); 

manager.save(A);

manager.save(B);

现在,实体在 A 中正确重命名,但在 BI 中同时拥有这两个实体。特别是在 B 中,每个使用“Skyfos”的对象属性继续使用“Skyfos”而不是“Skyphos”。谢谢你。


喵喔喔
浏览 124回答 2
2回答

蝴蝶刀刀

您仅将本体 A 传递给重命名器。如果 B 已经使用旧的 IRI,则不会更改。将两个本体传递给重命名器并重试。

米脂

这里的问题是 OWLEntityRenamer 需要修改所有本体。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java