Taxonomy.java |
1 /* 2 * Taxonomy.java 3 * 4 * Copyright (c) 2002-2004, 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, June1991. 9 * 10 * A copy of this licence is included in the distribution in the file 11 * licence.html, and is also available at http://gate.ac.uk/gate/licence.html. 12 * 13 * borislav popov 02/2002 14 * 15 * 16 * $Id: Taxonomy.java,v 1.5 2006/02/05 23:48:47 valyt Exp $ 17 */ 18 package gate.creole.ontology; 19 20 import gate.LanguageResource; 21 import gate.creole.ResourceInstantiationException; 22 import java.net.URL; 23 import java.util.Comparator; 24 import java.util.Iterator; 25 import java.util.Set; 26 27 /** Defines the interface of an ontology */ 28 public interface Taxonomy extends LanguageResource { 29 30 /** 31 * Gets the label. 32 * 33 * @return the label of the ontology 34 */ 35 public String getLabel(); 36 37 /** 38 * Sets the label of the ontology. 39 * 40 * @param theLabel 41 * the label to be set 42 */ 43 public void setLabel(String theLabel); 44 45 /** 46 * Gets the url of this ontology 47 * 48 * @return the url of this ontology 49 */ 50 public URL getURL(); 51 52 /** 53 * Set the url of this ontology 54 * 55 * @param aUrl 56 * the url to be set 57 */ 58 public void setURL(URL aUrl); 59 60 /** 61 * Loads this ontology. According to different storages - different 62 * implementations are expected. Should take care of the modifiedAfterLoading 63 * member 64 */ 65 public void load() throws ResourceInstantiationException; 66 67 /** 68 * Stores this ontology. According to different storages - different 69 * implementations are expected. Should take care of the modifiedAfterLoading 70 * member 71 */ 72 public void store() throws ResourceInstantiationException; 73 74 /** 75 * Sets the URI of the ontology 76 * 77 * @param theURI 78 * the URI to be set 79 */ 80 public void setDefaultNameSpace(String theURI); 81 82 /** 83 * Gets the default name space for this ontology. This value is prepended 84 * to local URIs (the ones not containing '#'. 85 * 86 * @return a String value. 87 */ 88 public String getDefaultNameSpace(); 89 90 /** 91 * Sets version to this ontology. 92 * 93 * @param theVersion 94 * the version to be set 95 */ 96 public void setVersion(String theVersion); 97 98 /** 99 * Gets the version of this ontology. 100 * 101 * @return the version of this ontology 102 */ 103 public String getVersion(); 104 105 /** 106 * Gets the id of this ontology. 107 * 108 * @return the id of this ontology 109 */ 110 public String getId(); 111 112 /** 113 * Sets the id of this ontology. 114 * 115 * @param theId 116 * the id to be set 117 */ 118 public void setId(String theId); 119 120 /** 121 * Gets the comment of this ontology. 122 * 123 * @return the comment of this ontology 124 */ 125 public String getComment(); 126 127 /** 128 * Sets the comment of this ontology. 129 * 130 * @param theComment 131 * the comment to be set 132 */ 133 public void setComment(String theComment); 134 135 /** 136 * Creates a new OClass and returns it. 137 * 138 * @param aName 139 * the name of this class 140 * @param aComment 141 * the comment of this class 142 * @return the newly created class 143 */ 144 public TClass createClass(String aName, String aComment); 145 146 /** 147 * Removes a class from this ontology. 148 * 149 * @param theClass 150 * the class to be removed 151 */ 152 public void removeClass(TClass theClass); 153 154 /** 155 * Adds a class to the ontology. 156 * 157 * @param theClass 158 * the class to be added 159 */ 160 public void addClass(TClass theClass); 161 162 /** 163 * Retrieves a class by its name. 164 * 165 * @param theName 166 * the name of the class 167 * @return the class matching the name or null if no matches. 168 */ 169 public TClass getClassByName(String theName); 170 171 /** 172 * Checks if the ontology contains a class with the given name. 173 * 174 * @param theName 175 * name of a class 176 * @return true if the ontology contains a class with the name specified 177 */ 178 public boolean containsClassByName(String theName); 179 180 /** 181 * Retrieves all classes as a set. 182 * 183 * @return set of all the classes in this ontology 184 */ 185 public Set getClasses(); 186 187 /** 188 * Retireves an iterator over the classes, ordered according to the 189 * comparator. 190 * 191 * @param comp 192 * a comparator defining the order of iterating the classes 193 * @return an iterator over the classes 194 */ 195 public Iterator getClasses(Comparator comp); 196 197 /** 198 * Gets the top classes. 199 * 200 * @return set of the top classes of this ontology 201 */ 202 public Set getTopClasses(); 203 204 /** 205 * Gets the taxonomic distance between 2 classes. 206 * 207 * @param class1 208 * the first class 209 * @param class2 210 * the second class 211 * @return the taxonomic distance between the 2 classes 212 */ 213 public int getTaxonomicDistance(TClass class1, TClass class2); 214 215 /** 216 * Check for subclass relation with transitive closure 217 * 218 * @param cls1 219 * the first class 220 * @param cls2 221 * the second class 222 */ 223 public boolean isSubClassOf(String cls1, String cls2); 224 225 /** 226 * Check for subclass relation with direct closure 227 * 228 * @param cls1 229 * the first class 230 * @param cls2 231 * the second class 232 */ 233 public boolean isDirectSubClassOf(String cls1, String cls2); 234 235 /** 236 * Checks the equality of two ontologies. 237 * 238 * @param o 239 * the other ontology 240 * @return true if the ontologies are considered equal, otherwise - false. 241 */ 242 public boolean equals(Object o); 243 244 /** 245 * Sets the modified flag. 246 * 247 * @param isModified 248 * sets this param as a value of the modified property of the 249 * ontology 250 */ 251 public void setModified(boolean isModified); 252 253 /** 254 * Checks the modified flag. 255 * 256 * @return whether the ontology has been modified after the loading 257 */ 258 public boolean isModified(); 259 }// interface Taxonomy 260