code: def download_rdf(self, force=False):
          
          if self.downloading:
              return True
  
          if not force and (os.path.exists(RDF_PATH) and
                  (time.time() - os.path.getmtime(RDF_PATH)) < RDF_MAX_AGE):
              return False
          self.downloading = True
          logging.info('Re-downloading RDF library from %s' % RDF_URL)
          try:
              shutil.rmtree(os.path.join(self.rdf_library_dir, 'cache'))
          except OSError as e:
              # Ignore not finding the directory to remove.
              if e.errno != errno.ENOENT:
                  raise
  
          try:
              with open(RDF_PATH, 'w') as f:
                  with requests.get(RDF_URL, stream=True) as r:
                      shutil.copyfileobj(r.raw, f)
          except requests.exceptions.RequestException as e:
              logging.error(e)
              return True
  
          try:
              with tarfile.open(RDF_PATH, 'r') as f:
                  f.extractall(self.rdf_library_dir)
          except tarfile.TarError as e:
              logging.error(e)
              try:
                  os.unlink(RDF_PATH)
              except:
                  pass
              return True
          self.downloading = False
          return False
docs: Ensures a fresh-enough RDF file is downloaded and extracted.
  
          Returns True on error.