Interface between Julia and SWI-Prolog

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!

6 Likes