I am working on a natural language parser using symbolic AI (no machine learning...). It's working a bit like a multi-pass parser for programming languages, but with the ability to handle multiple ambiguous meanings of a sentence at the same time. An English sentence is translated into an intermediate representation. Or rather, depending on the complexity, hundreds or thousands of intermediate representations for the same sentence. Then there will be several passes to eliminate interpretations, until it finds the most probable one. It's tightly integrated with a database for human knowledge to evaluate the different interpretations. The goal is that you can add data to and query from the database using English language.
I started working on it 3 years ago, and there is still a long way to go. I have done most of the infrastructure (including a high-level programming language for pattern recognition that can seamlessly handle asynchronous database accesses) and I am close to completing the first pass....