// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final int ENDLESS = 1000;
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String RECURSIVE_ERROR = " recursive error! ";
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeStatus {
//     OK, AMR, ERROR, REMOVE
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeType {
//     NOUN, VERB, OTHER, AMR2FRED, FRED, COMMON
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String AMR_INVERSE = ":+.+-of";


import static amr2fred.Glossary.ENDLESS;
import static amr2fred.Glossary.RECURSIVE_ERROR;
import amr2fred.Glossary.NodeStatus;
import static amr2fred.Glossary.NodeStatus.AMR;
import amr2fred.Glossary.NodeType;
import static amr2fred.Glossary.NodeType.OTHER;
import java.util.ArrayList;
import java.util.Objects;
import static amr2fred.Glossary.AMR_INVERSE;
import static amr2fred.Glossary.NodeStatus.REMOVE;
        Node newNode = new Node(var, relation, status);
        newNode.list = new ArrayList<>();
        for (Node n : list) {
            newNode.list.add(n.getCopy());
        }
        newNode.nodeId = nodeId;
        return newNode;
    }

    public Node getInstance() {
        for (Node n : this.list) {
            if (n.relation.equalsIgnoreCase(Glossary.INSTANCE)) {
                return n;
            }
        }

        return null;
    }

    public Node getChild(String relation) {
        for (Node n : this.list) {
            if (n.relation.equalsIgnoreCase(relation)) {
                return n;
            }
        }
        return null;
    }

    public Node getInverse() {
        for (Node n : this.list) {
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final int ENDLESS = 1000;
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String RECURSIVE_ERROR = " recursive error! ";
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeStatus {
//     OK, AMR, ERROR, REMOVE
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeType {
//     NOUN, VERB, OTHER, AMR2FRED, FRED, COMMON
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String AMR_INVERSE = ":+.+-of";


// Path: amr2Fred/src/amr2fred/Node.java
import static amr2fred.Glossary.ENDLESS;
import static amr2fred.Glossary.RECURSIVE_ERROR;
import amr2fred.Glossary.NodeStatus;
import static amr2fred.Glossary.NodeStatus.AMR;
import amr2fred.Glossary.NodeType;
import static amr2fred.Glossary.NodeType.OTHER;
import java.util.ArrayList;
import java.util.Objects;
import static amr2fred.Glossary.AMR_INVERSE;
import static amr2fred.Glossary.NodeStatus.REMOVE;

        Node newNode = new Node(var, relation, status);
        newNode.list = new ArrayList<>();
        for (Node n : list) {
            newNode.list.add(n.getCopy());
        }
        newNode.nodeId = nodeId;
        return newNode;
    }

    public Node getInstance() {
        for (Node n : this.list) {
            if (n.relation.equalsIgnoreCase(Glossary.INSTANCE)) {
                return n;
            }
        }

        return null;
    }

    public Node getChild(String relation) {
        for (Node n : this.list) {
            if (n.relation.equalsIgnoreCase(relation)) {
                return n;
            }
        }
        return null;
    }

    public Node getInverse() {
        for (Node n : this.list) {
            if (n.relation.matches(AMR_INVERSE) && !n.relation.equalsIgnoreCase(Glossary.AMR_PREP_ON_BEHALF_OF)