You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ctakes.apache.org by Abhishek De <ab...@gmail.com> on 2018/08/11 05:44:53 UTC

Confusion regarding licensing of UMLS

Hi all,

I am Abhishek De, a newcomer to the CTAKES community. I had worked with
CTAKES over 4 years ago, but now I am trying to incorporate it into my Java
application as a senior developer, so I need to know a lot of things about
it. For starters, I can see that even the pipeline without UMLS needs UMLS
credentials in order to run. So I have the following questions:

1. Is there a certain fee which is required in order to apply for a UMLS
license?

2. My organization is building this pharmacovigilance app which will
internally use CTAKES for its client. Is it okay for only my parent
organization to have the UMLS license or do the client needs to have it
too? If I expose the application as a service, with the servers residing in
our organization's premises, would the client still need to have a licnse?

3. As there is precious little documentation on CTAKES, and many links
there are now dead including the ones giving instructions on how to install
dictionaries for RxNorm or SNOMED-CT, could anyone please help me in this
regard?

4. Also, I would like to know if there are any small dictionaries which
could be used free of charge or licensing, for my PoC.

Thanks and Regards,
Abhishek De

Re: Confusion regarding licensing of UMLS [EXTERNAL]

Posted by Peter Abramowitsch <pa...@gmail.com>.
Thanks Sean.  I too think something is broken with the Assertion Engine
resource lookup.  There are aspects of the Assertion package that I found
useful in the past.  The Zoner for instance.

On Wed, Aug 15, 2018, 3:18 PM Finan, Sean <Se...@childrens.harvard.edu>
wrote:

> Hi Abhishek,
>
> There is a very short introduction to building pipelines in ctakes 4.0 in
> a pamphlet that can be found at
> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0 , section
> "Documentation", second link.  Pamphlet section 5.2, page 5.
>
> There is a runnable example that prints discovered mentions and properties
> using a code-built pipeline.  ctakes-examples project, class
> ProcessDirBuilderRunner.  It uses the newer Cleartk engines instead of the
> Assertion engines.
>
> Sean
> ________________________________________
> From: Abhishek De <ab...@gmail.com>
> Sent: Tuesday, August 14, 2018 11:23 PM
> To: dev@ctakes.apache.org
> Subject: Re: Confusion regarding licensing of UMLS [EXTERNAL]
>
> Hi Peter,
>
> Thanks for all the help you provided me even from your vacation. If someone
> else is following this thread, please help me in this regard. I had hoped
> that 4 years later, there would be some decent literature as well as
> tutorials on the web, but sadly, it isn't the case. So could anyone please
> help me in this regard?
>
> Thanks and Regards,
> Abhishek
>
> On Wed, Aug 15, 2018 at 2:37 AM Peter Abramowitsch <
> pabramowitsch@gmail.com>
> wrote:
>
> > Hi Abhishek,
> >
> > I sympathize with your problem, and believe I’ve had the same one with
> the
> > Assertion Engine.  I think there are indeed resource lookup issues and
> have
> > had the same ones including that engine in a piper file.  Creating a
> > resource description from a class only works for engine sources that have
> > specific constant paths defined, and even then the resources need to be
> > present at those paths.   However, I’m on vacation at the moment, and so
> I
> > really don’t have the time or sources to help you.  Perhaps someone else
> on
> > this mailing list can.
> >
> > Peter
> >
> > Sent from my iPad
> >
> > > On Aug 14, 2018, at 05:16, Abhishek De <ab...@gmail.com>
> wrote:
> > >
> > > Hi Peter,
> > >
> > > Thanks a lot for bearing with me. Actually, I'm working on a tight
> > > deadline, and going through the entire codebase and the wiki
> meticulously
> > > would take me over a month!! I'm sincerely hoping you would understand
> > and
> > > bear with me.
> > >
> > > As an update, I had applied for a UMLS license which got rejected,
> don't
> > > know why!! I have re-applied for it, fingers crossed, this time, may
> the
> > > UMLS gods accept my prayer!!
> > >
> > > My sole aim, for now is to get a pipeline working from Java code, whose
> > > output I can see on the console window. I had a look at this for the
> > order
> > > in which the components are to be set up for a working pipeline:
> > >
> > >
> >
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_cTAKES-2B4.0-2BComponent-2BUse-2BGuide&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=tED25FbW6NUUIcd3GeshS4b_FhLDAbcTqMf7lwnAVOw&e=
> > >
> > > As assertion comes first, I attempted to attack it first. I took the
> > > TokenProcessingPipeline in ClinicalPipelineFactory and added the
> > > AssertionAnalysisEngine to it. However, since the class was missing
> > > a createAnnotatorDescription() method like the others, which is
> required
> > by
> > > the builder, I copied and pasted it there.
> > >
> > > public static AnalysisEngineDescription createAnnotatorDescription()
> > throws
> > > ResourceInitializationException{
> > >  return
> > >
> >
> AnalysisEngineFactory.createEngineDescription(AssertionAnalysisEngine.class);
> > > }
> > >
> > > The TokenProcessingPipeline now looked like this:
> > >
> > > public static AnalysisEngineDescription getTokenProcessingPipeline()
> > throws
> > > ResourceInitializationException, MalformedURLException {
> > >      AggregateBuilder builder = new AggregateBuilder();
> > >      builder.add(AssertionAnalysisEngine.createAnnotatorDescription());
> > >      builder.add( SimpleSegmentAnnotator.createAnnotatorDescription()
> );
> > >      builder.add( SentenceDetector.createAnnotatorDescription() );
> > >      builder.add( TokenizerAnnotatorPTB.createAnnotatorDescription() );
> > >      builder.add( LvgAnnotator.createAnnotatorDescription() );
> > >      builder.add(
> > > ContextDependentTokenizerAnnotator.createAnnotatorDescription() );
> > >      builder.add( POSTagger.createAnnotatorDescription() );
> > >      return builder.createAggregateDescription();
> > >   }
> > >
> > > However, when I tried to run this pipeline, I got an exception:
> > >
> > > Exception in thread "main"
> > > org.apache.uima.resource.ResourceInitializationException:
> Initialization
> > of
> > > annotator class
> > > "org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine" failed.
> > > (Descriptor: <unknown>)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:271)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:170)
> > > 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:279)
> > > at
> > >
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > > 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:279)
> > > at
> > >
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > > 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:279)
> > > at
> org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
> > > at
> > >
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
> > > at
> > >
> >
> org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:205)
> > > at
> > >
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:227)
> > > at
> > >
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:260)
> > > at
> > >
> >
> org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.main(ClinicalPipelineFactory.java:169)
> > > Caused by: java.lang.NullPointerException
> > > at java.io.File.<init>(File.java:277)
> > > at
> > >
> >
> org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine.initialize(AssertionAnalysisEngine.java:89)
> > > at
> > >
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:266)
> > > ... 26 more
> > >
> > > Upon tracing the root of the problem, I found that the
> > > AssertionAnalysisEngine tries to initialize certain model resources,
> and
> > > tries to obtain their file paths from a UimaContext:
> > >
> > > String assertionModelResourceKey = "assertionModelResource";
> > >        String assertionModelFilePath =
> getContext().getResourceFilePath(
> > >            assertionModelResourceKey);
> > >        assertionModelFile = new File(assertionModelFilePath);
> > >
> > > I'm thinking that perhaps this context itself is not getting resolved.
> I
> > > tried to search for some answers on the web, like this:
> > >
> > >
> >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mail-2Darchives.apache.org_mod-5Fmbox_ctakes-2Ddev_201804.mbox_-253CCAO1JDHhf0Uo3eDYxoTWKWWM00-2BWWpwyJvEAQGDE35OpMwNGAzw-40mail.gmail.com-253E&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=XPOTgHDUlUgpsedWj9qYsYJHII55hgKJsCVVIwxEaxE&e=
> > >
> > > However, here, the file was being directly asked for by name, and I
> don't
> > > have a concrete filename to search for. The ctakes-assertion-res module
> > > contains some model files, but I can't correlate them to the files
> being
> > > sought here. Please help.
> > >
> > > Thanks and Regards,
> > > Abhishek
> > >
> > > On Sun, Aug 12, 2018 at 10:27 PM Peter Abramowitsch <
> > pabramowitsch@gmail.com>
> > > wrote:
> > >
> > >> Hi Abhishek, not meaning to offend, but I think you need to spend more
> > time
> > >> on the wiki site, a lot of what you are asking about is documented
> there
> > >>
> > >>
> > >>
> >
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_cTAKES-2B4.0-2BUser-2BInstall-2BGuide-23cTAKES4.0UserInstallGuide-2DcTAKESPipelineFabricatorGUI-28CreatingPiperFiles-29&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=iBAUHJUdzDa5-5hR0YZbvNcJlKvT5g60Ee_fUKoPrxY&e=
> > >>
> > >> If you have the binary release, you'll find the launch scripts in
> ./bin,
> > >> if you have source you'll find it all in
> > >> ./ctakes-distribution/src/main/bin
> > >>
> > >> The piper files are sprinkled throughout based on the modules that use
> > them
> > >> and are grouped under a common resource folder in the binary release
> > >>
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> > >>
> > >>
> >
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> > >>
> > >>
> > >>
> > >> On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <abhishekde1986@gmail.com
> >
> > >> wrote:
> > >>
> > >>> Hi Peter,
> > >>>
> > >>> I found the PiperCreator class in the ctakes-gui module which is
> > opening
> > >> up
> > >>> the Pipeline Fabricator GUI with a lot of pipe bits which are seeming
> > to
> > >> be
> > >>> overwhelming!! If I could get the piper samples which you are talking
> > >>> about, I could have got a taste of how this thing works. But the
> > >> resources
> > >>> for this module does not contain those, nor does the ctakes-resources
> > >>> separate download which contains the dictionaries. Also, you said
> > >> "script"
> > >>> and not "class". That makes me think you are speaking of something
> else
> > >>> entirely, since there is no class named PiperRunner. So could you
> > please
> > >>> point me where to download these scripts and the resources?
> > >>>
> > >>> Thanks and Regards,
> > >>> Abhishek
> > >>>
> > >>> On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
> > >>> pabramowitsch@gmail.com>
> > >>> wrote:
> > >>>
> > >>>> I would suggest looking into the piper system - the scripts
> > >> piperCreator
> > >>>> and piperRunner so you can construct/run pipelines with the bits you
> > >>> want.
> > >>>> Also look for the piper samples scattered throughout the resources
> > >> area.
> > >>>> But assembling pipelines using Java is simple too.   You just need
> to
> > >>> learn
> > >>>> the flow and the upstream dependencies of the parsers and
> annotators.
> > >>>>
> > >>>> Peter
> > >>>>
> > >>>> On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <
> abhishekde1986@gmail.com
> > >
> > >>>> wrote:
> > >>>>
> > >>>>> Hi Peter,
> > >>>>>
> > >>>>> As you said, even if I don't use the UMLS dictionaries, I should be
> > >>> able
> > >>>> to
> > >>>>> run the pipeline, right? But the class ClinicalPipelineFactory in
> the
> > >>>>> ctakes-clinical-pipeline module, which initializes multiple
> pipelines
> > >>> for
> > >>>>> these various use cases, only defines a getDefaultPipeline() and
> > >>>>> getFastPipeline() which have some annotating components in them.
> The
> > >>>>> getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator
> > >> in
> > >>>> its
> > >>>>> workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator
> > >> in
> > >>>> its
> > >>>>> workflow. When I try to run the sample main() method with either of
> > >>> these
> > >>>>> pipelines, they throw an error requiring the UMLS credentials. I
> > >> mean,
> > >>>> the
> > >>>>> ClinicalPipelineWithUmls class is already present for handling the
> > >> UMLS
> > >>>>> path. Why do the rest of the pipelines also require UMLS
> > >>> authentication?
> > >>>>> Please suggest a pipeline which I might run and get some
> annotations
> > >>>>> identified from the text without UMLS.
> > >>>>>
> > >>>>> Thanks and Regards,
> > >>>>> Abhishek
> > >>>>>
> > >>>>> On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> > >>>>> pabramowitsch@gmail.com>
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Hi, yes there are a lot of details and use cases that are not
> > >>>> documented,
> > >>>>>> but there are quite a few bits of information if you take the
> time.
> > >>>>>>
> > >>>>>> To give some quick "answers" to your questions...  (I put that in
> > >>>> quotes
> > >>>>>> because these are interpretations and not legal opinions)
> > >>>>>>
> > >>>>>> You do not need a UMLS license if you don't include the UMLS
> lookup
> > >>>>>> mechanism.    In this case only the Apache license probably
> applies
> > >>>>>>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_licenses_&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=PNhVnlh9hNMfqAAGTKvP6G93qRkqYdtu4z4e0tdIceo&e=
> > >>>>>>
> > >>>>>> But if you do use UMLS, start by reading
> > >>>>>>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.nlm.nih.gov_databases_umls.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=wZ4jnQCgtFW8RRLThNAhlpc2uN1lJOwHupR-f73Fsuk&e=
> > >>>>>>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts.nlm.nih.gov_license.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=O8DfCU5pLsbDa13cTslYHxBeHFdmmgCN5h8-OnrrOFg&e=
> > >>>>>>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts.nlm.nih.gov__help_license_validateumlsuserhelp.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=QDew7-hh7PJ7kyj5MwovZb0n5BTdtXLsj1h6_TvswbY&e=
> > >>>>>>
> > >>>>>> There are options for situations where you would centralize a
> > >> ctakes
> > >>>>>> service.  Some of the provisions have to do with the fact that
> > >>>>>> that SNOMED vocabulary details are included in the UMLS output,
> and
> > >>> the
> > >>>>>> SNOMED organizations have specific licensing requirements that you
> > >>> can
> > >>>>> see
> > >>>>>> on their site.
> > >>>>>>
> > >>>>>> I am nearly positive that you cannot use the UMLS mechanism in a
> > >>>>> for-profit
> > >>>>>> setting without an explicit license from SNOMED.  Also, regardless
> > >> of
> > >>>>>> whether the service as you deliver it is centralized, as I
> > >> understand
> > >>>> the
> > >>>>>> language and diagrams on these sites, each and every end user
> needs
> > >>> to
> > >>>>>> have, and actively validate a current UMLS license.
> > >>>>>>
> > >>>>>> I've been involved in something similar to what you describe, but
> > >> in
> > >>> a
> > >>>>>> non-commercial setting, and it does validate every end user.
> > >>>>>>
> > >>>>>> Peter
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
> > >>> abhishekde1986@gmail.com>
> > >>>>>> wrote:
> > >>>>>>
> > >>>>>>> Hi all,
> > >>>>>>>
> > >>>>>>> I am Abhishek De, a newcomer to the CTAKES community. I had
> > >> worked
> > >>>> with
> > >>>>>>> CTAKES over 4 years ago, but now I am trying to incorporate it
> > >> into
> > >>>> my
> > >>>>>> Java
> > >>>>>>> application as a senior developer, so I need to know a lot of
> > >>> things
> > >>>>>> about
> > >>>>>>> it. For starters, I can see that even the pipeline without UMLS
> > >>> needs
> > >>>>>> UMLS
> > >>>>>>> credentials in order to run. So I have the following questions:
> > >>>>>>>
> > >>>>>>> 1. Is there a certain fee which is required in order to apply
> > >> for a
> > >>>>> UMLS
> > >>>>>>> license?
> > >>>>>>>
> > >>>>>>> 2. My organization is building this pharmacovigilance app which
> > >>> will
> > >>>>>>> internally use CTAKES for its client. Is it okay for only my
> > >> parent
> > >>>>>>> organization to have the UMLS license or do the client needs to
> > >>> have
> > >>>> it
> > >>>>>>> too? If I expose the application as a service, with the servers
> > >>>>> residing
> > >>>>>> in
> > >>>>>>> our organization's premises, would the client still need to have
> > >> a
> > >>>>>> licnse?
> > >>>>>>>
> > >>>>>>> 3. As there is precious little documentation on CTAKES, and many
> > >>>> links
> > >>>>>>> there are now dead including the ones giving instructions on how
> > >> to
> > >>>>>> install
> > >>>>>>> dictionaries for RxNorm or SNOMED-CT, could anyone please help me
> > >>> in
> > >>>>> this
> > >>>>>>> regard?
> > >>>>>>>
> > >>>>>>> 4. Also, I would like to know if there are any small dictionaries
> > >>>> which
> > >>>>>>> could be used free of charge or licensing, for my PoC.
> > >>>>>>>
> > >>>>>>> Thanks and Regards,
> > >>>>>>> Abhishek De
> > >>>>>>>
> > >>>>>>
> > >>>>>
> > >>>>
> > >>>
> > >>
> >
>
>

