docs: def get_or_create_annotation(self, url: str) -> Namespace:
          """Insert the namespace file at the given location to the cache.
  
          :raises: pybel.resources.exc.ResourceError
          """
          result = self.get_namespace_by_url(url)
  
          if result is not None:
              return result
  
          t = time.time()
  
          bel_resource = get_bel_resource(url)
  
          result = Namespace(
              url=url,
              is_annotation=True,
              **_get_annotation_insert_values(bel_resource)
          )
          result.entries = [
              NamespaceEntry(name=name, identifier=label)
              for name, label in bel_resource['Values'].items()
              if name
          ]
  
          self.session.add(result)
          self.session.commit()
  
          log.info('inserted annotation: %s (%d terms in %.2f seconds)', url, len(bel_resource['Values']),
                   time.time() - t)
  
          return result