/* Copyright (C) 2002 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
/**
@author Andrew McCallum <a href="mailto:mccallum@cs.umass.edu">mccallum@cs.umass.edu</a>
*/
package edu.nd.nina.extract;
import edu.nd.nina.types.Sequence;
public interface Tokenization extends Sequence {
/**
* Returns the document of which this is a tokenization.
*/
public Object getDocument();
public Span getSpan(int i);
/**
* Returns a span formed by concatenating the spans from start to end. In
* more detail:
* <ul>
* <li>The start of the new span will be the start index of
* <tt>getSpan(start)</tt>.
* <li>The end of the new span will be the start index of
* <tt>getSpan(end)</tt>.
* <li>Unless <tt>start == end</tt>, the new span will completely include
* <tt>getSpan(start)</tt>.
* <li>The new span will never intersect <tt>getSpan(end)</tt>
* <li>If <tt>start == end</tt>, then the new span contains no text.
* </ul>
*
* @param start
* The index of the first token in the new span (inclusive). This
* is an index of a token, *not* an index into the document.
* @param end
* The index of the first token in the new span (exclusive). This
* is an index of a token, *not* an index into the document.
* @return A span into this tokenization's document
*/
Span subspan(int start, int end);
}