graphannis
This is a new backend implementation of the ANNIS linguistic search and visualization system.
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
2 of 6 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.8%) to scientific vocabulary
Keywords
Repository
This is a new backend implementation of the ANNIS linguistic search and visualization system.
Basic Info
- Host: GitHub
- Owner: korpling
- License: apache-2.0
- Language: Rust
- Default Branch: main
- Homepage: http://corpus-tools.org/annis/
- Size: 15.8 MB
Statistics
- Stars: 18
- Watchers: 6
- Forks: 1
- Open Issues: 7
- Releases: 90
Topics
Metadata Files
README.md
graphANNIS

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:
- Graph storages implement querying inverse edges and finding reachable nodes based on them: this allows to implement inverse operators (e.g. for precedence) and switching operands in situations where it was not possible before.
- The data model has been simplified: the inverse coverage component and inverse edges in the left-/right-most token component have been removed.
- Additional query language features are now supported.
Documentation
- Developer Guide (including descriptions of the data model and tutorials for the API)
- API documentation
Developing graphANNIS
You need to install Rust to compile the project. We recommend installing the following Cargo subcommands for developing annis-web:
- cargo-llvm-cov for determining the code coverage
- cargo-release for creating releases
- cargo-about for re-generating the third party license file
- cargo-dist for configuring the GitHub actions that create the release binaries.
Also install the 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
installed to perform a release. Execute the follwing cargo command once to
install it.
bash
cargo install cargo-release
To perform a release, switch to the main branch and execute:
bash
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.
3rd party dependencies
This software depends on several 3rd party libraries. These are documented in the "third-party-licenses.html" file in this folder.
Language bindings
- Java: https://github.com/korpling/graphANNIS-java
- Python 3: https://github.com/korpling/graphANNIS-python
- Rust (this repository)
- C (this repository)
Author(s)
- Thomas Krause (thomas.krause@hu-berlin.de)
Owner
- Name: korpling
- Login: korpling
- Kind: organization
- Repositories: 69
- Profile: https://github.com/korpling
Citation (CITATION.cff)
cff-version: 1.2.0
message: If you use this software, please cite it as below.
authors:
- family-names: Krause
given-names: Thomas
orcid: https://orcid.org/0000-0003-3731-2422
affiliation: Humboldt-Universität zu Berlin
title: graphANNIS
version: 4.0.0
date-released: 2025-08-20
doi: 10.5281/zenodo.2598164
references:
- type: thesis
title: "ANNIS: A graph-based query system for deeply annotated text corpora"
year: 2019
doi: 10.18452/19659
authors:
- family-names: Krause
given-names: Thomas
orcid: https://orcid.org/0000-0003-3731-2422
affiliation: Humboldt-Universität zu Berlin
GitHub Events
Total
- Create event: 16
- Release event: 4
- Issues event: 2
- Delete event: 16
- Issue comment event: 20
- Push event: 95
- Pull request review event: 1
- Pull request event: 26
Last Year
- Create event: 16
- Release event: 4
- Issues event: 2
- Delete event: 16
- Issue comment event: 20
- Push event: 95
- Pull request review event: 1
- Pull request event: 26
Committers
Last synced: almost 3 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Thomas Krause | t****e@p****e | 3,717 |
| Thomas Krause | k****o@h****e | 597 |
| Thomas Krause | t****e@h****e | 131 |
| Thomas Krause | t****e@u****m | 56 |
| dependabot[bot] | 4****]@u****m | 3 |
| travis | t****s | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 24
- Total pull requests: 149
- Average time to close issues: over 1 year
- Average time to close pull requests: 2 days
- Total issue authors: 8
- Total pull request authors: 3
- Average comments per issue: 1.29
- Average comments per pull request: 1.38
- Merged pull requests: 135
- Bot issues: 0
- Bot pull requests: 8
Past Year
- Issues: 3
- Pull requests: 29
- Average time to close issues: 5 months
- Average time to close pull requests: about 19 hours
- Issue authors: 2
- Pull request authors: 2
- Average comments per issue: 1.67
- Average comments per pull request: 0.79
- Merged pull requests: 23
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- MartinKl (5)
- thomaskrause (5)
- dlukes (3)
- amir-zeldes (3)
- gcelano (3)
- amyisard (1)
- Herrner (1)
- Tarotis (1)
Pull Request Authors
- thomaskrause (155)
- matthias-stemmler (8)
- dependabot[bot] (8)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 6
-
Total downloads:
- cargo 391,062 total
-
Total dependent packages: 11
(may contain duplicates) -
Total dependent repositories: 3
(may contain duplicates) - Total versions: 380
- Total maintainers: 1
crates.io: graphannis
This is a new backend implementation of the ANNIS linguistic search and visualization system.
- Documentation: https://docs.rs/graphannis/
- License: Apache-2.0
-
Latest release: 4.0.0
published 6 months ago
Rankings
Maintainers (1)
crates.io: graphannis-core
This crate supports graph representation and generic query-functionality.
- Documentation: https://docs.rs/graphannis-core/
- License: Apache-2.0
-
Latest release: 4.0.0
published 6 months ago
Rankings
Maintainers (1)
crates.io: graphannis-cli
This is a command-line interface to the new backend implementation of the ANNIS linguistic search and visualization system.
- Documentation: https://docs.rs/graphannis-cli/
- License: Apache-2.0
-
Latest release: 4.0.0
published 6 months ago
Rankings
Maintainers (1)
crates.io: graphannis-capi
This is the C-API to the ANNIS linguistic search and visualization system.
- Documentation: https://docs.rs/graphannis-capi/
- License: Apache-2.0
-
Latest release: 4.0.0
published 6 months ago
Rankings
Maintainers (1)
crates.io: graphannis-webservice
This is a web service to the new backend implementation of the ANNIS linguistic search and visualization system.
- Documentation: https://docs.rs/graphannis-webservice/
- License: Apache-2.0
-
Latest release: 4.0.0
published 6 months ago
Rankings
Maintainers (1)
repo1.maven.org: org.corpus-tools:graphannis-api
A wrapper around the C API of graphANNIS
- Homepage: https://github.com/korpling/graphANNIS
- Documentation: https://appdoc.app/artifact/org.corpus-tools/graphannis-api/
- License: The Apache Software License, Version 2.0
-
Latest release: 0.22.0
published over 6 years ago