Skip to main content

DOI License CI/CD codecov Code Climate Scrutinizer Code Quality codebeat badge BCH compliance LGTM: Python Quality Gate Status docs

Annif is an automated subject indexing toolkit. It was originally created as a statistical automated indexing tool that used metadata from the Finna.fi discovery interface as a training corpus.

This repo contains a rewritten production version of Annif based on the prototype. It is a work in progress, but already functional for many common tasks.

Basic install

You will need Python 3.7+ to install Annif.

The recommended way is to install Annif from PyPI into a virtual environment.

python3 -m venv annif-venv
source annif-venv/bin/activate
pip install annif

You will also need NLTK data files:

python -m nltk.downloader punkt

Start up the application:

annif

See Getting Started in the wiki for more details.

Docker install

You can use Annif as a pre-built Docker container. Please see the wiki documentation for details.

Development install

A development version of Annif can be installed by cloning the GitHub repository.

Installation and setup

Clone the repository.

Switch into the repository directory.

Create and activate a virtual environment (optional, but highly recommended):

python3 -m venv venv
. venv/bin/activate

Install dependencies (including development) and make the installation editable:

pip install .[dev]
pip install -e .

You will also need NLTK data files:

python -m nltk.downloader punkt

Start up the application:

annif

Unit tests

Run . venv/bin/activate to enter the virtual environment and then run pytest. To have the test suite watch for changes in code and run automatically, use pytest-watch by running ptw.

Getting help

Many resources are available:

Publications / How to cite

Two articles about Annif have been published in peer-reviewed Open Access journals. The software itself is also archived on Zenodo and has a citable DOI.

Citing the software itself

See "Cite this repository" in the details of the repository.

Annif articles

Suominen, O.; Inkinen, J.; Lehtinen, M., 2022. Annif and Finto AI: Developing and Implementing Automated Subject Indexing. JLIS.It, 13(1), pp. 265–282. URL: https://www.jlis.it/index.php/jlis/article/view/437

@article{suominen2022annif,
  title={Annif and Finto AI: Developing and Implementing Automated Subject Indexing},
  author={Suominen, Osma and Inkinen, Juho and Lehtinen, Mona},
  journal={JLIS.it},
  volume={13},
  number={1},
  pages={265--282},
  year={2022},
  doi = {10.4403/jlis.it-12740},
  url={https://www.jlis.it/index.php/jlis/article/view/437},
}

Suominen, O., 2019. Annif: DIY automated subject indexing using multiple algorithms. LIBER Quarterly, 29(1), pp.1–25. DOI: https://doi.org/10.18352/lq.10285

@article{suominen2019annif,
  title={Annif: DIY automated subject indexing using multiple algorithms},
  author={Suominen, Osma},
  journal={{LIBER} Quarterly},
  volume={29},
  number={1},
  pages={1--25},
  year={2019},
  doi = {10.18352/lq.10285},
  url = {https://doi.org/10.18352/lq.10285}
}

License

The code in this repository is licensed under Apache License 2.0, except for the dependencies included under annif/static/css and annif/static/js, which have their own licenses, see the file headers for details. Please note that the YAKE library is licended under GPLv3, while Annif is licensed under the Apache License 2.0. The licenses are compatible, but depending on legal interpretation, the terms of the GPLv3 (for example the requirement to publish corresponding source code when publishing an executable application) may be considered to apply to the whole of Annif+Yake if you decide to install the optional Yake dependency.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

annif-0.57.0.tar.gz (529.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

annif-0.57.0-py3-none-any.whl (567.3 kB view details)

Uploaded Python 3

File details

Details for the file annif-0.57.0.tar.gz.

File metadata

  • Download URL: annif-0.57.0.tar.gz
  • Upload date:
  • Size: 529.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for annif-0.57.0.tar.gz
Algorithm Hash digest
SHA256 19e3a4b7af500c1b66b0522b40090f1f58e07d014d5bfb427dedf6ddd87121ac
MD5 2524cc6e6857c92db4e07cf9a23b13a3
BLAKE2b-256 418c53897c1f0fbad30d226dde95117e6c9784ba0240a0af888f8c53923d1072

See more details on using hashes here.

File details

Details for the file annif-0.57.0-py3-none-any.whl.

File metadata

  • Download URL: annif-0.57.0-py3-none-any.whl
  • Upload date:
  • Size: 567.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for annif-0.57.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b32fecc13f25153d48b276f1f7a5745e9396e6696dd4ced368e1f93d0790d93
MD5 5b13e30f77c4aa847345e1caf7f7f862
BLAKE2b-256 9e0d3bb40fee25a98e6b7b789185ca2c456696c3ebcfad216d68fddeb20387c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page