Re: Confusion regarding licensing of UMLS [EXTERNAL]

Posted by "Finan, Sean" <Se...@childrens.harvard.edu>.
Hi Abhishek,

There is a very short introduction to building pipelines in ctakes 4.0 in a pamphlet that can be found at https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0 , section "Documentation", second link.  Pamphlet section 5.2, page 5.

There is a runnable example that prints discovered mentions and properties using a code-built pipeline.  ctakes-examples project, class ProcessDirBuilderRunner.  It uses the newer Cleartk engines instead of the Assertion engines.

Sean
________________________________________
From: Abhishek De <ab...@gmail.com>
Sent: Tuesday, August 14, 2018 11:23 PM
To: dev@ctakes.apache.org
Subject: Re: Confusion regarding licensing of UMLS [EXTERNAL]

Hi Peter,

Thanks for all the help you provided me even from your vacation. If someone
else is following this thread, please help me in this regard. I had hoped
that 4 years later, there would be some decent literature as well as
tutorials on the web, but sadly, it isn't the case. So could anyone please
help me in this regard?

Thanks and Regards,
Abhishek

On Wed, Aug 15, 2018 at 2:37 AM Peter Abramowitsch <pa...@gmail.com>
wrote:

> Hi Abhishek,
>
> I sympathize with your problem, and believe I’ve had the same one with the
> Assertion Engine.  I think there are indeed resource lookup issues and have
> had the same ones including that engine in a piper file.  Creating a
> resource description from a class only works for engine sources that have
> specific constant paths defined, and even then the resources need to be
> present at those paths.   However, I’m on vacation at the moment, and so I
> really don’t have the time or sources to help you.  Perhaps someone else on
> this mailing list can.
>
> Peter
>
> Sent from my iPad
>
> > On Aug 14, 2018, at 05:16, Abhishek De <ab...@gmail.com> wrote:
> >
> > Hi Peter,
> >
> > Thanks a lot for bearing with me. Actually, I'm working on a tight
> > deadline, and going through the entire codebase and the wiki meticulously
> > would take me over a month!! I'm sincerely hoping you would understand
> and
> > bear with me.
> >
> > As an update, I had applied for a UMLS license which got rejected, don't
> > know why!! I have re-applied for it, fingers crossed, this time, may the
> > UMLS gods accept my prayer!!
> >
> > My sole aim, for now is to get a pipeline working from Java code, whose
> > output I can see on the console window. I had a look at this for the
> order
> > in which the components are to be set up for a working pipeline:
> >
> >
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_cTAKES-2B4.0-2BComponent-2BUse-2BGuide&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=tED25FbW6NUUIcd3GeshS4b_FhLDAbcTqMf7lwnAVOw&e=
> >
> > As assertion comes first, I attempted to attack it first. I took the
> > TokenProcessingPipeline in ClinicalPipelineFactory and added the
> > AssertionAnalysisEngine to it. However, since the class was missing
> > a createAnnotatorDescription() method like the others, which is required
> by
> > the builder, I copied and pasted it there.
> >
> > public static AnalysisEngineDescription createAnnotatorDescription()
> throws
> > ResourceInitializationException{
> >  return
> >
> AnalysisEngineFactory.createEngineDescription(AssertionAnalysisEngine.class);
> > }
> >
> > The TokenProcessingPipeline now looked like this:
> >
> > public static AnalysisEngineDescription getTokenProcessingPipeline()
> throws
> > ResourceInitializationException, MalformedURLException {
> >      AggregateBuilder builder = new AggregateBuilder();
> >      builder.add(AssertionAnalysisEngine.createAnnotatorDescription());
> >      builder.add( SimpleSegmentAnnotator.createAnnotatorDescription() );
> >      builder.add( SentenceDetector.createAnnotatorDescription() );
> >      builder.add( TokenizerAnnotatorPTB.createAnnotatorDescription() );
> >      builder.add( LvgAnnotator.createAnnotatorDescription() );
> >      builder.add(
> > ContextDependentTokenizerAnnotator.createAnnotatorDescription() );
> >      builder.add( POSTagger.createAnnotatorDescription() );
> >      return builder.createAggregateDescription();
> >   }
> >
> > However, when I tried to run this pipeline, I got an exception:
> >
> > Exception in thread "main"
> > org.apache.uima.resource.ResourceInitializationException: Initialization
> of
> > annotator class
> > "org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine" failed.
> > (Descriptor: <unknown>)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:271)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:170)
> > 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:279)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > at
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > 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:279)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > at
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > 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:279)
> > at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
> > at
> >
> org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:205)
> > at
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:227)
> > at
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:260)
> > at
> >
> org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.main(ClinicalPipelineFactory.java:169)
> > Caused by: java.lang.NullPointerException
> > at java.io.File.<init>(File.java:277)
> > at
> >
> org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine.initialize(AssertionAnalysisEngine.java:89)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:266)
> > ... 26 more
> >
> > Upon tracing the root of the problem, I found that the
> > AssertionAnalysisEngine tries to initialize certain model resources, and
> > tries to obtain their file paths from a UimaContext:
> >
> > String assertionModelResourceKey = "assertionModelResource";
> >        String assertionModelFilePath = getContext().getResourceFilePath(
> >            assertionModelResourceKey);
> >        assertionModelFile = new File(assertionModelFilePath);
> >
> > I'm thinking that perhaps this context itself is not getting resolved. I
> > tried to search for some answers on the web, like this:
> >
> >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mail-2Darchives.apache.org_mod-5Fmbox_ctakes-2Ddev_201804.mbox_-253CCAO1JDHhf0Uo3eDYxoTWKWWM00-2BWWpwyJvEAQGDE35OpMwNGAzw-40mail.gmail.com-253E&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=XPOTgHDUlUgpsedWj9qYsYJHII55hgKJsCVVIwxEaxE&e=
> >
> > However, here, the file was being directly asked for by name, and I don't
> > have a concrete filename to search for. The ctakes-assertion-res module
> > contains some model files, but I can't correlate them to the files being
> > sought here. Please help.
> >
> > Thanks and Regards,
> > Abhishek
> >
> > On Sun, Aug 12, 2018 at 10:27 PM Peter Abramowitsch <
> pabramowitsch@gmail.com>
> > wrote:
> >
> >> Hi Abhishek, not meaning to offend, but I think you need to spend more
> time
> >> on the wiki site, a lot of what you are asking about is documented there
> >>
> >>
> >>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_cTAKES-2B4.0-2BUser-2BInstall-2BGuide-23cTAKES4.0UserInstallGuide-2DcTAKESPipelineFabricatorGUI-28CreatingPiperFiles-29&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=iBAUHJUdzDa5-5hR0YZbvNcJlKvT5g60Ee_fUKoPrxY&e=
> >>
> >> If you have the binary release, you'll find the launch scripts in ./bin,
> >> if you have source you'll find it all in
> >> ./ctakes-distribution/src/main/bin
> >>
> >> The piper files are sprinkled throughout based on the modules that use
> them
> >> and are grouped under a common resource folder in the binary release
> >>
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> >>
> >>
> >>
> >> On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <ab...@gmail.com>
> >> wrote:
> >>
> >>> Hi Peter,
> >>>
> >>> I found the PiperCreator class in the ctakes-gui module which is
> opening
> >> up
> >>> the Pipeline Fabricator GUI with a lot of pipe bits which are seeming
> to
> >> be
> >>> overwhelming!! If I could get the piper samples which you are talking
> >>> about, I could have got a taste of how this thing works. But the
> >> resources
> >>> for this module does not contain those, nor does the ctakes-resources
> >>> separate download which contains the dictionaries. Also, you said
> >> "script"
> >>> and not "class". That makes me think you are speaking of something else
> >>> entirely, since there is no class named PiperRunner. So could you
> please
> >>> point me where to download these scripts and the resources?
> >>>
> >>> Thanks and Regards,
> >>> Abhishek
> >>>
> >>> On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
> >>> pabramowitsch@gmail.com>
> >>> wrote:
> >>>
> >>>> I would suggest looking into the piper system - the scripts
> >> piperCreator
> >>>> and piperRunner so you can construct/run pipelines with the bits you
> >>> want.
> >>>> Also look for the piper samples scattered throughout the resources
> >> area.
> >>>> But assembling pipelines using Java is simple too.   You just need to
> >>> learn
> >>>> the flow and the upstream dependencies of the parsers and annotators.
> >>>>
> >>>> Peter
> >>>>
> >>>> On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <abhishekde1986@gmail.com
> >
> >>>> wrote:
> >>>>
> >>>>> Hi Peter,
> >>>>>
> >>>>> As you said, even if I don't use the UMLS dictionaries, I should be
> >>> able
> >>>> to
> >>>>> run the pipeline, right? But the class ClinicalPipelineFactory in the
> >>>>> ctakes-clinical-pipeline module, which initializes multiple pipelines
> >>> for
> >>>>> these various use cases, only defines a getDefaultPipeline() and
> >>>>> getFastPipeline() which have some annotating components in them. The
> >>>>> getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator
> >> in
> >>>> its
> >>>>> workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator
> >> in
> >>>> its
> >>>>> workflow. When I try to run the sample main() method with either of
> >>> these
> >>>>> pipelines, they throw an error requiring the UMLS credentials. I
> >> mean,
> >>>> the
> >>>>> ClinicalPipelineWithUmls class is already present for handling the
> >> UMLS
> >>>>> path. Why do the rest of the pipelines also require UMLS
> >>> authentication?
> >>>>> Please suggest a pipeline which I might run and get some annotations
> >>>>> identified from the text without UMLS.
> >>>>>
> >>>>> Thanks and Regards,
> >>>>> Abhishek
> >>>>>
> >>>>> On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> >>>>> pabramowitsch@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi, yes there are a lot of details and use cases that are not
> >>>> documented,
> >>>>>> but there are quite a few bits of information if you take the time.
> >>>>>>
> >>>>>> To give some quick "answers" to your questions...  (I put that in
> >>>> quotes
> >>>>>> because these are interpretations and not legal opinions)
> >>>>>>
> >>>>>> You do not need a UMLS license if you don't include the UMLS lookup
> >>>>>> mechanism.    In this case only the Apache license probably applies
> >>>>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_licenses_&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=PNhVnlh9hNMfqAAGTKvP6G93qRkqYdtu4z4e0tdIceo&e=
> >>>>>>
> >>>>>> But if you do use UMLS, start by reading
> >>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.nlm.nih.gov_databases_umls.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=wZ4jnQCgtFW8RRLThNAhlpc2uN1lJOwHupR-f73Fsuk&e=
> >>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts.nlm.nih.gov_license.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=O8DfCU5pLsbDa13cTslYHxBeHFdmmgCN5h8-OnrrOFg&e=
> >>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts.nlm.nih.gov__help_license_validateumlsuserhelp.html&d=DwIFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=paY_XjRKMyWf-1kr-_W9Z2jh1wQvymH2PIyF4_tBow0&s=QDew7-hh7PJ7kyj5MwovZb0n5BTdtXLsj1h6_TvswbY&e=
> >>>>>>
> >>>>>> There are options for situations where you would centralize a
> >> ctakes
> >>>>>> service.  Some of the provisions have to do with the fact that
> >>>>>> that SNOMED vocabulary details are included in the UMLS output, and
> >>> the
> >>>>>> SNOMED organizations have specific licensing requirements that you
> >>> can
> >>>>> see
> >>>>>> on their site.
> >>>>>>
> >>>>>> I am nearly positive that you cannot use the UMLS mechanism in a
> >>>>> for-profit
> >>>>>> setting without an explicit license from SNOMED.  Also, regardless
> >> of
> >>>>>> whether the service as you deliver it is centralized, as I
> >> understand
> >>>> the
> >>>>>> language and diagrams on these sites, each and every end user needs
> >>> to
> >>>>>> have, and actively validate a current UMLS license.
> >>>>>>
> >>>>>> I've been involved in something similar to what you describe, but
> >> in
> >>> a
> >>>>>> non-commercial setting, and it does validate every end user.
> >>>>>>
> >>>>>> Peter
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
> >>> abhishekde1986@gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Hi all,
> >>>>>>>
> >>>>>>> I am Abhishek De, a newcomer to the CTAKES community. I had
> >> worked
> >>>> with
> >>>>>>> CTAKES over 4 years ago, but now I am trying to incorporate it
> >> into
> >>>> my
> >>>>>> Java
> >>>>>>> application as a senior developer, so I need to know a lot of
> >>> things
> >>>>>> about
> >>>>>>> it. For starters, I can see that even the pipeline without UMLS
> >>> needs
> >>>>>> UMLS
> >>>>>>> credentials in order to run. So I have the following questions:
> >>>>>>>
> >>>>>>> 1. Is there a certain fee which is required in order to apply
> >> for a
> >>>>> UMLS
> >>>>>>> license?
> >>>>>>>
> >>>>>>> 2. My organization is building this pharmacovigilance app which
> >>> will
> >>>>>>> internally use CTAKES for its client. Is it okay for only my
> >> parent
> >>>>>>> organization to have the UMLS license or do the client needs to
> >>> have
> >>>> it
> >>>>>>> too? If I expose the application as a service, with the servers
> >>>>> residing
> >>>>>> in
> >>>>>>> our organization's premises, would the client still need to have
> >> a
> >>>>>> licnse?
> >>>>>>>
> >>>>>>> 3. As there is precious little documentation on CTAKES, and many
> >>>> links
> >>>>>>> there are now dead including the ones giving instructions on how
> >> to
> >>>>>> install
> >>>>>>> dictionaries for RxNorm or SNOMED-CT, could anyone please help me
> >>> in
> >>>>> this
> >>>>>>> regard?
> >>>>>>>
> >>>>>>> 4. Also, I would like to know if there are any small dictionaries
> >>>> which
> >>>>>>> could be used free of charge or licensing, for my PoC.
> >>>>>>>
> >>>>>>> Thanks and Regards,
> >>>>>>> Abhishek De
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
>


