therefore, centralized lexicon manager or database is a based idea so I would love for you to elaborate more on it, and just pour what ever comes to your mind regarding this concept. also reading materials would also be nice.
The basic idea is to separate out everything that your software "knows" about words and language into a shared system so you can reuse it easily. That system could be as simple as a library that you link and call when your code needs some information about a word e.g. that 'wonderful' denotes 'happiness'. Much better would be a database which provides a lot more power for accessing and reusing the information via SQL.
CREATE TABLE words(spelling TEXT,category TEXT,emotion TEXT);
INSERT INTO words VALUES ('wonderful','adjective','happy');
Then your program could get a list of words that match just what it needs at the time. You can keep adding to the database independently of the software that uses it and your software gets smarter automatically.
Incidentally, you're not just limited to treating the data as data either. You can use it for generating code automatically too. All this takes more time to set up but in the long run it saves a lot of time, and let's face it, these are such huge projects that we're working on that anything you can do to make development more efficient is going to pay dividends.
As far as reading material is concerned, the state of the art is currently Combinatory Categorial Grammar (CCG).
https://yoavartzi.com/tutorial/ (https://yoavartzi.com/tutorial/)
http://groups.inf.ed.ac.uk/ccg/index.html (http://groups.inf.ed.ac.uk/ccg/index.html)