Changing labels on the same tier with recognizer module

I’ve been using Python and pympi-ling library to process ELAN files for some years, and recently I realized that I can call python from RECOGNIZERS tab. Currently, the script is changing labels on the chosen tier, but after running the code changes are visible only on newly created tier by recognizer. I guess this is the logic of the recognizer: analyse data and create new tier with results of the analyses. I wonder is there a way to modify labels on the input tier without creating a new tier with recognizer? I know I can find and replace easily with any label, but I have more complicated changes in other python scripts, which take many tiers and labels as arguments and change labels on existing tier in eaf file.

Also, is there any manual for running ELAN source in mvn or Intellij IDEA? I’ve tried mvn install, mvn clean, mvn test and got multiple error messages, missing dependences and build failure.

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------------------< nl.mpi:elan >-----------------------------

[INFO] Building ELAN Multimedia Annotator 6.7

[INFO] from pom.xml

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] resources:3.3.1:resources (default-resources) @ elan

[INFO] Copying 174 resources from src/main/resources to target/classes

[INFO]

[INFO] compiler:3.8.0:compile (default-compile) @ elan

[WARNING] Parameter ‘compilerArguments’ is deprecated: use {@link #compilerArgs} instead.

[INFO] Changes detected - recompiling the module!

[INFO] Compiling 1797 source files to /Users/konradjuszczyk/IdeaProjects/ELAN/target/classes

[INFO] -------------------------------------------------------------

[ERROR] COMPILATION ERROR :

[INFO] -------------------------------------------------------------

[ERROR] error: invalid target release: 20

[INFO] 1 error

[INFO] -------------------------------------------------------------

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 0.853 s

[INFO] Finished at: 2024-03-24T00:35:07+01:00

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project elan: Compilation failure

[ERROR] error: invalid target release: 20

[ERROR]

[ERROR] → [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

There is currently no way to change the input tier directly, instead of creating one or more new tiers produced by the recognizer; the user has no way to choose whether one or the other should happen.
So at the moment to achieve what you want requires one or two additional steps after running a recognizer, e.g. Tier->Copy Annotations from Tier to Tier or delete and rename tiers.
Changing multiple tiers (or selecting multiple tiers as input) is currently also not supported by the mini-API for recognizers.

There’s no manual for running Maven from an IDE. Concerning the failure you copied: I guess that is caused by incompatibility of the JDK version Maven or the IDE or using with the setting in the pom.xml? I think the source code is still compatible with JDK 17, so you could change this in the pom.xml file (or configure the tools to use at least JDK 20)?
mvn package copies all dependencies to the target folder and unpacks native libraries, so you could run that at least once to have all dependencies in place.

-Han