Re: Confusion regarding licensing of UMLS

Posted by Abhishek De <ab...@gmail.com>.
Hi Peter,

Thanks for all the help you provided me even from your vacation. If someone
else is following this thread, please help me in this regard. I had hoped
that 4 years later, there would be some decent literature as well as
tutorials on the web, but sadly, it isn't the case. So could anyone please
help me in this regard?

Thanks and Regards,
Abhishek

On Wed, Aug 15, 2018 at 2:37 AM Peter Abramowitsch <pa...@gmail.com>
wrote:

> Hi Abhishek,
>
> I sympathize with your problem, and believe I’ve had the same one with the
> Assertion Engine.  I think there are indeed resource lookup issues and have
> had the same ones including that engine in a piper file.  Creating a
> resource description from a class only works for engine sources that have
> specific constant paths defined, and even then the resources need to be
> present at those paths.   However, I’m on vacation at the moment, and so I
> really don’t have the time or sources to help you.  Perhaps someone else on
> this mailing list can.
>
> Peter
>
> Sent from my iPad
>
> > On Aug 14, 2018, at 05:16, Abhishek De <ab...@gmail.com> wrote:
> >
> > Hi Peter,
> >
> > Thanks a lot for bearing with me. Actually, I'm working on a tight
> > deadline, and going through the entire codebase and the wiki meticulously
> > would take me over a month!! I'm sincerely hoping you would understand
> and
> > bear with me.
> >
> > As an update, I had applied for a UMLS license which got rejected, don't
> > know why!! I have re-applied for it, fingers crossed, this time, may the
> > UMLS gods accept my prayer!!
> >
> > My sole aim, for now is to get a pipeline working from Java code, whose
> > output I can see on the console window. I had a look at this for the
> order
> > in which the components are to be set up for a working pipeline:
> >
> >
> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+Component+Use+Guide
> >
> > As assertion comes first, I attempted to attack it first. I took the
> > TokenProcessingPipeline in ClinicalPipelineFactory and added the
> > AssertionAnalysisEngine to it. However, since the class was missing
> > a createAnnotatorDescription() method like the others, which is required
> by
> > the builder, I copied and pasted it there.
> >
> > public static AnalysisEngineDescription createAnnotatorDescription()
> throws
> > ResourceInitializationException{
> >  return
> >
> AnalysisEngineFactory.createEngineDescription(AssertionAnalysisEngine.class);
> > }
> >
> > The TokenProcessingPipeline now looked like this:
> >
> > public static AnalysisEngineDescription getTokenProcessingPipeline()
> throws
> > ResourceInitializationException, MalformedURLException {
> >      AggregateBuilder builder = new AggregateBuilder();
> >      builder.add(AssertionAnalysisEngine.createAnnotatorDescription());
> >      builder.add( SimpleSegmentAnnotator.createAnnotatorDescription() );
> >      builder.add( SentenceDetector.createAnnotatorDescription() );
> >      builder.add( TokenizerAnnotatorPTB.createAnnotatorDescription() );
> >      builder.add( LvgAnnotator.createAnnotatorDescription() );
> >      builder.add(
> > ContextDependentTokenizerAnnotator.createAnnotatorDescription() );
> >      builder.add( POSTagger.createAnnotatorDescription() );
> >      return builder.createAggregateDescription();
> >   }
> >
> > However, when I tried to run this pipeline, I got an exception:
> >
> > Exception in thread "main"
> > org.apache.uima.resource.ResourceInitializationException: Initialization
> of
> > annotator class
> > "org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine" failed.
> > (Descriptor: <unknown>)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:271)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:170)
> > 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:279)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > at
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > 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:279)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> > at
> >
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> > at
> >
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> > 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:279)
> > at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
> > at
> >
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
> > at
> >
> org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:205)
> > at
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:227)
> > at
> >
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:260)
> > at
> >
> org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.main(ClinicalPipelineFactory.java:169)
> > Caused by: java.lang.NullPointerException
> > at java.io.File.<init>(File.java:277)
> > at
> >
> org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine.initialize(AssertionAnalysisEngine.java:89)
> > at
> >
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:266)
> > ... 26 more
> >
> > Upon tracing the root of the problem, I found that the
> > AssertionAnalysisEngine tries to initialize certain model resources, and
> > tries to obtain their file paths from a UimaContext:
> >
> > String assertionModelResourceKey = "assertionModelResource";
> >        String assertionModelFilePath = getContext().getResourceFilePath(
> >            assertionModelResourceKey);
> >        assertionModelFile = new File(assertionModelFilePath);
> >
> > I'm thinking that perhaps this context itself is not getting resolved. I
> > tried to search for some answers on the web, like this:
> >
> >
> http://mail-archives.apache.org/mod_mbox/ctakes-dev/201804.mbox/%3CCAO1JDHhf0Uo3eDYxoTWKWWM00+WWpwyJvEAQGDE35OpMwNGAzw@mail.gmail.com%3E
> >
> > However, here, the file was being directly asked for by name, and I don't
> > have a concrete filename to search for. The ctakes-assertion-res module
> > contains some model files, but I can't correlate them to the files being
> > sought here. Please help.
> >
> > Thanks and Regards,
> > Abhishek
> >
> > On Sun, Aug 12, 2018 at 10:27 PM Peter Abramowitsch <
> pabramowitsch@gmail.com>
> > wrote:
> >
> >> Hi Abhishek, not meaning to offend, but I think you need to spend more
> time
> >> on the wiki site, a lot of what you are asking about is documented there
> >>
> >>
> >>
> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+User+Install+Guide#cTAKES4.0UserInstallGuide-cTAKESPipelineFabricatorGUI(CreatingPiperFiles)
> >>
> >> If you have the binary release, you'll find the launch scripts in ./bin,
> >> if you have source you'll find it all in
> >> ./ctakes-distribution/src/main/bin
> >>
> >> The piper files are sprinkled throughout based on the modules that use
> them
> >> and are grouped under a common resource folder in the binary release
> >>
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
> >>
> >>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
> >>
> >>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
> >>
> >>
> >>
> >> On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <ab...@gmail.com>
> >> wrote:
> >>
> >>> Hi Peter,
> >>>
> >>> I found the PiperCreator class in the ctakes-gui module which is
> opening
> >> up
> >>> the Pipeline Fabricator GUI with a lot of pipe bits which are seeming
> to
> >> be
> >>> overwhelming!! If I could get the piper samples which you are talking
> >>> about, I could have got a taste of how this thing works. But the
> >> resources
> >>> for this module does not contain those, nor does the ctakes-resources
> >>> separate download which contains the dictionaries. Also, you said
> >> "script"
> >>> and not "class". That makes me think you are speaking of something else
> >>> entirely, since there is no class named PiperRunner. So could you
> please
> >>> point me where to download these scripts and the resources?
> >>>
> >>> Thanks and Regards,
> >>> Abhishek
> >>>
> >>> On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
> >>> pabramowitsch@gmail.com>
> >>> wrote:
> >>>
> >>>> I would suggest looking into the piper system - the scripts
> >> piperCreator
> >>>> and piperRunner so you can construct/run pipelines with the bits you
> >>> want.
> >>>> Also look for the piper samples scattered throughout the resources
> >> area.
> >>>> But assembling pipelines using Java is simple too.   You just need to
> >>> learn
> >>>> the flow and the upstream dependencies of the parsers and annotators.
> >>>>
> >>>> Peter
> >>>>
> >>>> On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <abhishekde1986@gmail.com
> >
> >>>> wrote:
> >>>>
> >>>>> Hi Peter,
> >>>>>
> >>>>> As you said, even if I don't use the UMLS dictionaries, I should be
> >>> able
> >>>> to
> >>>>> run the pipeline, right? But the class ClinicalPipelineFactory in the
> >>>>> ctakes-clinical-pipeline module, which initializes multiple pipelines
> >>> for
> >>>>> these various use cases, only defines a getDefaultPipeline() and
> >>>>> getFastPipeline() which have some annotating components in them. The
> >>>>> getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator
> >> in
> >>>> its
> >>>>> workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator
> >> in
> >>>> its
> >>>>> workflow. When I try to run the sample main() method with either of
> >>> these
> >>>>> pipelines, they throw an error requiring the UMLS credentials. I
> >> mean,
> >>>> the
> >>>>> ClinicalPipelineWithUmls class is already present for handling the
> >> UMLS
> >>>>> path. Why do the rest of the pipelines also require UMLS
> >>> authentication?
> >>>>> Please suggest a pipeline which I might run and get some annotations
> >>>>> identified from the text without UMLS.
> >>>>>
> >>>>> Thanks and Regards,
> >>>>> Abhishek
> >>>>>
> >>>>> On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> >>>>> pabramowitsch@gmail.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi, yes there are a lot of details and use cases that are not
> >>>> documented,
> >>>>>> but there are quite a few bits of information if you take the time.
> >>>>>>
> >>>>>> To give some quick "answers" to your questions...  (I put that in
> >>>> quotes
> >>>>>> because these are interpretations and not legal opinions)
> >>>>>>
> >>>>>> You do not need a UMLS license if you don't include the UMLS lookup
> >>>>>> mechanism.    In this case only the Apache license probably applies
> >>>>>> http://www.apache.org/licenses/
> >>>>>>
> >>>>>> But if you do use UMLS, start by reading
> >>>>>> https://www.nlm.nih.gov/databases/umls.html
> >>>>>> https://uts.nlm.nih.gov/license.html
> >>>>>> https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
> >>>>>>
> >>>>>> There are options for situations where you would centralize a
> >> ctakes
> >>>>>> service.  Some of the provisions have to do with the fact that
> >>>>>> that SNOMED vocabulary details are included in the UMLS output, and
> >>> the
> >>>>>> SNOMED organizations have specific licensing requirements that you
> >>> can
> >>>>> see
> >>>>>> on their site.
> >>>>>>
> >>>>>> I am nearly positive that you cannot use the UMLS mechanism in a
> >>>>> for-profit
> >>>>>> setting without an explicit license from SNOMED.  Also, regardless
> >> of
> >>>>>> whether the service as you deliver it is centralized, as I
> >> understand
> >>>> the
> >>>>>> language and diagrams on these sites, each and every end user needs
> >>> to
> >>>>>> have, and actively validate a current UMLS license.
> >>>>>>
> >>>>>> I've been involved in something similar to what you describe, but
> >> in
> >>> a
> >>>>>> non-commercial setting, and it does validate every end user.
> >>>>>>
> >>>>>> Peter
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
> >>> abhishekde1986@gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Hi all,
> >>>>>>>
> >>>>>>> I am Abhishek De, a newcomer to the CTAKES community. I had
> >> worked
> >>>> with
> >>>>>>> CTAKES over 4 years ago, but now I am trying to incorporate it
> >> into
> >>>> my
> >>>>>> Java
> >>>>>>> application as a senior developer, so I need to know a lot of
> >>> things
> >>>>>> about
> >>>>>>> it. For starters, I can see that even the pipeline without UMLS
> >>> needs
> >>>>>> UMLS
> >>>>>>> credentials in order to run. So I have the following questions:
> >>>>>>>
> >>>>>>> 1. Is there a certain fee which is required in order to apply
> >> for a
> >>>>> UMLS
> >>>>>>> license?
> >>>>>>>
> >>>>>>> 2. My organization is building this pharmacovigilance app which
> >>> will
> >>>>>>> internally use CTAKES for its client. Is it okay for only my
> >> parent
> >>>>>>> organization to have the UMLS license or do the client needs to
> >>> have
> >>>> it
> >>>>>>> too? If I expose the application as a service, with the servers
> >>>>> residing
> >>>>>> in
> >>>>>>> our organization's premises, would the client still need to have
> >> a
> >>>>>> licnse?
> >>>>>>>
> >>>>>>> 3. As there is precious little documentation on CTAKES, and many
> >>>> links
> >>>>>>> there are now dead including the ones giving instructions on how
> >> to
> >>>>>> install
> >>>>>>> dictionaries for RxNorm or SNOMED-CT, could anyone please help me
> >>> in
> >>>>> this
> >>>>>>> regard?
> >>>>>>>
> >>>>>>> 4. Also, I would like to know if there are any small dictionaries
> >>>> which
> >>>>>>> could be used free of charge or licensing, for my PoC.
> >>>>>>>
> >>>>>>> Thanks and Regards,
> >>>>>>> Abhishek De
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
>

