lojix/logic/src/main/com/thesett/aima/logic/fol/Clause.java
public Clause queryConversion()
    {
        Clause copy = (Clause) super.queryConversion();

        if (head != null)
        {
            copy.head = head.queryConversion();
        }

        if (body != null)
        {
            copy.body = new Functor[body.length];

            for (int i = 0; i < body.length; i++)
            {
                copy.body[i] = body[i].queryConversion();
            }
        }

        return copy;
    }
public Clause queryConversion()
    {
        Clause copy = (Clause) super.queryConversion();

        if (head != null)
        {
            copy.head = head.queryConversion();
        }

        if (body != null)
        {
            copy.body = new Functor[body.length];

            for (int i = 0; i < body.length; i++)
            {
                copy.body[i] = body[i].queryConversion();
            }
        }

        return copy;
    }
Makes a clone of the term, converting its variables to refer directly to their storage cells.

@return A copy of this term, with entirely independent variables to the term it was copied from.