package edu.jhu.agiga;
import java.io.IOException;
import java.io.Writer;
import java.io.Serializable;
import java.util.List;
import edu.jhu.agiga.AgigaConstants.DependencyForm;
import edu.stanford.nlp.ling.WordLemmaTag;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.TreeGraphNode;
import edu.stanford.nlp.trees.TypedDependency;
/**
* AgigaSentence provides access to the sentence-level annotations: AgigaToken
* objects, AgigaTypedDependency objects for the three dependency forms, the
* contituency parse as text, and the Stanford parser API objects for
* dependencies and constituency parses.
*
* This class also provides methods for writing out these various annotations in
* human-readable formats and some common machine-readable formats.
*
* @author mgormley
*
*/
public interface AgigaSentence extends Serializable {
@Override public boolean equals(Object other);
@Override public int hashCode();
public int getSentIdx();
public List<AgigaToken> getTokens();
public String getParseText();
public List<AgigaTypedDependency> getAgigaDeps(DependencyForm form);
public List<AgigaTypedDependency> getBasicDeps();
public List<AgigaTypedDependency> getColDeps();
public List<AgigaTypedDependency> getColCcprocDeps();
// -------- Stanford API methods --------
public List<WordLemmaTag> getStanfordWordLemmaTags();
public List<TypedDependency> getStanfordTypedDependencies(DependencyForm form);
public List<TreeGraphNode> getStanfordTreeGraphNodes(DependencyForm form);
public Tree getStanfordContituencyTree();
// -------- Printing methods --------
public void writeWords(Writer writer) throws IOException;
public void writeLemmas(Writer writer) throws IOException;
public void writeTokens(Writer writer, boolean useLemmas, boolean useNormNer) throws IOException;
public void writePosTags(Writer writer) throws IOException;
public void writeNerTags(Writer writer) throws IOException;
public void writeTags(Writer writer, boolean useLemmas, boolean useNormNer, boolean useNerTags) throws IOException;
public void writeConnlStyleDeps(Writer writer, DependencyForm form) throws IOException;
public void writeParseText(Writer writer) throws IOException;
}