You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by ch...@apache.org on 2014/11/06 23:00:39 UTC

svn commit: r1637238 - in /ctakes/trunk: ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/ ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/ ctakes-temporal/src/main/java/org/apache/ctakes/te...

Author: chenpei
Date: Thu Nov  6 22:00:38 2014
New Revision: 1637238

URL: http://svn.apache.org/r1637238
Log:
CTAKES-329 - Initial check in of temporal event-event and event-time relation discovery models.

Added:
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/model.jar   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt   (with props)
    ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/model.jar   (with props)
    ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java   (with props)
    ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java   (with props)
Modified:
    ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotator.java
    ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/DocTimeRelAnnotatorTest.java

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt (added)
+++ ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt Thu Nov  6 22:00:38 2014
@@ -0,0 +1,35 @@
+a)No closure on gold::Closure on System::Recall Mode						
+P	R	F1	#gold	#system	#correct	
+0.768	0.324	0.455	584	246	189	OVERALL
+1	0	0	39	0	0	BEFORE
+1	0	0	15	0	0	BEGINS-ON
+0.807	0.482	0.604	390	233	188	CONTAINS
+1	0	0	1	0	0	ENDS-ON
+0.077	0.007	0.013	139	13	1	OVERLAP
+						
+b) No closure on System::Closure on Gold::Precision Mode						
+P	R	F1	#gold	#system	#correct	
+0.801	0.247	0.378	765	236	189	OVERALL
+1	0	0	48	0	0	BEFORE
+1	0	0	16	0	0	BEGINS-ON
+0.811	0.482	0.605	392	233	189	CONTAINS
+1	0	0	16	0	0	ENDS-ON
+0	0	0	293	3	0	OVERLAP
+						
+c) Final Score:						
+P	R	F				
+0.801	0.324	0.461376	OVERALL			
+1	0	0	BEFORE			
+1	0	0	BEGINS-ON			
+0.811	0.482	0.604643465	CONTAINS			
+1	0	0	ENDS-ON			
+0	0.007	0	OVERLAP			
+d) Closure on train::No closure onTest::PlainMode						
+P	R	F1	#gold	#system	#correct	
+0.797	0.322	0.459	584	236	188	OVERALL
+1	0	0	39	0	0	BEFORE
+1	0	0	15	0	0	BEGINS-ON
+0.807	0.482	0.604	390	233	188	CONTAINS
+1	0	0	1	0	0	ENDS-ON
+						
+						

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/Event_Event_UMLS_doubleFilter_useSystemEvents.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt (added)
+++ ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt Thu Nov  6 22:00:38 2014
@@ -0,0 +1,10 @@
+Models are trained on THYME patient sets: 28-127
+Training data: Mode 8, residue 0-3
+Testing data: Mode 8, residue 4 and 5
+
+UMLS entities, whose spans overlap with gold Events, were extracted to boost training data
+UMLS entities were not extracted for testing data. For testing data, only gold events were used for evaluation.
+
+Both arguments of event-event relations are required to be valid medical terms (i.e. be one of the UMLS semantic types).
+We show test results for event-time relations, in which events were not required to be valid medical terms.
+Results for event-time relations, in which event arguments are requried to be valid medical terms, were also shown here. Final event-time model is UMLS-filtered. 
\ No newline at end of file

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/READEME.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/model.jar
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/model.jar?rev=1637238&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventevent/model.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt (added)
+++ ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt Thu Nov  6 22:00:38 2014
@@ -0,0 +1,36 @@
+a)No closure on gold::Closure on System::Recall Mode						
+P	R	F1	#gold	#system	#correct	
+0.459	0.64	0.535	1229	1715	787	OVERALL
+0.048	0.081	0.061	37	62	3	BEFORE
+0.207	0.143	0.169	42	29	6	BEGINS-ON
+0.576	0.777	0.662	977	1317	759	CONTAINS
+0.214	0.214	0.214	28	28	6	ENDS-ON
+0.047	0.09	0.061	145	279	13	OVERLAP
+						
+b) No closure on System::Closure on Gold::Precision Mode						
+P	R	F1	#gold	#system	#correct	
+0.617	0.399	0.485	2379	1540	950	OVERALL
+0.052	0.039	0.044	77	58	3	BEFORE
+0.353	0.086	0.138	70	17	6	BEGINS-ON
+0.672	0.727	0.698	1216	1316	884	CONTAINS
+0.5	0.092	0.156	65	12	6	ENDS-ON
+0.372	0.054	0.094	951	137	51	OVERLAP
+						
+c) Final Score:						
+P	R	F				
+0.617	0.64	0.628289578	OVERALL			
+0.052	0.081	0.063338346	BEFORE			
+0.353	0.143	0.203544355	BEGINS-ON			
+0.672	0.777	0.720695652	CONTAINS			
+0.5	0.214	0.299719888	ENDS-ON			
+0.372	0.09	0.144935065	OVERLAP			
+						
+d) Closure on train::No closure onTest::PlainMode						
+P	R	F1	#gold	#system#correct		
+0.508	0.637	0.566	1229	1540	783	OVERALL
+0.052	0.081	0.063	37	58	3	BEFORE
+0.353	0.143	0.203	42	17	6	BEGINS-ON
+0.577	0.777	0.662	977	1316	759	CONTAINS
+0.5	0.214	0.3	28	12	6	ENDS-ON
+0.066	0.062	0.064	145	137	9	OVERLAP
+						

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_no_UMLS_filter.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt (added)
+++ ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt Thu Nov  6 22:00:38 2014
@@ -0,0 +1,36 @@
+a)No closure on gold::Closure on System::Recall Mode						
+P	R	F1	#gold	#system	#correct	
+0.358	0.628	0.456	549	964	345	OVERALL
+0	0	0	14	7	0	BEFORE
+0.5	0.045	0.083	22	2	1	BEGINS-ON
+0.661	0.746	0.701	437	493	326	CONTAINS
+0	0	0	7	2	0	ENDS-ON
+0.039	0.261	0.068	69	460	18	OVERLAP
+						
+b) No closure on System::Closure on Gold::Precision Mode						
+P	R	F1	#gold	#system	#correct	
+0.594	0.256	0.357	1702	732	435	OVERALL
+0	0	0	51	7	0	BEFORE
+0.5	0.02	0.038	50	2	1	BEGINS-ON
+0.716	0.506	0.593	698	493	353	CONTAINS
+1	0	0	43	0	0	ENDS-ON
+0.352	0.094	0.149	860	230	81	OVERLAP
+						
+c) Final Score:						
+P	R	F				
+0.594	0.628	0.610527005	OVERALL			
+0	0	#DIV/0!	BEFORE			
+0.5	0.045	0.082568807	BEGINS-ON			
+0.716	0.746	0.730692202	CONTAINS			
+1	0	0	ENDS-ON			
+0.352	0.261	0.299745514	OVERLAP			
+						
+d) Closure on train::No closure onTest::PlainMode						
+P	R	F1	#gold	#system#correct		
+0.462	0.616	0.528	549	732	338	OVERALL
+0	0	0	14	7	0	BEFORE
+0.5	0.045	0.083	22	2	1	BEGINS-ON
+0.661	0.746	0.701	437	493	326	CONTAINS
+1	0	0	7	0	0	ENDS-ON
+0.048	0.159	0.074	69	230	11	OVERLAP
+						

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/Event_Time_with_UMLS_filter.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt (added)
+++ ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt Thu Nov  6 22:00:38 2014
@@ -0,0 +1,10 @@
+Models are trained on THYME patient sets: 28-127
+Training data: Mode 8, residue 0-3
+Testing data: Mode 8, residue 4 and 5
+
+UMLS entities, whose spans overlap with gold Events, were extracted to boost training data
+UMLS entities were not extracted for testing data. For testing data, only gold events were used for evaluation.
+
+Both arguments of event-event relations are required to be valid medical terms (i.e. be one of the UMLS semantic types).
+We show test results for event-time relations, in which events were not required to be valid medical terms.
+Results for event-time relations, in which event arguments are requried to be valid medical terms, were also shown here. Final event-time model is UMLS-filtered. 
\ No newline at end of file

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/READEME.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/model.jar
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/model.jar?rev=1637238&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ctakes/trunk/ctakes-temporal-res/src/main/resources/org/apache/ctakes/temporal/ae/eventtime/model.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotator.java?rev=1637238&r1=1637237&r2=1637238&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotator.java Thu Nov  6 22:00:38 2014
@@ -92,7 +92,7 @@ public class EventTimeRelationAnnotator 
 				(float) probabilityOfKeepingANegativeExample);
 	}
 
