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