[1-5] FTP Archives and Other Resources

The following are achives that contain Prolog-related material, such as
code, interpreters, articles, etc. Most of the archives are ftp sites.
They are listed by domain.name and [IP Address]. To access them and
download programs type at the prompt: 

        ftp <site name> (or IP address)
        login: "anonymous",
        password: your own return email address,
        cd <directory>, ls to see files, 
        set binary, 
        get <filename> to transfer file to your system
        stop with quit or exit

Deviations from this general scheme may occur but the above should
work in most cases.

CMU AI Repository, Prolog Section:

   The Prolog Section of the CMU Artificial Intelligence Repository
   (aka "The Prolog Repository") is accessible by anonymous ftp to
      ftp.cs.cmu.edu:/user/ai/lang/prolog/ []
   through the AFS directory
   or by WWW from the URL   
   and includes more than 110 megabytes of sources and other materials
   of interest to Prolog programmers, including all freely
   distributable implementations and many programs. The contents of the 
   CMU AI Repository has been keyword indexed to provide convenient
   browsing of the contents.

   The repository has standardized on using 'tar' for producing
   archives of files and 'gzip' for compression.

   To search the keyword index by mail, send a message to:
   with one or more lines containing calls to the keys command, such as:
      keys prolog gui
   in the message body.  Keywords may be regular expressions and are
   compared with the index in a case-insensitive conjunctive fashion.  
   You'll get a response by return mail. Do not include anything else in 
   the Subject line of the message or in the message body.  For help on
   the query mail server, include: 

   A Mosaic interface to the keyword searching program is in the
   works.  We also plan to make the source code (including indexes) to
   this program available, as soon as it is stable.

   Most of the Prolog Section of the AI Repository appears on Prime Time 
   Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
   includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
   (list) for US$60 plus applicable sales tax and shipping and handling
   charges. Payable through Visa, Mastercard, postal money orders in US
   funds, and checks in US funds drawn on a US bank. For more
   information write to Prime Time Freeware, 370 Altair Way, Suite 150,
   Sunnyvale, CA  94086  USA, call 408-433-9662, 408-433-0727 (fax),
   or send email to ptf@cfcl.com.

   Contributions of software and other materials are always welcome but
   must be accompanied by an unambiguous copyright statement that grants
   permission for free use, copying, and distribution -- either a
   declaration by the author that the materials are in the public domain,
   that the materials are subject to the GNU General Public License (cite
   version), or that the materials are subject to copyright, but the
   copyright holder grants permission for free use, copying, and
   distribution. (We will tell you if the copying permissions are too
   restrictive for us to include the materials in the repository.)
   Inclusion of materials in the repository does not modify their
   copyright status in any way. Materials may be placed in:
   When you put anything in this directory, please send mail to
   giving us permission to distribute the files, and state whether
   this permission is just for the AI Repository, or also includes
   publication on the CD-ROM version (Prime Time Freeware for AI).
   We would also appreciate if you would include a 0.doc file for your
   package; see /user/ai/new/package.doc for a template. (If you don't
   have the time to write your own, we can write it for you based on
   the information in your package.)

   The Prolog Section of the AI Repository is maintained by Mark Kantrowitz 

Artificial Intelligence Programs:
   ai.uga.edu:/pub/ []

   The University of Georgia AI FTP Library contains public domain
   Prologs, such as Open Prolog and ESL PD Prolog, PrEd (a small text
   editor for Prolog), and some miscellaneous prolog programs in
   A copy of the programs from the book by Covington, Nute, and Vellino, (see
   the section on Books below), is in
   and the draft ISO standard for prolog is in
   Some technical reports with accompanying code are in
   Other materials of interest are in
   Maintained by Michael Covington <mcovingt@ai.uga.edu>.

   ALE (Attribute Logic Engine), a freeware system written in
   Prolog, integrates phrase structure parsing and constraint logic
   programming with typed feature structures as terms.  Types are
   arranged in an inheritance hierarchy and specified for the features
   and value types for which they are appropriate.  Grammars may also
   interleave unification steps with logic program goal calls (as can be
   done in DCGs), thus allowing parsing to be interleaved with other
   system components.  While ALE was developed to handle HPSG grammars,
   it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II,
   and LOGIN programs, etc. Grammars and programs are specified with a
   version of Rounds-Kasper Attribute Value Logic with macros and
   variables.  ALE supports lexical rules and empty categories for
   grammars, using a bottom-up, all-paths dynamic chart parser. ALE
   supports last call optimization, negation by failure and cuts in
   definite clauses, which may be used independently or integrated into
   grammars. The system is distributed with several sample grammars,
   including a fairly comprehensive implementation of a head-driven
   phrase structure grammar for English. Version 2.0 of ALE is
   available free for research purposes by anonymous ftp from 
   as the files ale.*, or from the CMU AI Repository in
   For more information write to Bob Carpenter <carp@lcl.cmu.edu> or
   Gerald Penn <penn@lcl.cmu.edu>.

