/* 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>
*/
// Rename to Segment, (then also Segmentation, SegmentSequence, SegmentList)
// Alternatively, think about names: Annotation, AnnotationList,
package edu.nd.nina.extract;
/**
* A sub-section of a document, either linear or two-dimensional. Spans are
* immutable.
*/
public interface Span {
/**
* Returns a textual representatio of the span, suitable for XML output,
* e.g.
*/
String getText();
/** Returns a new span that is the intersection of this span and another. */
Span intersection(Span r);
Object getDocument();
boolean intersects(Span r);
boolean isSubspan(Span r);
/**
* Returns an integer index identifying the start of this span. Beware that
* in some cases (e.g., for images), this may not correspond directly to a
* sequence index.
*/
int getStartIdx();
/**
* Returns an integer index identifying the end of this span. Beware that in
* some cases (e.g., for images), this may not correspond directly to a
* sequence index.
*/
int getEndIdx();
}