Hi NLPCraft-ers,

When we have been working on new project examples - we found that we tried too hard to extend possibilities and configuration flexibility of our system. Currently the difficulty of usage understanding outweighs the product advantages. Based on this examples developing experience, I would suggest the bunch of changes for nlpcraft version 2.0.

There are 4 goals for improvements

1) Simplifying
 - drop server/probe architecture. Server should be deleted, probe component should support java API (to be used in embedded mode) and same API via REST.  - drop (at least in initial 2.0 version) all built enrichers (DATE, NUM, GEO, COORDINATE, LIMIT, SORT, RELATION). It is not main part of project.  - drop (at least in initial 2.0 version) all python related services (synonyms suggestion, spacy integration etc)  - drop Apache Ignite usage. h2 files based can be used by default datasource (few databases should be supported, it is not big headache).    Main idea that we should have the possibility to work with zero configuration (h2) but can use another db for production.
 - drop sql utility and example
 - model enricher is still base component for user defined elements, but we should I guess    - drop support of sparsity, abstract tokens, and permutations in synonyms
   - drop IDL usage from synonyms, drop support
 - IDL used for intents only. User defined java functions can be supported some way for usage in IDL

Some features can be returned in next versions according to new architecture.

2) New features
 - confirmation API
 - curation API ?
 - multi-language support (usage stop-words, spell-checking, swearword and suspicious words should be configured via plugins with default EN implementation)

3) technical issues
 - scala 3 support (for implementation)
 - probe IoC friendly design (it shouldn't be not standalone server with static lifecycle methods)

4) Extending user defined components support (pluggability)
 - It is already described above: multi-language support and IDL user defined java functions.

I know that the are big changes, but I guess it can significantly improve quitily of project (technical dept should be decreased) and refine the focus of the project.
What do you think?


Regards,

Sergey

Reply via email to