ALP-UK Library:
   The best Prolog library currently is the one collected by the ALP-UK
   group. It is available to members at 30 pounds sterling for a Sun
   cartridge or 2 pounds/IBM DOS disk. (non-members maybe, how much?) It
   contains MBs of Prolog systems (including SB Prolog), libraries
   (including the Edinburgh library), benchmarks, grammars, theorem provers,
   object and graphics systems etc. For more information, write to ALP-UK
   Library, Sanjay Raina, Librarian, Dept. of Computer Science, University
   of Bristol, University Walk, Bristol BS8 1TR, UK, call +44 0272 303030
   x3304, or send email to raina@compsci.bristol.ac.uk.

   CASLOG (Complexity Analysis System for LOGic) is an experimental
   semi-automatic complexity analysis system for logic programs. It can
   perform the worst-case analysis for complexity measures: argument size
   complexity, number of solutions complexity, and time complexity.

   CASLOG extends the techniques developed for analyzing imperative and
   functional languages to deal with nondeterminism and generation of
   multiple solutions via backtracking in logic languages. The analyses
   for different complexity measures are implemented in a unified
   framework and share several common features. First, the predicates in
   a program are processed in an order generated by a bottom-up
   topological sorting over the call graph of the program. Second, the
   complexity function for a predicate is derived from the complexity
   function of its clauses by using the information about the mutual
   exclusion relationships between its clauses. Third, the complexity
   function for a clause is inferred based on the data dependency
   relationships between its literals. Fourth, the complexity functions
   for recursive clauses are in the form of difference equations and are
   transformed into closed form functions using difference equation
   solving techniques. This unified framework can simplify proofs of
   correctness and the implementation of the algorithms.

   CASLOG is available by anonymous ftp from cs.arizona.edu:/caslog/. This
   is an alpha distribution, and includes CASLOG version 1.0, a
   preliminary user manual, a paper on CASLOG, and a set of examples.
   For more information, contact Nai-Wei Lin <naiwei@cs.arizona.edu>.

