Download

The most recent version of SLDNF Draw is

Requirements

In order to use successfully SLDNF Draw, you need to have the following software:

SLDNF Draw was developed with the Windows and Linux versions of ECLiPSe and LaTeX, but it should also work for the other operative systems.

History

  • SLDNF Draw Ver 1.0
  • SLDNF Draw Ver 1.1 stops representation of the tree at a maximum depth, in order to avoid loops in case the given Prolog program does not terminate.
  • SLDNF Draw Ver 1.2 handles cut (!), pretty-prints infixed operators
  • SLDNF Draw Ver 1.3 pretty-prints the variables, with renamings
  • SLDNF Draw Ver 1.4 Fixed a bug about some predicates that were not declared as "dynamic" (thanx to Thomas Wölfl for reporting the bug). Imposed a max-depth for terms (in order to avoid infinite loops when generating cyclic terms) and for trees (in order to avoid infinite loops when the tree is infinite). The max-depth is customisable with the predicate set_depth/1. E.g.: set_depth(30). Default is 20.
  • SLDNF Draw Ver 1.5 If the resolvent is very long, it is split it into two or more lines. The maximum length of the resolvent (in characters) is customizable, and given as a dynamic fact max_resolvent_length/1.

Porting to other Prolog dialects

SLDNF Draw was built having in mind portability, so it should not be difficult to port to other Prolog dialects. It does not use the distinctive features of ECLiPSe, up to Version 1.2. However, I have never tried it with other Prolog systems, so I do not guarantee it will work in other systems. If you really need to port it to other Prolog dialects, please let me know, and I will try to translate it.

From version 1.3, SLDNF Draw exploits one ECLiPSe library in order to have a nicer printing of variable names (and bindings).