Hi Chris, No, you are not missing anything.
The example on the wiki was concocted to display what ctakes should do. There are a few different negation modules (and you can write your own). Using the Assertion module you will not get negated lesions. Using the ContextAnnotator you will. I did the following: In ctakes-examples , edit org.apache.ctakes.examples.pipeline.HelloWorldPropsPiperRunner.java HelloWorldPropsPiperRunner uses the ContextAnnotator for negation. Change DOC_TEXT to be the example sentence. The output is: 4,11 patient | affirmed | certain | not conditional | not generic | Patient | history of: 0 24,26 CT | affirmed | certain | not conditional | not generic | Patient | history of: 0 27,31 Scan | affirmed | certain | not conditional | not generic | Patient | history of: 0 35,40 April | affirmed | certain | not conditional | not generic | Patient | history of: 0 47,50 did | negated | certain | not conditional | not generic | Patient | history of: 0 47,54 did not | affirmed | certain | not conditional | not generic | Patient | history of: 0 51,54 not | affirmed | certain | not conditional | not generic | Patient | history of: 0 62,69 lesions | negated | certain | not conditional | not generic | Patient | history of: 0 77,82 liver | negated | certain | not conditional | not generic | Patient | history of: 0 Notice that the context annotator marked lesions as negated. I hope that makes sense. Sean From: Chris Hinkle [mailto:hin...@all-turtles.com] Sent: Tuesday, August 08, 2017 5:00 PM To: dev@ctakes.apache.org Subject: default clinical pipeline: questions about polarity [EXTERNAL] Hi cTAKES Team, I've recently started exploring cTAKES and I'm excited about the potential. However, I'm having trouble seeing the results as they're exemplified in the documentation using the example input "The patient underwent a CT Scan in April which did not reveal lesions in his liver." Specifically negation (polarity) values don't seem to be populated as they are shown in the Default Clinical Pipeline documentation wiki page<https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_Default-2BClinical-2BPipeline&d=DwMFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=dTK9VzFknYGrOowQ4jIqy8xeqw9DIClZjRUaj_xs894&s=26Dy4rIl2LIwaRk5o3q8pmAhISj_lyCX90hVe2sAV58&e=>. I've built a simple java class which instantiates the Default Pipeline like so static AnalysisEngine pipeline; … log.info( "Initilizing Pipeline..." ); try { AggregateBuilder builder = new AggregateBuilder( ); builder.add( ClinicalPipelineFactory.getDefaultPipeline( ) ); pipeline = builder.createAggregate( ); } catch( Exception e ) { log.error( e ); } … I then instantiate a CAS and process it like so: try { JCas jcas = pipeline.newJCas( ); jcas.setDocumentText( "The patient underwent a CT Scan in April which did not reveal lesions in his liver." ); pipeline.process( jcas ); } catch( Exception e ) { log.error( e ); } … I've set my UMLS username and password as environment variables, and UMLS lookups are working just fine. The CAS contains the same identified annotations as the example, i.e. The AnatomicalSiteMentions, SignSymptomMentions, etc, however, the fields for polarity are all 1. The documentation on the wiki page for Assertion Component Use Guide<https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_cTAKES-2B4.0-2B-2D-2BAssertion&d=DwMFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=dTK9VzFknYGrOowQ4jIqy8xeqw9DIClZjRUaj_xs894&s=AdLHU8Zne1EOqbGocT4o22Ylyl32B-xRHMtogDho9r4&e=>, and the aforementioned wiki page for the default clinical pipeline lead me to think that the polarity field for the 'lesions' concept would be set to 1, and leave the rest -1. Is there something I'm missing? Perhaps I'm not looking in the right place, or haven't done all of the configuration required to exercise those features of cTAKES? I've attached the serialized CAS object to this email for reference. Best, Chris -- Chris Hinkle All Turtles 347-407-4993