Constraint Programming Paper Archive:
   Aarhus University, Denmark, has established an anonymous ftp archive
   for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/.
   For further information, contact Brian H. Mayoh <brian@daimi.aau.dk>.


   Some constraint-related papers by a research group at the
   University of Washington are available by anonymous ftp from 
   The papers from the 1994 Principles and Practice of Constraint
   Programming Workshop are available in
   There are also implementations of several constraint satisfaction
   algorithms and constraint-based systems, including the DeltaBlue and
   SkyBlue algorithms, the Multi-Garnet user interface toolkit, ThingLab
   II, and CoolDraw (a constraint-based drawing system), in
   subdirectories of 
   The ftp archive is also accessible via WWW:
   All the source code is in the public domain. For more information,
   write to Alan Borning <borning@geoduck.cs.washington.edu>.

   C implementations of a number of constraint satisfaction algorithms
   are available by anonymous ftp from
   Get the files README and csplib.tar.Z.  The algorithms include
   variations on backtracking (backjumping, backmarking, chronological
   backtracking, etc.), local consistency preprocessing algorithms (e.g.,
   arc consistency), and random problem generators. For more information,
   write to Peter van Beek <vanbeek@cs.ualberta.ca>.

   Eden is a Poplog-based AI microworld developed by Simon Perkins,
   Jocelyn Paine and Edmund Chattoe of the Oxford University Artificial
   Intelligence Society. It is intended to serve as a testbed for
   learning and planning programs. Programs written in Pop-11, Prolog,
   Lisp, and ML control a "bug" that lives in a 2-dimensional world. Any
   kind of algorithm may be used to control the bug, including genetic
   algorithms, neural nets, and rule-based systems. Eden consists of a
   grid of cells, each of which can contain objects such as keys, doors,
   boulders and quicksand. Bug's objective is to find and eat a piece of
   food which the simulator has placed somewhere within this grid. To do
   this, Bug must negotiate its way towards the food while dealing
   intelligently with obstacles. Eden's laws of physics allow Bug to take
   one of several different actions when it encounters an object. The
   simulator then works out the consequences of the chosen action on Bug
   and on Eden, and displays these graphically in a Ved window. Bug's
   perceptions are updated to reflect the new state of the world, and the
   cycle repeats. Eden is available by anonymous ftp from the Imperial
   College archive in
      src.doc.ic.ac.uk:/packages/prolog-pd-software/ [] 
   as the file eden.tar.Z. (Note: This is really a link to the
   directory computing/programming/languages/prolog/pd-software/.)
   Eden includes PopBeast, a simple Prolog bug which can read and
   parse simple commands, extract their meaning, plan how to satisfy
   these commands, and then carry out the plans.

   Parts of the current Eden are coded in Pop-11, so porting it to
   Prologs other than Poplog will require some effort. Most of the
   recoding needed is in the grid-world simulator and the definition of
   objects. Send mail to Jocelyn Paine <popx@vax.oxford.ac.uk> if
   you're willing to try this. 


   FW_RULES is a Sicstus Prolog library providing a compiler for forward
   chaining rules.  The implementation is based on a non-state saving
   technique coupled with an indexing mechanism on the working memory
   based on C bitwise operations to achieve efficiency. The library
   supports interoperability between the forward chaining language and
   the underlying Prolog engine.  Terms in the working memory are
   represented as Prolog facts and can be accessed from Prolog to perform
   deduction. It is available by anonymous FTP from
   as the files README and fw_rules.tar.Z. For more information,
   please write to Mauro Gaspari <gaspari@cs.unibo.it>.


   Hdrug is an environment to develop logic grammars, parsers, and
   generators for natural languages.  The package comes with a number of
   example grammars, including a Categorial Grammar, a Tree Adjoining
   Grammar, a Unification Grammar in the spirit of Head-driven Phrase
   Structure Grammar, an Extraposition Grammar, a Definite Clause
   Grammar, and a port of the HPSG grammar from Bob Carpenter's ALE
   system. Each of the grammars comes with a set of parsers, such as 
   Earley-like chart parsers, left-corner parsers and head-driven
   parsers. Some grammars come with variants of the head-driven
   generator. The package allows easy comparison of different
   parsers/generators, extensive possibilities of compiling feature
   equations into Prolog terms, graphical (Tk), LaTeX and ordinary Prolog
   output of trees, feature structures and Prolog terms, and plotted
   graphs and tables of statistical information. Hdrug runs in Sicstus
   Prolog and requires ProTcl and Tcl/Tk. It is available by anonymous
   FTP from
   or by WWW from
   For more information, write to Gertjan van Noord <vannoord@let.rug.nl>.

Logic Programming Bibliographies:
   duck.dfki.uni-sb.de:/pub/lp-proceedings/ []

   The ftp server supports tar'ing on the fly, so if you type "get
   bibtex.tar" you will get a tar'ed version of the "bibtex" directory.

   BibTeX entries for the proceedings of the following conferences
   are included: SLP84-87,91, NACLP89-90, ILPS91, ICLP82,84,86-91,93,
      JICLP92, LP88, RTA89,93, PLILP90-92, ALPUK91, ICOT92, ALP90,92,
      CADE90,92, CTRS90,92, LICS86-91, UNIF89, EPIA89,91,93, TACS91,
      TAPSOFT93, EAIA90, FGCS92, FAC, ILPS93, PEPM91,93
   and the following journals: JLP85-93, JAR91-93, JSC91-93, IANDC82-92.

   The bibliography is mirrored by the Universidade Nova de Lisboa.
   In addition, the bibliography can be searched using either WAIS or
   GOPHER. To search the lp-proceedings using WAIS, use the
   wais source, available from the directory of servers. To search the
   lp-proceedings using GOPHER, point the client to gopher.fct.unl.pt,
   and follow the directories 
      "Research/Bibliography/Logic Programming Proceedings".
   Searching should be easier than retrieving the entire package every
   time you want to locate a particular article.

   Send comments and bug reports to rscheidhauer@dfki.uni-sb.de.

