한 가지 해결책은 OWLEntityRenamer 클래스를 사용하는 것입니다.
하나의 기본적인 사용법은 다음 중 하나입니다 : 당신의지도 <의 대상
OWLEntityRenamer renamer = new OWLEntityRenamer(manager, Collections.singleton(ontology));
Map<OWLEntity, IRI> entity2IRIMap = new HashMap<>();
...
ont.applyChanges(renamer.changeIRI(entity2IRIMap));
모든 개인은> 이름을 바꿀 수 있습니다. 패턴으로 개인의 이름을 모두 바꾸려면 개인의 전체 목록을 쿼리하여 <>지도를 작성해야합니다.
final OWLOntologyManager m = OWLManager.createOWLOntologyManager();
final OWLOntology o = m.createOntology();
o.add(OWL.classAssertion(OWL.Individual("xxx:1"), OWL.Class("b:y")));
o.add(OWL.classAssertion(OWL.Individual("xxx:2"), OWL.Class("b:y")));
o.add(OWL.classAssertion(OWL.Individual("xxx:3"), OWL.Class("b:y")));
o.individualsInSignature().forEach(System.out::println);
final OWLEntityRenamer renamer = new OWLEntityRenamer(m, Collections.singleton(o));
final Map<OWLEntity, IRI> entity2IRIMap = new HashMap<>();
o.individualsInSignature().forEach(toRename ->
{
final IRI iri = toRename.getIRI();
entity2IRIMap.put(toRename, IRI.create(iri.toString().replaceFirst("xxx", "yyy")));
});
o.applyChanges(renamer.changeIRI(entity2IRIMap));
o.individualsInSignature().forEach(System.out::println);
인쇄해야 : 여기 OWLEntityRenamer 사용하여 완전한 작은 예를
<xxx:3>
<xxx:2>
<xxx:1>
<yyy:3>
<yyy:2>
<yyy:1>
PrefixOWLOntologyFormat가되지 않는 클래스를, 당신은 어떤 버전을 사용하고 있습니까? – Galigator