School of Computer Science -- The University of Birmingham

In collaboration with The University of Sussex:
Informatics Department and Centre for Research in Cognitive Science

"The Free Poplog Portal"
http://tinyurl.com/PopLog/freepoplog.html

FREE VERSIONS OF POPLOG
INCLUDING POP-11, LISP, PROLOG, ML
POPVISION LIBRARY, SIMAGENT TOOLKIT....

Warning The www.poplog.org web site is defunct (June 2009)

JUMP TO:
Teaching Resources; Downloads;
Contents List; Video Tutorials on YouTube.

         Poplog Plaque
Integral Solutions Ltd (ISL) and Sussex University
won this ICP aware in 1992, for having achieved
Poplog sales of five million dollars. I believe it was
also associated with a UK Government SMART award.
See page 3 of this 1992 Sussex Bulletin

NB Though once an expensive product, Poplog is now Free and Open Source.
The Copyright Notice is very simple. It is based is based on the MIT/XFree86 licence and imposes no restrictions on what can be done with the system.

NB: Poplog is made available "as is" with no warranty of any kind, and no acceptance of liability for any consequences of use.


5 May 2012: There are now much simpler to use downloadable scripts for installing Linux Poplog
on 32 bit Ubuntu (and other Debian versions of linux):
http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog#ubuntu
and on 32 bit Fedora (and other 'rpm'-based systems):
http://www.cs.bham.ac.uk/research/projects/poplog/latest-poplog#fedora
Alternative links:
http://tinyurl.com/PopLog/latest-poplog#ubuntu
http://tinyurl.com/PopLog/latest-poplog#fedora
The download and installation scripts (which re-link poplog) should work on 64-bit linux, provided that you have installed the packages required for compiling and running 32-bit applications (e.g. libc6-dev-i386 in Ubuntu?), and have the required 32-bit X window libraries, especially libX11, libXt, libXext and if possibe lesstif.
Install the 'development' versions of libraries, as they are required for re-linking to work.

27 Dec 2011: Linux Poplog version 15.65 (32 bit)
Available for download
Recent Changes
Previously the editor Ved worked reliably only in xterm and PuTTy windows. Other console programs claiming to emulate xterm (vt100) screen handling, failed to cope properly with the window update optimisations, e.g. when scrolling part of a screen. Disabling the screen optimisations by default now enables Ved to be used in a wider range of console windows including gnome-terminal and urxvt (and related programs).
The change requires more refreshing of the whole screen, but does not seem to be noticable with current computing and networking speeds.
The change does not affect Poplog's graphical multi-window editor, XVed.


17 Oct 2011: CAS-AI: Poplog/Pop11 resources for Computing at School (CAS)


29 Jun 2011: Full Linux Poplog, including graphics, now available in an Virtual Box Package for Windows, MAC and Linux here.
This supersedes the 'andLinux' recommendation here.
A version running on Amazon EC2 may be available for teachers to access remotely. For information write to Aaron Sloman (A.Sloman[AT]cs.bham.ac.uk).


29 Sep 2010: Introductions to use of Ved/XVed the poplog text editor and programming interface (in other files)
Video tutorials on the editor now on Youtube.


26 Jun 2009 -- 10 Aug 2009

This file has been much reorganised. There is now a high level overview of Poplog and a summary of the types of teaching materials available. Please see the Table of Contents for more information, regarding systems available, and downloads.
Suggestions for further improvements (and offers of help welcome). Write to A.Sloman@cs.bham.ac.uk please.


JUMP TO CONTENTS LIST



Older News Items

JUMP TO CONTENTS LIST
JUMP TO INFORMATION ABOUT TEACHING


WHAT IS POPLOG?

Poplog
Links to information about Poplog/Pop11/Prolog/Lisp on Wikipedia
Poplog is an integrated toolkit providing a highly extendable collection of languages and tools for teaching, research and development. It is described on Wikipedia here. By default it includes incremental compilers for three powerful AI programming languages which can be used interactively both when learning to program and when developing software: as well as

Other languages have been developed in Poplog by users, but are not part of the default system. There are also extensions to Pop-11, providing language features that are not part of the core language, but are immediately available to users, including

Most of Poplog is implemented in Pop-11, including the incremental compilers for all four languages and the integrated programmable editor.

Because the core language, Pop-11, makes use of incremental compilation, Pop-11 provides most of the flexibility of an interpreter and most of the speed of a compiler. (The main disadvantage is the general difficulty of porting an incremental compiler to a new platform.)

Poplog was already a well engineered, robust and highly successful commercial product in the 1990s, developed jointly by Sussex University and ISL (Integral Solutions Ltd), and marketed by ISL, who used it to develop the widely used Clementine data-mining system, until 1998, when ISL was bought by SPSS (for Clementine -- now extended and re-named PASW).

It was used to develop the original version of the SPARK toolkit by Praxis Systems, though they now use Sicstus Prolog, as that has features not in Poplog Prolog. (There is now a free Open Source version of the toolset here.)

Some information about academic and commercial customers and products based on Poplog can be found here. After the take-over by SPSS, Poplog became free and open source. Unfortunately, by then academic usage had dropped, partly because of the high price of Poplog during the mid 1990s, partly because the full system (including graphics) was available only on expensive servers and workstations, and only a subset was available on PCs running Windows. (ISL found that the costs of sales and supports to academics were not worth the benefits, so they focused on commercial customers. In those days it was not possible to sell and support such software via the internet.)