Machine Learning Algorithms Implemented in Prolog:

   In 1988 the Special Interest Group on Machine Learning of the German
   Society for Computer Science (GI e.V.) decided to establish a library
   of PROLOG implementations of Machine Learning algorithms. The library
   includes - amongst others - PROLOG implementations of Winston's arch, 
   Becker's AQ-PROLOG, Fisher's COBWEB, Brazdil's generation of 
   discriminations from derivation trees, Quinlan's ID3, FOIL, IDT,
   substitution matching, explanation based generalization, inverse 
   resolution, and Mitchell's version spaces algorithm. 
   All algorithms are written in Edinburgh Prolog syntax. Most of the
   algorithms are copyleft under the GNU General Public License. 
   The programs are currently available via anonymous ftp-server from
   the GMD: 

        ftp.gmd.de:/gmd/mlt/ML-Program-Library/ []

   They are also available by surface mail from Thomas Hoppe, 
   Projektgruppe KIT, Technische Universitaet Berlin, Franklinstr. 28/29,
   10629 Berlin, Germany. Files will be distributed via MS-DOS formated
   3.5 inch floppy (double, high and extra-high density),  which should
   be included with your request. You can also get them by sending an email
   message to Thomas Hoppe (see below).

   Send additional PROLOG implementations of Machine Learning
   Algorithms, complaints about them and detected bugs or problems
   to Thomas Hoppe, <hoppet@cs.tu-berlin.de>. Send suggestions and
   complaints about the ftp library to Werner Emde, Gesellschaft
   fuer Mathematik und Datenverarbeitung, Bonn, <emde@gmd.de>. 

Natural Language Processing in Prolog:

   The Prolog and DCG programs from Pereira and Shieber's book, "Prolog
   and Natural Language Analysis", are available by anonymous ftp from
   ftp.das.harvard.edu:/pub/shieber/pnla/. See the file README for the
   conditions under which the material is distributed. If you retrieve
   the files, please send an email message to the authors letting them
   know how you plan to use them. For further information, write to
   Fernando Pereira <pereira@research.att.com> or Stuart Shieber

   A parser for standard Prolog text written in C is available by
   anonymous ftp from
   It consists of only three modules (tokenizer, parser, and display
   routine) and an interface module to integrate it with an existing
   Prolog system. It is completely deterministic and about 10 times
   faster than O'Keefe's public domain parser written in Prolog.
   For more information, write to Koen De Bosschere <kdb@elis.rug.ac.be>.

Partial Evaluation:

   Prolog code for the partial evaluator for the flowchart language
   described in Ch. 4 of "Partial Evaluation and Automatic Program
   Generation" by Jones, Gomard and Sestoft is available for anonymous
   ftp from 
   All three Futamura projections are implemented. The code has been
   tested under SWI Prolog 1.5 and 1.7 and should hopefully port to other
   prologs without too many problems.  For more information, please
   contact Zerksis Umrigar <umrigar@cs.binghamton.edu>.

Pleuk Grammar Development System:

   Pleuk is intended to be a shell for grammar development, in that many
   different grammatical formalisms can be embedded within it.
   Grammatical formalisms that currently work with Pleuk include CFG (a
   simple context-free grammar system), HPSG-PL (a system for developing
   HPSG-style grammars, produced at Simon Fraser University, Canada, by
   Fred Popowich, Sandi Kodric and Carl Vogel), Mike (a simple
   graph-based unification system, enhanced with additional operations
   for the treatment of free word order proposed by Mike Reape in various
   publications), SLE (a graph-based formalism enhanced with arbitrary
   relations in the manner of Johnson & Rosner and Doerre & Eisele.
   Delayed evaluation is used to compute infinite relations.  This system
   has been used for the development of several HPSG-style grammars) and
   Term (a term-based unification grammar system, originally developed
   for the support of Unification Categorial Grammar of Zeevat, Klein and
   Calder). Sample grammars are provided for all of these formalisms.
   Work continues apace on other formalisms, including Bob Carpenter's
   Ale system for typed feature structures, and Veronica Dahl's Static
   Discontinuity Grammars.

   Pleuk requires SICStus prolog version 2.1#6 or later, plus a variety
   of ancillary programs available free of charge from many FTP servers.
   Pleuk is available via anonymous FTP from the University of Georgia
   Artificial Intelligence FTP library
   as the files pleuk.1.0.tar.Z, pleuk.PSmanuals.tar.Z, and pleuk.README.  
   Pleuk will also be available shortly from the Natural Language
   Software Registry, German Research Institute for Artificial
   Intelligence (DKFI), Saarbruecken.  For more information, send email
   to pleuk@cogsci.ed.ac.uk.

