OWL API 重命名了导入的实体 ontology
OWL API renamed entity from imported ontology
我有 ontology A 导入 B。我想重命名一个实体,所以我写:
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"。
谢谢。
这里的问题是 OWLEntityRenamer 需要修改所有 ontology。
您只将 ontology A 传递给重命名器。如果 B 已经使用旧的 IRI,则不会更改。将两个本体传递给重命名器并重试。
我有 ontology A 导入 B。我想重命名一个实体,所以我写:
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"。 谢谢。
这里的问题是 OWLEntityRenamer 需要修改所有 ontology。
您只将 ontology A 传递给重命名器。如果 B 已经使用旧的 IRI,则不会更改。将两个本体传递给重命名器并重试。