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

Reply via email to