graphannis

This is a new backend implementation of the ANNIS linguistic search and visualization system.

https://github.com/korpling/graphannis

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

hacktoberfest linguistic-analysis linguistic-corpora search-engine
Last synced: 6 months ago · JSON representation ·

Repository

This is a new backend implementation of the ANNIS linguistic search and visualization system.

Basic Info
Statistics
  • Stars: 18
  • Watchers: 6
  • Forks: 1
  • Open Issues: 7
  • Releases: 90
Topics
hacktoberfest linguistic-analysis linguistic-corpora search-engine
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

graphANNIS DOI Automated tests

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

Developing graphANNIS

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.

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

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

All Time
  • Total Commits: 4,506
  • Total Committers: 6
  • Avg Commits per committer: 751.0
  • Development Distribution Score (DDS): 0.175
Past Year
  • Commits: 150
  • Committers: 4
  • Avg Commits per committer: 37.5
  • Development Distribution Score (DDS): 0.487
Top Committers
Name Email 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
bug (5) enhancement (4) documentation (2) WIP (1)
Pull Request Labels
dependencies (8) test-release-process (8)

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.

  • Versions: 100
  • Dependent Packages: 5
  • Dependent Repositories: 1
  • Downloads: 127,630 Total
Rankings
Dependent packages count: 6.2%
Downloads: 10.6%
Dependent repos count: 16.6%
Average: 19.8%
Stargazers count: 25.2%
Forks count: 40.6%
Maintainers (1)
Last synced: 6 months ago
crates.io: graphannis-core

This crate supports graph representation and generic query-functionality.

  • Versions: 64
  • Dependent Packages: 4
  • Dependent Repositories: 1
  • Downloads: 73,412 Total
Rankings
Dependent packages count: 7.4%
Downloads: 15.0%
Dependent repos count: 16.6%
Average: 21.0%
Stargazers count: 25.2%
Forks count: 40.6%
Maintainers (1)
Last synced: 6 months ago
crates.io: graphannis-cli

This is a command-line interface to the new backend implementation of the ANNIS linguistic search and visualization system.

  • Versions: 65
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 66,921 Total
Rankings
Downloads: 18.8%
Stargazers count: 25.1%
Average: 28.9%
Dependent repos count: 29.3%
Dependent packages count: 33.8%
Forks count: 37.5%
Maintainers (1)
Last synced: 6 months ago
crates.io: graphannis-capi

This is the C-API to the ANNIS linguistic search and visualization system.

  • Versions: 62
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 63,158 Total
Rankings
Downloads: 19.3%
Stargazers count: 25.1%
Average: 29.0%
Dependent repos count: 29.3%
Dependent packages count: 33.8%
Forks count: 37.5%
Maintainers (1)
Last synced: 6 months ago
crates.io: graphannis-webservice

This is a web service to the new backend implementation of the ANNIS linguistic search and visualization system.

  • Versions: 60
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 59,941 Total
Rankings
Downloads: 22.7%
Stargazers count: 25.1%
Dependent repos count: 29.3%
Average: 29.7%
Dependent packages count: 33.8%
Forks count: 37.5%
Maintainers (1)
Last synced: 6 months ago
repo1.maven.org: org.corpus-tools:graphannis-api

A wrapper around the C API of graphANNIS

  • Versions: 29
  • Dependent Packages: 2
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Dependent packages count: 23.2%
Average: 36.1%
Stargazers count: 41.7%
Forks count: 58.6%
Last synced: 6 months ago