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