Hi, I have developed an interface between SWI-Prolog and Julia, here is the link:
https://github.com/haldai/Jurassic.pl
This package is inspired by real, but I believe Julia is more modern, efficient and easy-to-use, and it is getting popular in data science and machine learning. The README in my GitHub repo should cover most of the basic usages.
For now, it can:
- Unify Julia variables with Prolog terms;
- Store external data (e.g. vectors, matrices, images), not just logical facts, in Prolog, and handling heavy computations;
- Import Julia packages. So it can plug in and train machine learning models as Prolog predicates via ScikitLearn, Flux, TensorFlow and Knet (with cuda);
- Call Python libraries by PyCall or call C/Fortran functions through ccall from shared libraries directly;
I had just started it so it will contain a lot of bugs. Should you find any problem, please fire an issue on the Github page. Any comments or ideas of new functionalities are welcomed!