The Linux version of poplog, ported in his own time by Clark Morton while still working for ISL, did not become available until after SPSS bought ISL, and this website was started for Free Poplog. (Initially the port was somewhat incomplete and had a few bugs, but these were soon identified and fixed. However, changes in Linux and the C language specification, led to requirements for some further changes in in Linux poplog including some problems caused by Selinux, now resolved.)

Size
Considering that Poplog includes incremental compilers for four languages (Pop-11, Prolog, Common Lisp and ML), along with an integrated programmable editor, and a host of additional libraries and documentation, including teaching materials, the size of the system is surprisingly small: the complete 32-bit Linux download package is a little over 16MB (since about 19th July 1009 -- including all system sources, documentation and libraries, with a number of add-ons). The size was reduced for Version 15.63, partly by moving the 'contrib' package to a separate location (also in a zip file).

(The packaged self-installing windows version of Poplog V15.5 described below is even smaller.)
The uncompressed Poplog installation directory, after relinking poplog and building saved images, requires about 79MB on Linux (since Version 15.63, of which a large subset can be removed if not needed). The normal minimum process startup size for Pop-11 including the editor and incremental compiler, is around 11MB. That can be reduced by using a version linked without some of the default components, e.g. without indefinite precision arithmetic, the editor, the X window interface.

The run-time startup size goes up of course if Prolog, or Lisp, or ML (or a combination) is included, though not by much because a great deal is shared between the four compilers.

Speed
Partly because of its compactness Pop-11 and the other Poplog languages are comparatively fast when running user code, out-performing interpreted versions of the languages, though not as fast as batch-compiled languages. (The versatility in supporting Pop-11, Common Lisp, Prolog and ML adds a small speed penalty compared with separate dedicated compilers.) The internals of poplog run very fast because they are implemented in a special dialect of Pop-11 with C-like extensions. For example, code compilation is very fast though this is partly partly because the compiler does not do a vast amount of optimisation. Moreover, at least one researcher at HP Research labs switched from using Lisp on a dedicated Lisp machine, to using Poplog Lisp on a general purpose unix workstation, because he found the poplog garbage collector so much faster. However, machines have speeded up so much since then that the difference would no longer be so noticeable!


NOTE: 24 Jan 2010 This section on teaching has been moved to a separate directory and expanded/improved.
All the contents of the section on teaching that used to be here are included in the new directory.


Origins of poplog

Note: "POPLOG" is a trade mark of the University of Sussex.

Poplog was developed in the School of Cognitive and Computing Sciences at the University of Sussex and at ISL (now part of SPSS), and is distributed free of charge by courtesy of both organisations. Between 1983 and 1998 Poplog was an expensive commercial product, sold first by Systems Designers Ltd., then ISL, though always with large discounts for academic users. Examples of commercial and academic customers, and some of the products produced using Poplog can be found in this directory http://www.cs.bham.ac.uk/research/projects/poplog/isl-docs

Additional code and documentation listed below were produced by members of the University of Birmingham and other organisations. All of it is now free of charge with open source.


Copyright Notice

The distribution terms and copyright notice (modelled on XFree86) are available in http://www.cs.bham.ac.uk/research/poplog/copyright.html.

Overview of available systems and information

The remainder of this file contains pointers (1) to a number of complete Poplog systems for various combinations of machine and operating system, (2) to sources, (3) to documentation about Poplog and Pop-11, (4) to various add-ons supporting teaching and research in AI and Cognitive Science, developed at Sussex, Birmingham, and elsewhere, including a package for research and teaching in vision, a powerful and flexible X window-based GUI package implemented in Pop-11, the SimAgent toolkit for developing sophisticated agent architectures, and Robin Popplestone's Scheme in Pop library. There are also (5) some "easy" to install complete packages containing the add-ons.

Readers who know nothing about the Poplog system or its languages may find it useful to look at this introductory overview http://www.cs.bham.ac.uk/research/poplog/poplog.info.html and also the comp.lang.pop newsgroup informal FAQ. http://www.cs.bham.ac.uk/research/poplog/comp.lang.pop.faq.html

Experts may find it useful to look at the draft User Guide to get a feel for the variety of facilities available in poplog.

The web site at http://www.poplog.org was set up by two experienced users of Poplog and Pop-11. It includes archives of postings to comp.lang.pop, code libraries, and a partial mirror of this site, among other things. Unfortunately the web site is now defunct.


CONTENTS
Some of these entries point to separate files


Use Google to search for information about Poplog or Pop-11

If you include in your search terms "poplog" or "pop-11" or "pop11" or "ved" or "xved" or some combination of those, the chances are that you will find what you want faster than finding it by browsing this or any other site!

Google


JUMP TO CONTENTS LIST


GENERAL INFORMATION

More information about Poplog and Pop-11

Jump to downloads section

Poplog version 15.53 was the first version of poplog to be made generally available free of charge, including all sources, since about 1982, the year when commercial sales were taken over by Systems Designers Ltd.

Some older versions for other platforms listed below are also now available free of charge.
(They may be brought up to date later if facilities and resources become available for rebuilding them.)