Re: Confusion regarding licensing of UMLS

Posted by Peter Abramowitsch <pa...@gmail.com>.
Hi Abhishek,

I sympathize with your problem, and believe I’ve had the same one with the Assertion Engine.  I think there are indeed resource lookup issues and have had the same ones including that engine in a piper file.  Creating a resource description from a class only works for engine sources that have specific constant paths defined, and even then the resources need to be present at those paths.   However, I’m on vacation at the moment, and so I really don’t have the time or sources to help you.  Perhaps someone else on this mailing list can.

Peter

Sent from my iPad

> On Aug 14, 2018, at 05:16, Abhishek De <ab...@gmail.com> wrote:
> 
> Hi Peter,
> 
> Thanks a lot for bearing with me. Actually, I'm working on a tight
> deadline, and going through the entire codebase and the wiki meticulously
> would take me over a month!! I'm sincerely hoping you would understand and
> bear with me.
> 
> As an update, I had applied for a UMLS license which got rejected, don't
> know why!! I have re-applied for it, fingers crossed, this time, may the
> UMLS gods accept my prayer!!
> 
> My sole aim, for now is to get a pipeline working from Java code, whose
> output I can see on the console window. I had a look at this for the order
> in which the components are to be set up for a working pipeline:
> 
> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+Component+Use+Guide
> 
> As assertion comes first, I attempted to attack it first. I took the
> TokenProcessingPipeline in ClinicalPipelineFactory and added the
> AssertionAnalysisEngine to it. However, since the class was missing
> a createAnnotatorDescription() method like the others, which is required by
> the builder, I copied and pasted it there.
> 
> public static AnalysisEngineDescription createAnnotatorDescription() throws
> ResourceInitializationException{
>  return
> AnalysisEngineFactory.createEngineDescription(AssertionAnalysisEngine.class);
> }
> 
> The TokenProcessingPipeline now looked like this:
> 
> public static AnalysisEngineDescription getTokenProcessingPipeline() throws
> ResourceInitializationException, MalformedURLException {
>      AggregateBuilder builder = new AggregateBuilder();
>      builder.add(AssertionAnalysisEngine.createAnnotatorDescription());
>      builder.add( SimpleSegmentAnnotator.createAnnotatorDescription() );
>      builder.add( SentenceDetector.createAnnotatorDescription() );
>      builder.add( TokenizerAnnotatorPTB.createAnnotatorDescription() );
>      builder.add( LvgAnnotator.createAnnotatorDescription() );
>      builder.add(
> ContextDependentTokenizerAnnotator.createAnnotatorDescription() );
>      builder.add( POSTagger.createAnnotatorDescription() );
>      return builder.createAggregateDescription();
>   }
> 
> However, when I tried to run this pipeline, I got an exception:
> 
> Exception in thread "main"
> org.apache.uima.resource.ResourceInitializationException: Initialization of
> annotator class
> "org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine" failed.
> (Descriptor: <unknown>)
> at
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:271)
> at
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:170)
> 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:279)
> at
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> 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:279)
> at
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
> 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:279)
> at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
> at
> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
> at
> org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:205)
> at
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:227)
> at
> org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:260)
> at
> org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.main(ClinicalPipelineFactory.java:169)
> Caused by: java.lang.NullPointerException
> at java.io.File.<init>(File.java:277)
> at
> org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine.initialize(AssertionAnalysisEngine.java:89)
> at
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:266)
> ... 26 more
> 
> Upon tracing the root of the problem, I found that the
> AssertionAnalysisEngine tries to initialize certain model resources, and
> tries to obtain their file paths from a UimaContext:
> 
> String assertionModelResourceKey = "assertionModelResource";
>        String assertionModelFilePath = getContext().getResourceFilePath(
>            assertionModelResourceKey);
>        assertionModelFile = new File(assertionModelFilePath);
> 
> I'm thinking that perhaps this context itself is not getting resolved. I
> tried to search for some answers on the web, like this:
> 
> http://mail-archives.apache.org/mod_mbox/ctakes-dev/201804.mbox/%3CCAO1JDHhf0Uo3eDYxoTWKWWM00+WWpwyJvEAQGDE35OpMwNGAzw@mail.gmail.com%3E
> 
> However, here, the file was being directly asked for by name, and I don't
> have a concrete filename to search for. The ctakes-assertion-res module
> contains some model files, but I can't correlate them to the files being
> sought here. Please help.
> 
> Thanks and Regards,
> Abhishek
> 
> On Sun, Aug 12, 2018 at 10:27 PM Peter Abramowitsch <pa...@gmail.com>
> wrote:
> 
>> Hi Abhishek, not meaning to offend, but I think you need to spend more time
>> on the wiki site, a lot of what you are asking about is documented there
>> 
>> 
>> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+User+Install+Guide#cTAKES4.0UserInstallGuide-cTAKESPipelineFabricatorGUI(CreatingPiperFiles)
>> 
>> If you have the binary release, you'll find the launch scripts in ./bin,
>> if you have source you'll find it all in
>> ./ctakes-distribution/src/main/bin
>> 
>> The piper files are sprinkled throughout based on the modules that use them
>> and are grouped under a common resource folder in the binary release
>> 
>> 
>> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
>> 
>> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
>> 
>> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
>> 
>> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
>> 
>> 
>> 
>> On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <ab...@gmail.com>
>> wrote:
>> 
>>> Hi Peter,
>>> 
>>> I found the PiperCreator class in the ctakes-gui module which is opening
>> up
>>> the Pipeline Fabricator GUI with a lot of pipe bits which are seeming to
>> be
>>> overwhelming!! If I could get the piper samples which you are talking
>>> about, I could have got a taste of how this thing works. But the
>> resources
>>> for this module does not contain those, nor does the ctakes-resources
>>> separate download which contains the dictionaries. Also, you said
>> "script"
>>> and not "class". That makes me think you are speaking of something else
>>> entirely, since there is no class named PiperRunner. So could you please
>>> point me where to download these scripts and the resources?
>>> 
>>> Thanks and Regards,
>>> Abhishek
>>> 
>>> On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
>>> pabramowitsch@gmail.com>
>>> wrote:
>>> 
>>>> I would suggest looking into the piper system - the scripts
>> piperCreator
>>>> and piperRunner so you can construct/run pipelines with the bits you
>>> want.
>>>> Also look for the piper samples scattered throughout the resources
>> area.
>>>> But assembling pipelines using Java is simple too.   You just need to
>>> learn
>>>> the flow and the upstream dependencies of the parsers and annotators.
>>>> 
>>>> Peter
>>>> 
>>>> On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <ab...@gmail.com>
>>>> wrote:
>>>> 
>>>>> Hi Peter,
>>>>> 
>>>>> As you said, even if I don't use the UMLS dictionaries, I should be
>>> able
>>>> to
>>>>> run the pipeline, right? But the class ClinicalPipelineFactory in the
>>>>> ctakes-clinical-pipeline module, which initializes multiple pipelines
>>> for
>>>>> these various use cases, only defines a getDefaultPipeline() and
>>>>> getFastPipeline() which have some annotating components in them. The
>>>>> getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator
>> in
>>>> its
>>>>> workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator
>> in
>>>> its
>>>>> workflow. When I try to run the sample main() method with either of
>>> these
>>>>> pipelines, they throw an error requiring the UMLS credentials. I
>> mean,
>>>> the
>>>>> ClinicalPipelineWithUmls class is already present for handling the
>> UMLS
>>>>> path. Why do the rest of the pipelines also require UMLS
>>> authentication?
>>>>> Please suggest a pipeline which I might run and get some annotations
>>>>> identified from the text without UMLS.
>>>>> 
>>>>> Thanks and Regards,
>>>>> Abhishek
>>>>> 
>>>>> On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
>>>>> pabramowitsch@gmail.com>
>>>>> wrote:
>>>>> 
>>>>>> Hi, yes there are a lot of details and use cases that are not
>>>> documented,
>>>>>> but there are quite a few bits of information if you take the time.
>>>>>> 
>>>>>> To give some quick "answers" to your questions...  (I put that in
>>>> quotes
>>>>>> because these are interpretations and not legal opinions)
>>>>>> 
>>>>>> You do not need a UMLS license if you don't include the UMLS lookup
>>>>>> mechanism.    In this case only the Apache license probably applies
>>>>>> http://www.apache.org/licenses/
>>>>>> 
>>>>>> But if you do use UMLS, start by reading
>>>>>> https://www.nlm.nih.gov/databases/umls.html
>>>>>> https://uts.nlm.nih.gov/license.html
>>>>>> https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
>>>>>> 
>>>>>> There are options for situations where you would centralize a
>> ctakes
>>>>>> service.  Some of the provisions have to do with the fact that
>>>>>> that SNOMED vocabulary details are included in the UMLS output, and
>>> the
>>>>>> SNOMED organizations have specific licensing requirements that you
>>> can
>>>>> see
>>>>>> on their site.
>>>>>> 
>>>>>> I am nearly positive that you cannot use the UMLS mechanism in a
>>>>> for-profit
>>>>>> setting without an explicit license from SNOMED.  Also, regardless
>> of
>>>>>> whether the service as you deliver it is centralized, as I
>> understand
>>>> the
>>>>>> language and diagrams on these sites, each and every end user needs
>>> to
>>>>>> have, and actively validate a current UMLS license.
>>>>>> 
>>>>>> I've been involved in something similar to what you describe, but
>> in
>>> a
>>>>>> non-commercial setting, and it does validate every end user.
>>>>>> 
>>>>>> Peter
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
>>> abhishekde1986@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi all,
>>>>>>> 
>>>>>>> I am Abhishek De, a newcomer to the CTAKES community. I had
>> worked
>>>> with
>>>>>>> CTAKES over 4 years ago, but now I am trying to incorporate it
>> into
>>>> my
>>>>>> Java
>>>>>>> application as a senior developer, so I need to know a lot of
>>> things
>>>>>> about
>>>>>>> it. For starters, I can see that even the pipeline without UMLS
>>> needs
>>>>>> UMLS
>>>>>>> credentials in order to run. So I have the following questions:
>>>>>>> 
>>>>>>> 1. Is there a certain fee which is required in order to apply
>> for a
>>>>> UMLS
>>>>>>> license?
>>>>>>> 
>>>>>>> 2. My organization is building this pharmacovigilance app which
>>> will
>>>>>>> internally use CTAKES for its client. Is it okay for only my
>> parent
>>>>>>> organization to have the UMLS license or do the client needs to
>>> have
>>>> it
>>>>>>> too? If I expose the application as a service, with the servers
>>>>> residing
>>>>>> in
>>>>>>> our organization's premises, would the client still need to have
>> a
>>>>>> licnse?
>>>>>>> 
>>>>>>> 3. As there is precious little documentation on CTAKES, and many
>>>> links
>>>>>>> there are now dead including the ones giving instructions on how
>> to
>>>>>> install
>>>>>>> dictionaries for RxNorm or SNOMED-CT, could anyone please help me
>>> in
>>>>> this
>>>>>>> regard?
>>>>>>> 
>>>>>>> 4. Also, I would like to know if there are any small dictionaries
>>>> which
>>>>>>> could be used free of charge or licensing, for my PoC.
>>>>>>> 
>>>>>>> Thanks and Regards,
>>>>>>> Abhishek De
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 

