@Nonnull @Override public List<OWLOntologyChange> visit(@Nonnull OWLObjectProperty property) { return new ObjectPropertyDefinitionExtractor(property, ontology, dataFactory) .getChangesToRemoveDefinition(); }
@Nonnull @Override public Set<OWLAxiom> visit(@Nonnull OWLObjectProperty property) { return new ObjectPropertyDefinitionExtractor(property, ontology, dataFactory).getDefiningAxioms(); }
public Set<OWLAxiom> getDefiningAxioms() { return Stream.concat(getUnaryAxioms(), ontology.getDisjointObjectPropertiesAxioms(property).stream()) .collect(toSet()); }
public List<OWLOntologyChange> getChangesToRemoveDefinition() { List<OWLOntologyChange> changes = new ArrayList<>(); getUnaryAxioms().forEach(ax -> changes.add(new RemoveAxiom(ontology, ax))); ontology.getDisjointObjectPropertiesAxioms(property).forEach(ax -> { changes.add(new RemoveAxiom(ontology, ax)); if(ax.getProperties().size() > 2) { OWLDisjointObjectPropertiesAxiom replacement = dataFactory.getOWLDisjointObjectPropertiesAxiom( ax.getPropertiesMinus(property), ax.getAnnotations() ); changes.add(new RemoveAxiom(ontology, replacement)); } }); return changes; } }