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 }