code: def execute(self, lf_raw: str) -> int:
          
          # Remove "a:" prefixes from attributes (hack)
          logical_form = re.sub(r"\(a:", r"(", lf_raw)
          parse = semparse_util.lisp_to_nested_expression(logical_form)
          if len(parse) < 2:
              return -1
          if parse[0] == 'infer':
              args = [self._exec_and(arg) for arg in parse[1:]]
              if None in args:
                  return -1
              return self._exec_infer(*args)
          return -1
docs: Very basic model for executing friction logical forms. For now returns answer index (or
          -1 if no answer can be concluded)