Hi Siamak,

Good question.  Yet another shortfall in the documentation ...

There are several ways to set parameters in the  PipelineBuilder.

The javadocs for the 4.0.0 release version are here:
http://ctakes.apache.org/apidocs/4.0.0/

You can use the set(..) method to set "global" values, or place 
component-specific values using the add(..) method.

The PipelineBuilder in trunk has the additional method:
setIfEmpty(..)        Just like set(..) except any given attributes are ignored 
if they already have values

In addition, the add( component, parameters... ) in trunk has been changed to:
add( component, views, parameters ).
Views are usually used for training ml models.  To use add(..) like the 
original (without special views) specify add( component, 
Collections.emptyList(), parameters ).   The method usage add( component ) 
still exists.  Apparently I was too lazy to properly refactor the method with 
the original signature ...

I hope that helps,
Sean

________________________________________
From: Siamak Barzegar <barzegar.sia...@gmail.com>
Sent: Tuesday, June 25, 2019 9:23 AM
To: dev@ctakes.apache.org
Subject: Accessing the External Resource from the UimaContext without Using XML 
descriptor [EXTERNAL]

I would like to use different cTAKES' components by using PipelineBuilder
(exactly the same in HelloWorldBuilderRunner.java).
But the problem is (As I understand it), PipelineBuilder does not read XML
descriptor of the component. I want to use the Dictionary Lookup component
(DictionaryLookupannotatorCSV.xml) in the following components:

         PipelineBuilder builder = new PipelineBuilder();
         builder
              .add( SimpleSegmentAnnotator.class )
              .add( SentenceDetector.class )
              .add( TokenizerAnnotator.class )
               // Java Class file of DictionaryLookupannotatorCSV.xml is:
              .add(DictionaryLookupAnnotator.class);

But in the DictionaryLookupannotatorCSV.xml file, there are several
external resources that DictionaryLookupAnnotator needs to read them:

public void initialize(UimaContext aContext) {
  iv_context = aContext;
   ....
  FileResource fResrc = (FileResource)
iv_context.getResourceObject("LookupDescriptor");
    ...
   iv_lookupSpecSet = LookupParseUtilities.parseDescriptor(descFile,
iv_context);
}

So, what is the best way for having access to these
resources(LookupDescriptorFile, DictionaryFileResource, RxnormIndex and
OrangeBookIndex) in DictionaryLookupannotatorCSV.xml from the code?

Thanks a lot.
Siamak

Reply via email to