You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2017/04/10 20:56:04 UTC

svn commit: r1790896 [2/4] - in /ctakes/trunk: ctakes-assertion/src/main/java/org/apache/ctakes/assertion/cr/ ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/ ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/ ctakes-a...

Modified: ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/ClearNLPPOSTaggerAE.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/ClearNLPPOSTaggerAE.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/ClearNLPPOSTaggerAE.java (original)
+++ ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/ClearNLPPOSTaggerAE.java Mon Apr 10 20:56:02 2017
@@ -1,45 +1,45 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.ctakes.postagger;
 
-import java.net.URI;
-import java.net.URL;
-import java.util.List;
-
-import org.apache.ctakes.typesystem.type.syntax.BaseToken;
-import org.apache.ctakes.typesystem.type.textspan.Sentence;
-import org.apache.log4j.Logger;
-import org.apache.uima.UimaContext;
-import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
-import org.apache.uima.jcas.JCas;
-import org.apache.uima.resource.ResourceInitializationException;
-import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
-import org.apache.uima.fit.descriptor.ConfigurationParameter;
-import org.apache.uima.fit.descriptor.TypeCapability;
-import org.apache.uima.fit.util.JCasUtil;
-
-import com.googlecode.clearnlp.component.AbstractComponent;
-import com.googlecode.clearnlp.dependency.DEPNode;
-import com.googlecode.clearnlp.dependency.DEPTree;
-import com.googlecode.clearnlp.engine.EngineGetter;
-import com.googlecode.clearnlp.nlp.NLPLib;
-import com.googlecode.clearnlp.reader.AbstractReader;
+import com.googlecode.clearnlp.component.AbstractComponent;
+import com.googlecode.clearnlp.dependency.DEPNode;
+import com.googlecode.clearnlp.dependency.DEPTree;
+import com.googlecode.clearnlp.engine.EngineGetter;
+import com.googlecode.clearnlp.nlp.NLPLib;
+import com.googlecode.clearnlp.reader.AbstractReader;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
+import org.apache.ctakes.typesystem.type.syntax.BaseToken;
+import org.apache.ctakes.typesystem.type.textspan.Sentence;
+import org.apache.log4j.Logger;
+import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.descriptor.ConfigurationParameter;
+import org.apache.uima.fit.descriptor.TypeCapability;
+import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.resource.ResourceInitializationException;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.List;
 
 /**
  * <br>
@@ -57,13 +57,19 @@ import com.googlecode.clearnlp.reader.Ab
 				"org.apache.ctakes.typesystem.type.syntax.BaseToken:end",
 				"org.apache.ctakes.typesystem.type.syntax.BaseToken:begin"
 		})
+@PipeBitInfo(
+		name = "ClearNLP POS Tagger",
+		description = "Adds Parts of Speech to Annotations.",
+		role = PipeBitInfo.Role.ANNOTATOR,
+		dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.BASE_TOKEN }
+)
 public class ClearNLPPOSTaggerAE extends JCasAnnotator_ImplBase {
-
+
 	final String language = AbstractReader.LANG_EN;
 	public Logger logger = Logger.getLogger(getClass().getName());
 	
 	// Default model values
-	public static final String DEFAULT_MODEL_FILE_NAME = "org/apache/ctakes/postagger/models/clearnlp/mayo-en-pos-1.3.0.jar";
+	public static final String DEFAULT_MODEL_FILE_NAME = "org/apache/ctakes/postagger/models/clearnlp/mayo-en-pos-1.3.0.jar";
 
 	
 	
@@ -86,15 +92,15 @@ public class ClearNLPPOSTaggerAE extends
 		super.initialize(context);
 
 		try {
-
-            	URL parserModelURL = (this.posModelUri == null)
-                    ? this.getClass().getClassLoader().getResource(DEFAULT_MODEL_FILE_NAME).toURI().toURL()
-                    : this.posModelUri.toURL();
-                 
-                    this.postagger = EngineGetter.getComponent(parserModelURL.openStream(), this.language, NLPLib.MODE_POS);
 
-        } catch (Exception e) {
-            throw new ResourceInitializationException(e);
+            	URL parserModelURL = (this.posModelUri == null)
+                    ? this.getClass().getClassLoader().getResource(DEFAULT_MODEL_FILE_NAME).toURI().toURL()
+                    : this.posModelUri.toURL();
+                 
+                    this.postagger = EngineGetter.getComponent(parserModelURL.openStream(), this.language, NLPLib.MODE_POS);
+
+        } catch (Exception e) {
+            throw new ResourceInitializationException(e);
         }
 	}
 
@@ -106,22 +112,22 @@ public class ClearNLPPOSTaggerAE extends
 
 			// Convert CAS data into structures usable by ClearNLP
 			for (int i = 0; i < tokens.size(); i++) {
-				BaseToken token = tokens.get(i);
+				BaseToken token = tokens.get(i);
 				DEPNode node = new DEPNode(i+1, token.getCoveredText());
 				tree.add(node);
 			}
 
 			// Run parser and convert output back to CAS friendly data types
-			postagger.process(tree);
-			
-			for (int i = 0; i < tokens.size(); i++) {
-				BaseToken token = tokens.get(i);
-				DEPNode node = tree.get(i+1);
-				token.setPartOfSpeech(node.pos);
-			}
+			postagger.process(tree);
+			
+			for (int i = 0; i < tokens.size(); i++) {
+				BaseToken token = tokens.get(i);
+				DEPNode node = tree.get(i+1);
+				token.setPartOfSpeech(node.pos);
+			}
 			
 		}
-		
+		
 		
 	}
 }

Modified: ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/OpenNLPPOSCollectionReader.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/OpenNLPPOSCollectionReader.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/OpenNLPPOSCollectionReader.java (original)
+++ ctakes/trunk/ctakes-pos-tagger/src/main/java/org/apache/ctakes/postagger/OpenNLPPOSCollectionReader.java Mon Apr 10 20:56:02 2017
@@ -18,11 +18,9 @@
  */
 package org.apache.ctakes.postagger;
 
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
+import org.apache.ctakes.typesystem.type.syntax.BaseToken;
+import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
 import org.apache.uima.collection.CollectionException;
@@ -31,8 +29,10 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Progress;
 
-import org.apache.ctakes.typesystem.type.syntax.BaseToken;
-import org.apache.ctakes.typesystem.type.textspan.Sentence;
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
 
 /**
  * This collection reader reads in part-of-speech training/test data in the
@@ -40,6 +40,12 @@ import org.apache.ctakes.typesystem.type
  * format. Each line in the file will correspond to a "document" - i.e.
  * getNext() will populate the CAS with information from one line of the file.
  */
