Hi Raghav,

A few items:

ThreadedUmlsDictionaryLookupAnnotator is an old (~2012) annotator in the old 
(slow) dictionary lookup module.  It is not meant to be used with the newer 
thread safe (Ts) pipelines.  Instead of working in multiple concurrent 
pipelines, it works in a single pipeline, looking up terms in the old umls, 
orangebook, and rxnorm dictionaries concurrently.   It provided an 
ever-so-slight performance improvement over the standard lookup, but nothing 
near what the newer lookup-fast will give you.  Something like ~20% vs. ~10000%

Given the rest of your pipeline, you want to use the ThreadSafeFastLookup in 
the dictionary-lookup-fast module already specified in the 
TsDictionarySubPipe.piper

Also, the default POSTagger is not thread safe (as far as I know).  You should 
probably use
add concurrent.ThreadSafePosTagger

Perhaps the reason you are trying to use the old Threaded... is to use Lucene?  
Instead of doing that I would try to create a new annotator.  

Extend AbstractRareWordDictionary and override Collection<RareWordTerm> 
getRareWordHits( final String rareWordText ) {}

Look at MemRareWordDictionary and you'll see how easy this is to do (one line 
of code).

You'll just need to hook into lucene.  You can look at BsvRareWordDictionary if 
you want to see how a collection of terms is loaded upon initialization.  Or 
JdbcRareWordDictionary to see how terms are looked up through a connection (~6 
+ 2 lines of code).

You may or may not need to create a custom "ConceptFactory".  As long as the 
cuis in your lucene index are the same as those in the default dictionary you 
can use the default concept factory.   If not, you can create one with lucene 
or a simple bar-separated value (pipe-delimited) file.  But first get a simple 
lucene dictionary running.

Sean


________________________________________
From: Raghav Nyati <rny...@foreseemed.com>
Sent: Tuesday, March 19, 2019 12:14 PM
To: dev@ctakes.apache.org
Subject: Re: Getting error while running rest service [EXTERNAL]

Hi Sean,

I’m using Default.piper file with TsDictionarySubPipe lookup.

// Commands and parameters to create a default plaintext document processing 
pipeline with UMLS lookup

// set the thread count
threads 3

// Load a simple token processing pipeline from another pipeline file
load pipers/TsDefaultTokenizerPipeline

// Add non-core annotators
add ContextDependentTokenizerAnnotator
addDescription POSTagger

// Add Chunkers
load pipers/TsChunkerSubPipe

// Dictionary lookup
load pipers/TsDictionarySubPipe

// Add Cleartk Entity Attribute annotators
load pipers/TsAttributeCleartkSubPipe

And I’ve configured xml file in TsDictionarySubPipe as:

//  Commands and parameters to create a default dictionary lookup sub-pipeline. 
 This is not a full pipeline.

// path to the xml file containing information for dictionary lookup 
configuration.
cli LookupXml=l
// umls credentials
cli umlsUser=user
cli umlsPass=pass

// dictionary lookup
add ThreadedUmlsDictionaryLookupAnnotator 
LookupXml=org/apache/ctakes/dictionary/lookup/LookupDesc.xml
Not sure if this is the right configuration for piper for Lucene dictionary 
lookup.

I do have running setup using Fast dictionary lookup. But I want to enable 
fuzzy search by configuring Lucene index.

Any thoughts / suggestions / help on setting up Lucene index is appreciated.

Thanks,
Raghav