V15.53 (produced in July 1999) included some additions to support recent versions of Linux, and a few minor bugfixes. Apart from that it was the same as the commercial version, used world-wide in the Clementine data-mining system.

Since then Poplog has undergone development and bug-fixes. New versions have been made available at the Birmingham Poplog site, and are announced elsewhere in this file. An older version, Poplog Version 15.5 was made available for use on Windows, but lacking the graphical capabilities available in poplog on Linux, Unix and VMS systems. The OpenPoplog project at Sourceforge aims to remove the difference.

Reduced versions supporting Pop-11 as a scripting language may become available later, e.g. at www.poplog.org. (June 2009: This site is now defunct.)

As explained below, A directory for bugreports and "bugfixes" has been set up for corrections to library and documentation files as well as system sources.

Coordination of further development work is managed through the comp.lang.pop newsgroup and the pop-forum email list. There is also a more specialised email list (poplog-dev) for those who wish to be involved in detailed technical discussions of development work. If you wish to join the poplog-dev email list write to A.Sloman@cs.bham.ac.uk.

A (rarely updated!) table summarising available versions of poplog is available here: http://www.cs.bham.ac.uk/research/projects/poplog/poplog-versions.html

For more background information about poplog see the WHAT IS POPLOG? section.

The free Poplog distribution directory

When Poplog version 15.53 first became available free and open source the main location for bundled versions was the http://www.cs.bham.ac.uk/research/poplog/new/ directory. The contents are described below. Since then new bundled versions have also become available, not stored there. Go to the 'new' directory only if there is not another bundle (e.g. the standard Linux Poplog bundle) that suits your requirements.

There is a specially packaged, easy install version of Poplog for PC+Linux.

Information about Poplog for Windows is available.

A mirror site for Poplog, with some additional packages used to be at http://www.poplog.org. (Now defunct, alas.)

System Documentation:

Detailed instructions for installing Unix and Linux poplog, are in the install.txt file. Most users can now ignore that as there are are special instructions for the packaged versions of linux poplog described below. In particular for the main PC+linux package there is now a very simple short-cut installation process.

