Searcher.java
01 /*
02  *  Searcher.java
03  *
04  *  Niraj Aswani, 19/March/07
05  *
06  *  $Id: Searcher.html,v 1.0 2007/03/19 16:22:01 niraj Exp $
07  */
08 package gate.creole.annic;
09 
10 import java.io.File;
11 import java.util.List;
12 import java.util.Map;
13 
14 /**
15  * Searcher interface.
16  @author niraj
17  *
18  */
19 public interface Searcher {
20 
21   /**
22    * Search method that allows searching
23    @throws SearchException
24    */
25   public boolean search(String query, Map<String, Object> parametersthrows SearchException;
26 
27   /**
28    * Query to search
29    */
30   public String getQuery();
31 
32   /**
33    * Return the next numberOfHits -1 indicates all
34    */
35   public Hit[] next(int numberOfHitsthrows SearchException;
36 
37   
38   /**
39    * Returns the Map containing all possible values of AnnotationTypes
40    * and Feature Values for each of this annotationType.  This call must only be invoked
41    * after a call to the getIndexedAnnotationSetNames(String indexLocation) method.
42    * Otherwise this method doesn't guranttee the correct results.
43    * The results obtained has the following format.
44    * Key: CorpusName;AnnotationSetName;AnnotationType
45    * Value: respective features
46    */
47   public Map<String, List<String>> getAnnotationTypesMap();
48 
49   
50   /**
51    * Returns an containing names of the indexed annotation sets
52    *    * Each entry has the following format:
53    <p>corpusName;annotationSetName</p>
54    * where, the corpusName is the name of the corpus the annotationSetName belongs to.
55    @throws SearchException
56    */
57   public String[] getIndexedAnnotationSetNames() throws SearchException;
58   
59   /**
60    * Returns the recently set parameters
61    */
62   public Map<String, Object> getParameters();
63 
64   /**
65    * This method can be used for exporting results
66    */
67   public void exportResults(File outputFile);
68 
69   /**
70    * return the last seen hits once again
71    */
72   public Hit[] getHits();
73 
74   public int freq(String corpusToSearchIn,
75           String annotationSetToSearchIn, String annotationType,
76           String featureName, String valuethrows SearchException;
77 
78   public int freq(String corpusToSearchIn,
79           String annotationSetToSearchIn, String annotationType)
80           throws SearchException;
81 
82   public int freq(String corpusToSearchIn,
83           String annotationSetToSearchIn, String annotationType,
84           String featureNamethrows SearchException;
85 
86   public int freq(List<Hit> patternsToSearchIn,
87           String annotationType, String feature, String value,
88           boolean inMatchedSpan, boolean inContextthrows SearchException;
89 
90   public int freq(List<Hit> patternsToSearchIn,
91           String annotationType, boolean inMatchedSpan, boolean inContextthrows SearchException;
92 
93   public Map<String, Integer> freqForAllValues(
94           List<Hit> patternsToSearchIn, String annotationType,
95           String feature, boolean inMatchedSpan, boolean inContext)
96           throws SearchException;
97 }