> On Mar 19, 2019, at 7:45 AM, Finan, Sean <sean.fi...@childrens.harvard.edu> 
> wrote:
>
> Hi Raghav,
>
> I think that your dictionary is not specified.  The (deeply embedded plus 
> i18n) error message is:
>
> "Missing name for Dictionary Name"
>
> from
>> Caused by: 
>> org.apache.uima.analysis_engine.annotator.AnnotatorContextException: 
>> EXCEPTION MESSAGE LOCALIZATION FAILED: java.util.MissingResourceException: 
>> Can't find resource for bundle java.util.PropertyResourceBundle, key Missing 
>> name for Dictionary Name
>
> There should be an xml-formatted dictionary lookup configuration file that 
> specifies the dictionary.   My guess is that the problem lies therein.
>
> Sean
>
>
> ________________________________________
> From: Raghav Nyati <rny...@foreseemed.com>
> Sent: Monday, March 18, 2019 7:27 PM
> To: dev@ctakes.apache.org
> Subject: Getting error while running rest service [EXTERNAL]
>
> Hi -
>
> I’m new to CTAKES and trying to figure out the Lucene index on rest services. 
> While running docker file, I’m getting below error:
>
> 18 Mar 2019 23:22:11  INFO Chunker - Chunker model file: 
> org/apache/ctakes/chunker/models/chunker-model.zip
> 18 Mar 2019 23:22:13  INFO ContextDependentTokenizerAnnotator - Finite state 
> machines loaded.
> 18 Mar 2019 23:22:13  INFO AbstractJCasTermAnnotator - Using dictionary 
> lookup window type: org.apache.ctakes.typesystem.type.textspan.Sentence
> 18 Mar 2019 23:22:13  INFO AbstractJCasTermAnnotator - Exclusion tagset 
> loaded: CC CD DT EX IN LS MD PDT POS PP PP$ PRP PRP$ RP TO VB VBD VBG VBN VBP 
> VBZ WDT WP WPS WRB
> 18 Mar 2019 23:22:13  INFO AbstractJCasTermAnnotator - Using minimum term 
> text span: 3
> 18 Mar 2019 23:22:13  INFO AbstractJCasTermAnnotator - Using Dictionary 
> Descriptor: org/apache/ctakes/dictionary/lookup/LookupDesc.xml
> 18 Mar 2019 23:22:13  INFO DictionaryDescriptorParser - Parsing dictionary 
> specifications:
> 18 Mar 2019 23:22:13 ERROR CtakesRestController - Error loading pipers
> 18 Mar 2019 23:22:13  WARN XmlWebApplicationContext - Exception encountered 
> during context initialization - cancelling refresh attempt: 
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 'ctakesRestController': Invocation of init method failed; nested 
> exception is javax.servlet.ServletException: 
> org.apache.uima.resource.ResourceInitializationException: Initialization of 
> annotator class 
> "org.apache.ctakes.dictionary.lookup2.concurrent.ThreadSafeFastLookup" 
> failed.  (Descriptor: <unknown>)
> 18 Mar 2019 23:22:13 ERROR DispatcherServlet - Context initialization failed
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 'ctakesRestController': Invocation of init method failed; nested 
> exception is javax.servlet.ServletException: 
> org.apache.uima.resource.ResourceInitializationException: Initialization of 
> annotator class 
> "org.apache.ctakes.dictionary.lookup2.concurrent.ThreadSafeFastLookup" 
> failed.  (Descriptor: <unknown>)
>        at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
>        at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
>        at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
>        at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
>        at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>        at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
>        at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>        at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
>        at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
>        at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
>        at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
>        at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
>        at 
> org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
>        at 
> org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
>        at 
> org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
>        at 
> org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
>        at 
> org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
>        at 
> org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
>        at javax.servlet.GenericServlet.init(GenericServlet.java:158)
>        at 
> org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1123)
>        at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1078)
>        at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:971)
>        at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4854)
>        at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5170)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>        at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
>        at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
>        at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
>        at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
>        at 
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850)
>        at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>        at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>        at 
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
>        at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
>        at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
>        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1577)
>        at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
>        at 
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>        at 
> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424)
>        at 
> org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367)
>        at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929)
>        at 
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>        at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)
>        at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367)
>        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>        at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>        at 
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
>        at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)
>        at 
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>        at 
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:423)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>        at 
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:928)
>        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>        at org.apache.catalina.startup.Catalina.start(Catalina.java:638)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:498)
>        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
>        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
> Caused by: javax.servlet.ServletException: 
> org.apache.uima.resource.ResourceInitializationException: Initialization of 
> annotator class 
> "org.apache.ctakes.dictionary.lookup2.concurrent.ThreadSafeFastLookup" 
> failed.  (Descriptor: <unknown>)
>        at 
> org.apache.ctakes.rest.service.CtakesRestController$PipelineRunner.<init>(CtakesRestController.java:95)
>        at 
> org.apache.ctakes.rest.service.CtakesRestController$PipelineRunner.<init>(CtakesRestController.java:82)
>        at 
> org.apache.ctakes.rest.service.CtakesRestController.init(CtakesRestController.java:57)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:498)
>        at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
>        at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
>        at 
> org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
>        ... 62 more
> Caused by: org.apache.uima.resource.ResourceInitializationException: 
> Initialization of annotator class 
> "org.apache.ctakes.dictionary.lookup2.concurrent.ThreadSafeFastLookup" 
> failed.  (Descriptor: <unknown>)
>        at 
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:252)
>        at 
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:156)
>        at 
> org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
>        at 
> org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
>        at 
> org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:269)
>        at 
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:387)
>        at 
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:254)
>        at 
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:431)
>        at 
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:375)
>        at 
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:185)
>        at 
> org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
>        at 
> org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
>        at 
> org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:269)
>        at 
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:354)
>        at 
> org.apache.ctakes.rest.service.CtakesRestController$PipelineRunner.<init>(CtakesRestController.java:91)
>        ... 71 more
> Caused by: org.apache.uima.resource.ResourceInitializationException: 
> EXCEPTION MESSAGE LOCALIZATION FAILED: java.util.MissingResourceException: 
> Can't find resource for bundle java.util.PropertyResourceBundle, key Missing 
> name for Dictionary Name
>        at 
> org.apache.ctakes.dictionary.lookup2.ae.AbstractJCasTermAnnotator.initialize(AbstractJCasTermAnnotator.java:140)
>        at 
> org.apache.ctakes.core.concurrent.ThreadSafeWrapper.initialize(ThreadSafeWrapper.java:52)
>        at 
> org.apache.ctakes.dictionary.lookup2.concurrent.ThreadSafeFastLookup.initialize(ThreadSafeFastLookup.java:38)
>        at 
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:250)
>        ... 85 more
> Caused by: 
> org.apache.uima.analysis_engine.annotator.AnnotatorContextException: 
> EXCEPTION MESSAGE LOCALIZATION FAILED: java.util.MissingResourceException: 
> Can't find resource for bundle java.util.PropertyResourceBundle, key Missing 
> name for Dictionary Name
>        at 
> org.apache.ctakes.dictionary.lookup2.dictionary.DictionaryDescriptorParser.getName(DictionaryDescriptorParser.java:293)
>        at 
> org.apache.ctakes.dictionary.lookup2.dictionary.DictionaryDescriptorParser.parseDictionary(DictionaryDescriptorParser.java:177)
>        at 
> org.apache.ctakes.dictionary.lookup2.dictionary.DictionaryDescriptorParser.parseDictionaries(DictionaryDescriptorParser.java:155)
>        at 
> org.apache.ctakes.dictionary.lookup2.dictionary.DictionaryDescriptorParser.parseDescriptor(DictionaryDescriptorParser.java:127)
>        at 
> org.apache.ctakes.dictionary.lookup2.ae.AbstractJCasTermAnnotator.initialize(AbstractJCasTermAnnotator.java:138)
>        ... 88 more
>
> Any help is greatly appreciated.
>
> Thanks,
>
> Raghav

Reply via email to