Re: Confusion regarding licensing of UMLS

Posted by Abhishek De <ab...@gmail.com>.
Hi Peter,

Thanks a lot for bearing with me. Actually, I'm working on a tight
deadline, and going through the entire codebase and the wiki meticulously
would take me over a month!! I'm sincerely hoping you would understand and
bear with me.

As an update, I had applied for a UMLS license which got rejected, don't
know why!! I have re-applied for it, fingers crossed, this time, may the
UMLS gods accept my prayer!!

My sole aim, for now is to get a pipeline working from Java code, whose
output I can see on the console window. I had a look at this for the order
in which the components are to be set up for a working pipeline:

https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+Component+Use+Guide

As assertion comes first, I attempted to attack it first. I took the
TokenProcessingPipeline in ClinicalPipelineFactory and added the
AssertionAnalysisEngine to it. However, since the class was missing
a createAnnotatorDescription() method like the others, which is required by
the builder, I copied and pasted it there.

public static AnalysisEngineDescription createAnnotatorDescription() throws
ResourceInitializationException{
  return
AnalysisEngineFactory.createEngineDescription(AssertionAnalysisEngine.class);
}

The TokenProcessingPipeline now looked like this:

public static AnalysisEngineDescription getTokenProcessingPipeline() throws
ResourceInitializationException, MalformedURLException {
      AggregateBuilder builder = new AggregateBuilder();
      builder.add(AssertionAnalysisEngine.createAnnotatorDescription());
      builder.add( SimpleSegmentAnnotator.createAnnotatorDescription() );
      builder.add( SentenceDetector.createAnnotatorDescription() );
      builder.add( TokenizerAnnotatorPTB.createAnnotatorDescription() );
      builder.add( LvgAnnotator.createAnnotatorDescription() );
      builder.add(
ContextDependentTokenizerAnnotator.createAnnotatorDescription() );
      builder.add( POSTagger.createAnnotatorDescription() );
      return builder.createAggregateDescription();
   }

