in my opinion, using mathematica (or some such) would have been a far saner choice, to get to the essence of the subject. also, a dosage of classical (pioneering ?) work as described in (parallel-distributed-processing vol-1&2) http://www.amazon.com/Parallel-Distributed-Processing-Vol-Fo..., would be just great.
Along with all of that, still working on a lot of stuff using Jason[4] / AgentSpeak[5]. I created a fork[6] of Jason that is meant to be easier to integrate with Spring Boot, and to take more of a "run headless on a server" approach, which meant taking out references to a Swing based in-process logging/management tool. In place of that, I'm implementing a JMX based management interface, and recently I've started to work on replacing the old Swing app with a JavaFX app that can connect using JMX Remoting.
[1]: https://www.amazon.com/Semantic-Information-Processing-Marvi...
[2]: https://www.amazon.com/Parallel-Distributed-Processing-Vol-F...
[3]: https://www.amazon.com/Principles-Semantic-Networks-Explorat...
[4]: https://github.com/jason-lang/jason
[5]: https://en.wikipedia.org/wiki/AgentSpeak
[6]: https://github.com/mindcrime/jasonfg/