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();
+ }
+}