However, when I tried to run this pipeline, I got an exception:

Exception in thread "main"
org.apache.uima.resource.ResourceInitializationException: Initialization of
annotator class
"org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine" failed.
(Descriptor: <unknown>)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:271)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:170)
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:279)
at
org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
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:279)
at
org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
at
org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373)
at
org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186)
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:279)
at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
at
org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
at
org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:205)
at
org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:227)
at
org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:260)
at
org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.main(ClinicalPipelineFactory.java:169)
Caused by: java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at
org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine.initialize(AssertionAnalysisEngine.java:89)
at
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:266)
... 26 more

Upon tracing the root of the problem, I found that the
AssertionAnalysisEngine tries to initialize certain model resources, and
tries to obtain their file paths from a UimaContext:

 String assertionModelResourceKey = "assertionModelResource";
        String assertionModelFilePath = getContext().getResourceFilePath(
            assertionModelResourceKey);
        assertionModelFile = new File(assertionModelFilePath);

I'm thinking that perhaps this context itself is not getting resolved. I
tried to search for some answers on the web, like this:

http://mail-archives.apache.org/mod_mbox/ctakes-dev/201804.mbox/%3CCAO1JDHhf0Uo3eDYxoTWKWWM00+WWpwyJvEAQGDE35OpMwNGAzw@mail.gmail.com%3E

However, here, the file was being directly asked for by name, and I don't
have a concrete filename to search for. The ctakes-assertion-res module
contains some model files, but I can't correlate them to the files being
sought here. Please help.

Thanks and Regards,
Abhishek

On Sun, Aug 12, 2018 at 10:27 PM Peter Abramowitsch <pa...@gmail.com>
wrote:

> Hi Abhishek, not meaning to offend, but I think you need to spend more time
> on the wiki site, a lot of what you are asking about is documented there
>
>
> https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+User+Install+Guide#cTAKES4.0UserInstallGuide-cTAKESPipelineFabricatorGUI(CreatingPiperFiles)
>
> If you have the binary release, you'll find the launch scripts in ./bin,
> if you have source you'll find it all in
> ./ctakes-distribution/src/main/bin
>
> The piper files are sprinkled throughout based on the modules that use them
> and are grouped under a common resource folder in the binary release
>
>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
>
> ./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
>
> ./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
>
> ./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
>
> ./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
>
> ./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
>
> ./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
>
> ./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
>
> ./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
>
> ./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
>
> ./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
>
> ./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
>
>
>
> On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <ab...@gmail.com>
> wrote:
>
> > Hi Peter,
> >
> > I found the PiperCreator class in the ctakes-gui module which is opening
> up
> > the Pipeline Fabricator GUI with a lot of pipe bits which are seeming to
> be
> > overwhelming!! If I could get the piper samples which you are talking
> > about, I could have got a taste of how this thing works. But the
> resources
> > for this module does not contain those, nor does the ctakes-resources
> > separate download which contains the dictionaries. Also, you said
> "script"
> > and not "class". That makes me think you are speaking of something else
> > entirely, since there is no class named PiperRunner. So could you please
> > point me where to download these scripts and the resources?
> >
> > Thanks and Regards,
> > Abhishek
> >
> > On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
> > pabramowitsch@gmail.com>
> > wrote:
> >
> > > I would suggest looking into the piper system - the scripts
> piperCreator
> > > and piperRunner so you can construct/run pipelines with the bits you
> > want.
> > > Also look for the piper samples scattered throughout the resources
> area.
> > > But assembling pipelines using Java is simple too.   You just need to
> > learn
> > > the flow and the upstream dependencies of the parsers and annotators.
> > >
> > > Peter
> > >
> > > On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <ab...@gmail.com>
> > > wrote:
> > >
> > > > Hi Peter,
> > > >
> > > > As you said, even if I don't use the UMLS dictionaries, I should be
> > able
> > > to
> > > > run the pipeline, right? But the class ClinicalPipelineFactory in the
> > > > ctakes-clinical-pipeline module, which initializes multiple pipelines
> > for
> > > > these various use cases, only defines a getDefaultPipeline() and
> > > > getFastPipeline() which have some annotating components in them. The
> > > > getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator
> in
> > > its
> > > > workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator
> in
> > > its
> > > > workflow. When I try to run the sample main() method with either of
> > these
> > > > pipelines, they throw an error requiring the UMLS credentials. I
> mean,
> > > the
> > > > ClinicalPipelineWithUmls class is already present for handling the
> UMLS
> > > > path. Why do the rest of the pipelines also require UMLS
> > authentication?
> > > > Please suggest a pipeline which I might run and get some annotations
> > > > identified from the text without UMLS.
> > > >
> > > > Thanks and Regards,
> > > > Abhishek
> > > >
> > > > On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> > > > pabramowitsch@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi, yes there are a lot of details and use cases that are not
> > > documented,
> > > > > but there are quite a few bits of information if you take the time.
> > > > >
> > > > > To give some quick "answers" to your questions...  (I put that in
> > > quotes
> > > > > because these are interpretations and not legal opinions)
> > > > >
> > > > > You do not need a UMLS license if you don't include the UMLS lookup
> > > > > mechanism.    In this case only the Apache license probably applies
> > > > > http://www.apache.org/licenses/
> > > > >
> > > > > But if you do use UMLS, start by reading
> > > > > https://www.nlm.nih.gov/databases/umls.html
> > > > > https://uts.nlm.nih.gov/license.html
> > > > > https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
> > > > >
> > > > > There are options for situations where you would centralize a
> ctakes
> > > > > service.  Some of the provisions have to do with the fact that
> > > > > that SNOMED vocabulary details are included in the UMLS output, and
> > the
> > > > > SNOMED organizations have specific licensing requirements that you
> > can
> > > > see
> > > > > on their site.
> > > > >
> > > > > I am nearly positive that you cannot use the UMLS mechanism in a
> > > > for-profit
> > > > > setting without an explicit license from SNOMED.  Also, regardless
> of
> > > > > whether the service as you deliver it is centralized, as I
> understand
> > > the
> > > > > language and diagrams on these sites, each and every end user needs
> > to
> > > > > have, and actively validate a current UMLS license.
> > > > >
> > > > > I've been involved in something similar to what you describe, but
> in
> > a
> > > > > non-commercial setting, and it does validate every end user.
> > > > >
> > > > > Peter
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
> > abhishekde1986@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > I am Abhishek De, a newcomer to the CTAKES community. I had
> worked
> > > with
> > > > > > CTAKES over 4 years ago, but now I am trying to incorporate it
> into
> > > my
> > > > > Java
> > > > > > application as a senior developer, so I need to know a lot of
> > things
> > > > > about
> > > > > > it. For starters, I can see that even the pipeline without UMLS
> > needs
> > > > > UMLS
> > > > > > credentials in order to run. So I have the following questions:
> > > > > >
> > > > > > 1. Is there a certain fee which is required in order to apply
> for a
> > > > UMLS
> > > > > > license?
> > > > > >
> > > > > > 2. My organization is building this pharmacovigilance app which
> > will
> > > > > > internally use CTAKES for its client. Is it okay for only my
> parent
> > > > > > organization to have the UMLS license or do the client needs to
> > have
> > > it
> > > > > > too? If I expose the application as a service, with the servers
> > > > residing
> > > > > in
> > > > > > our organization's premises, would the client still need to have
> a
> > > > > licnse?
> > > > > >
> > > > > > 3. As there is precious little documentation on CTAKES, and many
> > > links
> > > > > > there are now dead including the ones giving instructions on how
> to
> > > > > install
> > > > > > dictionaries for RxNorm or SNOMED-CT, could anyone please help me
> > in
> > > > this
> > > > > > regard?
> > > > > >
> > > > > > 4. Also, I would like to know if there are any small dictionaries
> > > which
> > > > > > could be used free of charge or licensing, for my PoC.
> > > > > >
> > > > > > Thanks and Regards,
> > > > > > Abhishek De
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: Confusion regarding licensing of UMLS

Posted by Peter Abramowitsch <pa...@gmail.com>.
Hi Abhishek, not meaning to offend, but I think you need to spend more time
on the wiki site, a lot of what you are asking about is documented there

https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+4.0+User+Install+Guide#cTAKES4.0UserInstallGuide-cTAKESPipelineFabricatorGUI(CreatingPiperFiles)

If you have the binary release, you'll find the launch scripts in ./bin,
if you have source you'll find it all in
./ctakes-distribution/src/main/bin

The piper files are sprinkled throughout based on the modules that use them
and are grouped under a common resource folder in the binary release

