For linguists who want to manage written corpus samples for language learners, annotate error and analise them
the project TextAnnot is a written corpus management and annotation tool
that allows them to upload text samples (XML or using Web form), annotate errors, list samples, search samples, review annotations and analyse errors. Moreover, authorised users can define samples metadata and the error tags hierarchy.
Unlike existing tools TextAnnot focuses on errors annotation and is highly customisable.
Linguist | Admin |
---|---|
Create Sample for Template | Register Linguist |
Edit Sample Metadata | Create Metadata Template |
List Metadata Templates | Add/Delete/Edit Metadata Field |
Upload XML Samples | Create Annotation Hierarchy |
List/Search Samples | Add/Delete/Edit Annotation Tag |
List Annotation Hierarchies | |
Start Sample Annotation | |
Tag Sample Text Error | |
Review Annotation | |
List/Search Annotations | |
List/Search/Count Error Tags | |
This project has been developed with the support of the Spanish Government, Ministry of Science, Innovation and Universities (ref. FFI2016-80280-R) and the European Union Regional Development Fund.
TextAnnot is composed of as a Web frontend (this repository) and a backend API (TextAnnot-API). Both are available as Docker images to facilitate their deployment.
To do so, install Docker and Docker Compose. Then, the following docker-compose.yml
file can be used to deploy both client and server on a local machine (the file is also available for download: docker-compose.yml).
version: '3'
services:
textannot:
image: rhizomik/textannot
container_name: textannot
ports:
- "80:80"
environment:
- API_URL=${API_URL:-http://localhost:8080}
textannot-api:
image: rhizomik/textannot-api
container_name: textannot-api
ports:
- "8080:8080"
environment:
- ALLOWED_ORIGINS=${CLIENT_URL:-http://localhost}
- DEFAULT_PASSWORD=password
- JAVA_OPTS=-Xmx512m -Xms128m
Now, from the same folder where the docker-compose.yml
file was downloaded, run:
docker-compose up -d
The Docker images for both client and API will be downloaded and started. The client should be now available from: http://localhost
By default there is a administrator user with username admin
and password that set in the docker-compose.yml
file. In the sample file, it is set to password
.
It is possible to customize where to run TextAnnot if not from your machine. To do so, set CLIENT_URL
and API_URL
as follows (on Linux, Mac or Windows with Cygwin installed):
export CLIENT_URL=https://cineas.udl.cat
export API_URL=https://cineas-api.udl.cat
You can also connect the API to a database to make the data persistent so it is not lost if the API is stopped. The provided docker-compose.yml includes, though initially commented, additional parameters to configure a MariaDB database that can be also deployed as an additional container:
version: '3'
services:
textannot:
image: rhizomik/textannot
container_name: textannot
ports:
- "80:80"
environment:
- API_URL=${API_URL:-http://localhost:8080}
textannot-api:
image: rhizomik/textannot-api
container_name: textannot-api
ports:
- "8080:8080"
environment:
- ALLOWED_ORIGINS=${CLIENT_URL:-http://localhost}
- DEFAULT_PASSWORD=password
- JAVA_OPTS=-Xmx512m -Xms128m
# Enabled for database persistence, default is in-memory
- SPRING_PROFILES_ACTIVE=production
- DATABASE_URL=jdbc:mysql://database:3306/textannot
- DATABASE_USERNAME=textannot
- DATABASE_PASSWORD=password
depends_on:
- database
database:
image: mariadb:latest
container_name: database
environment:
- MYSQL_DATABASE=textannot
- MYSQL_USER=textannot
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=password
expose:
- "3306"