-	public static AnalysisEngineDescription createEngineDescription(String modelPath)
+	public static AnalysisEngineDescription createAnnotatorDescription(String modelPath)
 			throws ResourceInitializationException {
 		return AnalysisEngineFactory.createEngineDescription(
 				EventTimeRelationAnnotator.class,
@@ -107,7 +107,7 @@ public class EventTimeRelationAnnotator 
 	 * This will allow resources to be read within from a jar as well as File.  
 	 */	 
 	@Deprecated
-	public static AnalysisEngineDescription createEngineDescription(File modelDirectory)
+	public static AnalysisEngineDescription createAnnotatorDescription(File modelDirectory)
 			throws ResourceInitializationException {
 		return AnalysisEngineFactory.createEngineDescription(
 				EventTimeRelationAnnotator.class,

Modified: ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/DocTimeRelAnnotatorTest.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/DocTimeRelAnnotatorTest.java?rev=1637238&r1=1637237&r2=1637238&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/DocTimeRelAnnotatorTest.java (original)
+++ ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/DocTimeRelAnnotatorTest.java Thu Nov  6 22:00:38 2014
@@ -114,7 +114,7 @@ public class DocTimeRelAnnotatorTest {
 		// assertTrue(temp.contains("6 months ago"));
 	}
 
-	public static class AddEvent extends JCasAnnotator_ImplBase {
+	public static class AddEvent extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
 		@Override
 		public void process(JCas jCas) throws AnalysisEngineProcessException {
 			for (EventMention emention : Lists.newArrayList(JCasUtil.select(

Added: ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java (added)
+++ ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java Thu Nov  6 22:00:38 2014
@@ -0,0 +1,121 @@
+/**
+ * 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.temporal.ae;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory;
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.CopyNPChunksToLookupWindowAnnotations;
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.RemoveEnclosedLookupWindows;
+import org.apache.ctakes.dependency.parser.ae.ClearNLPDependencyParserAE;
+import org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator;
+import org.apache.ctakes.typesystem.type.refsem.Event;
+import org.apache.ctakes.typesystem.type.refsem.EventProperties;
+import org.apache.ctakes.typesystem.type.relation.TemporalTextRelation;
+import org.apache.ctakes.typesystem.type.textsem.EventMention;
+import org.apache.log4j.Logger;
+import org.apache.uima.UIMAException;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.factory.AggregateBuilder;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.factory.JCasFactory;
+import org.apache.uima.fit.pipeline.SimplePipeline;
+import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
+public class EventEventRelationAnnotatorTest {
+
+	// LOG4J logger based on class name
+	private Logger LOGGER = Logger.getLogger(getClass().getName());
+
+	@Test
+	public void testPipeline() throws UIMAException, IOException {
+
+		String note = "The patient is a 55-year-old man referred by Dr. Good for recently diagnosed colorectal cancer.  "
+				+ "The patient was well till 6 months ago, when he started having a little blood with stool.";
+		JCas jcas = JCasFactory.createJCas();
+		jcas.setDocumentText(note);
+
+		// Get the default pipeline with umls dictionary lookup
+		AggregateBuilder builder = new AggregateBuilder();
+		builder.add(ClinicalPipelineFactory.getTokenProcessingPipeline());
+		builder.add(AnalysisEngineFactory
+				.createEngineDescription(CopyNPChunksToLookupWindowAnnotations.class));
+		builder.add(AnalysisEngineFactory
+				.createEngineDescription(RemoveEnclosedLookupWindows.class));
+		// Commented out the Dictionary lookup for the test
+		// Uncomment and set -Dctakes.umlsuser and -Dctakes.umlspw env params if
+		// needed
+		//builder.add(UmlsDictionaryLookupAnnotator.createAnnotatorDescription());
+		builder.add(ClearNLPDependencyParserAE.createAnnotatorDescription());
+
+		// Add BackwardsTimeAnnotator
+		builder.add(BackwardsTimeAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/timeannotator/model.jar"));
+		// Add EventAnnotator
+		builder.add(EventAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/eventannotator/model.jar"));
+		//link event to eventMention
+		builder.add(AnalysisEngineFactory.createEngineDescription(AddEvent.class));
+		// Add Event to Event Relation Annotator
+		builder.add(EventEventRelationAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/eventevent/model.jar"));
+
+		SimplePipeline.runPipeline(jcas, builder.createAggregateDescription());
+
+		Collection<TemporalTextRelation> relations = JCasUtil.select(jcas,
+				TemporalTextRelation.class);
+
+		for (TemporalTextRelation relation : relations) {
+			LOGGER.info("Relation: " + relation.getArg1() + " " + relation.getArg2() + " Category: " + relation.getCategory());
+			}
+		// assertEquals(2, temp.size());
+		// assertTrue(temp.contains("recently"));
+		// assertTrue(temp.contains("6 months ago"));
+	}
+
+	public static class AddEvent extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
+		@Override
+		public void process(JCas jCas) throws AnalysisEngineProcessException {
+			for (EventMention emention : Lists.newArrayList(JCasUtil.select(
+					jCas,
+					EventMention.class))) {
+				EventProperties eventProperties = new org.apache.ctakes.typesystem.type.refsem.EventProperties(jCas);
+
+				// create the event object
+				Event event = new Event(jCas);
+
+				// add the links between event, mention and properties
+				event.setProperties(eventProperties);
+				emention.setEvent(event);
+
+				// add the annotations to the indexes
+				eventProperties.addToIndexes();
+				event.addToIndexes();
+			}
+		}
+	}
+
+}

Propchange: ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotatorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java?rev=1637238&view=auto
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java (added)
+++ ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java Thu Nov  6 22:00:38 2014
@@ -0,0 +1,121 @@
+/**
+ * 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.temporal.ae;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory;
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.CopyNPChunksToLookupWindowAnnotations;
+import org.apache.ctakes.clinicalpipeline.ClinicalPipelineFactory.RemoveEnclosedLookupWindows;
+import org.apache.ctakes.dependency.parser.ae.ClearNLPDependencyParserAE;
+import org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator;
+import org.apache.ctakes.typesystem.type.refsem.Event;
+import org.apache.ctakes.typesystem.type.refsem.EventProperties;
+import org.apache.ctakes.typesystem.type.relation.TemporalTextRelation;
+import org.apache.ctakes.typesystem.type.textsem.EventMention;
+import org.apache.log4j.Logger;
+import org.apache.uima.UIMAException;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
+import org.apache.uima.fit.factory.AggregateBuilder;
+import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.factory.JCasFactory;
+import org.apache.uima.fit.pipeline.SimplePipeline;
+import org.apache.uima.fit.util.JCasUtil;
+import org.apache.uima.jcas.JCas;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
+public class EventTimeRelationAnnotatorTest {
+
+	// LOG4J logger based on class name
+	private Logger LOGGER = Logger.getLogger(getClass().getName());
+
+	@Test
+	public void testPipeline() throws UIMAException, IOException {
+
+		String note = "The patient is a 55-year-old man referred by Dr. Good for recently diagnosed colorectal cancer.  "
+				+ "The patient was well till 6 months ago, when he started having a little blood with stool.";
+		JCas jcas = JCasFactory.createJCas();
+		jcas.setDocumentText(note);
+
+		// Get the default pipeline with umls dictionary lookup
+		AggregateBuilder builder = new AggregateBuilder();
+		builder.add(ClinicalPipelineFactory.getTokenProcessingPipeline());
+		builder.add(AnalysisEngineFactory
+				.createEngineDescription(CopyNPChunksToLookupWindowAnnotations.class));
+		builder.add(AnalysisEngineFactory
+				.createEngineDescription(RemoveEnclosedLookupWindows.class));
+		// Commented out the Dictionary lookup for the test
+		// Uncomment and set -Dctakes.umlsuser and -Dctakes.umlspw env params if
+		// needed
+		//builder.add(UmlsDictionaryLookupAnnotator.createAnnotatorDescription());
+		builder.add(ClearNLPDependencyParserAE.createAnnotatorDescription());
+
+		// Add BackwardsTimeAnnotator
+		builder.add(BackwardsTimeAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/timeannotator/model.jar"));
+		// Add EventAnnotator
+		builder.add(EventAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/eventannotator/model.jar"));
+		//link event to eventMention
+		builder.add(AnalysisEngineFactory.createEngineDescription(AddEvent.class));
+		// Add Event to Event Relation Annotator
+		builder.add(EventTimeRelationAnnotator
+				.createAnnotatorDescription("/org/apache/ctakes/temporal/ae/eventtime/model.jar"));
+
+		SimplePipeline.runPipeline(jcas, builder.createAggregateDescription());
+
+		Collection<TemporalTextRelation> relations = JCasUtil.select(jcas,
+				TemporalTextRelation.class);
+
+		for (TemporalTextRelation relation : relations) {
+			LOGGER.info("Relation: " + relation.getArg1() + " " + relation.getArg2() + " Category: " + relation.getCategory());
+		}
+		// assertEquals(2, temp.size());
+		// assertTrue(temp.contains("recently"));
+		// assertTrue(temp.contains("6 months ago"));
+	}
+
+	public static class AddEvent extends org.apache.uima.fit.component.JCasAnnotator_ImplBase {
+		@Override
+		public void process(JCas jCas) throws AnalysisEngineProcessException {
+			for (EventMention emention : Lists.newArrayList(JCasUtil.select(
+					jCas,
+					EventMention.class))) {
+				EventProperties eventProperties = new org.apache.ctakes.typesystem.type.refsem.EventProperties(jCas);
+
+				// create the event object
+				Event event = new Event(jCas);
+
+				// add the links between event, mention and properties
+				event.setProperties(eventProperties);
+				emention.setEvent(event);
+
+				// add the annotations to the indexes
+				eventProperties.addToIndexes();
+				event.addToIndexes();
+			}
+		}
+	}
+
+}

Propchange: ctakes/trunk/ctakes-temporal/src/test/java/org/apache/ctakes/temporal/ae/EventTimeRelationAnnotatorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native