public Proposition makeGround() {
    PropositionImpl ground = (PropositionImpl) this.clone();
    for (Term term : ground.getTerms()) {
      if (term.isVar() && !term.isGround()) {
        Term t = new Atom(term.toString().toLowerCase());
        jason.asSemantics.Unifier un = new jason.asSemantics.Unifier();
        if (un.unifies(t, term)) {
          term.apply(un);
        }
      }
    }

    return ground;
  }