code: def validate_term(term, so=None, method="verify"):
      
      if so is None:
          so = load_GODag()
  
      oterm = term
      if term not in so.valid_names:
          if "resolve" in method:
              if "_" in term:
                  tparts = deque(term.split("_"))
                  tparts.pop() if "prefix" in method else tparts.popleft()
                  nterm = "_".join(tparts).strip()
                  term = validate_term(nterm, so=so, method=method)
              if term is None:
                  return None
          else:
              logging.error("Term `{0}` does not exist".format(term))
              sys.exit(1)
  
      if oterm != term:
          logging.debug("Resolved term `{0}` to `{1}`".format(oterm, term))
      return term
docs: Validate an SO term against so.obo