To some extent I think (and hope!) it will be superseded by the PBJ code that will be in cTAKES 5.0.0 anyways. Tim
From: Finan, Sean <sean.fi...@childrens.harvard.edu.INVALID> Date: Wednesday, December 20, 2023 at 3:43 PM To: dev@ctakes.apache.org <dev@ctakes.apache.org> Subject: Re: Examining Ctakes 5.0 - two sides of the same question [EXTERNAL] [SUSPICIOUS] [SUSPICIOUS] [SUSPICIOUS] * External Email - Caution * Hi Tim, Thanks for the explanation. I am going to remove the BERTRest classes. Sean ________________________________ From: Miller, Timothy <timothy.mil...@childrens.harvard.edu.INVALID> Sent: Wednesday, December 20, 2023 6:25 PM To: dev@ctakes.apache.org <dev@ctakes.apache.org> Subject: Re: Examining Ctakes 5.0 - two sides of the same question [EXTERNAL] [SUSPICIOUS] [SUSPICIOUS] * External Email - Caution * Hi Sean and Peter, I put the BERTRest stuff in, with the intention of finishing it and adding the python code to run the REST server, but just never finished it up. I’m ok with leaving it out for now. (Now that we are on GitHub it would be so much easier to do things like this in branches and only merge when it’s actually finished!) Thanks Tim From: Finan, Sean <sean.fi...@childrens.harvard.edu.INVALID> Date: Tuesday, December 5, 2023 at 10:59 AM To: dev@ctakes.apache.org <dev@ctakes.apache.org> Subject: Re: Examining Ctakes 5.0 - two sides of the same question [EXTERNAL] [SUSPICIOUS] * External Email - Caution * Hi Peter, My thoughts on this: > a newer version of Mastif than Ctakes is packaged with, and additional > modifications that I've made - Are you saying that you made a local/custom version of mastif that builds upon their latest (1.6?) version? Or do you just need to update the ctakes dependency from 1.4 to 1.6? - If you have a custom version of mastif, one way that I have dealt with this in other projects is to keep changes to the standard library 'in parallel' and call the parallel versions in my/our code. If mastif is written in java then this is fairly easy to do by creating another module that shares the package structure of mastif. The parallel code can be put into ctakes. - Another way to deal with it is to distribute your custom code and jar with ctakes. Mastif appears to use an Apache 2.0 license, so I think that this can be done. If your changes are extensive or make the parallel option inconvenient then this may be the way to go. "Developed by the Apache Software Foundation <https://urldefense.com/v3/__https://www.apache.org/__;!!NZvER7FxgEiBAiR_!v4zkgN5rD-SYoU0guBeLZRHcTP_prpbCx0vc8SAx_RQhjGimd-7xb6PbvmISt3NmGl9Il1XIjNX47wK3l06ENC92i2qu7uQbxhON4pqoXmHM8nTR-i2_Eg$ > and introduced in 2004, the Apache 2.0 License is a is a permissive free software license. The license permits use of the software for any purpose, users are able to distribute it, to modify it, and to distribute modified versions of the software." - https://urldefense.com/v3/__https://pitt.libguides.com/openlicensing/apache2*:*:text=Apache*20License,modified*20versions*20of*20the*20software__;I34lJSUlJQ!!NZvER7FxgEiBAiR_!v4zkgN5rD-SYoU0guBeLZRHcTP_prpbCx0vc8SAx_RQhjGimd-7xb6PbvmISt3NmGl9Il1XIjNX47wK3l06ENC92i2qu7uQbxhON4pqoXmHM8nTgt3CGPw$<https://urldefense.com/v3/__https:/pitt.libguides.com/openlicensing/apache2*:*:text=Apache*20License,modified*20versions*20of*20the*20software__;I34lJSUlJQ!!NZvER7FxgEiBAiR_!v4zkgN5rD-SYoU0guBeLZRHcTP_prpbCx0vc8SAx_RQhjGimd-7xb6PbvmISt3NmGl9Il1XIjNX47wK3l06ENC92i2qu7uQbxhON4pqoXmHM8nTgt3CGPw$><https://urldefense.com/v3/__https:/pitt.libguides.com/openlicensing/apache2*:*:text=Apache*20License,modified*20versions*20of*20the*20software__;I34lJSUlJQ!!NZvER7FxgEiBAiR_!v4zkgN5rD-SYoU0guBeLZRHcTP_prpbCx0vc8SAx_RQhjGimd-7xb6PbvmISt3NmGl9Il1XIjNX47wK3l06ENC92i2qu7uQbxhON4pqoXmHM8nTgt3CGPw$%3chttps:/urldefense.com/v3/__https:/pitt.libguides.com/openlicensing/apache2*:*:text=Apache*20License,modified*20versions*20of*20the*20software__;I34lJSUlJQ!!NZvER7FxgEiBAiR_!v4zkgN5rD-SYoU0guBeLZRHcTP_prpbCx0vc8SAx_RQhjGimd-7xb6PbvmISt3NmGl9Il1XIjNX47wK3l06ENC92i2qu7uQbxhON4pqoXmHM8nTgt3CGPw$%3e> . - For an inclusion of a modified mastif in ctakes, maybe just put the whole thing into a project named "ctakes-mastif". > no documentation or references - A common problem with ctakes code, tests, resources ... unfortunate and difficult to deal with. I am guilty of some of this paucity of information. > dependent on a BertREST server - In instances such as this I would say that somebody checked in unfinished code, or that somebody forgot to check in a resource. However, this particular code probably came from a developer working on an external project and checked in code that is intended to be used by that project. - For any new developers out there: It is a 'best practice' to create your own project and include ctakes as a dependency. Keep your project code only in your project repository. If you want to make changes to ctakes in parallel, you can also create a module in your ctakes source root and put your non-ctakes code only in that module. Don't check in that module! - All that said, everybody forgets/makes mistakes/hurries ... Sean ________________________________ From: Peter Abramowitsch <pabramowit...@gmail.com> Sent: Tuesday, December 5, 2023 12:38 PM To: dev@ctakes.apache.org <dev@ctakes.apache.org> Subject: Examining Ctakes 5.0 - two sides of the same question [EXTERNAL] * External Email - Caution * The question is: what is our policy if a resource in the ctakes archive depends upon another resource that is not in the archive and may not be available elsewhere. I'm sure there are other examples, but here are two.... 1. I've done some enhancements to the ZoneAnnotator for note section detection, but these depend upon a newer version of Mastif than Ctakes is packaged with, and additional modifications that I've made. If I do add the updates to the Zone Annotator, where should I put the customized Mastif library - does it belong in cTakes? 2. I found a couple of interesting annotators in the archive that are dependent on a BertREST server, but there's no documentation or references as to what code base that server comes from or whether its BERT model is even publicly available. DocTimeRelBertRestAnnotator TemporalBertRestAnnotator PolarityBertRestAnnotator Here's my feeling: Ctakes sources should be packaged to either be self-sufficient or based on publicly available dependencies at the time of check in. If we really want to keep dangling sources, there should be a separate folder for them rather than mixing them in with the living product. But, for now, I would be even happier if whoever checked in the BertRest based annotators could provide links and documentation to the dependencies Your thoughts? Peter