package edu.stanford.nlp.ling; import java.util.List; /** * Represents a text document as a list of Words with a String title. * * @author Sepandar Kamvar (sdkamvar@stanford.edu) * @author Joseph Smarr (jsmarr@stanford.edu) * @author Sarah Spikes (sdspikes@cs.stanford.edu) (Templatization - added another parameter) * * @param <L> The type of the labels in the Datum * @param <F> The type of the features in the Datum, * and the type stored in the List */ public interface Document<L, F, T> extends Datum<L, F>, List<T> { /** * Returns title of document, or "" if the document has no title. * Implementations should never return <tt>null</tt>. * * @return The document's title */ public abstract String title(); /** * Returns a new empty Document with the same meta-data (title, labels, etc) * as this Document. Subclasses that store extra state should provide custom * implementations of this method. This method is primarily used by the * processing API, so the input document can be preserved and the output * document can maintain the meta-data of the in document. * * @return An empty document of the right sort. */ public <OUT> Document<L, F, OUT> blankDocument(); }