Snowball is a small string processing language for creating stemming
algorithms for use in Information Retrieval, plus a collection of stemming
algorithms implemented using it.
Snowball was originally designed and built by Martin Porter. Martin retired
from development in 2014 and Snowball is now maintained as a community
project. Martin originally chose the name Snowball as a tribute to SNOBOL,
the excellent string handling language from the 1960s. It now also serves as
a metaphor for how the project grows by gathering contributions over time.
The Snowball compiler translates a Snowball program into source code in
another language — currently Ada, ISO C, C#, Go, Java, Javascript, Object
Pascal, Python and Rust are supported.
What is Stemming?
Stemming maps different forms of the same word to a common "stem" — for
example, the English stemmer maps connection, connections, connective,
connected, and connecting to connect. So a search for connected would also
find documents which only have the other forms.
This stem form is often a word itself, but this is not always the case as this
is not a requirement for text search systems, which are the intended field of
use. We also aim to conflate words with the same meaning, rather than all
words with a common linguistic root (so awe and awful don't have the same
stem), and over-stemming is more problematic than under-stemming so we tend
not to stem in cases that are hard to resolve. If you want to always reduce
words to a root form and/or get a root form which is itself a word then
Snowball's stemming algorithms likely aren't the right answer.
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Mon Jun 08 2026 Jerry James <loganjerry@gmail.com> - 3.1.1-1
- Version 3.1.1
- Drop upstreamed segfault patch
* Wed Jun 03 2026 Python Maint <python-maint@redhat.com> - 3.1.0-2
- Rebuilt for Python 3.15
* Fri May 22 2026 Jerry James <loganjerry@gmail.com> - 3.1.0-1
- Version 3.1.0
- Add patch to avoid a segfault in the analyser
* Mon Jan 19 2026 Jerry James <loganjerry@gmail.com> - 3.0.1-11
- Build the shared library with -fPIC
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Jan 14 2026 Jerry James <loganjerry@gmail.com> - 3.0.1-9
- Reflow the description text
- Be more precise about globbing in %files
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 3.0.1-8
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 3.0.1-7
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 3.0.1-5
- Rebuilt for Python 3.14
* Mon May 12 2025 Miro Hrončok <miro@hroncok.cz> - 3.0.1-4
- Ensure the installed Python snowballstemmer module is tested
* Mon May 12 2025 Miro Hrončok <miro@hroncok.cz> - 3.0.1-3
- Include missing files from the Python package
* Mon May 12 2025 Miro Hrončok <miro@hroncok.cz> - 3.0.1-2
- Build the Python package with pyproject RPM macros only
* Fri May 09 2025 Jerry James <loganjerry@gmail.com> - 3.0.1-1
- Version 3.0.1
* Thu May 08 2025 Jerry James <loganjerry@gmail.com> - 3.0.0-1
- Version 3.0.0
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jan 15 2025 Jerry James <loganjerry@gmail.com> - 2.2.0-14
- Assert that the python package has a license file
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jul 17 2024 Jerry James <loganjerry@gmail.com> - 2.2.0-12
- Add VCS field