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

问题描述 投票:0回答:2

我有在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中正确重命名,但在B中我有两个实体。特别是在B中,使用“Skyfos”的每个对象属性继续使用“Skyfos”而不是“Skyphos”。谢谢。

java owl-api
2个回答
0
投票

这里的问题是OWLEntityRenamer要求修改所有本体。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.