package edu.isistan.uima.unified; import java.util.HashMap; import java.util.Map; import org.apache.uima.analysis_engine.AnalysisEngine; import org.apache.uima.analysis_engine.AnalysisEngineDescription; import org.apache.uima.collection.CollectionReader; import org.apache.uima.collection.CollectionReaderDescription; import org.apache.uima.resource.ExternalResourceDescription; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.resource.metadata.TypePriorities; import org.apache.uima.resource.metadata.TypeSystemDescription; import org.apache.uima.util.InvalidXMLException; import org.uimafit.factory.AnalysisEngineFactory; import org.uimafit.factory.CollectionReaderFactory; import org.uimafit.factory.ExternalResourceFactory; import org.uimafit.factory.TypePrioritiesFactory; import org.uimafit.factory.TypeSystemDescriptionFactory; import edu.isistan.uima.unified.analysisengines.domain.DomainActionAnnotator; import edu.isistan.uima.unified.analysisengines.domain.DomainActionCleaningAnnotator; import edu.isistan.uima.unified.analysisengines.domain.DomainNumberAnnotator; import edu.isistan.uima.unified.analysisengines.domain.DomainNumberExclusionAnnotator; import edu.isistan.uima.unified.analysisengines.matetools.CoNLLDependencyAnnotator; import edu.isistan.uima.unified.analysisengines.matetools.LemmaAnnotator; import edu.isistan.uima.unified.analysisengines.matetools.MorphAnnotator; import edu.isistan.uima.unified.analysisengines.nlp.StemmerAnnotator; import edu.isistan.uima.unified.analysisengines.nlp.StopWordAnnotator; import edu.isistan.uima.unified.analysisengines.opennlp.ChunkAnnotator; import edu.isistan.uima.unified.analysisengines.opennlp.SadSentenceAnnotator; import edu.isistan.uima.unified.analysisengines.opennlp.SentenceAnnotator; import edu.isistan.uima.unified.analysisengines.opennlp.TokenAnnotator; import edu.isistan.uima.unified.analysisengines.srl.CoNLLSRLAnnotator; import edu.isistan.uima.unified.analysisengines.srl.SDSRLAnnotator; import edu.isistan.uima.unified.analysisengines.stanfordnlp.SDDependencyAnnotator; import edu.isistan.uima.unified.analysisengines.stanfordnlp.SentenceTokenAnnotator; import edu.isistan.uima.unified.analysisengines.wordnet.JAWSWordNetAnnotator; import edu.isistan.uima.unified.analysisengines.wordnet.JWIWordNetAnnotator; import edu.isistan.uima.unified.analysisengines.wordnet.JWNLWordNetAnnotator; import edu.isistan.uima.unified.analysisengines.wsd.BanerjeeWSDAnnotator; import edu.isistan.uima.unified.casconsumers.ClustererCasConsumer; import edu.isistan.uima.unified.casconsumers.XMIWriterCasConsumer; import edu.isistan.uima.unified.casconsumers.domain.DomainCSVExtractorCasConsumer; import edu.isistan.uima.unified.collectionreaders.SADCollectionReader; import edu.isistan.uima.unified.collectionreaders.SRSCollectionReader; import edu.isistan.uima.unified.collectionreaders.UCSCollectionReader; import edu.isistan.uima.unified.collectionreaders.XMIReaderCollectionReader; import edu.isistan.uima.unified.sharedresources.ClustersResourceImpl; import edu.isistan.uima.unified.sharedresources.ProgressMonitorResourceImpl; import edu.isistan.uima.unified.sharedresources.XMISharedDataResourceImpl; @SuppressWarnings({ "rawtypes" }) public class SadUIMAFactory { private static SadUIMAFactory instance = null; private Map<Class, Object> cache; private SadUIMAFactory() { cache = new HashMap<Class, Object>(); } public static SadUIMAFactory getInstance() { if(instance == null) instance = new SadUIMAFactory(); return instance; } public String getModelsPath() { String modelsPath = null; if(modelsPath == null || modelsPath.isEmpty()) modelsPath = System.getenv("MODELS_PATH"); if(modelsPath == null || modelsPath.isEmpty()) modelsPath = System.getProperty("MODELS_PATH"); return modelsPath; } public TypeSystemDescription getTypeSystemDescription() throws ResourceInitializationException { System.setProperty("org.uimafit.type.import_pattern", "classpath*:desc/typesystems/**/*.xml"); return TypeSystemDescriptionFactory.createTypeSystemDescription(); } public TypePriorities getTypePriorities() { // return null; return TypePrioritiesFactory.createTypePriorities( "edu.isistan.uima.unified.typesystems.sad.SadSection", "edu.isistan.uima.unified.typesystems.sad.Sad", "edu.isistan.uima.unified.typesystems.nlp.Sentence", "edu.isistan.uima.unified.typesystems.domain.DomainAction", "edu.isistan.uima.unified.typesystems.srl.Predicate", "edu.isistan.uima.unified.typesystems.srl.Structure", "edu.isistan.uima.unified.typesystems.srl.Argument", "edu.isistan.uima.unified.typesystems.nlp.SDDependency", "edu.isistan.uima.unified.typesystems.nlp.Chunk", "edu.isistan.uima.unified.typesystems.nlp.Entity", "edu.isistan.uima.unified.typesystems.srl.Role", "edu.isistan.uima.unified.typesystems.domain.DomainNumber", "edu.isistan.uima.unified.typesystems.nlp.Token", "edu.isistan.uima.unified.typesystems.wordnet.Sense"); } public CollectionReader getSRSCR(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String inputFile) throws ResourceInitializationException, InvalidXMLException { CollectionReaderDescription crDescription = CollectionReaderFactory.createDescription(SRSCollectionReader.class, typeSystemDescription, typePriorities, "input", inputFile); ExternalResourceFactory.bindExternalResource(crDescription, "monitor", monitorResourceDescription); return CollectionReaderFactory.createCollectionReader(crDescription); } public CollectionReader getUCSCR(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String inputFile) throws ResourceInitializationException, InvalidXMLException { CollectionReaderDescription crDescription = CollectionReaderFactory.createDescription(UCSCollectionReader.class, typeSystemDescription, typePriorities, "input", inputFile); ExternalResourceFactory.bindExternalResource(crDescription, "monitor", monitorResourceDescription); return CollectionReaderFactory.createCollectionReader(crDescription); } public CollectionReader getXMIReaderCR(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String inputFile) throws ResourceInitializationException, InvalidXMLException { CollectionReaderDescription crDescription = CollectionReaderFactory.createDescription(XMIReaderCollectionReader.class, typeSystemDescription, typePriorities, "input", inputFile); ExternalResourceFactory.bindExternalResource(crDescription, "monitor", monitorResourceDescription); return CollectionReaderFactory.createCollectionReader(crDescription); } public AnalysisEngine getXMIWriterCC(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String outputFile) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(XMIWriterCasConsumer.class, typeSystemDescription, typePriorities, "output", outputFile); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); return AnalysisEngineFactory.createPrimitive(aeDescription); } public CollectionReader getXMIReaderCR(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, ExternalResourceDescription shareDataDescription, String inputFile) throws ResourceInitializationException, InvalidXMLException { CollectionReaderDescription crDescription = CollectionReaderFactory.createDescription(XMIReaderCollectionReader.class, typeSystemDescription, typePriorities, "input", inputFile); ExternalResourceFactory.bindExternalResource(crDescription, "monitor", monitorResourceDescription); ExternalResourceFactory.bindExternalResource(crDescription, "sharedData", shareDataDescription); return CollectionReaderFactory.createCollectionReader(crDescription); } public AnalysisEngine getXMIWriterCC(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, ExternalResourceDescription shareDataDescription, String outputFile) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(XMIWriterCasConsumer.class, typeSystemDescription, typePriorities, "output", outputFile); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); ExternalResourceFactory.bindResource(aeDescription, "sharedData", shareDataDescription); return AnalysisEngineFactory.createPrimitive(aeDescription); } public AnalysisEngine getClustererCC(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, ExternalResourceDescription clusterResourceDescription, String linkageType, String distanceType, float minimumDistance) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(ClustererCasConsumer.class, typeSystemDescription, typePriorities, "jwnl", getModelsPath() + "jwnl/jwnl-properties.xml", "wordnet", getModelsPath() + "wordnet/win/2.0/dict/", "linkageType", linkageType, "distanceType", distanceType, "minimumDistance", minimumDistance); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); ExternalResourceFactory.bindResource(aeDescription, "clusters", clusterResourceDescription); return AnalysisEngineFactory.createPrimitive(aeDescription); } public AnalysisEngine getDomainCSVExtractorCC(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String outputFile) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(DomainCSVExtractorCasConsumer.class, typeSystemDescription, typePriorities, "output", outputFile); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); return AnalysisEngineFactory.createPrimitive(aeDescription); } public AnalysisEngine getDomainNumberAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = DomainNumberAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(DomainNumberAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "domain/domainnumber_regex.model"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getDomainNumberExclusionAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = DomainNumberExclusionAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(DomainNumberExclusionAnnotator.class, typeSystemDescription, typePriorities); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getDomainActionAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = DomainActionAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(DomainActionAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "domain/domainaction.model", "label", getModelsPath() + "domain/domainaction.labels", "source", getModelsPath() + "domain/domainaction-original.source", "filter", getModelsPath() + "domain/domainaction-filtered.source"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getDomainActionCleaningAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = DomainActionCleaningAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(DomainActionCleaningAnnotator.class, typeSystemDescription, typePriorities); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getNLPStopwordAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = StopWordAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(StopWordAnnotator.class, typeSystemDescription, typePriorities); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getNLPStemmerAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = StemmerAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(StemmerAnnotator.class, typeSystemDescription, typePriorities); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getOpenNLPSentenceAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = SentenceAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(SadSentenceAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-sent.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getOpenNLPTokenAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = TokenAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(TokenAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-token.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getOpenNLPPOSAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = edu.isistan.uima.unified.analysisengines.opennlp.POSAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.POSAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-pos-maxent.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getOpenNLPChunkAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = ChunkAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(ChunkAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-chunker.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getOpenNLPEntityDateAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-date.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityLocationAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-location.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityMoneyAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-money.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityOrganizationAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-organization.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityPercentageAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-percentage.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityPersonAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-person.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getOpenNLPEntityTimeAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.opennlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "opennlp/models/en-ner-time.bin"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getStanfordSentenceTokenAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = SentenceTokenAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(SentenceTokenAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "stanford-corenlp/edu/stanford/nlp/models/pos-tagger/wsj3t0-18-left3words/left3words-distsim-wsj-0-18.tagger"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getStanfordPOSAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = edu.isistan.uima.unified.analysisengines.stanfordnlp.POSAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.stanfordnlp.POSAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "stanford-corenlp/edu/stanford/nlp/models/pos-tagger/wsj3t0-18-left3words/left3words-distsim-wsj-0-18.tagger"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getStanfordDependencyAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = SDDependencyAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(SDDependencyAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "stanford-corenlp/edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getStanfordEntityAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = edu.isistan.uima.unified.analysisengines.stanfordnlp.EntityAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.stanfordnlp.EntityAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "stanford-corenlp/edu/stanford/nlp/models/ner/all.3class.distsim.crf.ser.gz"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getJAWSWordNetAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = JAWSWordNetAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(JAWSWordNetAnnotator.class, typeSystemDescription, typePriorities, "wordnet", getModelsPath() + "wordnet/unix/2.0/dict"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getJWIWordNetAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = JWIWordNetAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(JWIWordNetAnnotator.class, typeSystemDescription, typePriorities, "wordnet", getModelsPath() + "wordnet/unix/2.0/dict"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getJWNLWordNetAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = JWNLWordNetAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(JWNLWordNetAnnotator.class, typeSystemDescription, typePriorities, "jwnl", getModelsPath() + "jwnl/jwnl-properties.xml", "wordnet", getModelsPath() + "wordnet/win/2.0/dict/"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getBanerjeeWSDAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(BanerjeeWSDAnnotator.class, typeSystemDescription, typePriorities, "jwnl", getModelsPath() + "jwnl/jwnl-properties.xml", "wordnet", getModelsPath() + "wordnet/win/2.0/dict/", "similarity", "Lesk"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); return analysisEngine; } public AnalysisEngine getMateToolsLemmaAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = LemmaAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(LemmaAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "matetools/is2/model/lemma-eng.model"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getMateToolsPOSAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = edu.isistan.uima.unified.analysisengines.matetools.POSAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(edu.isistan.uima.unified.analysisengines.matetools.POSAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "matetools/is2/model/tag-eng.model"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getMateToolsMorphAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = MorphAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(MorphAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "matetools/is2/model/morph-eng.model"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getMateToolsDependencyAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = CoNLLDependencyAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(CoNLLDependencyAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "matetools/is2/model/prs-eng.model"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getCoNLLSRLAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = CoNLLSRLAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(CoNLLSRLAnnotator.class, typeSystemDescription, typePriorities, "model", getModelsPath() + "srl/se/lth/cs/srl/model/srl-eng.model", "propbank", getModelsPath() + "srl/propbank/", "nombank", getModelsPath() + "srl/nombank/"); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public AnalysisEngine getSDSRLAA(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription) throws ResourceInitializationException, InvalidXMLException { Class key = SDSRLAnnotator.class; if(!cache.containsKey(key)) { AnalysisEngineDescription aeDescription = AnalysisEngineFactory.createPrimitiveDescription(SDSRLAnnotator.class, typeSystemDescription, typePriorities); ExternalResourceFactory.bindResource(aeDescription, "monitor", monitorResourceDescription); AnalysisEngine analysisEngine = AnalysisEngineFactory.createPrimitive(aeDescription); cache.put(key, analysisEngine); } return (AnalysisEngine) cache.get(key); } public ExternalResourceDescription getClustersResource() { ExternalResourceDescription erDescription = ExternalResourceFactory.createExternalResourceDescription("clustersResource", ClustersResourceImpl.class, ""); return erDescription; } public ExternalResourceDescription getXMISharedDataResource() { ExternalResourceDescription erDescription = ExternalResourceFactory.createExternalResourceDescription("sharedDataResource", XMISharedDataResourceImpl.class, ""); return erDescription; } public ExternalResourceDescription getProgressMonitorResource() { ExternalResourceDescription erDescription = ExternalResourceFactory.createExternalResourceDescription("progressMonitorResource", ProgressMonitorResourceImpl.class, ""); return erDescription; } public CollectionReader getSADCR(TypeSystemDescription typeSystemDescription, TypePriorities typePriorities, ExternalResourceDescription monitorResourceDescription, String inputFile) throws ResourceInitializationException, InvalidXMLException { CollectionReaderDescription crDescription = CollectionReaderFactory.createDescription(SADCollectionReader.class, typeSystemDescription, typePriorities, "input", inputFile); ExternalResourceFactory.bindExternalResource(crDescription, "monitor", monitorResourceDescription); return CollectionReaderFactory.createCollectionReader(crDescription); } }