Instructions for the Windows version of Poplog V15.5 are included in the windows poplog package (below), and separately available in the file new/pcwinpoplog.txt
(Windows poplog V15.53 is only for experts. For more details see this section below, or this directory http://www.cs.bham.ac.uk/research/poplog/winpop/ ).

A User Guide is available, included with all the current bundled versions of poplog.

Documentation on rebuilding poplog can be found in sysdoc/rebuilding. Scripts for installing and re-linking are included with poplog.

Utilities to help with re-linking or rebuilding will go in the tools/ subdirectory, including a script which will be useful if you have difficulties re-linking unix versions of poplog. (Improved version now included in PC linux poplog since Version 15.6).

Documentation on Porting poplog can be found in sysdoc/ppg (Poplog Porting Guide).

Most of poplog is implemented in an extended dialect of pop-11 (SysPop-11), so porting poplog requires a running version of poplog to do the cross-compilation.

Obsolete package installation mechanism.
A shell script for installing "local extensions" received as gzipped tar files was previously available here: http://www.cs.bham.ac.uk/research/poplog/com/install_package and documented here http://www.cs.bham.ac.uk/research/poplog/tools/install_package/install_package.txt

Since version V15.6 This mechanism is now replaced by a new package structure in the Poplog directory tree.


JUMP TO CONTENTS LIST


OLDER NEWS ITEMS (More recent news is above.)


JUMP TO CONTENTS LIST


DOWNLOADABLE VERSIONS OF POPLOG

Current versions of Poplog for Linux and Unix:

Information on how to use Linux poplog on Windows can be found here.

The latest version of poplog, currently packaged for PC+Linux, but also usable on Windows (as explained here) is

A (possibly out of date) table summarising available versions of poplog is available here: http://www.cs.bham.ac.uk/research/projects/poplog/poplog-versions.html

Linux Poplog is provided in gzipped tar file format, for installation on PC (Intel or AMD). 32-bit Versions of Linux Poplog have been tested on RedHat Linux 6.0, 6.1, 6.2, 7.1, 7.2, 7.3, 8.0, 9.0, RedHat Enterprise Linux, Fedora core 1, 2, 3, 4, 5, and various versions of Debian, Ubuntu, Slackware, Mandrake, Suse Linux, and freeBSD but it probably works on several more. However, non-backward compatible changes in versions of linux sometimes cause problems.

Some of the downloadable versions are "current" whereas others are older because we have not had access to machines on which to update them.

Graphical extras, and use of Motif/Lesstif
Poplog has a wide range of 2D graphical facilities that work in connection with the X window system on linux and unix platforms. These can be enhanced by the use of Motif though it is not essential for poplog. Motif provides a collection of additional graphical tools used by menus and scroll-bars in the poplog X-based editor XVed, though XVed can be used without menus and scroll-bars.

However many other Poplog graphical facilities can also work without motif. The Birmingham graphical toolkit, RCLIB, available as an add-on to poplog (described below) does not require motif, and provides menus, sliders, dials, and other GUI facilities. Because it is implemented in Pop-11 it is much easier to modify or extend than motif. It is also used for graphical displays in the SimAgent toolkit, demonstrated here.

If your linux system does not include motif, you should, if you wish, be able to use poplog with the free Openmotif version, now available from http://www.openmotif.org/ and also included in many linux distributions, since several commercial packages based on linux and unix make use of Motif.

If that link fails try giving www.google.com or some other search engine the key "linux motif", or "openmotif".

The latest version of Lesstif, distributed with many versions of Linux, can also be used as an alternative to Motif, though there are some minor discrepancies.

Previously, two versions of Poplog for linux+PC were made available, one linked for use with motif and one linked for use without. Linux Poplog is now distributed in a new format, as described below, with fewer pre-compiled binaries, reducing download time. Installation scripts are provided which configure poplog to run with or without motif, as required.

Checking presuppositions for linux poplog.
REVISED 11 Apr 2007: CHECK_LINUX_FACILITIES script.

A script that will detect some common missing features in linux installations, and can fix some simple cases (missing symbolic links) is CHECK_LINUX_FACILITIES . You can download it, make it executable and run it to check your installation.
NOTE
If you are using 64-bit linux and wish to install 64-bit Poplog use this instead CHECK_LINUX_FACILITIES_64bit .
However, it is probably better to install 32-bit poplog on 64-bit linux as the 64-bit poplog has not been updated or tested for some time.
An earlier version could be run to install missing symbolic links in the /usr/X11R6/lib directory. However, the latest version allows for both XFree86 and X.org installations of linux graphics, and does not install missing links, as it is better for the motif-devel or lesstif-devel package to be installed at system level.

Further information about prerequisites for installing poplog, and instructions for installing the latest version of Poplog are here.

Some recent versions of linux for naive users do not include gcc, which is required for linking poplog. However, you may be able to install and run poplog without gcc, but you will not be able to recompile or relink it.

Some users may find useful an old file describing information that was required before installation of Poplog was automated: http://www.cs.bham.ac.uk/research/poplog/linux-cd/AREADME.txt

Poplog downloads for PC+Linux, Debian and instructions for FreeBSD follow.

  • Non linux versions

    Older versions of Poplog:for unix-like systems

    Additional (slightly older) implementations for other platforms are available for download, as follows:

    PC NT/XP/Windows versions of Poplog:

    At present (January 2010) the implementations of Poplog for Windows do not provide all the facilities of Linux/Unix poplog. In particular, they do not provide the Poplog graphical facilities that work on the X window system on Unix and Linux.

    However it is possible to run Linux poplog within Windows using VirtualBox, as described here.

    It is also possible to run linux poplog on Windows by using the free trial version of VMWARE http://www.vmware.com/. For instance the hybrid-sheepdog demonstration here http://www.cs.bham.ac.uk/research/poplog/figs/simagent/ was produced by an MSc student using Linux PC poplog, under Vmware on a laptop running Windows XP.

    It can also be made to work with the free 'andLinux' package along with Xming, as described here.

    It is likely that increasing development of 'virtualisation' tools will make it much easier to run programs developed in one operating system on another.

    The Open Poplog project aims to re-engineer poplog in a more platform-independent form eventually.

    For those users of Microsoft Windows who do not wish to use andLinux or VirtualBox or Vmware the following options are available.


    JUMP TO CONTENTS LIST


    PORTS IN PROGRESS


    VED-LIKE INTERFACE FOR EMACS USERS

    The Poplog system was built around the integrated editor Ved (implemented in Pop-11), which includes facilities for rapidly accessing help files, teaching documentation and library sources through "hypertext links", and for transferring commands to the incremental compiler(s) and reading output from the compilers into an editor buffer. This makes learning, development and testing very easy, especially for novice programmers.

    A number of Emacs users have developed a package that supports similar use of Pop-11 and other Poplog languages from Emacs, and includes utilities for reading the Ved "graphics enhanced" documentation files. The package can be downloaded here: emacs.tar.gz or browsed online here http://www.cs.bham.ac.uk/research/poplog/emacs/
    This is already included in the larger "complete" packages.


    THE POPLOG PACKAGE STRUCTURE INTRODUCED IN VERSION 15.6 (2005)

    Around January 2005 Poplog was reorganised. A sub-directory was introduced $usepop/pop/packages (with environment variable $poppackages to allow for its location to be changed).
    Many of the extensions that had been available as special packages from Birmingham University, Sussex University, or elsewhere that had previously been separately down-loadable packages were moved into that directory, and some of the AI tutorial material that had been part of the core Pop-11 code and documentation libraries was moved into a 'teaching' package.

    Each package has a top level directory containing a pop-11 program to extend the poplog search lists (popautolist, popuseslist, vedhelplist, vedteachlist, etc.) and subdirectories such as auto/, lib/, teach/, help/, ref/, data/ and others, if needed.

    Some parts of poplog that were deemed not to be suitable for inclusion in the core of the system, e.g. items concerned with teaching AI rather than teaching programming in Pop-11 or Prolog, etc. were moved into the 'teaching' package.

    NOTE: This process is not yet complete. The reorganisation will be continued, depending on available time.

    The current default list of contents (in April 2007) is

    lib: A directory containing links to the startup pop-11 file for each of the packages.
    bhamlib: Extensions from the Birmingham $poplocal/local/directory
    (Currently very little, as most of the original contents are now in other packages).
    brait: A braitenberg simulator based on SimAgent
    com: Some shell scripts used for poplog
    contrib: Programs and documentation contributed over the years include portions of published books, e.g. the Computers and Thought book, and the Natural Language Processing books by Gazdar and Mellish. (No longer included: available separately.)
    emacs:Utilities to make Emacs talk to the Poplog compilers, emulating the poplog Ved editor
    lockfile: programs for locking and unlocking files
    master: Relics of the Sussex mechanisms for managing file headers and footers.
    neural: The poplog neural library, providing some neural net functions implemented in C and invoked from Pop-11
    newc_dec: Information provided by Anthony Worrall about extensions to the mechanisms for loading external libraries written in C.
    newkit: The Birmingham SimAgent toolkit, containing Poprulebase and SimAgent libraries, and also making heavy use of RCLIB for graphics.
    package_template: Template directory for constructing a new package.
    popmatlab: A 'virtual' package which makes visible a subset of the facilities included in the popvision package, providing general purpose mathematical tools that are not restricted to being used for vision, including the well known BLAS and LAPACK toolkits, which are here made available from Pop-11.
    popvision: David Young's Popvision library (including many C programs for image manipulation invoked from Pop-11). This includes the 'popmatlab' library.
    prb: The Poprulebase subset of SimAgent, which can be used on its own, e.g. for expert systems.
    rclib: The RCLIB graphical extension to Pop-11 illustrated here.
    rcmenu: An extension to RCLIB providing the 'recursive hypermenu' package.
    sim: The sim_agent library extensions, to be added to Poprulebase to provide the SimAgent toolkit.
    teaching: AI teaching materials -- programs and documentation.
    vedgn: An extension to the Ved editor for reading news (usenet).
    vedlatex: Extensions to the Ved editor for use with LaTex.
    vedmail: Programs for reading mail in a standard unix mail file, for sending mail, replying, unpacking attachments, creating and sending attachments, etc. All written in pop-11.
    vedutils: Extensions to the Ved editor used in Birmingham.

    OTHER THINGS IN THE SAME DIRECTORY
    gz: A directory for tar files containing packages supplied in compressed form only.
    install_package: A shell script for unpacking and installing packages from tar files of the form package.tar.gz into a directory package
    make_tarfiles: Shell script for creating tar files from the currently installed packages.
    setup: various startup scrips

    BUGREPORTS AND BUGFIXES

    Bugfixes are recorded in this directory tree. http://www.cs.bham.ac.uk/research/poplog/bugfixes/
    The BUGREPORTS file lists bugs and fixes (where available) in reverse chronological order. The file ALLFILES file lists all the files in the bugfixes directory, in reverse chronological order.

    Other changes are listed in the CHANGES.txt file now included with poplog, along with revision notes included source code and library files.

    Asking for help or submitting bug reports

    Please submit bugreports to the comp.lang.pop newsgroup or the pop-forum email list, not to any individual. Before submitting a report on a problem it is worth looking at this form for bugreports. Following the instructions will make it more likely that someone can help you.


    JUMP TO CONTENTS LIST


    DOCUMENTATION DIRECTORIES

    Browsable Poplog Documentation
    (Pop-11, Prolog, Lisp, ML, AI teaching materials, and Rebuilding poplog)


    JUMP TO CONTENTS LIST


    LISP PACKAGES THAT WORK IN POPLOG

    Lisp packages available that have been tested in Poplog Common Lisp

    PACKAGES AND AI TEACHING MATERIALS


    The RCLIB and RCMENU X-based user-extendable graphical interface tools.
    NB: This is already included in the latest Poplog package for linux on PC.

    RCLIB provides powerful object oriented tools for building graphical interfaces, including control panels with sliders, dials, scrolling text panels, etc. It supports interactive graphical interfaces to the Agent toolkit described below. Some examples can be viewed in http://www.cs.bham.ac.uk/research/poplog/figs/rclib

    • The RCLIB (relative coordinates) extension to Pop-11 X window based graphics, using the Poplog widget set to provide tools for graphical interfaces without using Motif. This can be used with all X window based versions of Poplog, including the Linux version, whether Motif is or is not available. rclib.tar.gz

      RCLIB files can be browsed online: See the help/ and teach/ subdirectories, especially help/rclib.

      Examples of displays produced by the "RCLIB" Graphic Library can be found in http://www.cs.bham.ac.uk/research/poplog/figs/rclib/

    • The RCMENU (recursive hypermenu) package provides Pop-11 utilities based on RCLIB, for creating autoloadable "stay up" and "pop up" menus and control panels, (Does not use any motif facilities, and does not require the Pop-11 "propsheet" mechanisms to work.)
      This package is basically tailored to provide help for students in Birmingham, especially when learning to use the editor. However it is very easily modified to suit different sites, or users.

      Examples shown, including screenshot here.

      The default set of autoloadable menus can be browsed in the rcmenu/menus/ subdirectory. These menu-definition files show the syntax available for specifying environments.
      rcmenu.tar.gz

      An earlier, less versatile, version of this package, based on propsheet and motif, is in the menu.tar.gz file listed below.


    The SimAgent toolkit, including Poprulebase
    NB: This is already included in the latest Poplog package for linux on PC.

    The SimAgent is a very general and flexible toolkit for exploring agent architectures, with graphical display facilities based on RCLIB described above. The core of SimAgent is a powerful forward chaining production system interpreter, Poprulebase, described here, which supports integration of symbolic and subsymboilic mechanisms (e.g. neural nets). Multiple concurrent instantiations of Poprulebase define a processing architecture for an agent. The SimAgent toolkit supports development of systems in which multiple such agents can co-exist and interact. SimAgent was described in the March 1999 issue of Communications of the ACM.

    Some movies showing some of the features of SimAgent are here (with thanks to Mike Lees at Nottingham for the Boids and Tileworld examples): http://www.cs.bham.ac.uk/research/poplog/figs/simagent/

    For a detailed overview of the toolkit see http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html and the slide presentation using PDF or Postscript at: http://www.cs.bham.ac.uk/~axs/misc/draft/toolkit.pdf
    http://www.cs.bham.ac.uk/~axs/misc/draft/toolkit.ps

    The toolkit is now included in the standard Birmingham Linux Poplog packages, but can also be downloaded separately:

    • The SimAgent Toolkit as described in http://www.cs.bham.ac.uk/~axs/cogaff/simagent.html including Poprulebase and Sim_agent libraries. Needs RCLIB (above).
      Can be installed using the install_package script

      Poprulebase is a highly extendable production system interpreter used in the SimAgent toolkit, including support for interactions between symbolic and sub-symbolic mechanisms. It can also be used alone as an Expert System Shell.

      Poprulebase code and documentation can be browsed online in subdirectories of the newkit/prb/ directory, e.g. tutorial and reference documentation is in the teach/ and help/ subdirectories.

      The SimAgent specific code and documentation files can be browsed in the newkit/sim/ directory. Tutorial and reference documentation is in the teach/ and help/ subdirectories.
      A summary of the main changes to SimAgent (and Poprulebase) introduced in the summer of 1999 can be found in the help/newkit file
      An example SimAgent tutorial file is newkit/sim/teach/sim_feelings

    • oldprb.tar.gz Poprulebase (version 4.0),
    • oldsim.tar.gz The SimAgent toolkit (version 4.0) (requires old version of poprulebase and also RCLIB).


    David Young's Popvision library
    NB: This is already included in the latest Poplog package for linux on PC.

    David Young at the University of Sussex has produced some excellent teaching materials and tools for image processing and AI vision, and has given permission for these to be distributed. A large collection of mathematical tools and array manipulation tools, including interfaces to the BLAS and LAPACK packages, has been added, constituting a matlab-like facility in Poplog, which is free and open source.

    An overview of the teaching materials in the popvision package is available here http://www.cogs.susx.ac.uk/users/davidy/teachvision/vision0.html
    The programs work fast because there's a mixture of Pop-11 and C. The package includes scripts for compiling the C sources on solaris, linux and alpha Unix systems. The programs and documentation can be browsed online in http://www.cs.bham.ac.uk/research/poplog/popvision
    (See especially the popvision/help/* files -- though you may have slight problems with the "VED graphic" characters in a Web browser.)

    The whole package can be fetched from http://www.cs.bham.ac.uk/research/poplog/popvision.tar.gz

    This also includes David Young's teaching material on on multi-layer perceptrons.

    The Array manipulation and Linear Algebra Packages in Popvision

    The Popvision package includes three new libraries (added in 2004) that make available a very rich collection of array manipulation facilities and mathematical facilities including the BLAS and LAPACK linear algebra packages, all now accessible interactively from pop-11.
    • The ARRPACK package

      This provides an array processing package for Pop-11. It includes efficient procedures (implemented in C) to carry out arithmetic and logical operations on elements of real and complex arrays. A whole array or a subset of its elements may be processed in a single procedure call. ARRPACK is restricted to operations in which each array element is treated separately from other elements of the same array, such as the element-by-element addition of two arrays. (Operations where each element is processed along with its neighbours, such as convolution, Fourier transforms and matrix operations, are provided by other libraries.) A higher-level interface to these procedures may be provided in future.
    • The LAPACK and LAPOP libraries

      These libraries provide Pop11 interfaces to BLAS and LAPACK
      • http://www.netlib.org/blas/faq.html
        The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix operations. Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development of high quality linear algebra software, LINPACK and LAPACK for example.

      • http://www.netlib.org/lapack/
        LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.
      Anyone who wants all this but does not have blas and lapack for linux (apparently included in some linux distributions --e.g. redhat 9) can get rpms for various architectures from http://ftp.pld.org.pl/dists/ac/ready/

    The popvision tar file can be installed using the install_package script, which will untar the package into the directory $poplocal/local/ where it will create $poplocal/local/popvision/ with appropriate sub-directories, and also $poplocal/local/lib/popvision.p for easy access using the Pop-11 command uses popvision;


    David Young's Pop11 Libraries at Sussex

    David Young's poplog web page at Sussex University includes some additional facilities that may be found useful, including
    • External function call with vector-offset arguments. (excall: library - now included in the popvision package.)
    • Extensions to Ved to speed up editing HTML (not an HTML previewer - but able to save you a lot of keystrokes if you edit HTML source)
    • A Boyer-Moore-type algorithm for fast string searching. Sometimes very much faster than standard string searching, though not in fact optimal.
    • A permutation generator.


    An older neural net library

    David Young at the University of Sussex previously produced some neural net facilities which were considerably extended by Julian Clinton. A slightly modified version of the resulting package is available here. The system can be browsed online in http://www.cs.bham.ac.uk/research/poplog/neural
    (See especially the neural/help/* files -- though you may have slight problems with the "VED graphic" characters in a Web browser.)

    The package is now automatically included with linux poplog (32 bit and 64 bit).
    However, it can also be fetched from http://www.cs.bham.ac.uk/research/projects/poplog/neural.tar.gz
    It can be installed using the install_package script


    The Simworld package

    http://www.cs.bham.ac.uk/research/poplog/linux-cd/simworld.tar.gz
    is a demonstration package by Matthias Scheutz showing how to use sim_agent to explore evolutionary processes in fairly simple agents. Requires the SimAgent toolkit (included in the latest linux poplog package).
    Introductory documentation can be found in this directory.
    The tar file can be installed (in unix or linux poplog) using the install_package script.

    See also http://mypage.iu.edu/~mscheutz/


    Contributions by Robin Popplestone

    Robin was the designer of the language "COWSEL" which was redesigned and extended and first became widely known as POP-2, around 1971. Pop-11, the core language of Poplog, is a derivative of POP-2.

    For many years he worked in the Artificial Intelligence laboratory at the University of Edinburgh, including making major contributions to the Edinburgh robot Freddy_II, the Alvey-funded Edinburgh DESIGNER system (which used Poplog), and other projects.

    In 1985 he moved to The University of Massachusetts at Amherst where he continued doing research and teaching and making contributions at a distance to the development of Pop-11 and poplog.

    He retired from UMASS around 2003(?) and moved back to Scotland, where he died in 2004.

    There is a memorial web site for him at Umass

    Book on Pop-11 and Programming

    While at UMASS Robin Popplestone wrote a large draft book on Pop-11 Paradigms of Programming. Unfortunately he died before completing it. The latest version is available here, including a review by a reader, installed 11 Sep 2008.

    The PopScheme System
    (Scheme implemented in Pop-11)

    This system, providing an incremental compiler for Scheme, was developed by Robin Popplestone at UMASS, and used there for teaching for several years. It became freely available online in October 1999. A copy is available which has been re-packaged to make it more portable (the original tar file had absolute path names, for instance). This has not been fully checked, though it does work with the examples.scm test file provided in the package.

    There are two formats for downloading, The second one will probably be easier to install on Windows, but I have not checked that this package works in Windows poplog.

    If in doubt check out the version at Umass, described in ftp://www-edlab.cs.umass.edu/pub/cs287/README

    Paradigms

    Robin Popplestone's lecture notes on programming paradigms are available and browsable here, and downloadable here (gzipped tar file about 1MB),

    Austin Tate's Nonlin planning system

    The influential Nonlin hierarchical partial order planning system, developed by Austin Tate in the University of Edinburgh is available in a browsable and downloadable from here: http://www.cs.bham.ac.uk/research/poplog/nonlin and also from the Edinburgh Nonlin Web site: http://www.aiai.ed.ac.uk/project/nonlin/

    Austin has put a lot of effort into making it run as it used to in a much earlier version of Poplog, so that it works in both Windows poplog and Linux/Unix poplog (but not yet in the Poplog editor Ved, as it expects to interact directly with the terminal).

    Further information is here http://www.cs.bham.ac.uk/research/poplog/nonlin/AREADME.txt

    If you wish to play with Nonlin, fetch the zip file. Instructions and historical information regarding Nonlin, including a review of the package, are in the http://www.cs.bham.ac.uk/research/poplog/nonlin/readme.txt file.

    Further information, including sample problem domain definitions using the Nonlin task formalism (TF) can be found in these directories:
    http://www.cs.bham.ac.uk/research/poplog/nonlin/nonlin
    http://www.cs.bham.ac.uk/research/poplog/nonlin/nonlin/tf/

    Nonlin is also available in Edinburgh here: http://www.aiai.ed.ac.uk/project/nonlin/

    The original 1976 technical report defining Nonlin has been scanned in and is now available as a PDF file (6.75Mbytes).

    Tate, A. (1976) "Project Planning Using a Hierarchic Non-linear Planner", D.A.I. Research Report No. 25, August 1976, Department of Artificial Intelligence, University of Edinburgh.
    It is also available from the Birmingham site.

    Further information can be found by giving "nonlin+planner" to google.


    An Online Eliza Chatbot in Pop-11 (Now with audio output.)

    Eliza is a very famous very old AI program simulating a non-directive psychotherapist originally created as a demonstration of AI programming by Joseph Weizenbaum. (See this short Biography). A simplified version of Eliza, (a kind of Chatbot Eliza) implemented in Pop-11 is now online here http://www.cs.bham.ac.uk/research/poplog/eliza/
    Between September 2002 and February 2005 this on-line Pop-11 Eliza had answered about 17,100 questions. It is just a toy, but is less repetitive than many of the online versions of Eliza (partly because of the variety of rules and partly because of the way rules are randomised on each cycle) and it has been of considerable educational value in introductory AI courses. A slightly simpler version of the code for the Pop-11 eliza is available for use with poplog.

    A slightly revised version is used for the Poplog Eliza web site, available here: here).

    NOTE: since the speak_espeak program was added to Pop-11, you can make Eliza speak as well as type responses to the user, provided you have the linux espeak package installed. Use google to find it for your system. On Fedora 10 it was installed simply by using the command:

        yum install espeak
    A teach file introducing students to the task of building their own version of Eliza in Pop-11 can be found here http://www.cs.bham.ac.uk/research/poplog/doc/popteach/respond

    A different design, produced by Riccardo Poli, for a potentially much more sophisticated Eliza, because it can maintain and manipulate arbitrary memories of its interactions in the Poprulebase database, can be found in the middle of this introduction to Poprulebase http://www.cs.bham.ac.uk/research/poplog/newkit/prb/teach/rulebase


    SOME ADDITIONAL BROWSABLE DIRECTORIES

    The Pop-11 and AI teaching and documentation files previously included in the bhamteach tar package and now part of the standard Poplog distribution, can be browsed online in these directories:

    Not all the files in those directories are included in the "bhamteach" package. Not all of them are concerned with Poplog and Pop-11. E.g. some are introductions to Unix facilities, such as teach/Unix.intro.

    There are other online browsable files included in various packages some of which, though not all, are mentioned elsewhere in this file. E.g.


    ADDITIONAL UTILITIES (E.G. PATTERNS, NEWS, LATEX, EMAIL)
    NB: These are already included in the latest Poplog package for linux on PC.

    Several additional "packages" are available, mostly developed in the University of Birmingham. All these are compressed tar files, or simply tar files. These should be unpacked in the $poplocal/local/ directory in order to be conveniently accessible. You can put them in a different place if you understand how to manipulate the search lists used by Ved and the Poplog compilers.

    Do not install them if you have Poplog version 15.6, 15.62, or later, as they are already included.

    • pattern.tar.gz
      An extension to the Pop-11 pattern matcher to support lexically scoped pattern variables. (This is included in the bham.teach.tar.gz file, and in the poprulebase package.)
    • ved_latex.tar.gz
      Latex tutorial and utilities (for driving Latex from inside Ved)
    • vedgn.tar.gz
      Ved-based utilities for reading and posting net news.
    • vedmail.tar.gz
      Ved-based utilities for sending, reading and replying to email.
    • Other superseded packages


    THE POPEXTRAS PACKAGE (superseded)

    (All of this is in the latest linux poplog package.)


    GLOBAL OPEN SOURCE POPLOG LIBRARY (GOSPL) SITE (DEFUNCT?)
    (The web site www.poplog.org is now defunct.)

    Steve Leach and Graham Higgins once developed a Global Open Source Poplog Library (GOSPL) site, at http://www.poplog.org/gospl/ (currently not working - Aug 2009)

    This contains some contributed programs not available elsewhere, provided by Steve Leach and Graham Higgins. However the 'gospl' code is available as a gzipped tar file here and as a browsable directory here.


    THE CONTRIB DIRECTORY

    The browsable contrib directory contains a number of packages and utilities made available to Poplog users.

    The complete contents of the contrib directory are available in a gzipped tar file: contrib.tar.gz.

    This includes source code from various books, including

    See also the materials developed at the University of Amherst by Robin Popplestone



    RELATED POPLOG SITES

    It is expected that a number of mirror sites will be developed.

    www.poplog.org is now defunct.

    is the first of these. It duplicates some of the contents of this directory and also includes the GOSPL site described above.
    WARNING: downloads of versions of poplog at other sides may be out of date. It is best to use the downloads from this site, if at all possible.

    Information for mirror sites

    To facilitate this there was previously a directory containing links to material in this directory which is suitable for fetching to a mirror site. This no longer seems to be necessary, given current internet speeds.

    OpenPoplog at Sourceforge

    See http://www.cs.bham.ac.uk/research/poplog/openpoplog.html


    OTHER FREE SOFTWARE SITES


    Lesstif Problems (Now fixed)

    From Fedora Core 6, motif is no longer provided in Fedora (because of licensing problems of openmotif), so Lesstif is provided instead. This has been found to cause problems in Poplog. In particular, closing windows causes spurious warning messages to be generated by Lesstif code. Details of the problem and a fix are listed in http://www.cs.bham.ac.uk/research/projects/poplog/bugfixes/BUGREPORTS
    It is not necessary to link poplog with motif or lesstif in order to use most of its graphical facilities. In particular the RCLIB graphical tools do not depend on motif functionality.

    JUMP TO CONTENTS LIST


    Chronological Record of Contents

    In order to help those developing mirror sites determine what is new in the Free Poplog directory, there is a file created using
    
        ls -FglRt | gzip
    
    
    which gives a reverse chronological listing of the complete free poplog directory. This file is updated after all major changes.


    Creative Commons License

    This work, and everything else on the Poplog website, is licensed under a Creative Commons Attribution 3.0 License.
    If you use or comment on any of the ideas, tools or documentation, please include a URL if possible, so that readers can see the original (or the latest version thereof).


    Suggestions for improvement are welcome.

    This file maintained by:
    Aaron Sloman
    http://www.cs.bham.ac.uk/~axs/
    Last Updated: 16 Oct 2009; 1 Jan 2010; 19 Jan 2010; 24 Jan 2010; 7 Feb 2010; 12 Aug 2010; 5 May 2012; 4 Sep 2012; 12 Sep 2012