The public-domain Prolog library

There is a copy of this library at SunSite, http://sunsite.doc.ic.ac.uk/packages/prolog-pd-software/.

My archive of Prolog code is now stored at the Oxford FTP site. Each entry is stored under its own directory. This directory contains the following:

Note that the .descr files are usually based on comments and writeups supplied by the contributors. I have annotated them in some cases, e.g. where I've changed the code, but I have not rewritten them from scratch. Note also that some of the entries are quite old, and assumptions about user interfaces (e.g. use of windowing predicates), good programming practice, etc, may have changed in the meantime.

For some entries, I've also made a subdirectory called "files", and stored some or all of the source files there. I've done this where I think it's particularly convenient or educational to be able to pick and choose individual files via WWW; where the .descr file doesn't give a good example of the entry in use and the source files may help; or just where I think the files are interesting in their own right.

The rest of this page lists the contents of the library by topic. The listing for each entry contains links to the .descr and .tar.gz files, to the entry's FTP directory itself, and to the individual files if these exist.

Prolog implementations

Prolog interpreter in C, extended with "net clause language" (NCL) for describing distributed computation models using unification.

Written by Zdravko Markov, Bulgarian Academy of Sciences.

General-purpose utility libraries; trees, sets, and graphs

The Edinburgh DEC-10 library

Written at the AI Applications Institute, Edinburgh University.

Cugini's utilities

Written by John Cugini, National Bureau of Standards.

Utilities from Sicstus Prolog

List-handling predicates

Written by J.G. Forero, Reading University.

Bounded-length version of the list-length predicate, for Sicstus Prolog

Written by Donald Smith, Brandeis University.

Predicates for handling 2-3-trees

Written by Mark Johnson.

Graph-handling routines

Written by Paul Freedman.

Sets-as-intervals predicates

Written by Jocelyn Ireson-Paine.

See also ...

The utilities used in implementing the Logic Programming Tutor

Graphics and I/O

Turtle graphics

Written by Salleh Mustaffa, University of Manchester.

Cursor-addressing predicates

Written by Jocelyn Ireson-Paine.

See also ...

The screen-editor and I/O predicates in the Logic Programming Tutor

Parsers, grammar-translators, logic-grammar extensions to Prolog

Abstract syntax notation translator

Written by C.D. Farris and P. Singleton, University of Keele

Definite clause translation grammars

Written by Harvey Abramson and Veronica Dahl.

DCG translator

Written by Jocelyn Ireson-Paine.

Government-binding parser ("Gibberish")

Written by Cameron Shelley, University of Waterloo.

See also ...

The parser in Linger.
The parser, tokeniser, and syntax-directed output predicates in the Logic Programming Tutor.
The parsing examples in Zdravko Markov's NCL system.

Object-oriented extensions to Prolog

Object-oriented package (POEM

Written by Ben Staveley-Taylor.

Functional-programming extensions to Prolog

Grips - a functional language in Prolog

Written by Jocelyn Ireson-Paine.

Other extensions to Prolog

Structures in Prolog

Written by Jean G. Vaucher, De'partement d' informatique et R.O., Universite' de Montre'al.

Augmented Transition net (ATN) interpreter

Written by Jocelyn Ireson-Paine.

See also ...

Zdravko Markov's NCL system.

Expert systems and shells

Expert system for forestry management

Written by Steve Jones, Reading University.

Expert system shell

Written by Steven Salvini, Heriot-Watt University.

Compilers, language translators, databases

Demonstration mini-compiler (in Grips)

Written by Jocelyn Ireson-Paine.

Prolog-to-SQL translator

Written by Christoph Draxler, Munich University.

Machine learning

Simulation of multi-agent tutoring

Written by Thomas Hoppe, Technical University of Berlin and Yiu Cheung Ho, King's College London.

See also ...

Zdravko Markov's NCL system.

Theorem proving

Plaisted's theorem prover

Written by David A. Plaisted.

Other types of reasoning - other logics, semantic nets, connectionist, etc

See also ...

Spreading-activation and other examples in Zdravko Markov's NCL system.

Game-playing programs

Program for playing the Mastermind code-breaking game

Written by Herbert Koenig and Thomas Hoppe, Technical University of Berlin.

Noughts-and-crosses program

Written by David Green, Edinburgh University.

Benchmarks and compatibility tests

Naive-reverse benchmark

Written by Norbert Fuchs.

Peirera's benchmarks

Written by Fernando Pereira.

Operator tests

Written by Chris Moss, Dept. of Computing, Imperial College.

Program analysis and manipulation

Predicate auto-tester

Written by Jocelyn Ireson-Paine.

"make" tool for building large systems (PROM)

Written by Thilo Kielmann, Darmstadt University.

Shapiro's debugger

Written by E. Y. Shapiro.

Static call analyser

Written by John Cugini, National Bureau of Standards.

Teaching Prolog

Notes and examples introducing Prolog to mathematicians

Written by Jocelyn Ireson-Paine.

Source from Jocelyn's book "The Logic Programming Tutor"

Written by Jocelyn Ireson-Paine.

See also ...

The demonstration mini-compiler.

Miscellaneous applications

Programming consultant, Eliza-style

Written by Edouard Lagache, Berkeley.

Doubly-linked list package

Written by Philip Dart, Melbourne University.

AI microworlds for teaching and AI competition (uses Pop-11)

Written by Jocelyn Ireson-Paine. Updated versions are also available, with tutorial notes, exercises, and production-system agents.

Various demonstration programs

Written by Expert Systems Ltd, Oxford.

Linger: a tool for grammar analysis of western European languages

Written by Paul O'Brien and Masoud Yazdani, Exeter University.

File separator

Written by Jocelyn Ireson-Paine.
Top of page
Jocelyn Ireson-Paine
3rd June 1998