[comp.archives] [ai] Library of AI software

POPX@vax.oxford.ac.uk (Jocelyn Paine) (02/20/91)

Archive-name: languages/prolog/popx/1991-01-14
Original-posting-by: POPX@vax.oxford.ac.uk (Jocelyn Paine)
Original-subject: Library of AI software
Reposted-by: emv@ox.com (Edward Vielmetti)

I recently announced that I had started a library of Prolog software
(intended to be for AI), and was willing to extend it to cover AI stuff
in other languages too. This is a copy of the current catalogue. So far,
all the entries are still Prolog, but I will take contributions in other
languages.

Please mail to POPX if you want to request or (please!) to contribute.

                                   Jocelyn Paine (POPX @ UK.AC.OX.VAX)
                            Experimental Psychology, Oxford University



0. LIBRARY CATALOGUE - CONTENTS
===============================

0. Contents.

1. Introduction.

2. How to receive entries.

   2.1 - by E-mail.

   2.2 - by floppy disc.

3. Description of entries.

   3.1  Prolog abstract syntax notation translator.
        Written by C.D. Farris and P. Singleton, University of Keele.

   3.2  Prolog transition net interpreter.
        Written by Jocelyn Paine, Oxford University.

   3.3  Prolog predicate auto-tester.
        Written by Jocelyn Paine, Oxford University.

   3.4  Grips/Prolog demonstration mini-compiler.
        Contributed by Jocelyn Paine, Oxford University.

   3.5  Prolog programming consultant.
        Written by Edouard Lagache, Berkeley.

   3.6  Prolog utilities.
        Written by John Cugini, National Bureau of Standards.

   3.7  Prolog definite clause translation grammar translator.
        Contributed by Jocelyn Paine, Oxford University.

   3.8  Prolog doubly-linked list package.
        Contributed by Philip Dart, Melbourne University.

   3.9  Prolog expert system for forestry management.
        Contributed by Steve Jones, Reading University.

   3.10 Prolog grammar-rule translator.
        Contributed by Jocelyn Paine, Oxford University.

   3.11 Prolog graph-handling routines.
        Written by Paul Freedman, CNRS.

   3.12 Grips - a functional language in Prolog.
        Written by Jocelyn Paine, Oxford University.

   3.13 Prolog interval-algebra predicates.
        Written by Jocelyn Paine, Oxford University.

   3.14 Prolog iterative deepening interpreter.                     
        Written be Lee Naish.

   3.15 Prolog list-handling predicates.
        Contributed by J.G. Forero, Reading University.

   3.16 Linger - a natural language corrector and teacher in Prolog.
        Contributed by Paul O'Brien and Masoud Yazdani, Exeter University.

   3.17 Prolog operator tests.
        Written by Chris Moss, Dept. of Computing, Imperial College.

   3.18 Prolog naive reverse benchmark.
        Contributed by Norbert Fuchs.

   3.19 Pereira's Prolog benchmarks.
        Written by Fernando Pereira.

   3.20 Plaisted's theorem prover in Prolog.
        Written by David A. Plaisted.

   3.21 Prolog object-oriented package.
        Written by Ben Staveley-Taylor.

   3.22 Prolog expert system building tool.
        Contributed by Steven Salvini, Heriot-Watt University.

   3.23 Shapiro's Prolog debugger.
        Written by E. Y. Shapiro.

   3.24 Prolog file separator.
        Written by Jocelyn Paine, Oxford University.

   3.25 Prolog static call analyser.
        Contributed by John Cugini, National Bureau of Standards.

   3.26 The Edinburgh Tools.
        Contributed by the AI Applications Institute, Edinburgh.

   3.27 Prolog turtle graphics.
        Contributed by Salleh Mustaffa, University of Manchester.

   3.28 Prolog type-checker.
        Contributed by R.A.O'Keefe.

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

   3.30 Prolog cursor-addressing predicates.
        Written by Jocelyn Paine, Oxford University.


1. INTRODUCTION.
================

Each entry in the catalogue is headed by: a title; the name of the
contributor - and author if different; and the dates when I received the
contribution.

There is then a description of the program. Unless I've said otherwise,
these are the author's comments, and not mine; so the style is not at
all uniform between entries.

Finally, I've put the entry's size; what happened when I tried running
it; and an evaluation of its portability and documentation. Entries
which consist of more than one file are noted - see the next section.


2. HOW TO RECEIVE ENTRIES.
==========================

I can send either by E-mail (if you are on a network connected to the UK
academic network Janet), or by IBM PC floppy. The two sections below
describe how to deal with each.

In both cases, each entry includes a file whose extension is .PRE. This
is like the catalogue entries but more detailed. It lists the names of
the files supplied; gives comments on portability and documentation; and
tells how to run the program.


2.1 BY E-MAIL.
==============

If the mail link to a subscriber seems reliable enough, I'll send files
individually, one per message.

Otherwise, to avoid having to re-send lots of separate lost files, I'll
pack files into a composite file. The composite file will consist of two
or more subfiles, each of this form:

    <Header line>
    <Text line> zero or more times
    <Tailer line>

The header line of a subfile is of the form
    <Signal> ^START^ <Filename> ^
where <Signal> is a sequence of characters which is unlikely to appear
in any source text, namely:
    )(*&%$#@!
at the beginning of a line. <Filename> is the name of the file from
which the subfile was made.

The tailer line is
    <Signal> ^END^ <Filename> ^

Here is an example containing two subfiles (indented by four spaces):
    )(*&%$#@!^START^APPEND.TXT^
    This  entry contains  a predicate  called 'append'  which joins  two
    lists to give a third.
    )(*&%$#@!^END^APPEND.TXT^
    )(*&%$#@!^START^APPEND.PL^
    /*  APPEND.PL  */

    append( [], L, L ) :- !.
    append( [H|T], L, [H|T1] ) :-
        append( T, L, L1 ), !.
    )(*&%$#@!^END^APPEND.PL^

It should be simple to separate out subfiles with a text editor. Also,
one of the library entries is a program which reads a composite file,
and copies each subfile to the file named in its header.


2.2 BY MS-DOS FLOPPY.
=====================

There is a small charge to pay for floppies, postage, and packing.

Unless otherwise requested, entries will be sent as "archive files",
packed by the public domain program ARC. There will be one such archive
file for each catalogue entry. To unpack it, run the program PKXARC.EXE,
which I have also copied onto your disc.

For example, if you have ordered the Edinburgh tools, they will be
packed into TOOLS.ARC. Assuming this file, and PKXARC.EXE, are both in
your current directory, do:
    PKXARC TOOLS

Note that MS-DOS truncates filenames to eight characters and replaces _
by X; so some names will not be the same as in the .PRE file for that
entry.


3. DESCRIPTION OF ENTRIES.
==========================

[Extended description, 2100 lines, deleted.  --Ed]