| Crates.io | graphannis |
| lib.rs | graphannis |
| version | 4.0.0 |
| created_at | 2018-04-06 08:44:54.182165+00 |
| updated_at | 2025-08-20 13:10:11.83993+00 |
| description | This is a new backend implementation of the ANNIS linguistic search and visualization system. |
| homepage | |
| repository | https://github.com/korpling/graphANNIS |
| max_upload_size | |
| id | 59223 |
| size | 1,640,790 |
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:
Developer Guide (including descriptions of the data model and tutorials for the API)
You need to install Rust to compile the project. We recommend installing the following Cargo subcommands for developing annis-web:
Also install the diff-cover command line tool to run merge the merge request checks locally.
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.
cargo install cargo-llvm-cov
pipx install diff_cover
Then, run the following command to run all checks including code coverage:
./verify.sh
You need to have cargo-release
installed to perform a release. Execute the follwing cargo command once to
install it.
cargo install cargo-release
To perform a release, switch to the main branch and execute:
cargo release [LEVEL] --execute
The 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.