Hi Vijay, Thank you for this update. In order to evaluate the YTEX port into cTAKES, I wanted to do the following (goals):
(a) Compile the ctakes/branches/ytex to create apache-ctakes-3.1.2-SNAPSHOT. (b) Validate that the just compiled binary works by running either the AggregatePlaintextProcessor.xml or AggregatePlaintextUMLSProcessor.xml pipelines (basically following instructions at https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+3.1+User+Install+Guide). (c) Follow instructions at https://code.google.com/p/ytex/wiki/Installation_cTAKES_3_1 to explore YTEX specific features, e.g. pipelines, writing annotations to database, etc. So I took the following steps: 1) Followed the instructions at https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+3.1+Developer+Install+Guide and https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+3.0+Developer+Install+Guide to successfully (i) configure Eclipse (Juno) environment for building cTAKES, and (ii) pull the source code from the SVN repository branch: https://svn.apache.org/repos/asf/ctakes/branches/ytex. 2) In Eclipse, right clicked on the top-most (or root level) pom.xml, selected Run As -> Maven build, typed in "compile" as the goal, and hit Run. This successfully compiled all the projects. 3) In Eclipse, repeated step (2) but selected Run As -> Maven install to create a distribution. However this is where I started to encounter few problems. I was eventually able to get Maven install to complete and create the binaries (i.e. in ctakes-distribution/target/) but by manually doing the following: 3.1) in pom.xml of ctakes-ytex-uima: excluded all tests 3.2) in pom.xml of ctakes-core: excluded 2 tests 3.3) in ctakes-ytex: modified scripts/build-classpath.xml and scripts/build-setup.xml to hardcode path to ANT library 3.4) in ctakes-dependency-parser: excluded 1 unit test 4) After this step, I extracted apache-ctakes-3.1.2-SNAPSHOT-bin.zip and attempted to verify (i.e. step (b)) above. However when I attempted to load AggregatePlaintextProcessor, I am getting exception (below). While I continue to look to resolve this, any tips/hints that you could provide to get this build functional would be highly appreciated. I think I may be missing one or more key steps/configuration. My workstation is Windows 7 and I use Eclipse Juno. ------------------------- java.lang.Error: Unresolved compilation problems: The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.machine cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.output cannot be resolved The import org.apache.ctakes.core.fsm.token.BaseToken cannot be resolved The import org.apache.ctakes.core.fsm.token.EolToken cannot be resolved DateFSM cannot be resolved to a type TimeFSM cannot be resolved to a type FractionFSM cannot be resolved to a type RomanNumeralFSM cannot be resolved to a type RangeFSM cannot be resolved to a type MeasurementFSM cannot be resolved to a type PersonTitleFSM cannot be resolved to a type DateFSM cannot be resolved to a type DateFSM cannot be resolved to a type TimeFSM cannot be resolved to a type TimeFSM cannot be resolved to a type FractionFSM cannot be resolved to a type FractionFSM cannot be resolved to a type RomanNumeralFSM cannot be resolved to a type RomanNumeralFSM cannot be resolved to a type RangeFSM cannot be resolved to a type RangeFSM cannot be resolved to a type MeasurementFSM cannot be resolved to a type MeasurementFSM cannot be resolved to a type PersonTitleFSM cannot be resolved to a type PersonTitleFSM cannot be resolved to a type BaseToken cannot be resolved to a type BaseToken cannot be resolved to a type BaseToken cannot be resolved to a type The method adaptToBaseToken(BaseToken) from the type ContextDependentTok enizerAnnotator refers to the missing type BaseToken EolToken cannot be resolved to a type BaseToken cannot be resolved to a type DateToken cannot be resolved to a type DateFSM cannot be resolved to a type DateToken cannot be resolved to a type DateToken cannot be resolved to a type TimeToken cannot be resolved to a type TimeFSM cannot be resolved to a type TimeToken cannot be resolved to a type TimeToken cannot be resolved to a type RomanNumeralToken cannot be resolved to a type RomanNumeralFSM cannot be resolved to a type RomanNumeralToken cannot be resolved to a type RomanNumeralToken cannot be resolved to a type FractionToken cannot be resolved to a type FractionFSM cannot be resolved to a type FractionToken cannot be resolved to a type FractionToken cannot be resolved to a type RangeToken cannot be resolved to a type RangeFSM cannot be resolved to a type RangeToken cannot be resolved to a type RangeToken cannot be resolved to a type MeasurementToken cannot be resolved to a type MeasurementFSM cannot be resolved to a type MeasurementToken cannot be resolved to a type MeasurementToken cannot be resolved to a type PersonTitleToken cannot be resolved to a type PersonTitleFSM cannot be resolved to a type PersonTitleToken cannot be resolved to a type PersonTitleToken cannot be resolved to a type BaseToken cannot be resolved to a type at org.apache.ctakes.contexttokenizer.ae.ContextDependentTokenizerAnnota tor.<init>(ContextDependentTokenizerAnnotator.java:45) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou rce) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.ini tializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:227) at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.ini tialize(PrimitiveAnalysisEngine_impl.java:156) at org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(Analy sisEngineFactory_impl.java:94) at org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(Co mpositeResourceFactory_impl.java:62) at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:269) at org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.jav a:387) at org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java :254) at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.ini tASB(AggregateAnalysisEngine_impl.java:431) at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.ini tializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:375) at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.ini tialize(AggregateAnalysisEngine_impl.java:185) at org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(Analy sisEngineFactory_impl.java:94) at org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(Co mpositeResourceFactory_impl.java:62) at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:269) at org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.jav a:354) at org.apache.uima.tools.cvd.MainFrame.setupAE(MainFrame.java:1484) at org.apache.uima.tools.cvd.MainFrame.loadAEDescriptor(MainFrame.java:4 77) at org.apache.uima.tools.cvd.control.AnnotatorOpenEventHandler.actionPer formed(AnnotatorOpenEventHandler.java:52) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour ce) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour ce) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour ce) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) On Saturday, January 4, 2014 9:06:52 AM UTC+5:45, vijay garla wrote: > > Hello All, > > I have finished an initial cut at the port of YTEX to cTAKES 3.1.1. Most > of the YTEX functionality has been ported and integrated with cTAKES, and > I've tested with MySQL and MS SQL Server (oracle tests pending). > > Most of the changes were made in new projects - very little existing > cTAKES code has been modified. The only non-trivial changes are > in > /ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/i2b2/api > - here I modified CharacterOffsetToLineTokenConverterCtakesImpl & > SingleDocumentProcessorCtakes to deal with newlines within sentences > correctly. Can somebody take a look at the changes in the ytex branch? > > I believe that the branch > https://svn.apache.org/repos/asf/ctakes/branches/ytex is ready to be > merged into ctakes trunk, but would like other users to test it as well. > Questions: > > * How can I distribute the ctakes binary distribution to ytex users before > the merge? Can we make the branch build available somewhere? The binary > distribution is too large to host on the ytex google code site (max 200 MB) > * Non-ASF libraries - I have segregated these out into their own zip file > that can be distributed via sourceforge. As a stopgap, I can upload this > to the ytex google code site, but would prefer to upload to sourceforge. > * UMLS Derivatives - Ditto for these - would like to move to sourceforge. > * Documentation - How can I update the confluence docs? I would migrate > the documentation from the google code website. > > Here the installation instructions (putting the wagon in front of the > horse ...) > > > https://code.google.com/p/ytex/wiki/Installation_cTAKES_3_1?ts=1388793998&updated=Installation_cTAKES_3_1 > > Best, > > VJ > > >
