001package org.maltparser.core.syntaxgraph;
002
003import java.util.Set;
004
005import org.maltparser.core.exception.MaltChainedException;
006import org.maltparser.core.syntaxgraph.edge.Edge;
007import org.maltparser.core.syntaxgraph.node.PhraseStructureNode;
008/**
009*
010*
011* @author Johan Hall
012*/
013public 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}