OntoGazetteerImpl.java
001 /*
002  * OntoGazetteerImpl.java
003  *
004  * Copyright (c) 2002, The University of Sheffield.
005  *
006  * This file is part of GATE (see http://gate.ac.uk/), and is free
007  * software, licenced under the GNU Library General Public License,
008  * Version 2, June1991.
009  *
010  * A copy of this licence is included in the distribution in the file
011  * licence.html, and is also available at http://gate.ac.uk/gate/licence.html.
012  *
013  * borislav popov 02/2002
014  *
015  */
016 package gate.creole.gazetteer;
017 
018 import gate.Factory;
019 import gate.FeatureMap;
020 import gate.Resource;
021 import gate.creole.ExecutionException;
022 import gate.creole.ResourceInstantiationException;
023 
024 import java.util.Set;
025 
026 /** OntoGazetteerImpl <br>
027  *  An ontology-aware gazetteer, producing additional annotations
028  *  with features [class] and [ontology].
029  */
030 public class OntoGazetteerImpl extends AbstractOntoGazetteer {
031 
032   private static final long serialVersionUID = -1899789184476649606L;
033 
034   public OntoGazetteerImpl() {
035   }
036 
037   @Override
038   public Set<Lookup> lookup(String singleItem) {
039     return gaz.lookup(singleItem);
040   }
041 
042   /** Initialize this onto gazetteer
043    *  @return .*/
044   @Override
045   public Resource init() throws ResourceInstantiationException {
046     try {
047       checkParameters();
048 
049       FeatureMap params = Factory.newFeatureMap();
050 
051       mappingDefinition = new MappingDefinition();
052       mappingDefinition.setURL(mappingURL);
053       mappingDefinition.load();
054 
055       params.put("caseSensitive",caseSensitive);
056       params.put("listsURL",listsURL);
057       params.put("encoding",encoding);
058       params.put("mappingDefinition",mappingDefinition);
059       gaz = (Gazetteer)Factory.createResource(gazetteerName,params);
060     catch (InvalidFormatException e) {
061       throw new ResourceInstantiationException(e);
062     }
063     return this;
064   // init
065 
066   /** Executes this onto gazetteer over a pre-set document
067    *  @throws ExecutionException if something goes wrong with the execution */
068   @Override
069   public void execute()throws ExecutionException {
070     if (null == gaz) {
071       throw new ExecutionException("gazetteer not initialized (null).");
072     }
073 
074     gaz.setDocument(document);
075     gaz.setAnnotationSetName(annotationSetName);
076     gaz.setEncoding(encoding);
077     gaz.setCorpus(corpus);
078     gaz.execute();
079   // execute
080 
081   /**
082    * Checks the parameters set to this gazetteer
083    @throws ResourceInstantiationException if something goes wrong
084    */
085   private void checkParameters() throws ResourceInstantiationException {
086     boolean set = null!=gazetteerName;
087     set &= null!=listsURL;
088     set&=null!=mappingURL;
089     if (!set) {
090      throw new ResourceInstantiationException("some parameters are not set (e.g.gazetteerName,"
091         +"listURL,mappingDefinition, document");
092     }
093 
094   // checkParameters
095 
096   /**
097    * Removes a single string item from the gazetteer model
098    @param singleItem removes a string item from the gazetteer model
099    @return true if the string is removed from the model, otherwise - false
100    */
101   @Override
102   public boolean remove(String singleItem) {
103     return gaz.remove(singleItem);
104   }
105 
106   /**
107    * Adds a string item to the model and associates it with a Lookup
108    @param singleItem the string item to be added
109    @param lookup the lookup to be associated with the string item
110    @return true if the item has been added, otherwise - false.
111    */
112   @Override
113   public boolean add(String singleItem, Lookup lookup) {
114     return gaz.add(singleItem,lookup);
115   }
116 
117 // OntoGazetteerImpl