./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
./ctakes/trunk/ctakes-assertion-res/target/classes/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/TsAttributeCleartkSubPipe.piper
./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AssertionSubPipe.piper
./ctakes/trunk/ctakes-assertion-res/src/main/resources/org/apache/ctakes/assertion/pipeline/AttributeCleartkSubPipe.piper
./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/target/classes/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/DefaultTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/FullTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsDefaultTokenizerPipeline.piper
./ctakes/trunk/ctakes-core-res/src/main/resources/org/apache/ctakes/core/pipeline/TsFullTokenizerPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/target/classes/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/SectionedFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsSectionedFastPipeline.piper
./ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/TsDefaultFastPipeline.piper
./ctakes/trunk/ctakes-ne-contexts-res/target/classes/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
./ctakes/trunk/ctakes-ne-contexts-res/src/main/resources/org/apache/ctakes/necontexts/pipeline/NeContextsSubPipe.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorld.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/FullPipeline.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/ProcessDir.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
./ctakes/trunk/ctakes-examples-res/target/classes/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldAssertProps.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldCui.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorld.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ThreadSafeFullPipeline.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/FullPipeline.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldProps.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/ProcessDir.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/AssertionDefaults.piper
./ctakes/trunk/ctakes-examples-res/src/main/resources/org/apache/ctakes/examples/pipeline/HelloWorldTkProps.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/target/classes/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/DefaultTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsTemporalSubPipe.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TemporalSubPipe.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsDefaultTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedRelationTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/TsSectionedTemporalPipeline.piper
./ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/pipeline/SectionedTemporalPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/target/classes/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsCorefSubPipe.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsDefaultRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/DefaultCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedRelationCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/CorefSubPipe.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/TsSectionedAdvancedPipeline.piper
./ctakes/trunk/ctakes-coreference-res/src/main/resources/org/apache/ctakes/coreference/pipeline/SectionedTemporalCorefPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/target/classes/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/RelationSubPipe.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/DefaultRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsDefaultRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsRelationSubPipe.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/TsSectionedRelationPipeline.piper
./ctakes/trunk/ctakes-relation-extractor-res/src/main/resources/org/apache/ctakes/relationextractor/pipeline/SectionedRelationPipeline.piper
./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
./ctakes/trunk/ctakes-dictionary-lookup-fast-res/target/classes/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/DictionarySubPipe.piper
./ctakes/trunk/ctakes-dictionary-lookup-fast-res/src/main/resources/org/apache/ctakes/dictionary/lookup/fast/pipeline/TsDictionarySubPipe.piper
./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
./ctakes/trunk/ctakes-chunker-res/target/classes/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper
./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/ChunkerSubPipe.piper
./ctakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/pipeline/TsChunkerSubPipe.piper



On Sun, Aug 12, 2018 at 6:04 AM Abhishek De <ab...@gmail.com>
wrote:

> Hi Peter,
>
> I found the PiperCreator class in the ctakes-gui module which is opening up
> the Pipeline Fabricator GUI with a lot of pipe bits which are seeming to be
> overwhelming!! If I could get the piper samples which you are talking
> about, I could have got a taste of how this thing works. But the resources
> for this module does not contain those, nor does the ctakes-resources
> separate download which contains the dictionaries. Also, you said "script"
> and not "class". That makes me think you are speaking of something else
> entirely, since there is no class named PiperRunner. So could you please
> point me where to download these scripts and the resources?
>
> Thanks and Regards,
> Abhishek
>
> On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <
> pabramowitsch@gmail.com>
> wrote:
>
> > I would suggest looking into the piper system - the scripts piperCreator
> > and piperRunner so you can construct/run pipelines with the bits you
> want.
> > Also look for the piper samples scattered throughout the resources area.
> > But assembling pipelines using Java is simple too.   You just need to
> learn
> > the flow and the upstream dependencies of the parsers and annotators.
> >
> > Peter
> >
> > On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <ab...@gmail.com>
> > wrote:
> >
> > > Hi Peter,
> > >
> > > As you said, even if I don't use the UMLS dictionaries, I should be
> able
> > to
> > > run the pipeline, right? But the class ClinicalPipelineFactory in the
> > > ctakes-clinical-pipeline module, which initializes multiple pipelines
> for
> > > these various use cases, only defines a getDefaultPipeline() and
> > > getFastPipeline() which have some annotating components in them. The
> > > getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator in
> > its
> > > workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator in
> > its
> > > workflow. When I try to run the sample main() method with either of
> these
> > > pipelines, they throw an error requiring the UMLS credentials. I mean,
> > the
> > > ClinicalPipelineWithUmls class is already present for handling the UMLS
> > > path. Why do the rest of the pipelines also require UMLS
> authentication?
> > > Please suggest a pipeline which I might run and get some annotations
> > > identified from the text without UMLS.
> > >
> > > Thanks and Regards,
> > > Abhishek
> > >
> > > On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> > > pabramowitsch@gmail.com>
> > > wrote:
> > >
> > > > Hi, yes there are a lot of details and use cases that are not
> > documented,
> > > > but there are quite a few bits of information if you take the time.
> > > >
> > > > To give some quick "answers" to your questions...  (I put that in
> > quotes
> > > > because these are interpretations and not legal opinions)
> > > >
> > > > You do not need a UMLS license if you don't include the UMLS lookup
> > > > mechanism.    In this case only the Apache license probably applies
> > > > http://www.apache.org/licenses/
> > > >
> > > > But if you do use UMLS, start by reading
> > > > https://www.nlm.nih.gov/databases/umls.html
> > > > https://uts.nlm.nih.gov/license.html
> > > > https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
> > > >
> > > > There are options for situations where you would centralize a ctakes
> > > > service.  Some of the provisions have to do with the fact that
> > > > that SNOMED vocabulary details are included in the UMLS output, and
> the
> > > > SNOMED organizations have specific licensing requirements that you
> can
> > > see
> > > > on their site.
> > > >
> > > > I am nearly positive that you cannot use the UMLS mechanism in a
> > > for-profit
> > > > setting without an explicit license from SNOMED.  Also, regardless of
> > > > whether the service as you deliver it is centralized, as I understand
> > the
> > > > language and diagrams on these sites, each and every end user needs
> to
> > > > have, and actively validate a current UMLS license.
> > > >
> > > > I've been involved in something similar to what you describe, but in
> a
> > > > non-commercial setting, and it does validate every end user.
> > > >
> > > > Peter
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <
> abhishekde1986@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi all,
> > > > >
> > > > > I am Abhishek De, a newcomer to the CTAKES community. I had worked
> > with
> > > > > CTAKES over 4 years ago, but now I am trying to incorporate it into
> > my
> > > > Java
> > > > > application as a senior developer, so I need to know a lot of
> things
> > > > about
> > > > > it. For starters, I can see that even the pipeline without UMLS
> needs
> > > > UMLS
> > > > > credentials in order to run. So I have the following questions:
> > > > >
> > > > > 1. Is there a certain fee which is required in order to apply for a
> > > UMLS
> > > > > license?
> > > > >
> > > > > 2. My organization is building this pharmacovigilance app which
> will
> > > > > internally use CTAKES for its client. Is it okay for only my parent
> > > > > organization to have the UMLS license or do the client needs to
> have
> > it
> > > > > too? If I expose the application as a service, with the servers
> > > residing
> > > > in
> > > > > our organization's premises, would the client still need to have a
> > > > licnse?
> > > > >
> > > > > 3. As there is precious little documentation on CTAKES, and many
> > links
> > > > > there are now dead including the ones giving instructions on how to
> > > > install
> > > > > dictionaries for RxNorm or SNOMED-CT, could anyone please help me
> in
> > > this
> > > > > regard?
> > > > >
> > > > > 4. Also, I would like to know if there are any small dictionaries
> > which
> > > > > could be used free of charge or licensing, for my PoC.
> > > > >
> > > > > Thanks and Regards,
> > > > > Abhishek De
> > > > >
> > > >
> > >
> >
>

Re: Confusion regarding licensing of UMLS

Posted by Abhishek De <ab...@gmail.com>.
Hi Peter,

I found the PiperCreator class in the ctakes-gui module which is opening up
the Pipeline Fabricator GUI with a lot of pipe bits which are seeming to be
overwhelming!! If I could get the piper samples which you are talking
about, I could have got a taste of how this thing works. But the resources
for this module does not contain those, nor does the ctakes-resources
separate download which contains the dictionaries. Also, you said "script"
and not "class". That makes me think you are speaking of something else
entirely, since there is no class named PiperRunner. So could you please
point me where to download these scripts and the resources?

Thanks and Regards,
Abhishek

On Sat, Aug 11, 2018 at 7:10 PM Peter Abramowitsch <pa...@gmail.com>
wrote:

> I would suggest looking into the piper system - the scripts piperCreator
> and piperRunner so you can construct/run pipelines with the bits you want.
> Also look for the piper samples scattered throughout the resources area.
> But assembling pipelines using Java is simple too.   You just need to learn
> the flow and the upstream dependencies of the parsers and annotators.
>
> Peter
>
> On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <ab...@gmail.com>
> wrote:
>
> > Hi Peter,
> >
> > As you said, even if I don't use the UMLS dictionaries, I should be able
> to
> > run the pipeline, right? But the class ClinicalPipelineFactory in the
> > ctakes-clinical-pipeline module, which initializes multiple pipelines for
> > these various use cases, only defines a getDefaultPipeline() and
> > getFastPipeline() which have some annotating components in them. The
> > getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator in
> its
> > workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator in
> its
> > workflow. When I try to run the sample main() method with either of these
> > pipelines, they throw an error requiring the UMLS credentials. I mean,
> the
> > ClinicalPipelineWithUmls class is already present for handling the UMLS
> > path. Why do the rest of the pipelines also require UMLS authentication?
> > Please suggest a pipeline which I might run and get some annotations
> > identified from the text without UMLS.
> >
> > Thanks and Regards,
> > Abhishek
> >
> > On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> > pabramowitsch@gmail.com>
> > wrote:
> >
> > > Hi, yes there are a lot of details and use cases that are not
> documented,
> > > but there are quite a few bits of information if you take the time.
> > >
> > > To give some quick "answers" to your questions...  (I put that in
> quotes
> > > because these are interpretations and not legal opinions)
> > >
> > > You do not need a UMLS license if you don't include the UMLS lookup
> > > mechanism.    In this case only the Apache license probably applies
> > > http://www.apache.org/licenses/
> > >
> > > But if you do use UMLS, start by reading
> > > https://www.nlm.nih.gov/databases/umls.html
> > > https://uts.nlm.nih.gov/license.html
> > > https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
> > >
> > > There are options for situations where you would centralize a ctakes
> > > service.  Some of the provisions have to do with the fact that
> > > that SNOMED vocabulary details are included in the UMLS output, and the
> > > SNOMED organizations have specific licensing requirements that you can
> > see
> > > on their site.
> > >
> > > I am nearly positive that you cannot use the UMLS mechanism in a
> > for-profit
> > > setting without an explicit license from SNOMED.  Also, regardless of
> > > whether the service as you deliver it is centralized, as I understand
> the
> > > language and diagrams on these sites, each and every end user needs to
> > > have, and actively validate a current UMLS license.
> > >
> > > I've been involved in something similar to what you describe, but in a
> > > non-commercial setting, and it does validate every end user.
> > >
> > > Peter
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <ab...@gmail.com>
> > > wrote:
> > >
> > > > Hi all,
> > > >
> > > > I am Abhishek De, a newcomer to the CTAKES community. I had worked
> with
> > > > CTAKES over 4 years ago, but now I am trying to incorporate it into
> my
> > > Java
> > > > application as a senior developer, so I need to know a lot of things
> > > about
> > > > it. For starters, I can see that even the pipeline without UMLS needs
> > > UMLS
> > > > credentials in order to run. So I have the following questions:
> > > >
> > > > 1. Is there a certain fee which is required in order to apply for a
> > UMLS
> > > > license?
> > > >
> > > > 2. My organization is building this pharmacovigilance app which will
> > > > internally use CTAKES for its client. Is it okay for only my parent
> > > > organization to have the UMLS license or do the client needs to have
> it
> > > > too? If I expose the application as a service, with the servers
> > residing
> > > in
> > > > our organization's premises, would the client still need to have a
> > > licnse?
> > > >
> > > > 3. As there is precious little documentation on CTAKES, and many
> links
> > > > there are now dead including the ones giving instructions on how to
> > > install
> > > > dictionaries for RxNorm or SNOMED-CT, could anyone please help me in
> > this
> > > > regard?
> > > >
> > > > 4. Also, I would like to know if there are any small dictionaries
> which
> > > > could be used free of charge or licensing, for my PoC.
> > > >
> > > > Thanks and Regards,
> > > > Abhishek De
> > > >
> > >
> >
>

