
/////////////////////////////////////////////////////////
//
//     An example pipeline that does a lot of stuff.
//
/////////////////////////////////////////////////////////

// Write big "Welcome", "Starting", "Finished" Banners in log.
set WriteBanner=yes

// Advanced Tokenization: Regex sectionization, BIO Sentence Detector (lumper), Paragraphs, Lists.
load FullTokenizerPipeline
// OR use the standard tokenizer pipeline:
//load DefaultTokenizerPipeline

// Refined tokens, Parts of Speech.
add ContextDependentTokenizerAnnotator
add POSTagger

// Chunkers
load ChunkerSubPipe

// Default fast dictionary lookup.
set minimumSpan=2
load DictionarySubPipe

// Cleartk Entity Attributes (negation, uncertainty, etc.).
load AttributeCleartkSubPipe

// Entity Relations (degree/severity, anatomical location).
load RelationSubPipe

// Temporal (event, time, dtr, tlink).
load TemporalSubPipe

// Coreferences (e.g. patient = he).
load CorefSubPipe

// Token covered text and token span offsets.  Write bev (default) and html styles.
add TokenTableFileWriter SubDirectory=bsv_tokens
add TokenTableFileWriter SubDirectory=html_tokens TableType=HTML

// Html output, write to subdirectory.
add pretty.html.HtmlTextWriter SubDirectory=html

// Text output, write to subdirectory.
add pretty.plaintext.PrettyTextWriterFit SubDirectory=text

// Table output, write to subdirectory.  Write bsv (default), csv and html styles.
add SemanticTableFileWriter SubDirectory=bsv_table
add SemanticTableFileWriter SubDirectory=csv_table TableType=CSV
add SemanticTableFileWriter SubDirectory=html_table TableType=HTML

// XMI output, write to subdirectory.  Warning: these can be very large.
add FileTreeXmiWriter SubDirectory=xmi

// Temporal Events and Times in Anafora format, write to subdirectory.
add EventTimeAnaforaWriter SubDirectory=anafora

// Write some information about the run.
addLast org.apache.ctakes.core.util.log.FinishedLogger