code: def _read_schema(self):
          
          cache_filename = os.path.join(
              CACHE_ROOT, "%s.smt" % self._representation)
          log.info("Attempting to read local schema at %s" % cache_filename)
          try:
              if time.time() - os.stat(cache_filename).st_mtime > CACHE_EXPIRY:
                  log.warning("Cache expired, re-pulling")
                  self._pull_schema_definition(cache_filename)
          except OSError:
              log.warning("Local schema not found. Pulling from web.")
              self._pull_schema_definition(cache_filename)
          else:
              log.info("Success")
  
          return cache_filename
docs: return the local filename of the definition file for this schema
          if not present or older than expiry, pull the latest version from
          the web at self._ontology_file