001    package org.maltparser.core.syntaxgraph;
002    
003    import java.util.Set;
004    
005    import org.maltparser.core.exception.MaltChainedException;
006    import org.maltparser.core.syntaxgraph.edge.Edge;
007    import org.maltparser.core.syntaxgraph.node.PhraseStructureNode;
008    /**
009    *
010    *
011    * @author Johan Hall
012    */
013    public interface PhraseStructure extends TokenStructure, SecEdgeStructure {
014            public PhraseStructureNode addTerminalNode() throws MaltChainedException;
015            public PhraseStructureNode addTerminalNode(int index) throws MaltChainedException;
016            public PhraseStructureNode getTerminalNode(int index);
017            public int nTerminalNode();
018            public Edge addPhraseStructureEdge(PhraseStructureNode source, PhraseStructureNode target) throws MaltChainedException;
019            public void removePhraseStructureEdge(PhraseStructureNode source, PhraseStructureNode target) throws MaltChainedException;
020            public int nEdges();
021            public PhraseStructureNode getPhraseStructureRoot();
022            public PhraseStructureNode getNonTerminalNode(int index) throws MaltChainedException;
023            public PhraseStructureNode addNonTerminalNode() throws MaltChainedException;
024            public PhraseStructureNode addNonTerminalNode(int index) throws MaltChainedException;
025            public int getHighestNonTerminalIndex();
026            public Set<Integer> getNonTerminalIndices();
027            public boolean hasNonTerminals();
028            public int nNonTerminals();
029            public boolean isContinuous();
030            public boolean isContinuousExcludeTerminalsAttachToRoot();
031    //      public void makeContinuous() throws MaltChainedException;
032    }