Prolog Repository:
   Established by Jocelyn Paine of Experimental Psychology, Oxford
   University in 1987. The current catalogue (January 1991) contains
   30 entries. For catalogue, queries and contributions contact POPX at: 
      popx%vax.ox.ac.uk@oxmail.ox.ac.uk (internet) or 
      popx@uk.ac.ox.vax (janet) 

   FTP access is available through the Imperial College archive at
      src.doc.ic.ac.uk:/packages/prolog-pd-software/  []
   This is actually a link to the directory
   To access it, cd to either of the above directories via
   anonymous ftp. The file README gives a brief summary of the
   contents of the directory and CATALOGUE gives a (long!)
   description of each entry. Entries include the Logic Programming
   Tutor from Paine's book, the DEC-10 public-domain library, the
   Linger natural-language corrector, a simple object-oriented
   add-on for Prolog, graph utilities, among other things.

   Files in the archive are also available on MS-DOS floppies for a
   nominal fee to cover the cost of floppies, postage, and packing. 

Prolog to SQL Compiler:
   The Prolog to SQL Compiler translates database access requests,
   which consist of a projection term and a database goal, to the
   appropriate SQL query. The compiler is written in standard Edinburgh
   Prolog and has been ported to a number of Prologs. The code posted to
   comp.lang.prolog works in ECRC's SEPIA Prolog, but should be easily
   ported to other Prologs. A detailed tech report on the implementation
   is available by email from draxler@cis.uni-muenchen.de (include
   your full postal address). The compiler is copyright, but may be used
   free of charge for non-commercial purposes and redistributed provided
   the copyright notice is retained intact.

   PSI is a handy system for the management and retrieval of your
   personal data, be it addresses, CD collections, or bibliographic
   references. It is intended for the non-commercial user. It may not be
   as full-fledged as some data-base systems, but has some features that
   you won't find in most commercial systems. Also, you may find it
   easier to set up and faster to use. PSI is useful for a broad range of
   data. Indexing with descriptors makes searching for the data you need
   fast, and the interface to other data-base formats (import and export)
   is quite powerful. PSI was written in LPA MacProlog and is a "genuine
   'double clickable' Mac application". PSI runs on all Macs with System
   6 or 7 in 1MB of main memory. As LPA MacProlog isn't yet 32-bit clean,
   PSI isn't either. Extensive documentation and some examples are
   included. PSI is available by anonymous ftp from
   sumex-aim.stanford.edu:/info-mac/app/ as the file psi-23.hqx. It
   was also available on a recent Nautilus CD-ROM and will be on the
   first Info-Mac CD-ROM.

Queens and Knights:
   Queens and Knights are favorite problems for Prolog programmers.
   A collection of several implementations is available by anonymous
   ftp from sics.se:/pub/muse/queensANDknights.tar.Z.uue
   Write to Roland Karlsson <roland@sics.se> for more information.

Rubik's Cube:
   Amzi! Inc., the creators of Cogent Prolog, have made sources to Cube Solver
   II available from their ftp site, ftp.std.com:/vendors/amzi/.  It is
   also available from the Prolog Repository at CMU, in
   ftp.cs.cmu.edu:/user/ai/lang/prolog/code/fun/rubik/.  This Prolog
   program solves Rubik's Cube.  The sources include a simple scrolling
   interface that should work in any Edinburgh standard Prolog.  Also
   included is a ready-made executable for 386 and 486 PCs; it was
   implemented using Cogent Prolog.  For more information, write to Amzi!
   Inc. (formerly Amziod) <amzi@world.std.com>, 40 Samuel Prescott Dr.,
   Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784. Their Web page is

   SEL is a declarative set processing language. Its main features are
   subset and equational program clauses, pattern matching over sets,
   support for efficient iteration and point-wise/incremental computation
   over sets, the ability to define transitive closures through circular
   constraints, meta-programming and simple higher-order programming, and
   a modest user-interface including tracing. The language seems
   well-suited to a number of problems in graph theory, program analysis,
   and discrete mathematics. The SEL compiler is written in Quintus
   Prolog and the run-time system is written in C. It generates WAM-like
   code, extended to deal with set-matching, memoization, and the novel
   control structure of the language. SEL is available by anonymous FTP
   from ftp.cs.buffalo.edu:/users/bharat/SEL2/.  The FTP release comes with a
   user manual, bibliography of papers (including .dvi files), several
   sample programs, and source code. For further information, write to
   Bharat Jayaraman <bharat@cs.buffalo.edu>.

A public-domain WAM emulator, written in C++ by Herve Touati, is
available by anonymous FTP from gatekeeper.dec.com:/pub/plan/prolog/ucb/.
Go Back Up

Go To Previous

Go To Next