def extractModule(self, mod_iri): """ Extracts a module that is a subset of the entities in the source ontology. The result is returned as an Ontology object. mod_iri: The IRI for the extracted ontology module. Can be either an IRI object or a string containing a relative IRI, prefix IRI, or full IRI. """ modont = Ontology(self.ontology.ontman.createOntology()) modont.setOntologyID(mod_iri) # Do the syntactic locality extraction. Only do the extraction if the # signature set is non-empty. The OWL API module extractor will # produce a non-empty module even for an empty signature set. if len(self.signatures[methods.LOCALITY]) > 0: slme = SyntacticLocalityModuleExtractor(self.ontology.ontman, self.owlont, ModuleType.STAR) mod_axioms = slme.extract(self.signatures[methods.LOCALITY]) for axiom in mod_axioms: modont.addEntityAxiom(axiom) # Do all single-entity extractions. self._extractSingleEntities(self.signatures[methods.SINGLE], modont) # Add all saved axioms. for axiom in self.saved_axioms: modont.addEntityAxiom(axiom) # Remove any entities that should be excluded from the final module. for ent in self.excluded_entities: modont.removeEntity(ent, remove_annotations=True) # Add an annotation for the source of the module. sourceIRI = None ontid = self.owlont.getOntologyID() if ontid.getVersionIRI().isPresent(): sourceIRI = ontid.getVersionIRI().get() elif ontid.getOntologyIRI().isPresent(): sourceIRI = ontid.getOntologyIRI().get() if sourceIRI is not None: modont.setOntologySource(sourceIRI) return modont