This is a new backend implementation of the ANNIS linguistic search and visualization system (http://corpus-tools.org/annis/).
Only a sub-set of the ANNIS Query Language (AQL) from ANNIS version 3 (based on PostgreSQL) is supported yet. More operators can be added in the future, but the ones missing are the ones which have been used less frequent. There is a tutorial in the Developer Guide on how to embed graphANNIS in your own application.
The basic design ideas and data models are described in detail in the PhD-thesis "ANNIS: A graph-based query system for deeply annotated text corpora". The thesis describes a prototype implementation in C++ and not Rust, but the design ideas are the same. Notable differences/enhancements compared to the thesis are:
You need to install Rust to compile the project. We recommend installing the following Cargo subcommands for developing annis-web:
You can run the tests with the default cargo test command.
To calculate the code coverage, you can use cargo-llvm-cov:
cargo llvm-cov --open --all-features --ignore-filename-regex '(tests?.rs)|(capi/.*)'You need to have cargo-release
installed to perform a release. Execute the follwing cargo command once to
install it.
cargo install cargo-releaseTo perform a release, switch to the main branch and execute:
cargo release [LEVEL] --executeThe 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 on GitHub.
This software depends on several 3rd party libraries. These are documented in the "third-party-licenses.html" file in this folder.