JCoRe Base
Base modules of JCoRe as described in (please cite this paper if you publish results using JCoRe):
Udo Hahn, Franz Matthies, Erik Faessler and Johannes Hellrich: UIMA-Based JCoRe 2.0 Goes GitHub and Maven Central ― State-of-the-Art Software Resource Engineering and Distribution of NLP Pipelines. In: Nicoletta Calzolari (Conference Chair), Khalid Choukri, Thierry Declerck, Marko Grobelnik, Bente Maegaard, Joseph Mariani, Asuncion Moreno, Jan Odijk, Stelios Piperidis (Eds.): Proceedings of the Tenth International Conference on Language Resources and Evaluation (LREC 2016), 2016. Portorož, Slovenia.
[Full Text]
Objective
These are the base components of the JULIE Lab Component Repository (JCoRe), an open software repository for full-scale natural language processing based on the UIMA middleware framework. JCoRe offers a broad range of text analytics (mostly) for English-language scientific abstracts and full-text articles, especially for the biology domain. In order to automate the builds of complex NLP pipelines and properly represent and track dependencies of the underlying Java code, all our components are also available as artifacts from Maven Central. A description for each individual component can be found in their respective README.md
.
Requirements & Dependencies
In order to use our components you need at least JDK 11 (Java SE Development Kit 11), UIMA 2.10 & Maven 3. We develop with the Eclipse IDE for Java Developers and IntelliJ IDEA Java IDEs. If course you're free to try it with different versions or tools than those mentioned, but we can't make promises for a flawless functioning of our components in these cases.
UIMA's Collection Processing Engine (CPE)
UIMA features a relatively easy way to combine UIMA components together in order to analyze a collection of artifacts. If you're not firm or willing to deal with Java Code, the usage of a CPE might be the right choice. For more detailed information see UIMA's CPE Documentation.
We're also working on a simple Python script that builds rudimentary and preconfigured CPEs of your choice. It's working but still work in progress so please bear with us and post issues.
Maven Artifacts
If not stated otherwise, all the components found in this project are at least in their latest release version also available as Maven artifacts:
<dependency>
<groupId>de.julielab</groupId>
<artifactId>#COMPONENT-NAME</artifactId>
<version>${jcore-version}</version>
</dependency>
Where #COMPONENT-NAME
is exactly the same as the name on GitHub. For instance, to get the Acronym Resolver, include this in your Maven dependencies:
<dependency>
<groupId>de.julielab</groupId>
<artifactId>jcore-acronym-ae</artifactId>
<version>${jcore-version}</version>
</dependency>
The version variable ${jcore-version}
is defined in the jcore-parent pom and should not be edited manually, as it ensures compatibility. An exemption from this rule are bugfix version, which might also be available from Maven Central. If for instance we deployed a first bugfix version for the jcore-acronym-ae
from the 2.0.0
release, the Maven coordinates would be the following:
<dependency>
<groupId>de.julielab</groupId>
<artifactId>jcore-acronym-ae</artifactId>
<version>2.0.1</version>
</dependency>
(some more information on using components the Java/Maven way)
Components with pretrained models
For some components the "Base" version won't be sufficient if you're not planning on training your own model but rather want to use them out-of-the-box in a prediction pipeline. As of now all of the following components have a specialized project with pretrained models (available from the JCoRe Projects Pages):
- jcore-biosem-ae
- jcore-jnet-ae
- jcore-jpos-ae
- jcore-jsbd-ae
- jcore-jtbd-ae
- jcore-mstparser-ae
- jcore-opennlp-chunk-ae
- jcore-opennlp-parser-ae
- jcore-opennlp-postag-ae
- jcore-opennlp-sentence-ae
- jcore-opennlp-token-ae
- jcore-xml-reader
Please refer to the JCoRe Projects Pages for information on how to use them in your pipeline.
Prebuilt pipelines
For illustration purposes we provide some pipelines that utilize our components and can be used as a template if you want to build your own either with a UIMA CPE or as a Java project. As of now, these pipelines exist:
- BioSEM Relation Extraction Pipeline; BioNLP ST11 model, English (Java and CPE pipeine)
- Biomedical Named Entity Tagger Pipeline; English (CPE pipeline)
- Medical POS Pipeline; German
Create a JCoRe Base Release
To create a new release, the following steps should be performed
- Set the release version via
scripts/setProjectVersion.sh
. This automatically updates the meta descriptors. - If
jcore-dependency
modules (located in thejcore-dependency
repository) have changed, those have to be deployed first. Install, from this repository,jcore-types
andjcore-utilities
locally as they are required by some of thejcore-dependency
projects (might not actually be necessary):- Locally install
jcore-types
:mvn install -f jcore-types
. - Locally install
jcore-utilities
:mvn install -f jcore-utilities
. - Release the required
jcore-dependencies
modules.
- Locally install