You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2009/08/24 16:38:54 UTC

svn commit: r807245 - in /incubator/uima/sandbox/trunk/BSFAnnotator: ./ desc/ src/test/resources/

Author: schor
Date: Mon Aug 24 14:38:53 2009
New Revision: 807245

URL: http://svn.apache.org/viewvc?rev=807245&view=rev
Log:
[UIMA-1506] [UIMA-1501]

Added:
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAggregatedAE.xml
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAnnotator.xml
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BeanshellTestAnnotator.xml
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/NICKNAMES.bsh
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/RhinoTestAnnotator.xml
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.bsh
    incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.js
Removed:
    incubator/uima/sandbox/trunk/BSFAnnotator/desc/
Modified:
    incubator/uima/sandbox/trunk/BSFAnnotator/README.txt
    incubator/uima/sandbox/trunk/BSFAnnotator/pom.xml

Modified: incubator/uima/sandbox/trunk/BSFAnnotator/README.txt
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/README.txt?rev=807245&r1=807244&r2=807245&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/README.txt (original)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/README.txt Mon Aug 24 14:38:53 2009
@@ -6,9 +6,9 @@
 
 The BSFAnnotator component provides an UIMA annotator implementation that allow the use of a 
 BSF-supported scripting language to implement the initialize and process methods.  The annotator 
-has one mandatory parameter the 'SourceFile' that contains the script.  Have a look at the 
-BeanshellTestAnnotator.xml, JRubyTestAnnotator.xml or at the more complex BSFAggregatedAE.xml and 
-their associated scripts.
-
-
+has one mandatory parameter the 'SourceFile' that contains the script.  
 
+Sample code is provided; have a look at the 
+BeanshellTestAnnotator.xml, RhinoTestAnnotator.xml or at the more complex BSFAggregatedAE.xml and 
+their associated scripts.  These are found in the src/test/java and src/test/resources directory 
+in the source distribution.
\ No newline at end of file

Modified: incubator/uima/sandbox/trunk/BSFAnnotator/pom.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/pom.xml?rev=807245&r1=807244&r2=807245&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/pom.xml (original)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/pom.xml Mon Aug 24 14:38:53 2009
@@ -47,6 +47,7 @@
 			<groupId>org.apache.uima</groupId>
 			<artifactId>uimaj-component-test-util</artifactId>
 		</dependency>
+    
 		<dependency>
 			<groupId>local.bsf.dependency</groupId>
 			<artifactId>bsf</artifactId>
@@ -86,13 +87,5 @@
   
 	<build>
 		<finalName>uimaj-an-bsf</finalName>
