John,
Great news, have you thought about posting your code to the public
repository (does this project even have a GitHub or other public project
repo?) so that the rest of the devs can build on, or at least reference
your work to date?
I for one would love to take a peak inside the kimono as it were.
My other suggestion was to remove the "or higher" verbiage from the
download page since that is where *users* will be downloading and given
that text they will be expecting that it works 'out of the box' on later
versions of java, such as the current LTS version 1.17.
rik.
On 2/6/23 11:47, Petersam, John Contractor wrote:
Hi Rik,
I understand your feelings. Not everyone has the ability to upgrade things. I
was responding because I wanted folks to know it was possible. My use case is
different than what I typically see here. I've got an enterprise solution that
uses cTAKES to process 7 million pages of text daily. I forked my version
years ago because there of inefficiencies in certain parts of the library (e.g.
the dependency parser) that made it otherwise impractical to deploy for my
level of volume. When version 4 came out, I performed a manual difference of
the code to get the updates. I expect to do the same for version 5 (if for no
other reason, to speed up the build time).
Since then, we've performed regular upgrades. Most of them were pretty straightforward,
which is why I don't think getting it past 1.8 would be a huge issue for most developers.
I know I made a few modifications when updating Spring (I believe from 3.x to 4.x, but
it's been a while and I'm currently on 6.0.3), and a couple when updating Lucene. I also
know that the most recent upgrade to Hibernate was a bit painful. In fact, there were
couple of functions in ytex that I simply commented out since they weren't being
referenced anyway. But those are the only "hitches" I've ever had during a
migration.
I would strongly suggest anyone doing the upgrade make sure they do a full
regression test. I don't trust standard JUnit tests because of the nature of
NLP, so I actually compare annotations on a 3 million page test set to ensure
that nothing is broken. That's probably a larger set than most of you need,
but obviously more is better.
Hope this helps,
John
-----Original Message-----
From: Rick Coleman<rcole...@jilocasin.net>
Sent: Monday, February 06, 2023 8:21 AM
To:dev@ctakes.apache.org
Subject: Re: Crash course in cTakes [EXTERNAL]
John,
That's good to hear, and as Sean remarked, details would be great.
Unfortunately, I don't think we should be expecting non-dev users to have to
update dependencies and make code changes since the download page said it works
with 1.8 or higher....
rik.
On 2/6/23 07:13, Petersam, John Contractor wrote:
Hi Rik,
I run mine on Java 19, so it can be done. But I have also updated dependencies
and made code modifications to support it.
Thanks,
John
-----Original Message-----
From: Rick Coleman<rcole...@jilocasin.net>
Sent: Friday, February 03, 2023 5:59 PMTo:dev@ctakes.apache.org
Subject: Re: Crash course in cTakes [EXTERNAL]
Sean,
Thanks for getting back to me in this. I was afraid that was what the answer
was going to be.
I appreciate you taking the time to fill in some of the gaps. If it's so dependent on
Java 1.8, someone should probably remove the "or higher"
on the download page.
I look forward to getting this application up and running.
Until then,
rik.
On 2/3/23 15:57, Finan, Sean wrote:
Hi Rick,
Thank you for the questions and for reminding us that the documentation is
sparse, outdated and not very detailed. Everybody needs a prod now and then to
get things done.
I hope that we can get a solid README and Wiki going on GitHub, as well as an
update to the primary website. It will take a lot of work and some cooperation
by committers and users alike.
I have tried to address your questions inline below.
Sean
________________________________
From: Rick Coleman<rcole...@jilocasin.net>
Sent: Friday, February 3, 2023 3:14 PMTo:dev@ctakes.apache.org
<dev@ctakes.apache.org>
Subject: Crash course in cTakes [EXTERNAL]
* External Email - Caution *
Hello everyone,
Can anyone point me to an exhaustive set of documentation regarding cTakes?
* Not really. The wiki that you found is the most that there is.
* Most information is scattered across emails written on the dev and
user lists. You can search them here:https://apache.markmail.org/
The main site feels like it was written by a marketing major, lots of
flash and catchiness, but little in the way of detailed documentation.
Even the User Install Guide and the Developer Install guide read like
what they are, install guides.
For example:
Is cTakes the whole package, or just the front end?
* ctakes is a clinical nlp platform (vague enough?). I would say "whole
package", but extendable.
* It is built on Apache UIMA and allows users to create pipelines of
various nlp and i/o components.
* It comes with many components that have been built for clinical nlp.
* It is extendable; UIMA components from other sources can be placed in
the pipelines.
* There are front-ends for some tasks, such as running a pipeline or
creating a custom dictionary.
If it's just the front end, what's the back end?
* I would say that each UIMA component is a bit of back-end, as is the
controller that actually runs the pipeline.
* As mentioned above, you can extend it with non-ctakes back-end
components .
It mentions using my UMLS credentials, can you use a local copy of
the relevant UMLS data? If so how?
* If you are compiling and running the source then ctakes will
automatically download a default dictionary.
* If you are running a packaged binary then you'll need to manually pull
down a dictionary.
* Previous to ctakes 5 downlaoding, unzipping and copying the dictionary
was a manual process.
* If you are using v5 then you can run bin/getUmlsDictionary and a
simple gui will do it for you.
* You can also create your own custom dictionary.
* The wiki has a page on the dictionary creator gui.
* There are instructions on youtube that start with first steps.
Are the requirements listed, 1GB drive space, Oracle Java 1.8 the
minimum or the recommended? What about RAM or CPU? Is non-Oracle
Java acceptable? What about 1.17, the current LTS version?
1GB disk
== Java 1.8
2GB RAM (>= 4 recommended)
= 64bit CPU
OpenJDK seems to be fine.
Every java release past 8 is bad for ctakes. ctakes has a lot of dependencies,
many of which are old and rely on a java 8 feature here and there. ctakes
itself probably requires a java 8 special here and there, but I honestly don't
know. Unfortunately, ctakes needs to have a serious update effort - maybe for
v6. Part of the problem is actually its capabilities and versatility - the
availability of multiple available components and workflows. A 'minor' change
can require a dozen end-to-end tests in dev and user environments on multiple
platforms. Unit tests do not suffice.
So, does anyone know where I can find out this information?
Thanks.
rik.