+1 Good thoughts and direction. Current version is clearly over-engineered. Even demos and presentations are taxing... -- Nikita Ivanov
On Wed, Oct 6, 2021 at 11:36 PM Kamov Sergey <[email protected]> wrote: > 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 > >
