AnnotationOrthography.java
01 package gate.creole.orthomatcher;
02 
03 import gate.Annotation;
04 import gate.AnnotationSet;
05 import gate.Document;
06 import gate.creole.ExecutionException;
07 
08 import java.util.List;
09 import java.util.Map;
10 import java.util.Set;
11 
12 /*
13  * This interface is used so that one can create an orthography class that that
14  * defines the behaviour of the Orthomatcher.
15  */
16 public interface AnnotationOrthography {
17   /**
18    * Returns normalized content of an annotation - removes extra white spaces.
19    *
20    @throws ExecutionException
21    */
22   public String getStringForAnnotation(Annotation a, gate.Document d)
23       throws ExecutionException;
24 
25   public boolean fuzzyMatch(String s1, String s2);
26 
27   public boolean allNonStopTokensInOtherAnnot(List<Annotation> firstName,
28       List<Annotation> secondName, String TOKEN_STRING_FEATURE_NAME,
29       boolean caseSensitive);
30 
31   public String stripPersonTitle(String annotString, Annotation annot,
32       Document doc, Map<Integer, List<Annotation>> tokensMap,
33       Map<Integer, List<Annotation>> normalizedTokensMap, AnnotationSet nameAllAnnots)
34       throws ExecutionException;
35 
36   public boolean matchedAlready(Annotation annot1, Annotation annot2,
37       List<List<Integer>> matchesDocFeature, AnnotationSet nameAllAnnots);
38 
39   public Annotation updateMatches(Annotation newAnnot, String annotString,
40       Map<Integer,String> processedAnnots, AnnotationSet nameAllAnnots,
41       List<List<Integer>> matchesDocFeature);
42 
43   public void updateMatches(Annotation newAnnot, Annotation prevAnnot,
44       List<List<Integer>> matchesDocFeature, AnnotationSet nameAllAnnots);
45 
46   public Set<String> buildTables(AnnotationSet nameAllAnnots);
47 
48   public boolean isUnknownGender(String gender);
49 }