docs: def _get_remote_ontology(onto_url, time_difference=None):
      """Check if the online ontology is more recent than the local ontology.
  
      If yes, try to download and store it in Invenio's cache directory.
  
      Return a boolean describing the success of the operation.
  
      :return: path to the downloaded ontology.
      """
      if onto_url is None:
          return False
  
      dl_dir = os.path.join(
          current_app.config["CLASSIFIER_WORKDIR"] or tempfile.gettempdir(),
          "classifier"
      )
      if not os.path.exists(dl_dir):
          os.makedirs(dl_dir)
  
      local_file = dl_dir + os.path.basename(onto_url)
      remote_modif_time = _get_last_modification_date(onto_url)
      try:
          local_modif_seconds = os.path.getmtime(local_file)
      except OSError:
          # The local file does not exist. Download the ontology.
          download = True
          current_app.logger.info("The local ontology could not be found.")
      else:
          local_modif_time = datetime(*time.gmtime(local_modif_seconds)[0:6])
          # Let's set a time delta of 1 hour and 10 minutes.
          time_difference = time_difference or timedelta(hours=1, minutes=10)
          download = remote_modif_time > local_modif_time + time_difference
          if download:
              current_app.logger.info(
                  "The remote ontology '{0}' is more recent "
                  "than the local ontology.".format(onto_url)
              )
  
      if download:
          if not _download_ontology(onto_url, local_file):
              current_app.logger.warning(
                  "Error downloading the ontology from: {0}".format(onto_url)
              )
  
      return local_file