Fork nlpTools on GitHub
nlpTools - Natural Language Processing Toolkit for PHP

Code

Written in the PHP programming language for its suitability to process text on the web (i.e., by definition, the Hypertext Preprocessor). The latest version of the toolkit is available from the repo.

Design by Contract

Loosely coupled modular design, with orthogonality, reusability and extensibility in mind, to not compromise its future growth. Designing with Contracts is the Pragmatic Programmer's tip 31.

Specific preconditions on parameter types are enforced with Type Hinting on objects and arrays, and casts to string, int, bool or float, on primitive types. Therefore, it is of utmost importance to consider the parameter descriptions in the documentation and to follow the contracts defined in the interface prototypes.

Other preconditions unrelated to type checking are asserted.

The rationale for using exceptions is to throw them only for Exceptional Problems (tip 34). The strict following of the contracts should suffice to operate successfully.