You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nlpcraft.apache.org by Kamov Sergey <sk...@gmail.com> on 2021/10/07 06:36:20 UTC

nlpcraft version 2.0

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


Re: nlpcraft version 2.0

Posted by Aaron Radzinski <ar...@apache.org>.
+1

We've discussed this on Slack and it is a good summary. Changes are
big - but the simplifications would be even greater resulting in a
much simpler to use system without loss of any significant
functionality.

On Thu, Oct 7, 2021 at 8:55 AM Nikita Ivanov <ni...@gmail.com> wrote:
>
> +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 <sk...@gmail.com> 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
> >
> >

Re: nlpcraft version 2.0

Posted by Nikita Ivanov <ni...@gmail.com>.
+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 <sk...@gmail.com> 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
>
>