code: private BootstrappingResults bootstrapMappingAndOntology(String baseIRI, Optional<SQLPPMapping> inputPPMapping,
  															 Optional<OWLOntology> inputOntology)
  			throws MappingBootstrappingException {
  
  		this.baseIRI = fixBaseURI(baseIRI);
  
  		try {
  			SQLPPMapping newPPMapping = extractPPMapping(inputPPMapping);
  
  			OWLOntology ontology = inputOntology.isPresent()
                      ? inputOntology.get()
                      : OWLManager.createOWLOntologyManager().createOntology(IRI.create(baseIRI));
  
              // update ontology
              OWLOntologyManager manager = ontology.getOWLOntologyManager();
              Set<OWLDeclarationAxiom> declarationAxioms = extractDeclarationAxioms(manager,
                      newPPMapping.getTripleMaps().stream()
                              .flatMap(ax -> ax.getTargetAtoms().stream()));
              manager.addAxioms(ontology, declarationAxioms);
  
              return new DefaultBootstrappingResults(newPPMapping, ontology);
  		}
  		catch (SQLException | MappingException | OWLOntologyCreationException e) {
  			throw new MappingBootstrappingException(e);
  		}
  	}
docs: NOT THREAD-SAFE (not reentrant)