|
Annotation |
|
1 /* 2 * Annotation.java 3 * 4 * Copyright (c) 1998-2001, The University of Sheffield. 5 * 6 * This file is part of GATE (see http://gate.ac.uk/), and is free 7 * software, licenced under the GNU Library General Public License, 8 * Version 2, June 1991 (in the distribution as file licence.html, 9 * and also available at http://gate.ac.uk/gate/licence.html). 10 * 11 * Hamish Cunningham, 19/Jan/00 12 * 13 * $Id: Annotation.java,v 1.18 2002/03/14 16:40:11 hamish Exp $ 14 */ 15 16 package gate; 17 18 import java.io.*; 19 import java.util.*; 20 import gate.util.*; 21 import gate.event.*; 22 23 /** An Annotation is an arc in an AnnotationSet. It is immutable, to avoid 24 * the situation where each annotation has to point to its parent graph in 25 * order to tell it to update its indices when it changes. 26 * <P> Changes from TIPSTER: no ID; single span only. 27 * 28 * The event code is needed so a persistent annotation set can listen to 29 * its annotations and update correctly the database 30 */ 31 public interface Annotation 32 extends FeatureBearer, IdBearer, Comparable, Serializable { 33 34 /** The type of the annotation (corresponds to TIPSTER "name"). */ 35 public String getType(); 36 37 /** The start node. */ 38 public Node getStartNode(); 39 40 /** The end node. */ 41 public Node getEndNode(); 42 43 /** Ordering */ 44 public int compareTo(Object o) throws ClassCastException; 45 46 /** This verifies if <b>this</b> annotation is compatible with another one. 47 * Compatible means that they hit the same possition and the FeatureMap of 48 * <b>this</b> is incuded into aAnnot FeatureMap. 49 * @param anAnnot a gate Annotation. 50 * @return <code>true</code> if aAnnot is compatible with <b>this</> and 51 * <code>false</code> otherwise. 52 */ 53 public boolean isCompatible(Annotation anAnnot); 54 55 /** This verifies if <b>this</b> annotation is compatible with another one, 56 * given a set with certain keys. 57 * In this case, compatible means that they hit the same possition 58 * and those keys from <b>this</b>'s FeatureMap intersected with 59 * aFeatureNamesSet are incuded together with their values into the aAnnot's 60 * FeatureMap. 61 * @param anAnnot a gate Annotation. 62 * @param aFeatureNamesSet is a set containing certian key that will be 63 * intersected with <b>this</b>'s FeatureMap's keys. 64 * @return <code>true</code> if aAnnot is compatible with <b>this</> and 65 * <code>false</code> otherwise. 66 */ 67 public boolean isCompatible(Annotation anAnnot, Set aFeatureNamesSet); 68 69 /** This method verifies if two annotation and are partially compatible. 70 * Partially compatible means that they overlap and the FeatureMap of 71 * <b>this</b> is incuded into FeatureMap of aAnnot. 72 * @param anAnnot a gate Annotation. 73 * @return <code>true</code> if <b>this</b> is partially compatible with 74 * aAnnot and <code>false</code> otherwise. 75 */ 76 public boolean isPartiallyCompatible(Annotation anAnnot); 77 78 /** This method verifies if two annotation and are partially compatible, 79 * given a set with certain keys. 80 * In this case, partially compatible means that they overlap 81 * and those keys from <b>this</b>'s FeatureMap intersected with 82 * aFeatureNamesSet are incuded together with their values into the aAnnot's 83 * FeatureMap. 84 * @param anAnnot a gate Annotation. 85 * @param aFeatureNamesSet is a set containing certian key that will be 86 * intersected with <b>this</b>'s FeatureMap's keys. 87 * @return <code>true</code> if <b>this</b> is partially compatible with 88 * aAnnot and <code>false</code> otherwise. 89 */ 90 public boolean isPartiallyCompatible(Annotation anAnnot,Set aFeatureNamesSet); 91 92 /** Two Annotation are coestensive if their offsets are the same. 93 * @param anAnnot A Gate annotation. 94 * @return <code>true</code> if two annotation hit the same possition and 95 * <code>false</code> otherwise 96 */ 97 public boolean coextensive(Annotation anAnnot); 98 99 /** This method tells if <b>this</b> overlaps aAnnot. 100 * @param aAnnot a gate Annotation. 101 * @return <code>true</code> if they overlap and <code>false</code> false if 102 * they don't. 103 */ 104 public boolean overlaps(Annotation aAnnot); 105 106 /** 107 * 108 * Removes an annotation listener 109 */ 110 public void removeAnnotationListener(AnnotationListener l); 111 /** 112 * 113 * Adds an annotation listener 114 */ 115 public void addAnnotationListener(AnnotationListener l) ; 116 117 } // interface Annotation, 118
|
Annotation |
|