[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Jun 1 21:05:15 1995 
Subject:Re: X windows software 
From:A . Sloman 
Volume-ID:950602.02 

> Are there any public-domain Poplog libraries for X windows?

I feel that Poplog needs a more easily usable set of tools for building
menus and control panels than those provided by default in Poplog.

In particular, although the propsheet library is very general I think
its procedural interface is totally unsuited to Pop-11 (e.g. there is no
procedure with 'slider' as part of its name if you wish to create a
slider: instead there's a very peculiar pattern language, presumably
based on X conventions rather than what a typical Pop-11 user would
expect. This means that although there's lots of generality in the
package, most simple things are just too hard to do. I am sure this must
seriously have held back the use of pop-11 in recent years: a great
opportunity to produce the nicest tools for driving X was lost. (The PWM
was much better -- much easier to use for simple tasks.)

There is also no simple procedural mechanism for specifying and changing
colours, default locations, changing locations, widths of panels, fonts,
etc. because of the decision (in my view wrong-headed) to rely on the X
resource file conventions rather than proper procedural definitions. (If
all these had been properly defined at the Pop-11 procedural level it
would have been trivial to write programs to read X resource files if
necessary.)

All this came from the decision to use standard X widget sets, rather
than defining a portable Poplog-based set of tools for menus and control
panels (analogous to the Poplog graphic library).

I also did not like the way XVED menus are defined. As far as I can see,
they are largely based on an attempt to emulate what a Mac or PC user
might expect rather than what a  Poplog programmer would need as a
procedural interface. Worst of all, you can't use them to drive ordinary
VED, which I much prefer most of the time as I don't like the
proliferation of windows forced by XVED when you use a lot of files.

So, for all these reasons, I have (with considerable difficulty)
produced some experimental libraries based on LIB PROPSHEET, which,
after some help from Adrian Howard and Anthony Worrall, seem to work
under both Openlook and Motif, though I have not used them with Motif
apart from a few minutes of testing over Janet! My menu (control-panel)
facilities have been used at Birmingham to introduce new students to VED
though the more competent users soon wean themselves off the menus and
switch to using commands and key sequences.

I don't know if these tools will work with VMS. If Propsheet works with
VMS then they should work.

My libraries, all written in Pop-11, but presumably easily invoked from
Prolog, are freely available to any Poplog user (along with other
things, such as new teaching materials, lib poprulebase which supersedes
lib newpsys), via ftp from the Birmingham Poplog ftp directory:

     ftp://ftp.cs.bham.ac.uk/pub/dist/poplog

There is a README file giving an overview of the whole directory, which
I append to this message.

The X facilities which are relevant to your question are in the two
subdirectories:

    pui/
        Libraries for creating pop-up menus, dialogue boxes,
        browsers, etc. extending the standard pop_ui library.

    menu/
        For designing autoloadable 'stay up' control panels, with a
        very easy pop-11 syntax (define :menu .... enddefine) and
        a mechanism for re-building the relevant panel automatically
        if you recompile the definition. These panels can be mutually
        recursive, e.g. panel X can bring up panel Y, and panel Y can
        bring up panel X. Thus the control panels need not be tree
        structured, and users can create their own navigational aids.
        As they are autoloaded on demand, they don't take up space till
        they are used.

The menu facilities presuppose the pui facilities. There's an
introductory demo illustrating the use of these facilities to control
a dynamic graphical display in the file menu/teach/menu_demo.p

Both the menu/ and pui/ directories have subdirectories e.g. teach auto
help etc, and each provides a file that can be copied to
$poplocal/local/lib and which extends search lists to make the new
libraries available. There are also "install" shell scripts, which copy
files and set up links to facilitate autoloading. If you produce VMS
versions I would be grateful if you'd send me copies to put in the
libraries.

The file menutar.Z is a compressed tar file containing the contents of
both the menu/ and pui/ subdirectories.

It is possible that some of the facilities not in menu/ or pui/ but in
the in the auto/ and lib/ subdirectories are also required. Please let
me know if you find anything that does not work because of this.

Comments and criticisms always welcome. I would like to see a collection
of freely available libraries for developing interfaces, expert systems,
etc. on top of Poplog.

> ...Replacements
> for the PWM tools that came with flavours would be nice, but I'd also
> like to know what else exists out there.

I expect Flavours eventually to be completely replaced by Objectclass.
There is a graphical library (GO) based on objectclass in Poplog
V14.5, but it still needs quite a bit of work. Some students at
Birmingham have used it successfully, but it is not appropriate for very
high speed graphics.

Best wishes

Aaron

README file for the Birmingham Poplog ftp directory follows.
=======================================================================

README                                      Last Changed 1st April 1995
Aaron Sloman, School of Computer Science,
The University of Birmingham

This file is
    ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/README

This directory (ftp/pub/dist/poplog) contains several sub-directories
which provide local extensions to Poplog files which may be copied and
used elsewhere. Much of the material is teaching material used in
introductory AI courses at the University of Birmingham (in addition to
online teaching material distributed with Poplog.)

The teaching material includes "teach" files and "help" files in the
teach/ and help/ sub-directories, and also Pop-11 program libraires in
the the auto/ and lib/ sub-directories.

Please note that there is no guarantee that anything is bug-free.

Files at top level
    primer.Z
        Is a compressed version of a draft new introduction to
        Pop-11 suitable for people who already know some programming
        Also gives a lot of information about poplog. This is a plain
        ascii text version suitable for online reading. Uncompressed
        version is teach/primer

    primer.ps.Z
        Compressed postcript version of latex formatted version of
        the Pop-11 primer. (May have some formatting oddities).
        252 pages
    primer_2page.ps.Z
        This is a "reduced" version printing two pages side by side
        in landscape mode. 126 pages

    The postscript versions were updated 6th March 1995 to overcome
    a formatting bug regarding "^" in previous versions.

    A hard copy version of the Primer in the reduced format is available
    for 4 pounds plus 1 pound (UK) or 2 pounds (non-UK) postage and
    packing. Orders should be sent to

        The Librarian, School of Computer Science,
        The University of Birmingham, B15 2TT, England

        Email: C.Cushway@cs.bham.ac.uk,
        Phone: +44 121 414 3735         Fax: +44 121 414 4281

The directories are
    actor/
        See the file actor/README
        This directory includes some files that replace the versions
        of LIB ACTOR, LIB EVENT and LIB NEWQUEUE that were in Poplog
        up to versoin 14.2. There's also a demo program.

        This has been incorporated in Poplog with some minor changes
        since Version 14.5. See HELP * ACTOR, HELP * NEWQUEUE

    auto/
        Autoloadable program files suitable for installation in
        $poplocal/local/auto
        Includes some "fixed" versions of Poplog autoloadable files
        and various extensions, including ved_gn.p for reading
        news vian NNTP in VED, ved_texify.p for converting Poplog
        documentation to latex, and many more.

    help/
        Corresponding help files suitable for installation in
        $poplocal/local/help

    lib/
        Non-autoloadable program files files suitable for installation
        in $poplocal/local/lib
        Includes some fixed versions of Poplog library files.

    teach/
        TEACH files for VED and Pop-11 suitable for installation in
        $poplocal/local/teach. The following are among the teach files
        available
            teach/advent_objectclass
                Shows how to use OBJECTCLASS to define an adventure game.
            teach/gstart
                An introduction to Pop-11 using lib rc_graphic
            teach/netstart
                An accelerated introduction to the use of the Pop-11
                database package: how to use it to create simple
                networks, and then write procedures that operate on
                those networks.
            teach/induce_rules.p
                An introduction to rule induction programs
            teach/popcore
                Brief summary of Pop-11 constructs used by beginners
            teach/popcore.tex
                Latex version of the above
            teach/tower
                A new introduction to searching in Pop11
            teach/searching
                More advanced and general searching programs

            (plus other teach files)

    menu/
        The code and documentation for the "recursive hypermenu system"
        an extension to Pop-11 and VED which allows easily extendable
        menus for controlling VED and Pop-11, and spawning Unix
        processes etc. using asynchronous control panels. A tutorial
        example is in menu/teach/menu_demo.p
        For details see menu/help/ved_menu. (A slightly out of date
        printable version of that file is menu/hyper.ps.Z)
        Last updated 3rd March 1995
        NB the set of autoloadable menus in menu/menus/*.p should be
        regarded as a sample, rather than definitive. Some of the
        examples will not work outside Birmingham as they need local
        libraries (available on request.)

    menutar.Z
        A compressed tar file containing the contents of the menu/
        and pui/ subdirectories.

    prb/
        Code and documentation for the POPRULEBASE system: a forward-
        chaining condition-action rule interpeter, replacing LIB NEWPSYS,
        with some unusual features described in these files:

            prb/teach/poprulebase
            prb/help/poprulebase
            prb/help/prb_extra
            prb/help/prb_filter
    prbtar.Z
        A compressed tar file containing the poprulebase package.


    pui/
        An extension of Poplog's pop_ui facilities, for creation of
        popup menus, file browser, requests for text input, etc.
        Used by the menu/ package. Included in menutar.Z

    sim/
        The sim_agent package for exploring agent architectures,
        includes some installation files and several subdirectories
            sim/auto
            sim/doc
            sim/help
            sim/lib
            sim/ref
            sim/teach
            sim/test
    simtar.Z
        A compressed tar file containing the package, including some
        postscript documentation in the sim/doc directory.
        The prb package is needed to run sim.

    ved_latex/
        Some extensions to VED making it convenient for use with
        latex and xdvi. The documentation file is
            ved_latex/ved_latex

    tmac/
        Some nroff macro definition files as described in help/rno and
        help/rno.extra and used in auto/ved_rno.p and auto/ved_rnoprint.p
        Can be used to provide elementary formatting on unix machines
        in VED. You may wish to change the ved commands to use a
        different set of nroff/troff macros

    nntpstuff/
        Some C programs for accessing a News Server via NNTP
        Superseded by auto/ved_gn.p

    pop_ui/ (to be withdrawn)
    Moved to old/pop_ui
        Superseded by /pui
        Some pop-up menu and control panel facilities based on a
        modified version of Propsheet. Currently works only under
        OpenLook.


--- ftp://ftp.cs.bham.ac.uk/pub/dist/poplog/README
--- The University of Birmingham 1994.  --------------------------------