Differences between 5.0 and 6.0 - apache/ctakes GitHub Wiki
Apache cTAKES 6.0.0 has the same functionality as the 5.1.0 release.
The difference is that, wherever possible, third-party dependencies are upgraded. The primary reason for the upgrade is to minimize vulnerabilities, but it is also nice to be able to take advantage of newer capabilities of those libraries. Among many smaller updates, cTAKES now uses:
- Java 17 (up from 8)
- UIMA 3 (up from 2)
- slf4j* (replaces log4j 1)
These updates did require code changes for compatibility with upgraded libraries, but no [NLP] functionality was changed.
* Some notes on the slf4j upgrade:
All of the code contained with cTAKES source itself uses only slf4j.
When you compile and run using maven (or an IDE), log4j v2 will be used as the logger implementation. You can disable this behavior by disabling the maven profile named "use-log4j", but you will then need to provide your own logger implementation. See slf4j documentation if you don't know what this means. If you don't know what it means then you are probably fine leaving it as-is.
When you build a cTAKES installation (mvn package), log4j v2 will be included in the installation. You can prevent this by disabling the "use-log4j" maven profile. With the default build behavior ("use-log4j" enabled), log4j v2 jars will be placed in a config/ directory, not the lib/ directory. This should make manual deletion easier and safer.
Known Issues
- The Java Data Loader (JDL) tool within cTAKES-ytex does not work with the upgraded libraries. The JDL tool simply loads data written in comma-separated value (csv) or XML into a MySQL table. If you need to perform this task, there are many newer, feature-packed and more user-friendly options freely available on the web. A simple web search should discover available command-line tools and GUIs.