The steps to install and run CL-NLP with quicklisp. You will also find information about the test, docs infrastructure with guidelines to contribute.
If you are new to NLP, here are a few documents to help you get started.
As of now cl-nlp has been tested only on SBCL.
Currently CL-NLP is not available from the quicklisp repository. You need to clone it to your quicklisp local projects directory. You are also advised to clone RUTILS and SHOULD-TEST to local projects.
cd path/to/quicklisp/local-projects (usually, ~/quicklisp/local-projects/)
git clone git@github.com:vseloved/cl-nlp.git
git clone git@github.com:vseloved/rutils.git
git clone git@github.com:vseloved/should-test.git
The tests are guarded by the #+dev
feature. As such you need to push this
symbol to *features*
in order to run the tests before loading CL-NLP.
The tests can be run with a single command using ASDF:TEST-SYSTEM
as is shown in the next section.
If you do not wish to run tests, you can skip this step. We hope a developer who wants to contribute does not do this!
CL-NLP is automatically tested with Travis CI which runs the test suite using SBCL.
Now you can load CL-NLP and run the tests.
* (pushnew :dev *features*) ;;; use only if you want to run tests
* (ql:quickload :cl-nlp)
* (asdf:test-system :cl-nlp)
src
- contains source code divided into modules by NLP taskscontrib
- contains supplementary source code (usually, targeted at integration with external software)test
- contains test code guarded by#+dev
docs
- contains documentation created with MKDocs
You are welcome to submit bug fixes and new features. The following is the process you need to follow:
- Create your own fork.
- Create a bug fix or feature branch.
- Make your code changes on that branch.
- Add tests for your bug fix/feature.
- Run the test suite locally.
- Add and test documentation as described next.
- Submit PR.
- Hopefully Travis will be happy.
- Incorporate any review changes and rinse, lather, repeat till integrated :-).
- In general, follow the Google Common Lisp Style Guide.
CL-NLP
uses heavily utilities and syntactic extensions from RUTILS. Using the "normal" CL things for the same stuff in new code is OK, although expect it to be eventually re-written in rutils' style. Using other utilities packages is not allowed.- The library is built around a generic OO-approach where each algorithm
is specialized with a certain class or classes of entities it is bound to.
For instance a
tokenize
function will have methods forsentence-splitter
andword-tokenizer
classes. For more details on it see Overview of CL-NLP architecture. - Tests for
CL-NLP
are written using SHOULD-TEST. The test module is only loaded when:dev
is present in*features*
The project is documented using MkDocs and hosted on readthedocs.org.
If you wish to contribute to the documentation, the following steps are recommended: