Changelogs » Annif



New in this release:

* 230 / 249 / 252 / 253 / 254 / 256 New `vw_multi` backend based on the [Vowpal Wabbit]( machine learning system, which has to be installed as an optional dependency. This backend is a wrapper for the `oaa`, `ect`, `log_multi` and `multilabel_oaa` multiclass and multilabel classification algorithms implemented by VW. It can use either the document text or the output of other projects (e.g. subjects as determined by another project/backend/model) as the basis for classification.
* 225 / 257 Support for **online learning**, for now implemented only for the new `vw_multi` backend. This includes the new `learn` CLI command as well as a `learn` method in the REST API that can be used to provide additional indexed documents (with subjects/classes) for updating the model.
* 245 The web UI now uses Vue.js instead of jQuery for most dynamic functionality. Credit: kinow
* 258 The web UI can show detailed error messages returned by the REST API. Credit: kinow
* 237 / 246 Access levels for projects: you can now define projects as hidden (they will not be shown by the REST API `projects` list but can still be used if you know the project id) or private (not available via REST at all)
* 247 / 248 Fix bug where `eval` command sometimes reported `nan` values
* Some code cleanup and refactoring

Annif now also has a DOI: - thanks to the [integration between Zenodo and GitHub]( This DOI represents all versions of Annif and will always resolve to the latest release; additional DOIs are generated by Zenodo for each specific release from now on.


This is a bugfix release with the following fixes:

* 242 Fix invalid output of `show-project` command
* 243 Really fix the high memory usage problem in `optimize` command
* show more helpful warning when trying to use a backend (fasttext) without the necessary dependencies
* some code cleanup and additional unit tests; coverage is now >99%


This is a bugfix/optimization release that improves evaluation functionality.

* 236 / 238 Speed up optimize command and avoid high memory usage


New in this release:

* 218 simplified project configuration: a project now has exactly one backend and an ensemble project must be used if you want to combine results from multiple backends
* 229 made the `fasttext` an optional dependency; the idea is that core Annif should work in a pure Python environment and any functionality that depends on native libraries should be an optional extra
* 37 new optional `voikko` analyzer for Finnish language, based on [libvoikko](
* 228 migrated to new Ubuntu 16.04 Xenial environment when running unit tests in Travis CI; now running tests under Python 3.7 as well as 3.5 and 3.6