+@PipeBitInfo(
+      name = "OpenNLP POS Reader",
+      description = "Reads in part-of-speech training/test data in the OpenNLP format.",
+      role = PipeBitInfo.Role.READER,
+      products = { PipeBitInfo.TypeProduct.BASE_TOKEN, PipeBitInfo.TypeProduct.SENTENCE }
+)
 public class OpenNLPPOSCollectionReader extends CollectionReader_ImplBase {
 
 	/**

Modified: ctakes/trunk/ctakes-preprocessor/src/main/java/org/apache/ctakes/preprocessor/ae/CdaCasInitializer.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-preprocessor/src/main/java/org/apache/ctakes/preprocessor/ae/CdaCasInitializer.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-preprocessor/src/main/java/org/apache/ctakes/preprocessor/ae/CdaCasInitializer.java (original)
+++ ctakes/trunk/ctakes-preprocessor/src/main/java/org/apache/ctakes/preprocessor/ae/CdaCasInitializer.java Mon Apr 10 20:56:02 2017
@@ -18,38 +18,31 @@
  */
 package org.apache.ctakes.preprocessor.ae;
 
-import java.io.File;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.apache.uima.UimaContext;
-import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
-import org.apache.uima.cas.FSIterator;
-import org.apache.uima.fit.descriptor.ConfigurationParameter;
-import org.apache.uima.jcas.JCas;
-import org.apache.uima.jcas.JFSIndexRepository;
-import org.apache.uima.jcas.cas.FSArray;
-import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.resource.ResourceInitializationException;
-
-
 import org.apache.ctakes.core.ci.HyphenTextModifierImpl;
 import org.apache.ctakes.core.ci.TextModification;
 import org.apache.ctakes.core.ci.TextModifier;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.core.resource.FileLocator;
-import org.apache.ctakes.core.resource.FileResource;
 import org.apache.ctakes.preprocessor.ClinicalNotePreProcessor;
 import org.apache.ctakes.preprocessor.DocumentMetaData;
 import org.apache.ctakes.preprocessor.PreProcessor;
 import org.apache.ctakes.preprocessor.SegmentMetaData;
-import org.apache.ctakes.typesystem.type.structured.DocumentID;
-import org.apache.ctakes.typesystem.type.textspan.Segment;
-import org.apache.ctakes.typesystem.type.util.Pair;
-import org.apache.ctakes.typesystem.type.util.Pairs;
+import org.apache.ctakes.typesystem.type.structured.DocumentID;
+import org.apache.ctakes.typesystem.type.textspan.Segment;
+import org.apache.ctakes.typesystem.type.util.Pair;
+import org.apache.ctakes.typesystem.type.util.Pairs;
+import org.apache.log4j.Logger;
+import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
 import org.apache.uima.fit.descriptor.ConfigurationParameter;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.jcas.cas.FSArray;
+import org.apache.uima.resource.ResourceInitializationException;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
 
 /**
  * Bootstraps the CAS by:
@@ -63,6 +56,12 @@ import org.apache.uima.fit.descriptor.Co
  * </ol>
  * 
  */
+@PipeBitInfo(
+      name = "CDA View Sectionizer",
+      description = "Transforms CDA text into plain text, inserts hyphens into words, stores the resulting text in a new View and creates Sections.",
+      dependencies = { PipeBitInfo.TypeProduct.DOCUMENT_ID },
+      products = { PipeBitInfo.TypeProduct.SECTION }
+)
 public class CdaCasInitializer extends JCasAnnotator_ImplBase
 {
 	protected static final String DEFAULT_HYPHEN_FILE = "org/apache/ctakes/preprocessor/tokenizer/hyphenated.txt";
@@ -157,12 +156,12 @@ public class CdaCasInitializer extends J
 		String originalText = null;
 	    DocumentMetaData dmd;
 
-        try {
+        try {
             
         	JCas originalView = jcas.getView("_InitialView");
         	originalText = originalView.getSofaDataString();
 
-        	//TODO: A bit over engineered? Is this config really parsed very time???
+        	//TODO: A bit over engineered? Is this config really parsed very time???
             PreProcessor pp = new ClinicalNotePreProcessor(
             		FileLocator.getAsStream(dtdfilepath),
                     includeSectionMarkers.booleanValue());
@@ -180,7 +179,7 @@ public class CdaCasInitializer extends J
             
             // Add section (segment) annotations
             Iterator<String> segmentItr = (Iterator<String>)dmd.getSegmentIdentifiers().iterator();
-            while (segmentItr.hasNext()) 
+            while (segmentItr.hasNext()) 
             {
                 String segmentID = (String) segmentItr.next();
                 SegmentMetaData smd = dmd.getSegment(segmentID);
@@ -191,19 +190,19 @@ public class CdaCasInitializer extends J
                 sa.setId(smd.id);
 
                 sa.addToIndexes();
-            }
-            
+            }
+            
             // Store meta data about the document
             Pairs propAnnot = new Pairs(plaintextView); 
-            Map metaDataMap = dmd.getMetaData();
-            
-            String docID = (String)metaDataMap.get(ClinicalNotePreProcessor.MD_KEY_DOC_ID);
-        	if (docID!=null) {
-            	DocumentID newDocId = new DocumentID(plaintextView);
-            	newDocId.setDocumentID(docID);
-            	newDocId.addToIndexes();
-        	
-        	}
+            Map metaDataMap = dmd.getMetaData();
+            
+            String docID = (String)metaDataMap.get(ClinicalNotePreProcessor.MD_KEY_DOC_ID);
+        	if (docID!=null) {
+            	DocumentID newDocId = new DocumentID(plaintextView);
+            	newDocId.setDocumentID(docID);
+            	newDocId.addToIndexes();
+        	
+        	}
             
             FSArray fsArr = new FSArray(plaintextView, metaDataMap.size());
             Iterator keyItr = metaDataMap.keySet().iterator();

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/CausesBringsAboutRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/CausesBringsAboutRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/CausesBringsAboutRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/CausesBringsAboutRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,24 +18,19 @@
  */
 package org.apache.ctakes.relationextractor.ae;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
 import org.apache.ctakes.typesystem.type.relation.CausesBringsAboutTextRelation;
-import org.apache.ctakes.typesystem.type.relation.ManagesTreatsTextRelation;
 import org.apache.ctakes.typesystem.type.relation.RelationArgument;
-import org.apache.ctakes.typesystem.type.textsem.AnatomicalSiteMention;
-import org.apache.ctakes.typesystem.type.textsem.DiseaseDisorderMention;
-import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
-import org.apache.ctakes.typesystem.type.textsem.MedicationMention;
-import org.apache.ctakes.typesystem.type.textsem.ProcedureMention;
-import org.apache.ctakes.typesystem.type.textsem.SignSymptomMention;
+import org.apache.ctakes.typesystem.type.textsem.*;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.uima.fit.util.JCasUtil;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Identifies causes/brings_about relation.
  * 
@@ -49,6 +44,13 @@ import org.apache.uima.jcas.tcas.Annotat
  * arg1: procedure, medication, disease/disorder  
  * arg2: disease/disorder, sign/symptom
  */
+@PipeBitInfo(
+      name = "Causal Relation Annotator",
+      description = "Annotates Causal relations in sentences.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.GENERIC_RELATION }
+)
 public class CausesBringsAboutRelationExtractorAnnotator extends RelationExtractorAnnotator {
 
   @Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1DegreeOfRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1DegreeOfRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1DegreeOfRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1DegreeOfRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,19 +18,28 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.DegreeOfRelationExtractorAnnotator;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.CleartkProcessingException;
 import org.cleartk.ml.Feature;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Annotated degree_of relation in sentences containing a single entity mention
  * of a valid degree_of type and a single modifier.
  */
+@PipeBitInfo(
+      name = "Degree of Annotator 1",
+      description = "Annotates Degree Of relations in sentences containing a single entity mention of a valid" +
+                    " degree_of type and a single modifier.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.DEGREE_RELATION }
+)
 public class Baseline1DegreeOfRelationExtractorAnnotator extends DegreeOfRelationExtractorAnnotator {
 
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1EntityMentionPairRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1EntityMentionPairRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1EntityMentionPairRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline1EntityMentionPairRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,9 +18,8 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import com.google.common.collect.Lists;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
@@ -29,12 +28,20 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.Feature;
 
-import com.google.common.collect.Lists;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Annotate location_of relation between two entities in sentences containing
  * exactly two entities (where the entities are of the correct types).
  */
+@PipeBitInfo(
+      name = "Location of Annotator 1",
+      description = "Annotates Location Of relations in sentences containing exactly two entities (where the entities are of the correct types).",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.LOCATION_RELATION }
+)
 public class Baseline1EntityMentionPairRelationExtractorAnnotator extends RelationExtractorAnnotator {
 	
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2DegreeOfRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2DegreeOfRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2DegreeOfRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2DegreeOfRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,11 +18,10 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
+import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.collect.Ordering;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
 import org.apache.ctakes.typesystem.type.textsem.Modifier;
@@ -35,9 +34,10 @@ import org.apache.uima.jcas.tcas.Annotat
 import org.cleartk.ml.CleartkProcessingException;
 import org.cleartk.ml.Feature;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.collect.Ordering;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
 
 
 /**
@@ -45,6 +45,13 @@ import com.google.common.collect.Orderin
  * and a single legitimate degree_of arg1 (i.e. disiease/disorder or sign/symptom). Use the pair of
  * arguments that have the shortest distance to each other. 
  */
+@PipeBitInfo(
+      name = "Degree of Annotator 2",
+      description = "Annotates Degree Of relations between two shortest-distance entities in sentences with multiple modifiers.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.DEGREE_RELATION }
+)
 public class Baseline2DegreeOfRelationExtractorAnnotator extends RelationExtractorAnnotator {
 
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2EntityMentionPairRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2EntityMentionPairRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2EntityMentionPairRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline2EntityMentionPairRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,13 +18,10 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-
+import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.collect.Ordering;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
@@ -35,14 +32,19 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.Feature;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.collect.Ordering;
+import java.util.*;
 
 /**
  * Annotate location_of relation between two entities in sentences with multiple anatomical sites
  * and a single legitimate location_of arg2. Use the pair of arguments that are the closest to each other.
  */
+@PipeBitInfo(
+      name = "Location of Annotator 2",
+      description = "Annotates Location Of relations in sentences containing with multiple anatomical sites.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.LOCATION_RELATION }
+)
 public class Baseline2EntityMentionPairRelationExtractorAnnotator extends RelationExtractorAnnotator {
 	
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3DegreeOfRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3DegreeOfRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3DegreeOfRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3DegreeOfRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,15 +18,10 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.collect.Ordering;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
@@ -37,14 +32,19 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.Feature;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.collect.Ordering;
+import java.util.*;
 
 /**
  * This baseline links each modifier with the closest entity of a type  
  * that's suitable for degree_of, as long as there is no intervening modifier. 
  */
+@PipeBitInfo(
+		name = "Degree of Annotator 3",
+		description = "Annotates Degree Of relations between two shortest-distance entities in sentences as long as there is no intervening modifier.",
+		role = PipeBitInfo.Role.ANNOTATOR,
+		dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+		products = { PipeBitInfo.TypeProduct.DEGREE_RELATION }
+)
 public class Baseline3DegreeOfRelationExtractorAnnotator extends RelationExtractorAnnotator {
 	
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3EntityMentionPairRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3EntityMentionPairRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3EntityMentionPairRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline3EntityMentionPairRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,15 +18,10 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Function;
+import com.google.common.base.Functions;
+import com.google.common.collect.Ordering;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
@@ -36,14 +31,20 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.Feature;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.collect.Ordering;
+import java.util.*;
 
 /**
  * This baseline links each anatomical site with the closest entity of a type  
  * that's suitable for location_of, as long as there is no intervening anatomical site. 
  */
+@PipeBitInfo(
+		name = "Location of Annotator 3",
+		description = "Links each anatomical site with the closest entity of a type that's suitable for location_of," +
+						  " as long as there is no intervening anatomical site.",
+		role = PipeBitInfo.Role.ANNOTATOR,
+		dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+		products = { PipeBitInfo.TypeProduct.LOCATION_RELATION }
+)
 public class Baseline3EntityMentionPairRelationExtractorAnnotator extends RelationExtractorAnnotator {
 	
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4DegreeOfRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4DegreeOfRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4DegreeOfRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4DegreeOfRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,9 +18,7 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.DegreeOfRelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.syntax.TreebankNode;
 import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
@@ -28,10 +26,20 @@ import org.apache.ctakes.typesystem.type
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Annotate degree_of relation between two entities whenever 
  * they are enclosed within the same noun phrse.
  */
+@PipeBitInfo(
+      name = "Degree of Annotator 4",
+      description = "Annotates Degree Of relations between two entities whenever they are enclosed within the same noun phrase.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+      products = { PipeBitInfo.TypeProduct.DEGREE_RELATION }
+)
 public class Baseline4DegreeOfRelationExtractorAnnotator extends DegreeOfRelationExtractorAnnotator {
 
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4EntityMentionPairRelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4EntityMentionPairRelationExtractorAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4EntityMentionPairRelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/baselines/Baseline4EntityMentionPairRelationExtractorAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,9 +18,7 @@
  */
 package org.apache.ctakes.relationextractor.ae.baselines;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
 import org.apache.ctakes.typesystem.type.syntax.TreebankNode;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
@@ -31,10 +29,20 @@ import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.cleartk.ml.Feature;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Annotate location_of relation between two entities whenever 
  * they are enclosed within the same noun phrse.
  */
+@PipeBitInfo(
+		name = "Location of Annotator 4",
+		description = "Annotates Location Of relations between two entities whenever they are enclosed within the same noun phrase.",
+		role = PipeBitInfo.Role.ANNOTATOR,
+		dependencies = { PipeBitInfo.TypeProduct.SENTENCE, PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION },
+		products = { PipeBitInfo.TypeProduct.LOCATION_RELATION }
+)
 public class Baseline4EntityMentionPairRelationExtractorAnnotator extends RelationExtractorAnnotator {
 	
 	@Override

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java Mon Apr 10 20:56:02 2017
@@ -18,43 +18,17 @@
  */
 package org.apache.ctakes.relationextractor.eval;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Nullable;
-
-import org.apache.ctakes.relationextractor.ae.CausesBringsAboutRelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.DegreeOfRelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.LocationOfRelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.ManagesTreatsRelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.ManifestationOfRelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
-import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
-import org.apache.ctakes.typesystem.type.relation.CausesBringsAboutTextRelation;
-import org.apache.ctakes.typesystem.type.relation.DegreeOfTextRelation;
-import org.apache.ctakes.typesystem.type.relation.LocationOfTextRelation;
-import org.apache.ctakes.typesystem.type.relation.ManagesTreatsTextRelation;
-import org.apache.ctakes.typesystem.type.relation.ManifestationOfTextRelation;
-import org.apache.ctakes.typesystem.type.relation.RelationArgument;
-import org.apache.ctakes.typesystem.type.textsem.AnatomicalSiteMention;
-import org.apache.ctakes.typesystem.type.textsem.EntityMention;
-import org.apache.ctakes.typesystem.type.textsem.EventMention;
-import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
-import org.apache.ctakes.typesystem.type.textsem.Modifier;
+import com.google.common.base.Function;
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import com.lexicalscope.jewel.cli.CliFactory;
+import com.lexicalscope.jewel.cli.Option;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
+import org.apache.ctakes.relationextractor.ae.*;
+import org.apache.ctakes.typesystem.type.relation.*;
+import org.apache.ctakes.typesystem.type.textsem.*;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
@@ -83,13 +57,9 @@ import org.cleartk.ml.jar.JarClassifierB
 import org.cleartk.ml.liblinear.LibLinearStringOutcomeDataWriter;
 import org.cleartk.util.ViewUriUtil;
 
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.lexicalscope.jewel.cli.CliFactory;
-import com.lexicalscope.jewel.cli.Option;
+import javax.annotation.Nullable;
+import java.io.*;
+import java.util.*;
 
 public class RelationExtractorEvaluation extends SHARPXMI.Evaluation_ImplBase {
 
@@ -280,7 +250,7 @@ public class RelationExtractorEvaluation
 	 * @param ignoreImpossibleGoldRelations
 	 *          During testing, ignore gold relations that would be impossible to
 	 *          find because there are no corresponding system mentions
-	 * @param expandEvent 
+	//	 * @param expandEvent
 	 */
 	public RelationExtractorEvaluation(
 			File baseDirectory,
@@ -384,6 +354,12 @@ public class RelationExtractorEvaluation
 		}
 	}
 
+	@PipeBitInfo(
+			name = "Location Relation Overlapper",
+			description = "Adds Location-Of relations for annotations overlapping those already having relations.",
+			role = PipeBitInfo.Role.SPECIAL,
+			dependencies = { PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION, PipeBitInfo.TypeProduct.LOCATION_RELATION }
+	)
 	public static class AddPotentialRelations extends JCasAnnotator_ImplBase {
 		@Override
 		public void process(JCas jCas) throws AnalysisEngineProcessException {

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/SHARPXMI.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/SHARPXMI.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/SHARPXMI.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/SHARPXMI.java Mon Apr 10 20:56:02 2017
@@ -24,6 +24,7 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Ordering;
 import com.lexicalscope.jewel.cli.Option;
 import org.apache.ctakes.core.ae.SHARPKnowtatorXMLReader;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.core.util.DocumentIDAnnotationUtil;
 import org.apache.ctakes.typesystem.type.structured.DocumentID;
 import org.apache.uima.UIMAFramework;
@@ -367,6 +368,11 @@ public class SHARPXMI {
       }
    }
 
+   @PipeBitInfo(
+         name = "Text to Gold Copier",
+         description = "Copies Text from the System view to the Gold view.",
+         role = PipeBitInfo.Role.SPECIAL
+   )
    public static class CopyDocumentTextToGoldView extends JCasAnnotator_ImplBase {
       @Override
       public void process( JCas jCas ) throws AnalysisEngineProcessException {

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/XMIReader.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/XMIReader.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/XMIReader.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/XMIReader.java Mon Apr 10 20:56:02 2017
@@ -18,27 +18,34 @@
  */
 package org.apache.ctakes.relationextractor.eval;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.uima.UimaContext;
 import org.apache.uima.cas.impl.XmiCasDeserializer;
 import org.apache.uima.collection.CollectionException;
+import org.apache.uima.fit.component.JCasCollectionReader_ImplBase;
+import org.apache.uima.fit.descriptor.ConfigurationParameter;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Progress;
 import org.apache.uima.util.ProgressImpl;
-import org.apache.uima.fit.component.JCasCollectionReader_ImplBase;
-import org.apache.uima.fit.descriptor.ConfigurationParameter;
 import org.xml.sax.SAXException;
 
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * UIMA CollectionReader that reads in CASes from XMI files.
  */
+@PipeBitInfo(
+      name = "XMI Files Reader",
+      description = "Reads document texts and annotations from XMI files specified in a provided list.",
+      role = PipeBitInfo.Role.READER,
+      products = { PipeBitInfo.TypeProduct.DOCUMENT_ID }
+)
 public class XMIReader extends JCasCollectionReader_ImplBase {
 
   public static final String PARAM_FILES = "files";

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/BackwardsTimeAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/BackwardsTimeAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/BackwardsTimeAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/BackwardsTimeAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,10 +18,8 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
+import com.google.common.collect.Lists;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.ae.feature.ParseSpanFeatureExtractor;
 import org.apache.ctakes.temporal.ae.feature.TimeWordTypeExtractor;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
@@ -43,22 +41,28 @@ import org.cleartk.ml.DataWriter;
 import org.cleartk.ml.Feature;
 import org.cleartk.ml.Instance;
 import org.cleartk.ml.chunking.BioChunking;
-import org.cleartk.ml.feature.extractor.CleartkExtractor;
+import org.cleartk.ml.feature.extractor.*;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Following;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Preceding;
-import org.cleartk.ml.feature.extractor.CombinedExtractor1;
-import org.cleartk.ml.feature.extractor.CoveredTextExtractor;
-import org.cleartk.ml.feature.extractor.FeatureExtractor1;
-import org.cleartk.ml.feature.extractor.TypePathExtractor;
 import org.cleartk.ml.feature.function.CharacterCategoryPatternFunction;
 import org.cleartk.ml.feature.function.CharacterCategoryPatternFunction.PatternType;
 import org.cleartk.ml.jar.DefaultDataWriterFactory;
 import org.cleartk.ml.jar.DirectoryDataWriterFactory;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
 
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 
 
+@PipeBitInfo(
+      name = "Backward Timex Annotator",
+      description = "Annotates absolute time / date Temporal expressions.",
+      role = PipeBitInfo.Role.ANNOTATOR,
+      dependencies = { PipeBitInfo.TypeProduct.SECTION, PipeBitInfo.TypeProduct.SENTENCE,
+                       PipeBitInfo.TypeProduct.BASE_TOKEN },
+      products = { PipeBitInfo.TypeProduct.TIMEX }
+)
 public class BackwardsTimeAnnotator extends TemporalEntityAnnotator_ImplBase {
 
   public static final String PARAM_TIMEX_VIEW = "TimexView";

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/CRFTimeAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/CRFTimeAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/CRFTimeAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/CRFTimeAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,10 +18,7 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.ae.feature.ParseSpanFeatureExtractor;
 import org.apache.ctakes.temporal.ae.feature.TimeWordTypeExtractor;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
@@ -42,15 +39,23 @@ import org.cleartk.ml.CleartkAnnotator;
 import org.cleartk.ml.Feature;
 import org.cleartk.ml.Instances;
 import org.cleartk.ml.chunking.BioChunking;
-import org.cleartk.ml.feature.extractor.CleartkExtractor;
+import org.cleartk.ml.feature.extractor.*;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Following;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Preceding;
-import org.cleartk.ml.feature.extractor.CombinedExtractor1;
-import org.cleartk.ml.feature.extractor.CoveredTextExtractor;
-import org.cleartk.ml.feature.extractor.FeatureExtractor1;
-import org.cleartk.ml.feature.extractor.TypePathExtractor;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+@PipeBitInfo(
+      name = "Timex Annotator",
+      description = "Annotates absolute time / date Temporal expressions into a View.",
+      role = PipeBitInfo.Role.SPECIAL,
+      dependencies = { PipeBitInfo.TypeProduct.SECTION, PipeBitInfo.TypeProduct.SENTENCE,
+                       PipeBitInfo.TypeProduct.BASE_TOKEN },
+      products = { PipeBitInfo.TypeProduct.TIMEX }
+)
 public class CRFTimeAnnotator extends TemporalSequenceAnnotator_ImplBase {
   public static final String PARAM_TIMEX_VIEW = "TimexView";
   @ConfigurationParameter(

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocTimeRelAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocTimeRelAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocTimeRelAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocTimeRelAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,21 +18,21 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.util.Map;
-
+import com.google.common.collect.Maps;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.typesystem.type.textsem.EventMention;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.util.JCasUtil;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.cleartk.timeml.type.Anchor;
 import org.cleartk.timeml.type.DocumentCreationTime;
 import org.cleartk.timeml.type.TemporalLink;
-import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
-import org.apache.uima.fit.factory.AnalysisEngineFactory;
-import org.apache.uima.fit.util.JCasUtil;
 
-import com.google.common.collect.Maps;
+import java.util.Map;
 
 /**
  * for every cTAKES EventMention annotation, create a ClearTK Event Annotation
@@ -40,6 +40,11 @@ import com.google.common.collect.Maps;
  * @author Chen Lin
  * 
  */
+@PipeBitInfo(
+      name = "ClearTK DocTimeRel",
+      description = "Annotates event relativity to document creation time.",
+      dependencies = { PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION, PipeBitInfo.TypeProduct.EVENT }
+)
 public class ClearTKDocTimeRelAnnotator extends JCasAnnotator_ImplBase {
 
 	public ClearTKDocTimeRelAnnotator() {

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocumentCreationTimeAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocumentCreationTimeAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocumentCreationTimeAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKDocumentCreationTimeAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,19 +18,24 @@
  */
 package org.apache.ctakes.temporal.ae;
 
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.cleartk.timeml.type.DocumentCreationTime;
-import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
-import org.apache.uima.fit.factory.AnalysisEngineFactory;
 
 /**
  * for every cTAKES JCas, create a ClearTK Document Creation Time Annotation, fake span, no attribute. 
  * @author Chen Lin
  *
  */
+@PipeBitInfo(
+		name = "ClearTK DocTime Creator",
+		description = "Creates an annotation for document creation time."
+)
 public class ClearTKDocumentCreationTimeAnnotator extends JCasAnnotator_ImplBase {
 
 	public ClearTKDocumentCreationTimeAnnotator() {

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKLinkToTHYMELinkAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKLinkToTHYMELinkAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKLinkToTHYMELinkAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ClearTKLinkToTHYMELinkAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,21 +18,27 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.util.HashSet;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
 import org.apache.ctakes.typesystem.type.relation.RelationArgument;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.util.JCasUtil;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.cleartk.timeml.type.Anchor;
 import org.cleartk.timeml.type.TemporalLink;
-import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
-import org.apache.uima.fit.factory.AnalysisEngineFactory;
-import org.apache.uima.fit.util.JCasUtil;
 
+import java.util.HashSet;
+
+@PipeBitInfo(
+      name = "ClearTK Thyme Linker",
+      description = "Maps old THYME project relations to a binary text relation representation.",
+      products = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+)
 public class ClearTKLinkToTHYMELinkAnnotator extends JCasAnnotator_ImplBase {
 
   static HashSet<String> ctkRels = new HashSet<String>();

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventEventRelationAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventEventRelationAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventEventRelationAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventEventRelationAnnotator.java Mon Apr 10 20:56:02 2017
@@ -1,39 +1,21 @@
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
+import com.google.common.collect.Lists;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator.IdentifiedAnnotationPair;
 import org.apache.ctakes.relationextractor.ae.features.PartOfSpeechFeaturesExtractor;
 import org.apache.ctakes.relationextractor.ae.features.RelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.CheckSpecialWordRelationExtractor;
-//import org.apache.ctakes.temporal.ae.feature.DeterminerRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.EventArgumentPropertyExtractor;
-import org.apache.ctakes.temporal.ae.feature.EventPositionRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.EventTimeRelationFeatureExtractor;
-import org.apache.ctakes.temporal.ae.feature.NumberOfEventTimeBetweenCandidatesExtractor;
-import org.apache.ctakes.temporal.ae.feature.OverlappedHeadFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.SRLRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.SectionHeaderRelationExtractor;
-import org.apache.ctakes.temporal.ae.feature.TimeXRelationFeaturesExtractor;
-//import org.apache.ctakes.temporal.ae.feature.TemporalAttributeForMixEventTimeExtractor;
-import org.apache.ctakes.temporal.ae.feature.UmlsFeatureExtractor;
-import org.apache.ctakes.temporal.ae.feature.UnexpandedTokenFeaturesExtractor;
+import org.apache.ctakes.temporal.ae.feature.*;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
 import org.apache.ctakes.typesystem.type.relation.RelationArgument;
 import org.apache.ctakes.typesystem.type.relation.TemporalTextRelation;
-//import org.apache.ctakes.typesystem.type.syntax.WordToken;
 import org.apache.ctakes.typesystem.type.textsem.EventMention;
 import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
 import org.apache.ctakes.typesystem.type.textspan.Segment;
-//import org.apache.ctakes.typesystem.type.textspan.Paragraph;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.util.JCasUtil;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.jcas.tcas.DocumentAnnotation;
@@ -43,12 +25,22 @@ import org.cleartk.ml.DataWriter;
 import org.cleartk.ml.jar.DefaultDataWriterFactory;
 import org.cleartk.ml.jar.DirectoryDataWriterFactory;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
-import org.apache.uima.fit.factory.AnalysisEngineFactory;
-import org.apache.uima.fit.util.JCasUtil;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.util.*;
+
+//import org.apache.ctakes.temporal.ae.feature.DeterminerRelationFeaturesExtractor;
+//import org.apache.ctakes.temporal.ae.feature.TemporalAttributeForMixEventTimeExtractor;
+//import org.apache.ctakes.typesystem.type.syntax.WordToken;
+//import org.apache.ctakes.typesystem.type.textspan.Paragraph;
 
+@PipeBitInfo(
+      name = "Consecutive Sentence E-E TLinker",
+      description = "Creates Event - Event TLinks between consecutive sentences.",
+      dependencies = { PipeBitInfo.TypeProduct.SECTION, PipeBitInfo.TypeProduct.SENTENCE,
+                       PipeBitInfo.TypeProduct.EVENT },
+      products = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+)
 public class ConsecutiveSentencesEventEventRelationAnnotator extends RelationExtractorAnnotator {
 
 	public static AnalysisEngineDescription createDataWriterDescription(

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventTimeRelationAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventTimeRelationAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventTimeRelationAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConsecutiveSentencesEventTimeRelationAnnotator.java Mon Apr 10 20:56:02 2017
@@ -1,37 +1,22 @@
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
+import com.google.common.collect.Lists;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator;
-import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator.IdentifiedAnnotationPair;
 import org.apache.ctakes.relationextractor.ae.features.PartOfSpeechFeaturesExtractor;
 import org.apache.ctakes.relationextractor.ae.features.RelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.DeterminerRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.EventArgumentPropertyExtractor;
-import org.apache.ctakes.temporal.ae.feature.EventPositionRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.NumberOfEventTimeBetweenCandidatesExtractor;
-import org.apache.ctakes.temporal.ae.feature.SRLRelationFeaturesExtractor;
-import org.apache.ctakes.temporal.ae.feature.SectionHeaderRelationExtractor;
-import org.apache.ctakes.temporal.ae.feature.TimeXRelationFeaturesExtractor;
-//import org.apache.ctakes.temporal.ae.feature.TemporalAttributeForMixEventTimeExtractor;
-import org.apache.ctakes.temporal.ae.feature.UmlsFeatureExtractor;
-import org.apache.ctakes.temporal.ae.feature.UnexpandedTokenFeaturesExtractor;
+import org.apache.ctakes.temporal.ae.feature.*;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
 import org.apache.ctakes.typesystem.type.relation.RelationArgument;
 import org.apache.ctakes.typesystem.type.relation.TemporalTextRelation;
-//import org.apache.ctakes.typesystem.type.syntax.WordToken;
 import org.apache.ctakes.typesystem.type.textsem.EventMention;
 import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
 import org.apache.ctakes.typesystem.type.textsem.TimeMention;
 import org.apache.ctakes.typesystem.type.textspan.Segment;
-//import org.apache.ctakes.typesystem.type.textspan.Paragraph;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.util.JCasUtil;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.jcas.tcas.DocumentAnnotation;
@@ -41,12 +26,21 @@ import org.cleartk.ml.DataWriter;
 import org.cleartk.ml.jar.DefaultDataWriterFactory;
 import org.cleartk.ml.jar.DirectoryDataWriterFactory;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
-import org.apache.uima.fit.factory.AnalysisEngineFactory;
-import org.apache.uima.fit.util.JCasUtil;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.util.*;
+
+//import org.apache.ctakes.temporal.ae.feature.TemporalAttributeForMixEventTimeExtractor;
+//import org.apache.ctakes.typesystem.type.syntax.WordToken;
+//import org.apache.ctakes.typesystem.type.textspan.Paragraph;
 
+@PipeBitInfo(
+		name = "Consecutive Sentence E-T TLinker",
+		description = "Creates Event - Time TLinks between consecutive sentences.",
+		dependencies = { PipeBitInfo.TypeProduct.SECTION, PipeBitInfo.TypeProduct.SENTENCE,
+							  PipeBitInfo.TypeProduct.EVENT, PipeBitInfo.TypeProduct.TIMEX },
+		products = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+)
 public class ConsecutiveSentencesEventTimeRelationAnnotator extends RelationExtractorAnnotator {
 
 	public static AnalysisEngineDescription createDataWriterDescription(

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConstituencyBasedTimeAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConstituencyBasedTimeAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConstituencyBasedTimeAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ConstituencyBasedTimeAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,15 +18,10 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Charsets;
+import com.google.common.collect.Maps;
+import com.google.common.io.Resources;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.ae.feature.TimeWordTypeExtractor;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.syntax.TopTreebankNode;
@@ -48,13 +43,9 @@ import org.cleartk.ml.CleartkAnnotator;
 import org.cleartk.ml.DataWriter;
 import org.cleartk.ml.Feature;
 import org.cleartk.ml.Instance;
-import org.cleartk.ml.feature.extractor.CleartkExtractor;
+import org.cleartk.ml.feature.extractor.*;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Bag;
 import org.cleartk.ml.feature.extractor.CleartkExtractor.Covered;
-import org.cleartk.ml.feature.extractor.CombinedExtractor1;
-import org.cleartk.ml.feature.extractor.CoveredTextExtractor;
-import org.cleartk.ml.feature.extractor.FeatureExtractor1;
-import org.cleartk.ml.feature.extractor.TypePathExtractor;
 import org.cleartk.ml.feature.function.CharacterCategoryPatternFunction;
 import org.cleartk.ml.feature.function.CharacterCategoryPatternFunction.PatternType;
 import org.cleartk.ml.jar.DefaultDataWriterFactory;
@@ -62,10 +53,17 @@ import org.cleartk.ml.jar.DirectoryDataW
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
 import org.cleartk.timeml.util.TimeWordsExtractor;
 
-import com.google.common.base.Charsets;
-import com.google.common.collect.Maps;
-import com.google.common.io.Resources;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
 
+@PipeBitInfo(
+      name = "Constituency Timex Filter",
+      description = "Creates Timex annotations.",
+      dependencies = { PipeBitInfo.TypeProduct.SECTION, PipeBitInfo.TypeProduct.BASE_TOKEN,
+                       PipeBitInfo.TypeProduct.TIMEX }
+)
 public class ConstituencyBasedTimeAnnotator extends
 TemporalEntityAnnotator_ImplBase {
 

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ContextualModalityAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ContextualModalityAnnotator.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ContextualModalityAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/ContextualModalityAnnotator.java Mon Apr 10 20:56:02 2017
@@ -18,9 +18,7 @@
  */
 package org.apache.ctakes.temporal.ae;
 
-import java.io.File;
-import java.util.List;
-
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.textsem.EventMention;
 import org.apache.uima.UimaContext;
@@ -45,6 +43,14 @@ import org.cleartk.ml.jar.DefaultDataWri
 import org.cleartk.ml.jar.DirectoryDataWriterFactory;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
 
+import java.io.File;
+import java.util.List;
+
+@PipeBitInfo(
+      name = "Context Modality Annotator",
+      description = "Sets Modality based upon context.",
+      dependencies = { PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION }
+)
 public class ContextualModalityAnnotator extends CleartkAnnotator<String> {
   public static AnalysisEngineDescription createDataWriterDescription(
       Class<? extends DataWriter<String>> dataWriterClass,

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventEventDurationStatistics.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventEventDurationStatistics.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventEventDurationStatistics.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventEventDurationStatistics.java Mon Apr 10 20:56:02 2017
@@ -18,11 +18,12 @@
  */
 package org.apache.ctakes.temporal.duration;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import com.lexicalscope.jewel.cli.CliFactory;
+import com.lexicalscope.jewel.cli.Option;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.eval.CommandLine;
 import org.apache.ctakes.temporal.eval.THYMEData;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
@@ -32,18 +33,17 @@ import org.apache.uima.analysis_engine.A
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CASException;
 import org.apache.uima.collection.CollectionReader;
-import org.apache.uima.jcas.JCas;
 import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
 import org.apache.uima.fit.descriptor.ConfigurationParameter;
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.fit.pipeline.SimplePipeline;
 import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
 
-import com.google.common.base.Charsets;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
-import com.lexicalscope.jewel.cli.CliFactory;
-import com.lexicalscope.jewel.cli.Option;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Analyze duration information for the relation arguments of CONTAINS relation.
@@ -84,7 +84,13 @@ public class EventEventDurationStatistic
   /**
    * Look at event-event relations whose event arguments have duration data.
    */
-  public static class AnalyseRelationArgumentDuration extends JCasAnnotator_ImplBase {                                               
+  @PipeBitInfo(
+        name = "E-E Duration Computer",
+        description = "Writes a file with durations of Contains Event-Event temporal relations.",
+        role = PipeBitInfo.Role.SPECIAL,
+        dependencies = { PipeBitInfo.TypeProduct.EVENT, PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+  )
+  public static class AnalyseRelationArgumentDuration extends JCasAnnotator_ImplBase {
 
     @ConfigurationParameter(
         name = "OutputFile",

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventTimeDurationStatistics.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventTimeDurationStatistics.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventTimeDurationStatistics.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/duration/EventTimeDurationStatistics.java Mon Apr 10 20:56:02 2017
@@ -18,12 +18,12 @@
  */
 package org.apache.ctakes.temporal.duration;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import com.lexicalscope.jewel.cli.CliFactory;
+import com.lexicalscope.jewel.cli.Option;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.eval.CommandLine;
 import org.apache.ctakes.temporal.eval.THYMEData;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
@@ -34,18 +34,18 @@ import org.apache.uima.analysis_engine.A
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CASException;
 import org.apache.uima.collection.CollectionReader;
-import org.apache.uima.jcas.JCas;
 import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
 import org.apache.uima.fit.descriptor.ConfigurationParameter;
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.fit.pipeline.SimplePipeline;
 import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
 
-import com.google.common.base.Charsets;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
-import com.lexicalscope.jewel.cli.CliFactory;
-import com.lexicalscope.jewel.cli.Option;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Analyze duration information for the relation arguments of CONTAINS relation.
@@ -87,7 +87,14 @@ public class EventTimeDurationStatistics
    * Look at those event-time relations whose event argument has duration data
    * and whose time argument can be normalized using Bethard timex normalizer.
    */
-  public static class AnalyseRelationArgumentDuration extends JCasAnnotator_ImplBase {                                               
+  @PipeBitInfo(
+        name = "E-T Duration Computer",
+        description = "Writes a file with durations of Contains Event-Timex temporal relations.",
+        role = PipeBitInfo.Role.SPECIAL,
+        dependencies = { PipeBitInfo.TypeProduct.EVENT, PipeBitInfo.TypeProduct.TIMEX,
+                         PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+  )
+  public static class AnalyseRelationArgumentDuration extends JCasAnnotator_ImplBase {
 
     @ConfigurationParameter(
         name = "OutputFile",

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfBothEEAndETRelations.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfBothEEAndETRelations.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfBothEEAndETRelations.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfBothEEAndETRelations.java Mon Apr 10 20:56:02 2017
@@ -18,38 +18,18 @@
  */
 package org.apache.ctakes.temporal.eval;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-import java.net.URI;
-import java.util.ArrayDeque;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Deque;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import com.google.common.base.Function;
+import com.google.common.collect.*;
+import com.lexicalscope.jewel.cli.CliFactory;
+import com.lexicalscope.jewel.cli.Option;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.relationextractor.eval.RelationExtractorEvaluation.HashableArguments;
-import org.apache.ctakes.temporal.ae.CrossSentenceTemporalRelationAnnotator;
-import org.apache.ctakes.temporal.ae.DocTimeRelAnnotator;
-import org.apache.ctakes.temporal.ae.EventEventRelationAnnotator;
-import org.apache.ctakes.temporal.ae.EventTimeSelfRelationAnnotator;
-import org.apache.ctakes.temporal.ae.TemporalRelationExtractorAnnotator;
-import org.apache.ctakes.temporal.ae.WithinSentenceBeforeRelationAnnotator;
-//import org.apache.ctakes.temporal.ae.EventTimeSyntacticAnnotator;
-//import org.apache.ctakes.temporal.ae.EventTimeRelationAnnotator;
-//import org.apache.ctakes.temporal.ae.EventEventRelationAnnotator;
+import org.apache.ctakes.temporal.ae.*;
 import org.apache.ctakes.temporal.ae.baselines.RecallBaselineEventTimeRelationAnnotator;
 import org.apache.ctakes.temporal.eval.EvaluationOfEventEventThymeRelations.AddEEPotentialRelations;
 import org.apache.ctakes.temporal.eval.EvaluationOfEventTimeRelations.AddPotentialRelations;
 import org.apache.ctakes.temporal.eval.EvaluationOfEventTimeRelations.Overlap2Contains;
 import org.apache.ctakes.temporal.eval.EvaluationOfEventTimeRelations.ParameterSettings;
-//import org.apache.ctakes.temporal.eval.Evaluation_ImplBase.WriteI2B2XML;
-//import org.apache.ctakes.temporal.eval.Evaluation_ImplBase.XMLFormat;
 import org.apache.ctakes.temporal.utils.AnnotationIdCollection;
 import org.apache.ctakes.temporal.utils.TLinkTypeArray2;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
@@ -80,20 +60,24 @@ import org.apache.uima.util.FileUtils;
 import org.cleartk.eval.AnnotationStatistics;
 import org.cleartk.ml.jar.JarClassifierBuilder;
 import org.cleartk.ml.liblinear.LibLinearStringOutcomeDataWriter;
-//import org.cleartk.ml.libsvm.tk.TkLibSvmStringOutcomeDataWriter;
-//import org.cleartk.ml.libsvm.LIBSVMStringOutcomeDataWriter;
-//import org.cleartk.ml.tksvmlight.TKSVMlightStringOutcomeDataWriter;
 import org.cleartk.ml.tksvmlight.model.CompositeKernel.ComboOperator;
 import org.cleartk.util.ViewUriUtil;
 
-import com.google.common.base.Function;
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.Sets;
-import com.lexicalscope.jewel.cli.CliFactory;
-import com.lexicalscope.jewel.cli.Option;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.net.URI;
+import java.util.*;
+
+//import org.apache.ctakes.temporal.ae.EventTimeSyntacticAnnotator;
+//import org.apache.ctakes.temporal.ae.EventTimeRelationAnnotator;
+//import org.apache.ctakes.temporal.ae.EventEventRelationAnnotator;
+//import org.apache.ctakes.temporal.eval.Evaluation_ImplBase.WriteI2B2XML;
+//import org.apache.ctakes.temporal.eval.Evaluation_ImplBase.XMLFormat;
+//import org.cleartk.ml.libsvm.tk.TkLibSvmStringOutcomeDataWriter;
+//import org.cleartk.ml.libsvm.LIBSVMStringOutcomeDataWriter;
+//import org.cleartk.ml.tksvmlight.TKSVMlightStringOutcomeDataWriter;
 
 public class EvaluationOfBothEEAndETRelations extends
 EvaluationOfTemporalRelations_ImplBase{
@@ -446,14 +430,14 @@ EvaluationOfTemporalRelations_ImplBase{
 //		aggregateBuilder.add(AnalysisEngineFactory.createEngineDescription(WithinSentenceBeforeRelationAnnotator.class));
 
 		if(this.anaforaOutput != null){
-			aed = AnalysisEngineFactory.createEngineDescription(WriteAnaforaXML.class, WriteAnaforaXML.PARAM_OUTPUT_DIR, this.anaforaOutput);
-			if(this.writeProbabilities){
+			aed = AnalysisEngineFactory.createEngineDescription(WriteAnaforaXML.class, WriteAnaforaXML.PARAM_OUTPUT_DIR, this.anaforaOutput);
+			if(this.writeProbabilities){
 				ConfigurationParameterFactory.addConfigurationParameters(
 						aed,    
 						WriteAnaforaXML.PARAM_PROB_VIEW, 
 						PROB_VIEW_NAME);
-			}
-			aggregateBuilder.add(aed, "TimexView", CAS.NAME_DEFAULT_SOFA);
+			}
+			aggregateBuilder.add(aed, "TimexView", CAS.NAME_DEFAULT_SOFA);
 		}
 
 		File outf = null;
@@ -785,6 +769,12 @@ EvaluationOfTemporalRelations_ImplBase{
 	}
 
 
+	@PipeBitInfo(
+			name = "Transitive Contains Adder",
+			description = "Adds Contains temporal relations for annotations / relations in contain other relations.",
+			role = PipeBitInfo.Role.SPECIAL,
+			dependencies = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+	)
 	public static class AddTransitiveContainsRelations extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
 
 		@Override
@@ -850,6 +840,12 @@ EvaluationOfTemporalRelations_ImplBase{
 
 	}
 
+	@PipeBitInfo(
+			name = "TLink Overlap Adder",
+			description = "Adds an Overlap temporal relation for each Contains temporal relation.",
+			role = PipeBitInfo.Role.SPECIAL,
+			dependencies = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+	)
 	public static class AddContain2Overlap extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
 
 		@Override
@@ -876,6 +872,12 @@ EvaluationOfTemporalRelations_ImplBase{
 		}
 	}
 
+	@PipeBitInfo(
+			name = "Reverse Overlap TLinker",
+			description = "Adds Overlap temporal relations with arguments flipped.",
+			role = PipeBitInfo.Role.SPECIAL,
+			dependencies = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+	)
 	public static class AddFlippedOverlap extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
 
 		@Override
@@ -916,6 +918,12 @@ EvaluationOfTemporalRelations_ImplBase{
 		}
 	}
 
+	@PipeBitInfo(
+			name = "TLink Closure Engine",
+			description = "Performs closure on Temporal Relations",
+			role = PipeBitInfo.Role.SPECIAL,
+			dependencies = { PipeBitInfo.TypeProduct.TEMPORAL_RELATION }
+	)
 	public static class AddClosure extends JCasAnnotator_ImplBase {
 
 		@Override

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfClearTKEventProperties.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfClearTKEventProperties.java?rev=1790896&r1=1790895&r2=1790896&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfClearTKEventProperties.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfClearTKEventProperties.java Mon Apr 10 20:56:02 2017
@@ -18,19 +18,10 @@
  */
 package org.apache.ctakes.temporal.eval;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.FileHandler;
-import java.util.logging.Formatter;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
-
+import com.google.common.base.Function;
+import com.google.common.collect.Maps;
+import com.lexicalscope.jewel.cli.CliFactory;
+import org.apache.ctakes.core.pipeline.PipeBitInfo;
 import org.apache.ctakes.temporal.ae.ClearTKDocTimeRelAnnotator;
 import org.apache.ctakes.temporal.ae.ClearTKDocumentCreationTimeAnnotator;
 import org.apache.ctakes.temporal.ae.EventToClearTKEventAnnotator;
@@ -53,17 +44,15 @@ import org.cleartk.opennlp.tools.ParserA
 import org.cleartk.opennlp.tools.PosTaggerAnnotator;
 import org.cleartk.opennlp.tools.SentenceAnnotator;
 import org.cleartk.snowball.DefaultSnowballStemmer;
-import org.cleartk.timeml.event.EventAspectAnnotator;
-import org.cleartk.timeml.event.EventClassAnnotator;
-import org.cleartk.timeml.event.EventModalityAnnotator;
-import org.cleartk.timeml.event.EventPolarityAnnotator;
-import org.cleartk.timeml.event.EventTenseAnnotator;
+import org.cleartk.timeml.event.*;
 import org.cleartk.timeml.tlink.TemporalLinkEventToDocumentCreationTimeAnnotator;
 import org.cleartk.token.tokenizer.TokenAnnotator;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Maps;
-import com.lexicalscope.jewel.cli.CliFactory;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+import java.util.logging.*;
+import java.util.logging.Formatter;
 
 public class EvaluationOfClearTKEventProperties extends
     Evaluation_ImplBase<Map<String, AnnotationStatistics<String>>> {
@@ -225,6 +214,11 @@ public class EvaluationOfClearTKEventPro
     };
   }
 
+   @PipeBitInfo(
+         name = "Event Property Clearer",
+         description = "Clears all event properties.",
+         role = PipeBitInfo.Role.SPECIAL
+   )
   public static class ClearEventProperties extends JCasAnnotator_ImplBase {
     @Override
     public void process(JCas jCas) throws AnalysisEngineProcessException {