-		<resources>
-			<resource>
-				<directory>desc</directory>
-			</resource>
-			<resource>
-				<directory>src/main/resources</directory>
-			</resource>
-		</resources>
 	</build>
 </project>

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAggregatedAE.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAggregatedAE.xml?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAggregatedAE.xml (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAggregatedAE.xml Mon Aug 24 14:38:53 2009
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
+<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+<primitive>false</primitive>
+<delegateAnalysisEngineSpecifiers>
+<delegateAnalysisEngine key="BeanshellNicknameAnnotator">
+<import location="BSFAnnotator.xml"/>
+</delegateAnalysisEngine>
+<delegateAnalysisEngine key="RhinoAnnotator">
+<import location="BSFAnnotator.xml"/>
+</delegateAnalysisEngine>
+</delegateAnalysisEngineSpecifiers>
+<analysisEngineMetaData>
+<name>Aggregated BSF AE</name>
+<description>Example of an aggregated AE calling several BSF annotators.</description>
+<version>1.0</version>
+<vendor>TEMIS</vendor>
+<configurationParameters searchStrategy="language_fallback">
+<configurationParameter>
+<name>BshSourceFile</name>
+<description>BSF script to be loaded</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+<overrides>
+<parameter>BeanshellNicknameAnnotator/SourceFile</parameter>
+</overrides>
+</configurationParameter>
+<configurationParameter>
+<name>RhinoSourceFile</name>
+<description>BSF script to be loaded</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+<overrides>
+<parameter>RhinoAnnotator/SourceFile</parameter>
+</overrides>
+</configurationParameter>
+<configurationParameter>
+<name>RhinoRegexp</name>
+<description>Regular expression</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+<overrides>
+<parameter>RhinoAnnotator/Regexp</parameter>
+</overrides>
+</configurationParameter>
+</configurationParameters>
+<configurationParameterSettings>
+<nameValuePair>
+<name>BshSourceFile</name>
+<value>
+<string>NICKNAMES.bsh</string>
+</value>
+</nameValuePair>
+<nameValuePair>
+<name>RhinoSourceFile</name>
+<value>
+<string>TEST.js</string>
+</value>
+</nameValuePair>
+<nameValuePair>
+<name>RhinoRegexp</name>
+<value>
+<string>\b\w+\b</string>
+</value>
+</nameValuePair>
+</configurationParameterSettings>
+<flowConstraints>
+<fixedFlow>
+<node>RhinoAnnotator</node>
+<node>BeanshellNicknameAnnotator</node>
+</fixedFlow>
+</flowConstraints>
+<typePriorities/>
+<fsIndexCollection/>
+<capabilities>
+<capability>
+<inputs/>
+<outputs/>
+<languagesSupported/>
+</capability>
+</capabilities>
+<operationalProperties>
+<modifiesCas>true</modifiesCas>
+<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+<outputsNewCASes>false</outputsNewCASes>
+</operationalProperties>
+</analysisEngineMetaData>
+<resourceManagerConfiguration/>
+</taeDescription>

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAnnotator.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAnnotator.xml?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAnnotator.xml (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BSFAnnotator.xml Mon Aug 24 14:38:53 2009
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
+<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+<primitive>true</primitive>
+<annotatorImplementationName>org.apache.uima.annotator.bsf.BSFAnnotator</annotatorImplementationName>
+<analysisEngineMetaData>
+<name>BSF Annotator</name>
+<description>Generic BSF Annotator.</description>
+<version>1.0</version>
+<vendor>TEMIS</vendor>
+<configurationParameters>
+<configurationParameter>
+<name>SourceFile</name>
+<description>BSF script to be loaded</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+<configurationParameter>
+<name>Regexp</name>
+<description>Regular expression</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+</configurationParameters>
+<configurationParameterSettings>
+<nameValuePair>
+<name>SourceFile</name>
+<value>
+<string>TEST.rb</string>
+</value>
+</nameValuePair>
+<nameValuePair>
+<name>Regexp</name>
+<value>
+<string>Dave|David|Bob|Tim|Joe</string>
+</value>
+</nameValuePair>
+</configurationParameterSettings>
+<typeSystemDescription>
+    <typeDescription>
+      <name>org.apache.uima.annotator.bsf.types.Token</name>
+      <description></description>
+      <supertypeName>uima.tcas.Annotation</supertypeName>
+      <features/>
+    </typeDescription>
+    <typeDescription>
+      <name>org.apache.uima.annotator.bsf.types.Firstname</name>
+      <description></description>
+      <supertypeName>uima.tcas.Annotation</supertypeName>
+      <features/>
+    </typeDescription>
+    <typeDescription>
+      <name>org.apache.uima.annotator.bsf.types.Nickname</name>
+      <description></description>
+      <supertypeName>org.apache.uima.annotator.bsf.types.Firstname</supertypeName>
+      <features>
+        <featureDescription>
+        <name>firstnames</name>
+        <description>List of possible firstnames related to this nickname</description>
+        <rangeTypeName>uima.cas.StringArray</rangeTypeName>
+        </featureDescription>
+      </features>
+    </typeDescription>
+</typeSystemDescription>
+<typePriorities/>
+<fsIndexCollection/>
+<capabilities>
+<capability>
+<inputs/>
+<outputs/>
+<languagesSupported>
+<language>x-unspecified</language>
+</languagesSupported>
+</capability>
+</capabilities>
+<operationalProperties>
+<modifiesCas>true</modifiesCas>
+<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+<outputsNewCASes>false</outputsNewCASes>
+</operationalProperties>
+</analysisEngineMetaData>
+</taeDescription>

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BeanshellTestAnnotator.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BeanshellTestAnnotator.xml?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BeanshellTestAnnotator.xml (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/BeanshellTestAnnotator.xml Mon Aug 24 14:38:53 2009
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
+<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+<primitive>true</primitive>
+<annotatorImplementationName>org.apache.uima.annotator.bsf.BSFAnnotator</annotatorImplementationName>
+<analysisEngineMetaData>
+<name>BSH Annotator</name>
+<description>Test of Beanshell BSF Annotator.</description>
+<version>1.0</version>
+<vendor>TEMIS</vendor>
+<configurationParameters>
+<configurationParameter>
+<name>SourceFile</name>
+<description>BSF script to be loaded</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+<configurationParameter>
+<name>Regexp</name>
+<description>Regular expression</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+</configurationParameters>
+<configurationParameterSettings>
+<nameValuePair>
+<name>SourceFile</name>
+<value>
+<string>TEST.bsh</string>
+</value>
+</nameValuePair>
+<nameValuePair>
+<name>Regexp</name>
+<value>
+<string>Dave|David|Bob|Tim|Joe</string>
+</value>
+</nameValuePair>
+</configurationParameterSettings>
+<typeSystemDescription>
+    <typeDescription>
+      <name>org.apache.uima.annotator.bsf.types.Token</name>
+      <description></description>
+      <supertypeName>uima.tcas.Annotation</supertypeName>
+      <features/>
+    </typeDescription>
+</typeSystemDescription>
+<typePriorities/>
+<fsIndexCollection/>
+<capabilities>
+<capability>
+<inputs/>
+<outputs/>
+<languagesSupported>
+<language>x-unspecified</language>
+</languagesSupported>
+</capability>
+</capabilities>
+<operationalProperties>
+<modifiesCas>true</modifiesCas>
+<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+<outputsNewCASes>false</outputsNewCASes>
+</operationalProperties>
+</analysisEngineMetaData>
+</taeDescription>

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/NICKNAMES.bsh
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/NICKNAMES.bsh?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/NICKNAMES.bsh (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/NICKNAMES.bsh Mon Aug 24 14:38:53 2009
@@ -0,0 +1,475 @@
+/**
+ * Example of beanshell script to be used as input for the
+ * BSFAnnotator 
+ * @author Olivier Terrier
+ * @version 1.0 
+ */
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.regex.Pattern;
+
+import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.jcas.cas.StringArray;
+import org.apache.uima.jcas.tcas.Annotation;
+import org.apache.uima.annotator.bsf.types.Firstname;
+import org.apache.uima.annotator.bsf.types.Nickname;
+import org.apache.uima.annotator.bsf.types.Token;
+
+	/**
+	 * Initialisation of global variables
+	 */
+	String scriptName;
+	HashMap nicknames;
+
+	/**
+	 * Invokes this annotator's analysis logic. This annotator will access the
+	 * data in the JCas and add new data to the JCas.
+	 * 
+	 * @param jcas
+	 *            contains the document to be analyzed and may contain other
+	 *            metadata about that document.
+	 * @param rs
+	 *            a list of output types and features that this annotator should
+	 *            produce.
+	 */
+	public void process(JCas jcas)
+      throws AnalysisEngineProcessException {
+	  // iterates on the existing token that have been created by the previous
+		// annotators
+	  ArrayList annots = new ArrayList();
+	  ArrayList tokens = new ArrayList();
+	  Iterator tokenIt = jcas.getAnnotationIndex(Token.type).iterator();
+	  while (tokenIt.hasNext()) {
+		    Token token = (Token)tokenIt.next();
+		    tokens.add(token);
+		    String name = token.getCoveredText();
+		    if (nicknames.containsKey(name)) {
+		        ArrayList names = (ArrayList)nicknames.get(name);
+            // is it a real firstname ?
+		        if (names.isEmpty()) {
+		        	Firstname annot = new Firstname(jcas, token.getStart(), token.getEnd());
+		            annots.add(annot);
+		        } else { // it's a nickname
+		        	Nickname annot = new Nickname(jcas, token.getStart(), token.getEnd());
+		        	StringArray strarray = new StringArray(jcas, names.size());
+		        	for (int i=0; i < names.size(); i++) {
+		               strarray.set(i, (String)names.get(i));
+		        	}
+		            annot.setFirstnames(strarray);
+               	  	annots.add(annot);
+		        }
+		    }
+	  }
+	  for (Iterator it = annots.iterator(); it.hasNext();) {
+		  ((Annotation)it.next()).addToIndexes();
+	  }
+	  for (Iterator it = tokens.iterator(); it.hasNext();) {
+		  ((Annotation)it.next()).removeFromIndexes();
+	  }
+	}
+
+	/**
+	 * Performs any startup tasks required by this annotator. The Analysis
+	 * Engine calls this method only once, just after an Annotator has been
+	 * instantiated.
+	 * 
+	 * @param aContext
+	 *            Provides access to external resources that may be used by this
+	 *            annotator. This includes configuration parameters, logging and
+	 *            instrumentation services, and access to external analysis
+	 *            resources.
+	 */
+	public void initialize(UimaContext aContext)
+			throws ResourceInitializationException {
+		// List of Firstnames => Nickname
+		String[] name_list = { "Aaron,Erin", "Aaron,Ron",
+				"Aaron,Ronnie", "Abel,Ab", "Abel,Abe", "Abel,Eb", "Abel,Ebbie",
+				"Abiel,Ab", "Abigail,Abby", "Abigail,Gail", "Abigail,Nabby",
+				"Abner,Ab", "Abraham,Ab", "Abraham,Abe", "Abram,Ab",
+				"Adaline,Ada", "Adaline,Addy", "Adaline,Delia", "Adaline,Dell",
+				"Adaline,Lena", "Adelaide,Addy", "Adelaide,Adele",
+				"Adelaide,Dell", "Adelaide,Della", "Adelaide,Heidi",
+				"Adeline,Ada", "Adeline,Addy", "Adeline,Delia", "Adeline,Dell",
+				"Adeline,Lena", "Adelphia,Addy", "Adelphia,Adele",
+				"Adelphia,Dell", "Adelphia,Delphia", "Adelphia,Philly",
+				"Agatha,Aggy", "Agnes,Aggy", "Agnes,Inez", "Agnes,Nessa",
+				"Aileen,Allie", "Aileen,Lena", "Alan,Al", "Albert,Al",
+				"Albert,Bert", "Alberta,Allie", "Alberta,Bert",
+				"Alberta,Bertie", "Aldo,Al", "Aldrich,Rich", "Aldrich,Riche",
+				"Alexander,Al", "Alexander,Alex", "Alexander,Sandy",
+				"Alexandra,Alex", "Alexandra,Alla", "Alexandra,Sandra",
+				"Alexandra,Sandy", "Alfonse,Al", "Alfred,Al", "Alfred,Fred",
+				"Alfred,Freddy", "Alfreda,Alfy", "Alfreda,Freda",
+				"Alfreda,Freddy", "Alfreda,Frieda", "Alice,Allie",
+				"Alice,Elsie", "Alice,Lisa", "Alicia,Allie", "Alicia,Elsie",
+				"Alicia,Lisa", "Allan,Al", "Allen,Al", "Allisandra,Allie",
+				"Almena,Allie", "Almena,Mena", "Alonzo,Al", "Alonzo,Lon",
+				"Alonzo,Lonzo", "Amanda,Manda", "Amanda,Mandy", "Amelia,Amy",
+				"Amelia,Emily", "Amelia,Mel", "Amelia,Millie", "Anderson,Andy",
+				"Andrew,Andy", "Andrew,Drew", "Ann,Annie", "Ann,Nan",
+				"Ann,Nana", "Ann,Nancy", "Ann,Nanny", "Anne,Annie", "Anne,Nan",
+				"Anne,Nana", "Anne,Nancy", "Anne,Nanny", "Anthony,Tony",
+				"Antoinette,Ann", "Antoinette,Netta", "Antoinette,Tony",
+				"Antonia,Ann", "Antonia,Netta", "Antonia,Tony", "Arabella,Ara",
+				"Arabella,Arry", "Arabella,Bella", "Arabella,Belle",
+				"Arabelle,Ara", "Arabelle,Arry", "Arabelle,Bella",
+				"Arabelle,Belle", "Archibald,Archie", "Arlene,Arly",
+				"Arlene,Lena", "Armena,Arry", "Armena,Mena", "Arthur,Art",
+				"Asahel,Asa", "Asaph,Asa", "Asenath,Assene", "Asenath,Natty",
+				"Asenath,Sene", "August,Gus", "Augusta,Aggy", "Augusta,Gatsy",
+				"Augusta,Gussie", "Augusta,Tina", "Augustina,Aggy",
+				"Augustina,Gatsy", "Augustina,Gussie", "Augustina,Tina",
+				"Augustine,August", "Augustine,Austin", "Augustine,Gus",
+				"Augustus,August", "Augustus,Austin", "Augustus,Gus",
+				"Azariah,Aze", "Azariah,Riah", "Barbara,Bab", "Barbara,Babs",
+				"Barbara,Barby", "Barbara,Bobbie", "Barnabas,Barney",
+				"Bartholomew,Bart", "Bartholomew,Bartel", "Bartholomew,Bat",
+				"Bartholomew,Mees", "Bartholomew,Meus", "Beatrice,Bea",
+				"Beatrice,Trisha", "Beatrice,Trix", "Beatrice,Trixie",
+				"Belinda,Belle", "Belinda,Linda", "Benedict,Ben",
+				"Benedict,Bennie", "Benjamin,Ben", "Benjamin,Benjy",
+				"Benjamin,Bennie", "Benjamin,Jamie", "Bernard,Barney",
+				"Bernard,Berney", "Bernard,Bernie", "Bertha,Bert",
+				"Bertha,Bertie", "Bertha,Birdie", "Bill,Fred", "Billy,Fred",
+				"Bradford,Brad", "Bradford,Ford", "Bridget,Biddie",
+				"Bridget,Biddy", "Bridget,Bridgie", "Bridget,Bridie",
+				"Broderick,Brady", "Broderick,Brody", "Broderick,Rick",
+				"Broderick,Ricky", "Calvin,Cal", "Calvin,Vin", "Calvin,Vinny",
+				"Cameron,Cam", "Cameron,Ron", "Cameron,Ronny",
+				"Camille,Cammie", "Camille,Millie", "Carol,Carrie",
+				"Carol,Cassie", "Carol,Lynn", "CarolAnn,Carol",
+				"CarolAnn,Carole", "Caroline,Carol", "Caroline,Carole",
+				"Caroline,Carrie", "Caroline,Cassie", "Caroline,Lynn",
+				"Carolyn,Carrie", "Carolyn,Cassie", "Carolyn,Lynn",
+				"Casey,K.C.", "Cassandra,Cassie", "Cassandra,Sandra",
+				"Cassandra,Sandy", "Catherine,Cassie", "Catherine,Cathy",
+				"Catherine,Kathy", "Catherine,Katy", "Catherine,Kay",
+				"Catherine,Kit", "Catherine,Kittie", "Catherine,Lena",
+				"Catherine,Trina", "Cathleen,Cassie", "Cathleen,Cathy",
+				"Cathleen,Kathy", "Cathleen,Katy", "Cathleen,Kay",
+				"Cathleen,Kit", "Cathleen,Kittie", "Cathleen,Lena",
+				"Cathleen,Trina", "Cecilia,Celia", "Cecilia,Cissy",
+				"Cedric,Ced", "Cedric,Rick", "Cedric,Ricky", "Charles,Carl",
+				"Charles,Charlie", "Charles,Chick", "Charles,Chuck",
+				"Charlotte,Char", "Charlotte,Lotta", "Charlotte,Lottie",
+				"Charlotte,Sherry", "Chauncey,Chan", "Chester,Chet",
+				"Christa,Chris", "Christian,Chris", "Christian,Kit",
+				"Christiana,Ann", "Christiana,Chris", "Christiana,Christy",
+				"Christiana,Crissy", "Christiana,Kris", "Christiana,Kristy",
+				"Christiana,Tina", "Christina,Chris", "Christina,Christy",
+				"Christina,Crissy", "Christina,Kris", "Christina,Kristy",
+				"Christina,Tina", "Christine,Chris", "Christine,Chrissy",
+				"Christine,Crissy", "Christine,Kris", "Christine,Kristy",
+				"Christine,Tina", "Christopher,Chris", "Christopher,Kit",
+				"Clarence,Clair", "Clarence,Clare", "Clarinda,Clara",
+				"Clarissa,Cissy", "Clarissa,Clara", "Clement,Clem",
+				"Clifford,Cliff", "Clifford,Ford", "Clifton,Cliff",
+				"Clifton,Tony", "Columbus,Clum", "Conrad,Con", "Conrad,Conny",
+				"Constance,Connie", "Cordelia,Cordy", "Cordelia,Delia",
+				"Cornelia,Cornie", "Cornelia,Corny", "Cornelia,Nelia",
+				"Cornelia,Nelle", "Cornelia,Nelly", "Cornelius,Con",
+				"Cornelius,Conny", "Cornelius,Corny", "Cornelius,Niel",
+				"Courtney,Court", "Courtney,Curt", "Curtis,Curt",
+				"Cynthia,Cindy", "Cynthia,Cintha", "Cyrenius,Cene",
+				"Cyrenius,Cy", "Cyrenius,Renius", "Cyrenius,Serene",
+				"Cyrenius,Swene", "Dal,Dahl", "Dalton,Dahl", "Daniel,Dan",
+				"Daniel,Danny", "Darlene,Darry", "Darlene,Lena", "David,Dave",
+				"David,Davey", "David,Day", "Debora,Deb", "Debora,Debbie",
+				"Debora,Debby", "Deborah,Deb", "Deborah,Debbie",
+				"Deborah,Debby", "Debra,Deb", "Debra,Debbie", "Delbert,Bert",
+				"Delbert,Del", "Deliverance,Della", "Deliverance,Delly",
+				"Deliverance,Dilly", "Delores,Dee", "Delores,Dell",
+				"Delores,Della", "Delores,Lola", "Delores,Lolly",
+				"Dennis,Denny", "Dennison,Denny", "Derrick,Eric",
+				"Derrick,Rick", "Derrick,Ricky", "Dicey,Dicie", "Domenic,Dom",
+				"Dominic,Dom", "Donald,Don", "Donald,Donnie", "Donald,Donny",
+				"Donald,Dony", "Dorcus,Darkey", "Dorothy,Dolly",
+				"Dorothy,Dortha", "Dorothy,Dot", "Dorothy,Dotty",
+				"Ebenezer,Eb", "Ebenezer,Ebbie", "Ebenezer,Eben", "Edgar,Ed",
+				"Edgar,Eddie", "Edgar,Eddy", "Edith,Edie", "Edith,Edye",
+				"Edmond,Ed", "Edmond,Eddie", "Edmond,Eddy", "Edmund,Ed",
+				"Edmund,Eddie", "Edmund,Eddy", "Edmund,Ned", "Edmund,Ted",
+				"Eduardo,Ed", "Eduardo,Eddie", "Eduardo,Eddy", "Edward,Ed",
+				"Edward,Eddie", "Edward,Eddy", "Edward,Ned", "Edward,Ted",
+				"Edward,Teddy", "Edwin,Ed", "Edwin,Eddie", "Edwin,Eddy",
+				"Edwin,Ned", "Edwin,Win", "Edyth,Edie", "Edyth,Edye",
+				"Edythe,Edie", "Edythe,Edye", "Elbert,Albert",
+				"Eleanor,Elaine", "Eleanor,Ellen", "Eleanor,Ellie",
+				"Eleanor,Lanna", "Eleanor,Lenora", "Eleanor,Nelly",
+				"Eleanor,Nora", "Eleazer,Lazar", "Elias,Eli", "Elias,Lee",
+				"Elias,Lias", "Elijah,Eli", "Elijah,Lige", "Eliphalet,Left",
+				"Elisha,Eli", "Elisha,Lish", "Elizabeth,Bess",
+				"Elizabeth,Bessie", "Elizabeth,Beth", "Elizabeth,Betsy",
+				"Elizabeth,Betty", "Elizabeth,Eliza", "Elizabeth,Lib",
+				"Elizabeth,Libby", "Elizabeth,Lisa", "Elizabeth,Liz",
+				"Elizabeth,Liza", "Elizabeth,Lizzie", "Ellswood,Elsey",
+				"Elmira,Ellie", "Elmira,Elly", "Elmira,Mira", "Elouise,Louise",
+				"Elsie,Elsey", "Elswood,Elsey", "Elwood,Woody", "Elze,Elsey",
+				"Emanuel,Manny", "Emanuel,Manuel", "Emeline,Em",
+				"Emeline,Emily", "Emeline,Emma", "Emeline,Emmy",
+				"Emeline,Milly", "Emily,Emma", "Emily,Emmy", "Emily,Millie",
+				"Epaphroditius,Dite", "Epaphroditius,Ditus",
+				"Epaphroditius,Dyce", "Epaphroditius,Dyche",
+				"Epaphroditius,Eppa", "Ephraim,Eph", "Eric,Rick", "Eric,Ricky",
+				"Ernest,Ernie", "Estella,Essy", "Estella,Stella",
+				"Estelle,Essy", "Estelle,Stella", "Eugene,Gene", "Evaline,Eva",
+				"Evaline,Eve", "Evaline,Lena", "Ezekiel,Ez", "Ezekiel,Zeke",
+				"Ezra,Ez", "Faith,Fay", "Feltie,Felty", "Ferdinand,Ferdie",
+				"Ferdinand,Fred", "Ferdinand,Freddie", "Ferdinand,Freddy",
+				"Fidelia,Delia", "Florence,Flo", "Florence,Flora",
+				"Florence,Flossy", "Frances,Cissy", "Frances,Fanny",
+				"Frances,Fran", "Frances,Francie", "Frances,Frankie",
+				"Frances,Frannie", "Frances,Franniey", "Frances,Sis",
+				"Francine,Fran", "Francine,Francie", "Francine,Frannie",
+				"Francine,Franniey", "Francis,Fran", "Francis,Frank",
+				"Francis,Frankie", "Franklin,Fran", "Franklin,Frank",
+				"Franklind,Frank", "Frederick,Fred", "Frederick,Freddie",
+				"Frederick,Freddy", "Frederick,Fritz", "Fredericka,Freda",
+				"Fredericka,Freddy", "Fredericka,Frieda", "Fredericka,Ricka",
+				"Frieda,Fred", "Frieda,Freddie", "Frieda,Freddy",
+				"Gabriel,Gabby", "Gabriel,Gabe", "Gabriella,Ella",
+				"Gabriella,Gabby", "Gabrielle,Ella", "Gabrielle,Gabby",
+				"Genevieve,Eve", "Genevieve,Jean", "Genevieve,Jenny",
+				"Geoffrey,Geoff", "Geoffrey,Jeff", "Gerald,Gerry",
+				"Gerald,Jerry", "Geraldine,Dina", "Geraldine,Gerrie",
+				"Geraldine,Gerry", "Geraldine,Jerry", "Gertrude,Gert",
+				"Gertrude,Gertie", "Gertrude,Trudy", "Gilbert,Bert",
+				"Gilbert,Gil", "Gilbert,Wilber", "Gwendolyn,Gwen",
+				"Gwendolyn,Wendy", "Hannah,Anna", "Hannah,Nan", "Hannah,Nanny",
+				"Harold,Hal", "Harold,Harry", "Harriet,Hattie", "Helen,Ella",
+				"Helen,Ellen", "Helen,Ellie", "Helen,Lena", "Helene,Ella",
+				"Helene,Ellen", "Helene,Ellie", "Helene,Lena",
+				"Heloise,Eloise", "Heloise,Elouise", "Heloise,Lois",
+				"Henrietta,Etta", "Henrietta,Etty", "Henrietta,Hank",
+				"Henrietta,Nettie", "Henrietta,Retta", "Henry,Hal",
+				"Henry,Hank", "Henry,Harry", "Hephsibah,Hipsie",
+				"Hepsibah,Hipsie", "Herbert,Bert", "Herbert,Herb",
+				"Hermione,Hermie", "Hester,Esther", "Hester,Hessy",
+				"Hester,Hetty", "Hezekiah,Hez", "Hezekiah,Hy", "Hezekiah,Kiah",
+				"Hiram,Hy", "Hopkins,Hop", "Hopkins,Hopp", "Horace,Horry",
+				"Hubert,Bert", "Hubert,Hub", "Hubert,Hugh", "Ignatius,Iggy",
+				"Ignatius,Nace", "Ignatius,Nate", "Ignatius,Natius",
+				"Irene,Rena", "Irving,Irv", "Isaac,Ike", "Isaac,Zeke",
+				"Isabel,Bell", "Isabel,Bella", "Isabel,Belle", "Isabel,Ib",
+				"Isabel,Issy", "Isabel,Nib", "Isabel,Nibby", "Isabel,Tibbie",
+				"Isabella,Bella", "Isabella,Belle", "Isabella,Ib",
+				"Isabella,Issy", "Isabella,Nib", "Isabella,Nibby",
+				"Isabella,Tibbie", "Isabelle,Bella", "Isabelle,Belle",
+				"Isabelle,Ib", "Isabelle,Issy", "Isabelle,Nib",
+				"Isabelle,Nibby", "Isabelle,Tibbie", "Isadora,Dora",
+				"Isadora,Issy", "Isidore,Izzy", "Jacob,Jaap", "Jacob,Jake",
+				"Jacob,Jay", "Jacobus,Jacob", "James,Jamie", "James,Jem",
+				"James,Jim", "James,Jimmie", "James,Jimmy", "Jane,Janie",
+				"Jane,Jean", "Jane,Jennie", "Jane,Jessie", "Janet,Jan",
+				"Janet,Jessie", "Janice,Jan", "Jean,Jane", "Jean,Jeannie",
+				"Jeanette,Janet", "Jeanette,Jean", "Jeanette,Jessie",
+				"Jeanette,Nettie", "Jeanne,Jane", "Jeanne,Jeannie",
+				"Jedidiah,Jed", "Jefferson,Jeff", "Jefferson,Sonny",
+				"Jeffrey,Geoff", "Jeffrey,Jeff", "Jehiel,Hiel", "Jemima,Mima",
+				"Jennifer,Jennie", "Jeremiah,Jereme", "Jeremiah,Jerry",
+				"Jessica,Jessie", "Joan,Jo", "Joan,Nonie", "Joann,Jo",
+				"Joanna,Hannah", "Joanna,Jo", "Joanna,Joan", "Joanna,Jody",
+				"Joanne,Jo", "Johanna,Jo", "Johannah,Hannah", "Johannah,Joan",
+				"Johannah,Jody", "Johannah,Nonie", "John,Jack", "John,Jock",
+				"John,Johnny", "Jon,John", "Jon,Nathan", "Jonathan,John",
+				"Jonathan,Nathan", "Joseph,Jody", "Joseph,Joe", "Joseph,Joey",
+				"Joseph,Jos", "Josephine,Fina", "Josephine,Jo",
+				"Josephine,Jody", "Josephine,Joey", "Josephine,Josey",
+				"Joshua,Jos", "Joshua,Josh", "Josiah,Jos", "Joyce,Joy",
+				"Juanita,Nettie", "Juanita,Nita", "Judson,Jud", "Judson,Sonny",
+				"Julia,Jill", "Julia,Julie", "Julian,Jule", "Julias,Jule",
+				"Junior,JR", "Junior,June", "Junior,Junie", "Kasey,K.C.",
+				"Katelin,Kate", "Katelin,Kay", "Katelin,Kaye", "Katelyn,Kate",
+				"Katelyn,Kay", "Katelyn,Kaye", "Katherine,Cassie",
+				"Katherine,Cathy", "Katherine,Kate", "Katherine,Kathy",
+				"Katherine,Katy", "Katherine,Kay", "Katherine,Kaye",
+				"Katherine,Kit", "Katherine,Kittie", "Katherine,Lena",
+				"Katherine,Trina", "Kathleen,Cassie", "Kathleen,Cathy",
+				"Kathleen,Kathy", "Kathleen,Katy", "Kathleen,Kay",
+				"Kathleen,Kit", "Kathleen,Kittie", "Kathleen,Lena",
+				"Kathleen,Trina", "Kathryn,Kathy", "Kendall,Ken",
+				"Kendall,Kenny", "Kenneth,Ken", "Kenneth,Kendrick",
+				"Kenneth,Kenny", "Kent,Ken", "Kent,Kendrick", "Kent,Kenny",
+				"Keziah,Kizza", "Keziah,Kizzie", "Kimberley,Kim",
+				"Kimberly,Kim", "Kingsley,King", "Kingston,King",
+				"Kristen,Chris", "Kristin,Chris", "Kristine,Chris",
+				"Kristine,Christy", "Kristine,Crissy", "Kristine,Kris",
+				"Kristine,Kristy", "Kristine,Tina", "Kristy,Chris",
+				"Lafayette,Fate", "Lafayette,Laffie", "Lamont,Monty",
+				"Laurence,Larry", "Laurence,Lon", "Laurence,Lonny",
+				"Laurence,Lorne", "Laurence,Lorry", "Lavina,Ina",
+				"Lavina,Vina", "Lavina,Viney", "Lavinia,Ina", "Lavinia,Vina",
+				"Lavinia,Viney", "Lawrence,Larry", "Lawrence,Lon",
+				"Lawrence,Lonny", "Lawrence,Lorne", "Lawrence,Lorry",
+				"LeRoy,L.R.", "LeRoy,Lee", "LeRoy,Roy", "Lemuel,Lem",
+				"Lenora,Lee", "Lenora,Nora", "Leonard,Len", "Leonard,Lenny",
+				"Leonard,Leo", "Leonard,Leon", "Leonard,Lineau", "Leslie,Les",
+				"Lester,Les", "Letitia,Lettice", "Letitia,Lettie",
+				"Letitia,Tish", "Letitia,Titia", "Levi,Lee", "Lidia,Lyddy",
+				"Lillah,Lil", "Lillah,Lilly", "Lillah,Lily", "Lillah,Lolly",
+				"Lillian,Lil", "Lillian,Lilly", "Lillian,Lolly",
+				"Lincoln,Link", "Linda,Lindy", "Linda,Lynn", "Lisa,Alice",
+				"Lisa,Melissa", "Lois,Louise", "Lorenzo,Loren", "Loretta,Etta",
+				"Loretta,Lorrie", "Loretta,Retta", "Lorraine,Lorrie",
+				"Louisa,Eliza", "Louisa,Lois", "Louisa,Lou", "Louise,Eliza",
+				"Louise,Lois", "Louise,Lou", "Lucas,Luke", "Lucias,Luke",
+				"Lucille,Cille", "Lucille,Lou", "Lucille,Lu", "Lucille,Lucy",
+				"Lucinda,Cindy", "Lucinda,Lou", "Lucinda,Lu", "Lucinda,Lucy",
+				"Luella,Ella", "Luella,Lu", "Luella,Lula", "Luther,Luke",
+				"Lydia,Lyddy", "Lyndon,Lindy", "Lyndon,Lynn", "Madeline,Lena",
+				"Madeline,Maddy", "Madeline,Madge", "Madeline,Magda",
+				"Madeline,Maggie", "Magdelina,Lena", "Magdelina,Madge",
+				"Magdelina,Magda", "Mahala,Hallie", "Marcus,Mark",
+				"Margaret,Daisy", "Margaret,Gretta", "Margaret,Madge",
+				"Margaret,Maggie", "Margaret,Maggy", "Margaret,Marge",
+				"Margaret,Margery", "Margaret,Margie", "Margaret,Margy",
+				"Margaret,Meg", "Margaret,Midge", "Margaret,Peg",
+				"Margaret,Peggy", "Margaret,Rita", "Margaretta,Daisy",
+				"Margaretta,Gretta", "Margaretta,Madge", "Margaretta,Maggie",
+				"Margaretta,Marge", "Margaretta,Margery", "Margaretta,Margie",
+				"Margaretta,Meg", "Margaretta,Midge", "Margaretta,Peg",
+				"Margaretta,Peggy", "Margaretta,Rita", "Marjorie,Margie",
+				"Marjorie,Margy", "Martha,Marty", "Martha,Mat",
+				"Martha,Mattie", "Martha,Patsy", "Martha,Patty",
+				"Martin,Marty", "Martina,Tina", "Marvin,Marv", "Mary,Mae",
+				"Mary,Mamie", "Mary,Mitzi", "Mary,Molly", "Mary,Polly",
+				"Matilda,Matty", "Matilda,Maud", "Matilda,Tilly",
+				"Matthew,Matt", "Matthew,Mattie", "Matthew,Matty",
+				"Matthew,Thias", "Matthew,Thys", "Matthias,Matt",
+				"Matthias,Thias", "Matthias,Thys", "Maurice,Morey",
+				"Mehitabel,Hetty", "Mehitabel,Hitty", "Mehitabel,Mabel",
+				"Mehitabel,Mitty", "Melinda,Linda", "Melinda,Lindy",
+				"Melinda,Lynn", "Melinda,Mel", "Melinda,Mindy", "Melissa,Lisa",
+				"Melissa,Lissa", "Melissa,Mel", "Melissa,Milly",
+				"Melissa,Missy", "Mervyn,Merv", "Michael,Micah",
+				"Michael,Mick", "Michael,Micky", "Michael,Mike",
+				"Michelle,Mickey", "Mildred,Milly", "Millicent,Milly",
+				"Millicent,Missy", "Minerva,Minnie", "Miranda,Mandy",
+				"Miranda,Mira", "Miranda,Randy", "Miriam,Mimi", "Miriam,Mitzi",
+				"Mitchell,Mitch", "Montgomery,Gum", "Montgomery,Monty",
+				"Morris,Morey", "Nancy,Ann", "Nancy,Nan", "Napoleon,Leon",
+				"Napoleon,Nap", "Napoleon,Nappy", "Natalie,Natty",
+				"Natalie,Nettie", "Nathan,Nat", "Nathan,Nate", "Nathaniel,Nat",
+				"Nathaniel,Nate", "Nathaniel,Nathan", "Nathaniel,Natty",
+				"Nathaniel,Than", "Nicholas,Claas", "Nicholas,Claes",
+				"Nicholas,Nick", "Norbert,Bert", "Norbert,Norby",
+				"Obadiah,Diah", "Obadiah,Dyer", "Obadiah,Obed", "Obadiah,Obie",
+				"Olive,Livia", "Olive,Nollie", "Olive,Ollie", "Oliver,Ollie",
+				"Olivia,Livia", "Olivia,Nollie", "Olivia,Ollie", "Oswald,Ossy",
+				"Oswald,Ozzy", "Oswald,Waldo", "Pamela,Pam", "Parmelia,Amelia",
+				"Parmelia,Melia", "Parmelia,Milly", "Patience,Pat",
+				"Patience,Patty", "Patricia,Pat", "Patricia,Patsy",
+				"Patricia,Patty", "Patricia,Tricia", "Patrick,Paddy",
+				"Patrick,Pat", "Patrick,Pate", "Patrick,Patsy",
+				"Patrick,Peter", "Paula,Lina", "Paula,Polly", "Paulina,Lina",
+				"Paulina,Polly", "Pelegrine,Perry", "Penelope,Penny",
+				"Percival,Percy", "Peter,Pate", "Peter,Pete", "Philetus,Leet",
+				"Philetus,Phil", "Philinda,Linda", "Philinda,Lindy",
+				"Philinda,Lynn", "Philip,Phil", "Phillip,Phil",
+				"Prescott,Pres", "Prescott,Scott", "Prescott,Scotty",
+				"Priscilla,Cilla", "Priscilla,Cissy", "Priscilla,Prissy",
+				"Prudence,Prudy", "Prudence,Prue", "Rachel,Shelly",
+				"Rafaela,Rafa", "Randolph,Dolph", "Randolph,Randy",
+				"Raphael,Ralph", "Raymond,Ray", "Rebecca,Becca",
+				"Rebecca,Beck", "Rebecca,Becky", "Rebecca,Reba", "Regina,Gina",
+				"Regina,Reggie", "Reginald,Naldo", "Reginald,Reg",
+				"Reginald,Reggie", "Reginald,Renny", "Relief,Leafa",
+				"Reuben,Rube", "Ricardo,Rick", "Ricardo,Ricky", "Richard,Dick",
+				"Richard,Dickie", "Richard,Dickon", "Richard,Dicky",
+				"Richard,Rich", "Richard,Rick", "Richard,Ricky", "Robert,Bob",
+				"Robert,Bobby", "Robert,Dob", "Robert,Dobbin", "Robert,Hob",
+				"Robert,Hobkin", "Robert,Rob", "Roberta,Bert",
+				"Roberta,Bertie", "Roberta,Birdie", "Roberta,Bobbie",
+				"Roberta,Robbie", "Rodger,Bobby", "Rodger,Hodge",
+				"Rodger,Robby", "Rodger,Robin", "Rodger,Rod", "Rodger,Roge",
+				"Rodger,Rupert", "Roger,Bobby", "Roger,Hodge", "Roger,Robby",
+				"Roger,Robin", "Roger,Rod", "Roger,Roge", "Roger,Rupert",
+				"Roland,Lanny", "Roland,Orlando", "Roland,Rollo",
+				"Roland,Rolly", "Ronald,Naldo", "Ronald,Ron", "Ronald,Ronny",
+				"Rosabel,Belle", "Rosabel,Rosa", "Rosabel,Rose", "Rosabel,Roz",
+				"Rosabella,Belle", "Rosabella,Rosa", "Rosabella,Rose",
+				"Rosabella,Roz", "Rosalinda,Linda", "Rosalinda,Rosa",
+				"Rosalinda,Rose", "Rosalinda,Roz", "Rosalyn,Linda",
+				"Rosalyn,Rosa", "Rosalyn,Rose", "Rosalyn,Roz", "Roseann,Ann",
+				"Roseann,Rose", "Roseann,Rosie", "Roseann,Roz", "Roseanna,Ann",
+				"Roseanna,Rose", "Roseanna,Rosie", "Roseanna,Roz",
+				"Roseanne,Ann", "Roxanna,Ann", "Roxanna,Rose", "Roxanna,Roxie",
+				"Roxanne,Ann", "Roxanne,Rose", "Roxanne,Roxie",
+				"Rudolph,Dolph", "Rudolph,Olph", "Rudolph,Rolf",
+				"Rudolph,Rudy", "Rudolphus,Dolph", "Rudolphus,Olph",
+				"Rudolphus,Rolf", "Rudolphus,Rudy", "Russell,Russ",
+				"Russell,Rusty", "Sabrina,Brina", "Samuel,Sam", "Samuel,Sammy",
+				"Sandra,Cassandra", "Sandra,Sandy", "Sarah,Sadie",
+				"Sarah,Sally", "Serena,Rena", "Seymour,Morey", "Seymour,See",
+				"Shelton,Shel", "Shelton,Shelly", "Shelton,Tony",
+				"Sheridan,Dan", "Sheridan,Danny", "Sheridan,Sher",
+				"Shirley,Lee", "Shirley,Sherry", "Shirley,Shirl", "Sidney,Sid",
+				"Sidney,Syd", "Silas,Si", "Simeon,Si", "Simeon,Sion",
+				"Simon,Si", "Simon,Sion", "Smith,Smitty", "Solomon,Sal",
+				"Solomon,Salmon", "Solomon,Saul", "Solomon,Sol",
+				"Solomon,Solly", "Solomon,Zolly", "Sophia,Sophie",
+				"Stephan,Steve", "Stephen,Steph", "Stephen,Steve",
+				"Steven,Steph", "Steven,Steve", "Stuart,Stu", "Submit,Mitty",
+				"Sullivan,Sully", "Sullivan,Van", "Susan,Hannah", "Susan,Sue",
+				"Susan,Sukey", "Susan,Susie", "Susan,Suzie", "Susannah,Hannah",
+				"Susannah,Sue", "Susannah,Sukey", "Susannah,Susie",
+				"Sylvester,Si", "Sylvester,Sly", "Sylvester,Sy",
+				"Sylvester,Syl", "Sylvester,Vessie", "Sylvester,Vester",
+				"Sylvester,Vet", "Tabitha,Tabby", "Terence,Terry",
+				"Teresa,Terry", "Thaddeus,Thad", "Theodore,Ted",
+				"Theodore,Teddy", "Theodore,Theo", "Theresa,Terry",
+				"Theresa,Tess", "Theresa,Tessa", "Theresa,Tessie",
+				"Theresa,Thirza", "Theresa,Thursa", "Theresa,Tracy",
+				"Thom,Tom", "Thom,Tommy", "Thomas,Thom", "Thomas,Tom",
+				"Thomas,Tommy", "Timothy,Tim", "Timothy,Timmy", "Tobias,Bias",
+				"Tobias,Toby", "Tryphena,Phena", "Uriah,Riah",
+				"Valentine,Felty", "Valeri,Val", "Valerie,Val", "Vanessa,Essa",
+				"Vanessa,Nessa", "Vanessa,Vanna", "Veronica,Franky",
+				"Veronica,Frony", "Veronica,Ron", "Veronica,Ronie",
+				"Veronica,Ronna", "Veronica,Ronnie", "Veronica,Vonnie",
+				"Victor,Vic", "Victoria,Torie", "Victoria,Tory",
+				"Victoria,Vic", "Victoria,Vicki", "Victoria,Vicky",
+				"Vincent,Vic", "Vincent,Vin", "Vincent,Vince",
+				"Vincent,Vinnie", "Vincent,Vinny", "Vincenzo,Vic",
+				"Vincenzo,Vin", "Vincenzo,Vinnie", "Vincenzo,Vinny",
+				"Vinson,Vinny", "Virginia,Ginger", "Virginia,Ginny",
+				"Virginia,Jane", "Virginia,Jennie", "Virginia,Virgy",
+				"Wallace,Wally", "Walter,Wally", "Walter,Walt",
+				"Washington,Wash", "Wilber,Bert", "Wilber,Will",
+				"Wilbur,Willie", "Wilbur,Willy", "Wilfred,Fred",
+				"Wilfred,Will", "Wilfred,Willie", "Wilhelmina,Mina",
+				"Wilhelmina,Minnie", "Wilhelmina,Willie", "Wilhelmina,Wilma",
+				"Will,Fred", "William,Bela", "William,Bell", "William,Bill",
+				"William,Billy", "William,Will", "William,Willie",
+				"William,Willy", "Willie,Fred", "Wilson,Will", "Wilson,Willie",
+				"Wilson,Willy", "Winfield,Field", "Winfield,Win",
+				"Winfield,Winny", "Winifred,Freddie", "Winifred,Winnet",
+				"Winifred,Winnie", "Winnifred,Fred", "Winnifred,Freddie",
+				"Winnifred,Freddy", "Winnifred,Winnie", "Winnifred,Winny",
+				"Woodrow,Drew", "Woodrow,Wood", "Woodrow,Woody",
+				"Yvonne,Vonna", "Zachariah,Zach", "Zachariah,Zachy",
+				"Zachariah,Zeke", "Zebedee,Zeb", "Zedediah,Diah",
+				"Zedediah,Dyer", "Zedediah,Zed", "Zephaniah,Zeph" };
+		
+		String source = (String) aContext.getConfigParameterValue("SourceFile");
+		
+		  nicknames = new HashMap();
+		  ArrayList nicks = null;
+		  for (int i=0; i < name_list.length; i++) {
+			  String name2nick = name_list[i];
+			  String[] names = name2nick.split(",");
+			  if (!nicknames.containsKey(names[0])) {
+				  nicknames.put(names[0], new ArrayList());
+			  }
+			  if (!nicknames.containsKey(names[1])) {
+				  nicknames.put(names[1], new ArrayList());
+			  }
+			  ((List)(nicknames.get(names[1]))).add(names[0]);
+		  }
+	}

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/RhinoTestAnnotator.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/RhinoTestAnnotator.xml?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/RhinoTestAnnotator.xml (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/RhinoTestAnnotator.xml Mon Aug 24 14:38:53 2009
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
+<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+<primitive>true</primitive>
+<annotatorImplementationName>org.apache.uima.annotator.bsf.BSFAnnotator</annotatorImplementationName>
+<analysisEngineMetaData>
+<name>Rhino Annotator</name>
+<description>Test of Rhino BSF Annotator.</description>
+<version>1.0</version>
+<vendor>TEMIS</vendor>
+<configurationParameters>
+<configurationParameter>
+<name>SourceFile</name>
+<description>BSF script to be loaded</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+<configurationParameter>
+<name>Regexp</name>
+<description>Regular expression</description>
+<type>String</type>
+<multiValued>false</multiValued>
+<mandatory>true</mandatory>
+</configurationParameter>
+</configurationParameters>
+<configurationParameterSettings>
+<nameValuePair>
+<name>SourceFile</name>
+<value>
+<string>TEST.js</string>
+</value>
+</nameValuePair>
+<nameValuePair>
+<name>Regexp</name>
+<value>
+<string>Dave|David|Bob|Tim|Joe</string>
+</value>
+</nameValuePair>
+</configurationParameterSettings>
+<typeSystemDescription>
+    <typeDescription>
+      <name>org.apache.uima.annotator.bsf.types.Token</name>
+      <description></description>
+      <supertypeName>uima.tcas.Annotation</supertypeName>
+      <features/>
+    </typeDescription>
+</typeSystemDescription>
+<typePriorities/>
+<fsIndexCollection/>
+<capabilities>
+<capability>
+<inputs/>
+<outputs/>
+<languagesSupported>
+<language>x-unspecified</language>
+</languagesSupported>
+</capability>
+</capabilities>
+<operationalProperties>
+<modifiesCas>true</modifiesCas>
+<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+<outputsNewCASes>false</outputsNewCASes>
+</operationalProperties>
+</analysisEngineMetaData>
+</taeDescription>

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.bsh
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.bsh?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.bsh (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.bsh Mon Aug 24 14:38:53 2009
@@ -0,0 +1,64 @@
+/**
+ * Example of beanshell script to be used as input for the
+ * BSFAnnotator 
+ * @author Olivier Terrier
+ * @version 1.0 
+ */
+
+import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.util.Level;
+import org.apache.uima.util.Logger;
+import org.apache.uima.cas.*;
+import org.apache.uima.jcas.cas.*;
+import org.apache.uima.jcas.tcas.*;
+import org.apache.uima.annotator.bsf.types.Token;
+
+import java.util.regex.*;
+
+/**
+ * Initialisation of global variables
+ */ 
+String scriptName;
+Pattern matchPattern;
+
+/**
+ * Performs any startup tasks required by this annotator.
+ * The Analysis Engine calls this method only once, just after an Annotator has been instantiated.
+ * @param aContext Provides access to external resources that may be used by this annotator.
+ *                 This includes configuration parameters, logging and instrumentation services, and access to external analysis resources. 
+ * @see com.ibm.uima.analysis_engine.annotator.BaseAnnotator#initialize(com.ibm.uima.analysis_engine.annotator.AnnotatorContext)
+ */ 
+	public void initialize(UimaContext aContext)
+			throws ResourceInitializationException {
+			
+			String source = (String) aContext.getConfigParameterValue("SourceFile");
+			String regexp = (String) aContext.getConfigParameterValue("Regexp");
+			if (regexp == null)
+				regexp = "Dave|David|Bob|Tim|Joe";
+			matchPattern = Pattern.compile(regexp);
+}
+
+/**
+ * Invokes this annotator's analysis logic.
+ * This annotator will access the data in the JCas and add new data to the JCas.
+ * @param jcas contains the document to be analyzed and may contain other metadata about that document.
+ * @param rs a list of output types and features that this annotator should produce. 
+ */  
+	public void process(JCas jcas)
+      throws AnalysisEngineProcessException {
+      
+      // Looking for regexp in the document text and storing start/end indexes in arrays
+      String text = jcas.getDocumentText();
+      Matcher matcher = matchPattern.matcher(text);
+      List annotArray = new ArrayList();
+      while (matcher.find()) {
+        // Create an EntityOccurrence for each firstname found in the text
+        Token token = new Token(jcas, matcher.start(), matcher.end());
+        token.addToIndexes();
+      }
+}
+

Added: incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.js
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.js?rev=807245&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.js (added)
+++ incubator/uima/sandbox/trunk/BSFAnnotator/src/test/resources/TEST.js Mon Aug 24 14:38:53 2009
@@ -0,0 +1,25 @@
+// Example of javascript script to be used as input for the BSFAnnotator
+importPackage(Packages.org.apache.uima);
+importPackage(Packages.org.apache.uima.analysis_component);
+importPackage(Packages.org.apache.uima.jcas);
+importPackage(Packages.org.apache.uima.jcas.tcas);
+importPackage(Packages.org.apache.uima.annotator.bsf.types);
+importPackage(java.util.regex);
+
+var matchPattern;
+
+// Annotator initialize method
+function initialize(context) {
+  var pattern = context.getConfigParameterValue("Regexp");
+  matchPattern = Pattern.compile(pattern);
+}
+
+// Annotator process method
+function process(jcas) {
+  var text = jcas.getDocumentText();
+  var matcher = matchPattern.matcher(text);
+  while (matcher.find()) {
+    var token = new Token(jcas, matcher.start(), matcher.end());
+    token.addToIndexes();
+  }
+}