Newer Older
Stefan Israelsson Tampe's avatar
Stefan Israelsson Tampe committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
What it is:
Guile log is a logic programming framework that has strong continuation 
support meaning that stalling of algorithm is well supported. It also 
sports most of the logic programming features you see in common prolog 
softwares like swi-prolog and guile-log comes with a prolog engine as well as 
a minikanren engine as well as an internal scheme interface to logic 
programming which is the guile-log interface.

What It can do:
It can do whatever a iso-prolog or swi-prolog can do and contains most prolog
constructs from them. If you want to program guile and perhaps guile-emacs in 
prolog this is the main source to go to.

It is good design to base a proof solver on due to the fact that it can save 
the state of the program and return to the base interpreter and you can control
your environment as any scheme or prolog environment without making a special

To generate cases for e.g. optimisation or constraint satisfaction. The power 
of guile-log comes from the seamless intergration of continuations. You can 
postpone a calculation and evaluate all postponed calculations for making a 
set of prommissing continuations and take those one step further. It really is 
a great tool for all kinds of local searches.

And much much more.

28 29

A 64 bit system
Stefan Israelsson Tampe's avatar
Stefan Israelsson Tampe committed
31 32
This is a draft for guile-2.0.6 and later and works for linux.

You need to have guile-syntax-parse installed into the system
34 35

You need autotools, texinfo, gcc, make, guile >= 2.0
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Either do a system install:
make install

Or do a local install by:
add the repo directory to guile's load path

Stefan Israelsson Tampe's avatar
Stefan Israelsson Tampe committed
52 53 54 55
Now you are ready to use it from guile through,

> (use-modules (logic guile-log))

56 57 58 59
Or using the kanren interface

> (use-modules (logic guile-log kanren))

60 61 62 63 64 65 66
Or iso-prolog,

> (use-modules (logic guile-log iso-prolog))

For documentation, 
info guile-log at a system install.

67 68 69
For an Interactive prolog shell use
,L prolog

70 71
Else in doc/guile-log the documentation in html is available

Stefan Israelsson Tampe's avatar
Stefan Israelsson Tampe committed
72 73 74 75 76
Have fun!