Re: Confusion regarding licensing of UMLS

Posted by Peter Abramowitsch <pa...@gmail.com>.
I would suggest looking into the piper system - the scripts piperCreator
and piperRunner so you can construct/run pipelines with the bits you want.
Also look for the piper samples scattered throughout the resources area.
But assembling pipelines using Java is simple too.   You just need to learn
the flow and the upstream dependencies of the parsers and annotators.

Peter

On Sat, Aug 11, 2018 at 3:28 PM Abhishek De <ab...@gmail.com>
wrote:

> Hi Peter,
>
> As you said, even if I don't use the UMLS dictionaries, I should be able to
> run the pipeline, right? But the class ClinicalPipelineFactory in the
> ctakes-clinical-pipeline module, which initializes multiple pipelines for
> these various use cases, only defines a getDefaultPipeline() and
> getFastPipeline() which have some annotating components in them. The
> getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator in its
> workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator in its
> workflow. When I try to run the sample main() method with either of these
> pipelines, they throw an error requiring the UMLS credentials. I mean, the
> ClinicalPipelineWithUmls class is already present for handling the UMLS
> path. Why do the rest of the pipelines also require UMLS authentication?
> Please suggest a pipeline which I might run and get some annotations
> identified from the text without UMLS.
>
> Thanks and Regards,
> Abhishek
>
> On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <
> pabramowitsch@gmail.com>
> wrote:
>
> > Hi, yes there are a lot of details and use cases that are not documented,
> > but there are quite a few bits of information if you take the time.
> >
> > To give some quick "answers" to your questions...  (I put that in quotes
> > because these are interpretations and not legal opinions)
> >
> > You do not need a UMLS license if you don't include the UMLS lookup
> > mechanism.    In this case only the Apache license probably applies
> > http://www.apache.org/licenses/
> >
> > But if you do use UMLS, start by reading
> > https://www.nlm.nih.gov/databases/umls.html
> > https://uts.nlm.nih.gov/license.html
> > https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
> >
> > There are options for situations where you would centralize a ctakes
> > service.  Some of the provisions have to do with the fact that
> > that SNOMED vocabulary details are included in the UMLS output, and the
> > SNOMED organizations have specific licensing requirements that you can
> see
> > on their site.
> >
> > I am nearly positive that you cannot use the UMLS mechanism in a
> for-profit
> > setting without an explicit license from SNOMED.  Also, regardless of
> > whether the service as you deliver it is centralized, as I understand the
> > language and diagrams on these sites, each and every end user needs to
> > have, and actively validate a current UMLS license.
> >
> > I've been involved in something similar to what you describe, but in a
> > non-commercial setting, and it does validate every end user.
> >
> > Peter
> >
> >
> >
> >
> >
> >
> > On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <ab...@gmail.com>
> > wrote:
> >
> > > Hi all,
> > >
> > > I am Abhishek De, a newcomer to the CTAKES community. I had worked with
> > > CTAKES over 4 years ago, but now I am trying to incorporate it into my
> > Java
> > > application as a senior developer, so I need to know a lot of things
> > about
> > > it. For starters, I can see that even the pipeline without UMLS needs
> > UMLS
> > > credentials in order to run. So I have the following questions:
> > >
> > > 1. Is there a certain fee which is required in order to apply for a
> UMLS
> > > license?
> > >
> > > 2. My organization is building this pharmacovigilance app which will
> > > internally use CTAKES for its client. Is it okay for only my parent
> > > organization to have the UMLS license or do the client needs to have it
> > > too? If I expose the application as a service, with the servers
> residing
> > in
> > > our organization's premises, would the client still need to have a
> > licnse?
> > >
> > > 3. As there is precious little documentation on CTAKES, and many links
> > > there are now dead including the ones giving instructions on how to
> > install
> > > dictionaries for RxNorm or SNOMED-CT, could anyone please help me in
> this
> > > regard?
> > >
> > > 4. Also, I would like to know if there are any small dictionaries which
> > > could be used free of charge or licensing, for my PoC.
> > >
> > > Thanks and Regards,
> > > Abhishek De
> > >
> >
>

Re: Confusion regarding licensing of UMLS

Posted by Abhishek De <ab...@gmail.com>.
Hi Peter,

As you said, even if I don't use the UMLS dictionaries, I should be able to
run the pipeline, right? But the class ClinicalPipelineFactory in the
ctakes-clinical-pipeline module, which initializes multiple pipelines for
these various use cases, only defines a getDefaultPipeline() and
getFastPipeline() which have some annotating components in them. The
getDefaultPipeline() method defines a UmlsDictionaryLookupAnnotator in its
workflow. Even the fast pipeline defines a DefaultJCasTermAnnotator in its
workflow. When I try to run the sample main() method with either of these
pipelines, they throw an error requiring the UMLS credentials. I mean, the
ClinicalPipelineWithUmls class is already present for handling the UMLS
path. Why do the rest of the pipelines also require UMLS authentication?
Please suggest a pipeline which I might run and get some annotations
identified from the text without UMLS.

Thanks and Regards,
Abhishek

On Sat, Aug 11, 2018 at 1:36 PM Peter Abramowitsch <pa...@gmail.com>
wrote:

> Hi, yes there are a lot of details and use cases that are not documented,
> but there are quite a few bits of information if you take the time.
>
> To give some quick "answers" to your questions...  (I put that in quotes
> because these are interpretations and not legal opinions)
>
> You do not need a UMLS license if you don't include the UMLS lookup
> mechanism.    In this case only the Apache license probably applies
> http://www.apache.org/licenses/
>
> But if you do use UMLS, start by reading
> https://www.nlm.nih.gov/databases/umls.html
> https://uts.nlm.nih.gov/license.html
> https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html
>
> There are options for situations where you would centralize a ctakes
> service.  Some of the provisions have to do with the fact that
> that SNOMED vocabulary details are included in the UMLS output, and the
> SNOMED organizations have specific licensing requirements that you can see
> on their site.
>
> I am nearly positive that you cannot use the UMLS mechanism in a for-profit
> setting without an explicit license from SNOMED.  Also, regardless of
> whether the service as you deliver it is centralized, as I understand the
> language and diagrams on these sites, each and every end user needs to
> have, and actively validate a current UMLS license.
>
> I've been involved in something similar to what you describe, but in a
> non-commercial setting, and it does validate every end user.
>
> Peter
>
>
>
>
>
>
> On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <ab...@gmail.com>
> wrote:
>
> > Hi all,
> >
> > I am Abhishek De, a newcomer to the CTAKES community. I had worked with
> > CTAKES over 4 years ago, but now I am trying to incorporate it into my
> Java
> > application as a senior developer, so I need to know a lot of things
> about
> > it. For starters, I can see that even the pipeline without UMLS needs
> UMLS
> > credentials in order to run. So I have the following questions:
> >
> > 1. Is there a certain fee which is required in order to apply for a UMLS
> > license?
> >
> > 2. My organization is building this pharmacovigilance app which will
> > internally use CTAKES for its client. Is it okay for only my parent
> > organization to have the UMLS license or do the client needs to have it
> > too? If I expose the application as a service, with the servers residing
> in
> > our organization's premises, would the client still need to have a
> licnse?
> >
> > 3. As there is precious little documentation on CTAKES, and many links
> > there are now dead including the ones giving instructions on how to
> install
> > dictionaries for RxNorm or SNOMED-CT, could anyone please help me in this
> > regard?
> >
> > 4. Also, I would like to know if there are any small dictionaries which
> > could be used free of charge or licensing, for my PoC.
> >
> > Thanks and Regards,
> > Abhishek De
> >
>

Re: Confusion regarding licensing of UMLS

Posted by Peter Abramowitsch <pa...@gmail.com>.
Hi, yes there are a lot of details and use cases that are not documented,
but there are quite a few bits of information if you take the time.

To give some quick "answers" to your questions...  (I put that in quotes
because these are interpretations and not legal opinions)

You do not need a UMLS license if you don't include the UMLS lookup
mechanism.    In this case only the Apache license probably applies
http://www.apache.org/licenses/

But if you do use UMLS, start by reading
https://www.nlm.nih.gov/databases/umls.html
https://uts.nlm.nih.gov/license.html
https://uts.nlm.nih.gov//help/license/validateumlsuserhelp.html

There are options for situations where you would centralize a ctakes
service.  Some of the provisions have to do with the fact that
that SNOMED vocabulary details are included in the UMLS output, and the
SNOMED organizations have specific licensing requirements that you can see
on their site.

I am nearly positive that you cannot use the UMLS mechanism in a for-profit
setting without an explicit license from SNOMED.  Also, regardless of
whether the service as you deliver it is centralized, as I understand the
language and diagrams on these sites, each and every end user needs to
have, and actively validate a current UMLS license.

I've been involved in something similar to what you describe, but in a
non-commercial setting, and it does validate every end user.

Peter






On Sat, Aug 11, 2018 at 7:45 AM Abhishek De <ab...@gmail.com>
wrote:

> Hi all,
>
> I am Abhishek De, a newcomer to the CTAKES community. I had worked with
> CTAKES over 4 years ago, but now I am trying to incorporate it into my Java
> application as a senior developer, so I need to know a lot of things about
> it. For starters, I can see that even the pipeline without UMLS needs UMLS
> credentials in order to run. So I have the following questions:
>
> 1. Is there a certain fee which is required in order to apply for a UMLS
> license?
>
> 2. My organization is building this pharmacovigilance app which will
> internally use CTAKES for its client. Is it okay for only my parent
> organization to have the UMLS license or do the client needs to have it
> too? If I expose the application as a service, with the servers residing in
> our organization's premises, would the client still need to have a licnse?
>
> 3. As there is precious little documentation on CTAKES, and many links
> there are now dead including the ones giving instructions on how to install
> dictionaries for RxNorm or SNOMED-CT, could anyone please help me in this
> regard?
>
> 4. Also, I would like to know if there are any small dictionaries which
> could be used free of charge or licensing, for my PoC.
>
> Thanks and Regards,
> Abhishek De
>