Version 0.2 - 10.11.2021/FB

a. Repository Kalamar-Plug-WformsAndGlemm contains 2 main projects:

 - GlemmServices (which returns lists of wordforms for a lemma request)
 - WformServices (which rewrites inside a KoralQuery all lemma Searches by
                  a wordform list obtained from the GlemmServices).

and several other projects which compile libraries for the Services described above.

b. GlemmServices

The GlemmServices are a Service running in the background of the WformServices. It uses
a Derby Database to store and retrieve the wordforms for a particular lemma.

The GlemmServices'status (activ or not) may also the requested. 

Glemm itself is not part of the GlemmServices. The GlemmServices communicate with Glemm
via scripts and files.

c. The WformServices

If the Glemm-Plugin is active, a Korall-Query may be sent to the WformServices, where
each lemma query will be rewritten (currently) as a list of corresponding word forms.

The WformServices contain the endpoint for serving the plugin.html on a plugin request.

The WformServices'status (activ or not) may also the requested. 
