diff --git a/MANIFEST.in b/MANIFEST.in index 9fcdf26..7da1ab4 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -include bootstrap README README.rst AUTHORS configure.ac Makefile.am *.pc.in *.pxi *.in.pyx benchmarks.py test.py ChangeLog NEWS +include bootstrap README README.md AUTHORS configure.ac Makefile.am *.pc.in *.pxi *.in.pyx benchmarks.py test.py ChangeLog NEWS recursive-include src *.cpp Makefile.am recursive-include include *.h Makefile.am recursive-include exp * diff --git a/README.rst b/README.md similarity index 50% rename from README.rst rename to README.md index d56583b..6e7d9f9 100644 --- a/README.rst +++ b/README.md @@ -1,27 +1,15 @@ -Colibri Core -================ +# Colibri Core -.. image:: https://badge.fury.io/py/colibricore.svg - :target: http://badge.fury.io/py/colibricore - -.. image:: https://zenodo.org/badge/12996232.svg - :target: https://zenodo.org/badge/latestdoi/12996232 - -.. image:: http://applejack.science.ru.nl/lamabadge.php/colibri-core - :target: http://applejack.science.ru.nl/languagemachines/ - -.. image:: https://img.shields.io/github/v/release/proycon/colibri-core - :alt: GitHub release (latest by date) - -.. image:: https://www.repostatus.org/badges/latest/active.svg - :alt: Project Status: Active – The project has reached a stable, usable state and is being actively developed. - :target: https://www.repostatus.org/#active +[![GitHub build](https://github.com/proycon/colibri-core/actions/workflows/colibri-core.yml/badge.svg?branch=master)](https://github.com/proycon/colibri-core/actions/) +[![DOI](https://zenodo.org/badge/12996232.svg)](https://zenodo.org/badge/latestdoi/12996232) +[![GitHub release](https://img.shields.io/github/release/proycon/colibri-core.svg)](https://GitHub.com/proycon/colibri-core/releases/) +[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) +[![PyPi](https://badge.fury.io/py/colibricore.svg)](https://pypi.org/colibricore) *by Maarten van Gompel, proycon@anaproy.nl, Radboud University Nijmegen* *Licensed under GPLv3 (See http://www.gnu.org/licenses/gpl-3.0.html)* - Colibri Core is software to quickly and efficiently count and extract patterns from large corpus data, to extract various statistics on the extracted patterns, and to compute relations between the extracted patterns. The employed @@ -67,32 +55,96 @@ occurrence threshold, a maximum pattern length, and a lower-boundary on the different types that may instantiate a skipgram (i.e. possible fillings of the gaps). -Technical Details --------------------- +## Technical Details Colibri Core is available as a collection of **standalone command-line tools**, as a **C++ library**, and as a **Python library**. -Please consult the full documentation at https://proycon.github.io/colibri-core +Please consult the full documentation at -Installation instructions are here: https://proycon.github.io/colibri-core/doc/#installation +## Installation -Publication ----------------------- +### Python -This software is extensively described in the following peer-reviewed publication: +For the Colibri Core Python library, just install using: - van Gompel, M and van den Bosch, A (2016) - Efficient n-gram, Skipgram and Flexgram Modelling with Colibri Core. - *Journal of Open Research Software* - 4: e30, DOI: http://dx.doi.org/10.5334/jors.105 +``` +pip install colibricore +``` -Click the link to access the publication and please cite it if you make use of -Colibri Core in your work. +We strongly recommend you use a Virtual Environment for this. Do note that this +is only available for unix-like systems, Windows is not supported. + +### Installation from source + +For the command-line tools, check if your distribution has a package available. +If not, you will need to compile from source or use the container build (e.g. +Docker). + +In order to do so, you need a sane build environment, install the necessary dependencies for your distribution: + +For Debian/Ubuntu:: + +``` +$ sudo apt-get install make gcc g++ pkg-config autoconf-archive libtool autotools-dev libbz2-dev zlib1g-dev libtar-dev python3 python3-dev cython3 +``` + +For RedHat-based systems (run as root):: + +``` +# yum install pkgconfig libtool autoconf automake autoconf-archive make gcc gcc-c++ libtar libtar-devel python3 python3-devel zlib zlib-devel python3-pip bzip2 bzip2-devel cython3 +``` + +For macOS with homebrew: + +``` +$ brew install autoconf automake libtool autoconf-archive python3 pkg-config +``` + +Then clone this repository and install as follows: -Demo --------------------- +``` +$ ./configure +$ make +$ sudo make install +``` -.. image:: https://raw.githubusercontent.com/CLARIAH/wp3-demos/master/colibri-core.gif +### Container usage +The Colibri Core command-line tools are also available as an OCI/Docker container. +A pre-made container image can be obtained from Docker Hub as follows: + +``docker pull proycon/colibri-core`` + +You can also build a container image yourself as follows, make sure you are in the root of this repository: + +``docker build -t proycon/colibri-core .`` + +This builds the latest stable release, if you want to use the latest development version +from the git repository instead, do: + +``docker build -t proycon/colibri-core --build-arg VERSION=development .`` + +Run the frog container interactively as follows, it will dump you into a shell where the various command line tools are available: + +``docker run -t -i proycon/colibri-core`` + +Add the ``-v /path/to/your/data:/data`` parameter if you want to mount your data volume into the container at `/data`. + +## Demo + +![Colibri Core Demo](https://raw.githubusercontent.com/CLARIAH/wp3-demos/master/colibri-core.gif) + + +## Publication + +This software is extensively described in the following peer-reviewed publication: + + van Gompel, M and van den Bosch, A (2016) + Efficient n-gram, Skipgram and Flexgram Modelling with Colibri Core. + *Journal of Open Research Software* + 4: e30, DOI: http://dx.doi.org/10.5334/jors.105 + +Access the publication [here](http://dx.doi.org/10.5334/jors.105) and please cite it if you make use of +Colibri Core in your work. diff --git a/setup.py b/setup.py index 9f81427..6c2f60c 100755 --- a/setup.py +++ b/setup.py @@ -182,7 +182,7 @@ def read(fname): description = ("Colibri Core is an NLP tool as well as a C++ and Python library (all included in this package) for working with basic linguistic constructions such as n-grams and skipgrams (i.e patterns with one or more gaps, either of fixed or dynamic size) in a quick and memory-efficient way. At the core is the tool ``colibri-patternmodeller`` which allows you to build, view, manipulate and query pattern models."), license = "GPLv3", keywords = "nlp computational_linguistics frequency ngram skipgram pmi cooccurrence linguistics", - long_description=read('README.rst'), + long_description=read('README.md'), version = '2.5.7', ext_modules = extensions, cmdclass = {'build_ext': build_ext},