artemisia 0.7.0

The Artemisia annotation editor is intended to be used for the [RIDGES corpus](https://www.linguistik.hu-berlin.de/en/institut-en/professuren-en/korpuslinguistik/research/ridges-projekt). It is based on [graphANNIS](https://github.com/korpling/graphANNIS) and thus is internal data model is in principle suitable for a wide range of annotation concepts. "
Documentation
# Artemisia annotation editor

The Artemisia annotation editor is intended to be used for the [RIDGES corpus](https://www.linguistik.hu-berlin.de/en/institut-en/professuren-en/korpuslinguistik/research/ridges-projekt).
It is based on [graphANNIS](https://github.com/korpling/graphANNIS) and thus is internal data model is in principle suitable for a wide range of annotation concepts.

It is very much **work in progress**.
We support Linux, Windows and (with delayed manual relases) macOS, but only activly test on Linux.
See the [Releases](https://codeberg.org/korpling/artemisia/releases) page to download the files for your operating system.

## Features

- Import and export corpora in the most formats supported by [annatto]https://github.com/korpling/annatto/tree/main/docs
- Supports editing several token layers (RIDGES has diplomatic transcription and two normalization layers)
- Supports span annotations
- Edit the corpus structure and change meta data

## Screenshots

![Screenshot of adding spans with shortcuts](screenshots/adding-spans.png)

![Screenshot of editing the meta data of a corpus.](screenshots/adding-metadata.png)

![Sreenshot of the UI for importing a corpus from XLSX files](screenshots/import-xlsx.png)

## Developing artemisia

You need to install Rust to compile the project.
We recommend installing the following Cargo subcommands for developing annis-web:

- [cargo-release]https://crates.io/crates/cargo-release for creating releases
- [cargo-about]https://crates.io/crates/cargo-about for re-generating the
  third party license file
- [cargo-llvm-cov]https://crates.io/crates/cargo-llvm-cov for determining the code coverage

Also install the [`diff-cover`](https://github.com/Bachmann1234/diff_cover) command line tool to run merge the merge request checks locally.

### Execute tests

You can run the tests with the default `cargo test` command.

To run all checks that have to pass for a merge requests locally, first make sure you have the `diff-cover` and `cargo-llvm-cov` tools installed.

```bash
cargo install cargo-llvm-cov
pipx install diff_cover
```

Then, run the following command to run all checks including code coverage:

```bash
./verify.sh
```


### Performing a release

You need to have [`cargo-release`](https://crates.io/crates/cargo-release)
installed to perform a release. Execute the follwing `cargo` command once to
install it.

```bash
cargo install cargo-release cargo-about
```

To perform a release, switch to the main branch and execute:

```bash
cargo release [LEVEL] --execute
```

The [level](https://github.com/crate-ci/cargo-release/blob/HEAD/docs/reference.md#bump-level) should be `patch`, `minor` or `major` depending on the changes made in the release.
Running the release command will also trigger a CI workflow to create release binaries for Linux and Windows on Codeberg.
The release binary file for macOS needs to be created and uploaded to the Codeberg-release page manually.


## Funding

This research was funded by the German Research Foundation (DFG, Deutsche Forschungsgemeinschaft) – SFB 1412, 416591334.

Die Forschungsergebnisse dieser Veröffentlichung wurden gefördert durch die Deutsche Forschungsgemeinschaft (DFG) – SFB 1412, 416591334.