Hi cTakes devs, I am trying to use cTakes' UMLS Dictionary Lookup annotator (either the older one or the newer fast one) through uimaFIT, and I am running into problems with resources that can't be found. Please bear with me if my problem description omits any relevant details, as I don't have much experience neither with cTakes, UIMA, Java, Maven nor Eclipse.
cTakes is imported into my Eclipse project through Maven, and I have a very basic pipeline running with a few annotators from UIMA and cTakes, along with a few custom ones. I have specified the UMLS login details in the arguments of the Eclipse runtime configuration, which works. However, when I add either a UmlsDictionaryLookupAnnotator or its fast version, they fail to resolve their respective lookup descriptor files. I have included a stack trace for the first method, while the second method throws a null pointer exception on AbstractJCasTermAnnotator.initialize() (line 129), due to the fileResource variable being null. I have noticed that since cTakes version 3.1.1, the lookup descriptor file referenced in UmlsDictionaryLookupAnnotator.createAnnotatorDescription() is no longer included in ctakes-dictionary-lookup-res-3.x.x.jar. I don't know if the same change took place for the fast dictionary, but I can see that the xml file referenced in DictionaryLookupFactory.createUmlsDictionaryLookupDescription() is not present in the ctakes-dictionary-lookup-fast-res-3.2.2.jar that I get through Maven. Have these files moved, so that I now need to include something else? Am I doing something else wrong? Also, I have downloaded the UMLS dictionary resources from http://ctakes.apache.org/downloads.cgi, but where do I place them for cTakes to be able to find them? Stack trace for UmlsDictionaryLookupAnnotator.createAnnotatorDescription(): java.io.FileNotFoundException: No File exists at org/apache/ctakes/dictionary/lookup/LookupDesc_Db.xml at org.apache.ctakes.core.resource.FileLocator.getFullPath(FileLocator.java:162) at org.apache.ctakes.core.resource.FileLocator.locateFile(FileLocator.java:70) at org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator.createAnnotatorDescription(UmlsDictionaryLookupAnnotator.java:118) at org.umc.research.social_media_adr_detection.pipelines.ExtractDrugAndAEMentions.main(ExtractDrugAndAEMentions.java:128) Exception in thread "main" org.apache.uima.resource.ResourceInitializationException at org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator.createAnnotatorDescription(UmlsDictionaryLookupAnnotator.java:156) at org.umc.research.social_media_adr_detection.pipelines.ExtractDrugAndAEMentions.main(ExtractDrugAndAEMentions.java:128) Caused by: java.io.FileNotFoundException: No File exists at org/apache/ctakes/dictionary/lookup/LookupDesc_Db.xml at org.apache.ctakes.core.resource.FileLocator.getFullPath(FileLocator.java:162) at org.apache.ctakes.core.resource.FileLocator.locateFile(FileLocator.java:70) at org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator.createAnnotatorDescription(UmlsDictionaryLookupAnnotator.java:118) ... 1 more Any pointers would be greatly appreciated. Best regards, Jakob Rogstadius Research Engineer Uppsala Monitoring Centre WHO Collaborating Centre for International Drug Monitoring