home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / doc / HOWTO / mini / AI-Alife < prev    next >
Text File  |  1997-10-08  |  103KB  |  2,202 lines

  1.  
  2.                                LINUX & AI/ALIFE
  3.                                   MINI-HOWTO
  4.                                        
  5.    
  6.    
  7.    Version 2.0
  8.    
  9.    This document is maintained by John A. Eikenberry
  10.    The master page for this document is
  11.    http://www.ai.uga.edu/~jae/ai.html
  12.    Last modified: Sat Sep 27 17:49:35 EDT 1997
  13.    
  14.    
  15.      _________________________________________________________________
  16.    
  17.    
  18.    
  19. Table of Contents
  20.  
  21.      * What's New
  22.      * Introduction
  23.           + Purpose
  24.           + Finding the Software
  25.           + Updates and Comments
  26.      * Programming Languages
  27.      * Traditional Artificial Intelligence
  28.           + AI class/code libraries
  29.           + AI software kits, applications, etc.
  30.      * Connectionism (neural nets)
  31.           + Connectionist Class/Code Libraries
  32.           + Connectionist Applications
  33.      * Evolutionary Computing (EC) (genetic algorithms/programming)
  34.           + EC Class/Code Libraries
  35.           + EC Applications
  36.      * Artificial Life
  37.           + Alife class/code libraries
  38.           + Alife software kits, applications, etc.
  39.      * Autonomous Agents and Bots
  40.      * AI & Alife related newsgroups
  41.      * AI & Alife resource links
  42.        
  43.    
  44.    
  45.    
  46.      _________________________________________________________________
  47.    
  48.    
  49.    
  50.    
  51.    
  52. What's New
  53.  
  54.    (9.26.97) The web page reformat is done! :) The reformat was to break
  55.    up the master page into a number of frames. The "All-in-0ne" format
  56.    will still be maintained (the framed version is generated from it via
  57.    a Python script). If you are reading this somew here other than the
  58.    master page, please take a look and let me know what you think. Now I
  59.    can get back to work on my thesis...
  60.    
  61.    (8.4.97) Found a few bad links and fixed them. Added a new link the
  62.    "Scientific Applications for Linux" AI page (very nice). Added some
  63.    more stuff (not listed as I will have a new "what's new" section when
  64.    I get the reformat done and will list them there) . This will be my
  65.    lase update until I get the new format done. I've been a bit busy and
  66.    have not gotten it done, but I'm determined to finish it soon.
  67.    
  68.    (5.18.97)I've done a bit of cleaning in the links section. I've also
  69.    added a genetic programming library (GP kernel), the ADATE system, the
  70.    Sugal (GA) system, Geco (GA), Grammer Work Bench (NLP), Screamer (lisp
  71.    library), SNePS, Ara, JATlite, Fuf and SURGE, and finally TIN (alife).
  72.    I've also begun a reorganization of this page. This will end up with
  73.    two versions of this page. One, like this one, containing the whole
  74.    howto, the second will be broken up into parts to allow for
  75.    troublesome connections.
  76.    
  77.    (5.8.97)I've updated some dead or outdated links. I've collected a ton
  78.    of material to add over the last couple months, but have been
  79.    incredibly busy. I'm going to try to find the time to update this page
  80.    soon.
  81.    
  82.    (3.4.97)I removed Scsh and put it on my linux page. The more I thought
  83.    about it, the less Scsh seemed an AI application. I also added Soar, a
  84.    general coginitive architecture development system. It looks pretty
  85.    cool and should work on Linux (any info to the contrary would be
  86.    appreciated, I don't have time right now t o mess with it). Last but
  87.    not least, I've added a couple more Scheme implementations to the list
  88.    (can you tell I really like scheme).
  89.    
  90.    
  91.    
  92. Purpose
  93.  
  94.    The Linux OS has evolved from its origins in hackerdom to a full blown
  95.    UNIX, capable of rivaling any commercial UNIX. It now provides an
  96.    inexpensive base to build a great workstation. It has shed its
  97.    hardware dependencies, having been ported to DEC Alphas, Sparcs, mk86
  98.    (PowerPC/Amiga/etc.), with others on the way. This potential speed
  99.    boost along with its networking support will make it great for
  100.    workstation clusters. As a workstation it allows for all sorts of
  101.    research and development, including artificial intelligence and
  102.    artificial life.
  103.    
  104.    The purpose of this Mini-Howto is to provide a source to find out
  105.    about various software packages, code libraries, and anything else
  106.    that will help someone get started working with (and find resources
  107.    for) artificial intelligence and artificial life. All done with Linux
  108.    specifically in mind.
  109.    
  110.    
  111.    
  112. Where to find this software
  113.  
  114.    All this software should be available via the net (ftp || http). The
  115.    links to where to find it will be provided in the description of each
  116.    package. There will also be plenty of software not covered on these
  117.    pages (which is usually platform independent) located on one of the
  118.    locations listed in the resource links section.
  119.    
  120.    
  121.    
  122. Updates and comments
  123.  
  124.    If you find any mistakes, know of updates to one of the items below,
  125.    or have problems compiling and of the applications, please mail me at:
  126.    jae@ai.uga.edu and I'll see what I can do.
  127.    
  128.    If you know of any AI/Alife applications, class libraries, etc.
  129.    _Please_ email me about them. Include your name, ftp and/or http sites
  130.    where they can be found, plus a brief overview/commentary on the
  131.    software (this info would make things a lot easier on me... but don't
  132.    feel obligated ;).
  133.    
  134.    I know that keeping this list up to date and expanding it will take
  135.    quite a bit of work. So please be patient (I do have other projects).
  136.    I hope you will find this document helpful.
  137.    
  138.    
  139.      _________________________________________________________________
  140.    
  141.    
  142.    
  143. Programming languages
  144.  
  145.    While any programming language can be used for artificial
  146.    intelligence/life research, these are programming languages which are
  147.    used extensively for, if not specifically made for, artificial
  148.    intelligence programming.
  149.    
  150.    
  151.    
  152.    
  153.           
  154.    G÷del [NEW]
  155.           Web page: www.cs.bris.ac.uk/~bowers/goedel.html
  156.           G÷del is a declarative, general-purpose programming language in
  157.           the family of logic programming languages. It is a strongly
  158.           typed language, the type system being based on many-sorted
  159.           logic with parametric polymorphism. It has a module system.
  160.           G÷del supports infinite precision integers, infinite precision
  161.           rationals, and also floating-point numbers. It can solve
  162.           constraints over finite domains of integers and also linear
  163.           rational constraints. It supports processing of finite sets. It
  164.           also has a flexible computation rule and a pruning operator
  165.           which generalizes the commit of the concurrent logic
  166.           programming languages. Considerable emphasis is placed on
  167.           G÷del's meta- logical facilities which provide significant
  168.           support for meta-programs that do analysis, transformation,
  169.           compilation, verification, debugging, and so on.
  170.           
  171.           
  172.           
  173.    LIFE [NEW]
  174.           Web page: www.isg.sfu.ca/life
  175.           LIFE (Logic, Inheritance, Functions, and Equations) is an
  176.           experimental programming language proposing to integrate three
  177.           orthogonal programming paradigms proven useful for symbolic
  178.           computation. From the programmer's standpoint, it may be
  179.           perceived as a language taking after logic programming,
  180.           functional programming, and object-oriented programming. From a
  181.           formal perspective, it may be seen as an instance (or rather, a
  182.           composition of three instances) of a Constraint Logic
  183.           Programming scheme due to Hoehfeld and Smolka refining that of
  184.           Jaffar and Lassez.
  185.           
  186.           
  187.           
  188.    CLisp (Lisp)
  189.           FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  190.           CLISP is a Common Lisp implementation by Bruno Haible and
  191.           Michael Stoll. It mostly supports the Lisp described by 'Common
  192.           LISP: The Language (2nd edition)' and the ANSI Common Lisp
  193.           standard. CLISP includes an interpreter, a byte-compiler, a
  194.           large subset of CLOS (Object-Oriented Lisp) , a foreign
  195.           language interface and, for some machines, a screen editor.
  196.           
  197.           The user interface language (English, German, French) is chosen
  198.           at run time. Major packages that run in CLISP include CLX &
  199.           Garnet. CLISP needs only 2 MB of memory.
  200.           
  201.           
  202.           
  203.    CMU Common Lisp [NEW]
  204.           Web page: www.mv.com/users/pw/lisp/index.html
  205.           FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  206.           CMU Common Lisp is a public domain "industrial strength" Common
  207.           Lisp programming environment. Many of the X3j13 changes have
  208.           been incorporated into CMU CL. Wherever possible, this has been
  209.           done so as to transparently allow the use of either CLtL1 or
  210.           proposed ANSI CL. Probably the new features most interesting to
  211.           users are SETF functions, LOOP and the WITH-COMPILATION-UNIT
  212.           macro.
  213.           
  214.           
  215.           
  216.    GCL (Lisp)
  217.           FTP site: sunsite.unc.edu/pub/Linux/devel/lang/lisp/
  218.           GNU Common Lisp (GCL) has a compiler and interpreter for Common
  219.           Lisp. It used to be known as Kyoto Common Lisp. It is very
  220.           portable and extremely efficient on a wide class of
  221.           applications. It compares favorably in performance with
  222.           commercial Lisps on several large theorem-prover and symbolic
  223.           algebra systems. It supports the CLtL1 specification but is
  224.           moving towards the proposed ANSI definition. GCL compiles to C
  225.           and then uses the native optimizing C compilers (e.g., GCC). A
  226.           function with a fixed number of args and one value turns into a
  227.           C function of the same number of args, returning one value, so
  228.           GCL is maximally efficient on such calls. It has a conservative
  229.           garbage collector which allows great freedom for the C compiler
  230.           to put Lisp values in arbitrary registers.
  231.           
  232.           It has a source level Lisp debugger for interpreted code, with
  233.           display of source code in an Emacs window. Its profiling tools
  234.           (based on the C profiling tools) count function calls and the
  235.           time spent in each function.
  236.           
  237.           
  238.           
  239.    Mercury [NEW]
  240.           Web page: www.cs.mu.oz.au/research/mercury/
  241.           Mercury is a new, purely declarative logic programming
  242.           language. Like Prolog and other existing logic programming
  243.           languages, it is a very high-level language that allows
  244.           programmers to concentrate on the problem rather than the
  245.           low-level details such as memory management. Unlike Prolog,
  246.           which is oriented towards exploratory programming, Mercury is
  247.           designed for the construction of large, reliable, efficient
  248.           software systems by teams of programmers. As a consequence,
  249.           programming in Mercury has a different flavor than programming
  250.           in Prolog.
  251.           
  252.           
  253.           
  254.    DFKI OZ
  255.           Web page: www.ps.uni-sb.de/oz/
  256.           FTP site: ps-ftp.dfki.uni-sb.de/pub/oz2/
  257.           Oz is a high-level programming language designed for concurrent
  258.           symbolic computation. It is based on a new computation model
  259.           providing a uniform and simple foundation for several
  260.           programming paradigms, including higher-order functional,
  261.           constraint logic, and concurrent object-oriented programming.
  262.           Oz is designed as a successor to languages such as Lisp, Prolog
  263.           and Smalltalk, which fail to support applications that require
  264.           concurrency, reactivity, and real-time control.
  265.           
  266.           DFKI Oz is an interactive implementation of Oz featuring a
  267.           programming interface based on GNU Emacs, a concurrent browser,
  268.           an object-oriented interface to Tcl/Tk, powerful
  269.           interoperability features (sockets, C, C++), an incremental
  270.           compiler, a garbage collector, and support for stand-alone
  271.           applications. Performance is competitive with commercial Prolog
  272.           and Lisp systems.
  273.           
  274.           
  275.           
  276.    BinProlog [NEW]
  277.           Web site(documentation):
  278.           clement.info.umoncton.ca/BinProlog/UNCOMPRESSED/doc/html/art.h
  279.           tml
  280.           FTP site(source): clement.info.umoncton.ca/BinProlog
  281.           FTP site(binary):
  282.           clement.info.umoncton.ca/BinProlog/UNCOMPRESSED/bin
  283.           BinProlog is a fast and compact Prolog compiler, based on the
  284.           transformation of Prolog to binary clauses. The compilation
  285.           technique is similar to the Continuation Passing Style
  286.           transformation used in some ML implementations. BinProlog 5.00
  287.           is also probably the first Prolog system featuring dynamic
  288.           recompilation of asserted predicates (a technique similar to
  289.           the one used in some object oriented languages like SELF 4.0),
  290.           and a very efficient segment preserving copying heap garbage
  291.           collector.
  292.           
  293.           Although it (used to) incorporate some last minute research
  294.           experiments, which might look adventurous at the first sight,
  295.           BinProlog is a fairly robust and complete Prolog implementation
  296.           featuring both C-emulated execution and generation of
  297.           stand-alone applications by compilation to C.
  298.           
  299.           
  300.           
  301.    SWI Prolog
  302.           Web page: swi.psy.uva.nl/projects/xpce/SWI-Prolog.html
  303.           FTP site: swi.psy.uva.nl/pub/SWI-Prolog/
  304.           SWI is a free version of prolog in the Edinburgh Prolog family
  305.           (thus making it very similar to Quintus and many other
  306.           versions). With: a large library of built in predicates, a
  307.           module system, garbage collection, a two-way interface with the
  308.           C language, plus many other features. It is meant as a
  309.           educational language, so it's compiled code isn't the fastest.
  310.           Although it similarity to Quintus allows for easy porting.
  311.           
  312.           XPCE is freely available in binary form for the Linux version
  313.           of SWI-prolog. XPCE is an object oriented X-windows GUI
  314.           development package/environment.
  315.           
  316.           
  317.           
  318.    BIGLOO Scheme
  319.           Web site: cuiwww.unige.ch/~serrano/bigloo.html
  320.           BIGLOO is a Scheme interpreter and compiler. It conforms to the
  321.           IEEE-Scheme standard (IEEE P1178) with some extensions, such as
  322.           regular expression parsing (RGC), a lexical analyzer generator,
  323.           a full foreign function interface, and a pattern matching
  324.           compiler. Bigloo can also compile modules written in Caml (an
  325.           ML dialect), letting you mix Scheme, ML, and C. Object-oriented
  326.           programming is provided by Meroon v3. The main goal of Bigloo
  327.           is to deliver small and fast stand alone applications. Bigloo
  328.           produces ANSI C and hence should be easy to port.
  329.           
  330.           
  331.           
  332.    ELK Scheme
  333.           Web site: www.informatik.uni-bremen.de/~net/elk
  334.           US FTP site: ftp.x.org/contrib/devel_tools/
  335.           EU FTP site: ftp.tzi.uni-bremen.de/tzi/dmn/elk/
  336.           Elk (Extension Language Kit) has been designed specifically as
  337.           an embeddable, reusable extension language subsystem for
  338.           applications written in C or C++. Elk is also useful as a
  339.           stand-alone Scheme implementation, in particular as a platform
  340.           for rapid prototyping of X11-based Scheme programs. Elk was
  341.           first published in 1989; the current version is Elk 3.0. The
  342.           Elk distribution includes a Scheme interpreter (embeddable and
  343.           stand-alone versions), several dynamically loadable extensions,
  344.           run-time support (including a top-level implemented in Scheme
  345.           and a debugger), and 230+ pages of documentation (troff and
  346.           Postscript format).
  347.           
  348.           Major features of Elk are incremental, dynamic loading of
  349.           compiled extensions (supported on many platforms); freezing of
  350.           the interpreter or application into a new executable file; a
  351.           C/C++ programmer's interface for language interoperability;
  352.           Scheme bindings for X11 Xlib, Xt, Athena and Motif Widgets; a
  353.           UNIX interface (not restricted to POSIX); bitstrings, records,
  354.           and regular expressions; a stop-and-copy and an incremental,
  355.           generational garbage collector.
  356.           
  357.           
  358.           
  359.    Gambit-C Scheme
  360.           Web site: www.iro.umontreal.ca/~gambit/
  361.           FTP site: ftp.iro.umontreal.ca/pub/parallele/gambit
  362.           In this variant of Gambit, the compiler generates highly
  363.           portable C code that is reasonably efficient. The primary goals
  364.           of Gambit-C are portability and correctness (in particular it
  365.           correctly implements tail-recursion across modules and uses a
  366.           precise garbage-collector). Gambit-C runs on a wide range of
  367.           Unix workstations, on Macintosh, and DOS/Windows. It also
  368.           supports these features: dynamic-loading of compiled files,
  369.           C-interface (FFI), and a memory management system that expands
  370.           and contracts the heap based on the program's needs.
  371.           
  372.           
  373.           
  374.    Kali Scheme [NEW]
  375.           Web site: www.neci.nj.nec.com/PLS/Kali.html
  376.           Kali Scheme is a distributed implementation of Scheme that
  377.           permits efficient transmission of higher-order objects such as
  378.           closures and continuations. The integration of distributed
  379.           communication facilities within a higher-order programming
  380.           language engenders a number of new abstractions and paradigms
  381.           for distributed computing. Among these are user-specified
  382.           load-balancing and migration policies for threads,
  383.           incrementally-linked distributed computations, agents, and
  384.           parameterized client-server applications. Kali Scheme supports
  385.           concurrency and communication using first-class procedures and
  386.           continuations. It integrates procedures and continuations into
  387.           a message-based distributed framework that allows any Scheme
  388.           object (including code vectors) to be sent and received in a
  389.           message.
  390.           
  391.           
  392.           
  393.    MIT Scheme
  394.           Web site: www-swiss.ai.mit.edu/scheme-home.html
  395.           FTP site: swiss-ftp.ai.mit.edu:/archive/scheme-7.4/
  396.           MIT Scheme includes Edwin (Scheme's Emacs-like editor) and Liar
  397.           (the Scheme compiler). Does not have a convenient foreign
  398.           function interface yet. FTP distribution includes MIT C-Scheme
  399.           Reference and User manuals, as well as the Revised^4 Report on
  400.           Scheme.
  401.           
  402.           
  403.           
  404.    MzScheme
  405.           Web site: www.cs.rice.edu/CS/PLT/packages/mzscheme
  406.           FTP site: ftp.cs.rice.edu/public/languages/plt/mzscheme/
  407.           MzScheme is fully R4RS -compilant (including the full numerical
  408.           tower), and also provides:
  409.           
  410.           + Pre-emptive threads for all platforms
  411.           + Generative structures (a.k.a. _record data-types_)
  412.           + A system for exceptions, where all primitive errors raise a
  413.             specific exception
  414.           + First-class compilation units for organizing program
  415.             components
  416.           + A class-based object system reminiscent of C++
  417.           + Built-in regular expression matching tools
  418.           + Simple TCP communication support on all platforms
  419.           + Portable file-system access and process control commands
  420.             
  421.    
  422.           
  423.           
  424.           
  425.    RScheme [NEW]
  426.           Web site:www.rosette.com/~donovan/rs/rscheme.html
  427.           FTP site: ftp.rosette.com/pub/rscheme
  428.           RScheme is an object-oriented, extended version of the Scheme
  429.           dialect of Lisp. RScheme is freely redistributable, and offers
  430.           reasonable performance despite being extraordinarily portable.
  431.           RScheme can be compiled to C, and the C can then compiled with
  432.           a normal C compiler to generate machine code. By default,
  433.           however, RScheme compiles to bytecodes which are interpreted by
  434.           a (runtime) virtual machine. This ensures that compilation is
  435.           fast and keeps code size down. In general, we recommend using
  436.           the (default) bytecode code generation system, and only
  437.           compiling your time-critical code to machine code. This allows
  438.           a nice adjustment of space/time tradeoffs. (see web site for
  439.           details)
  440.           
  441.           
  442.           
  443.    Scheme->C
  444.           FTP site: gatekeeper.dec.com:/pub/DEC/Scheme-to-C/
  445.           Scheme->C is an R4RS compliant Scheme system that is centered
  446.           around a compiler that compiles Scheme to C. Besides the base
  447.           language, the system includes "expansion passing style" macros,
  448.           a foreign function call capability, records, weak pointers, 3
  449.           X11 interfaces, call/cc, and a generational, conservative,
  450.           copying garbage collector. The result is a system that is
  451.           portable, efficient, and able to build applications that
  452.           contain a mix of compiled and interpreted Scheme, and compiled
  453.           code from C, C++ and other languages.
  454.           
  455.           
  456.           
  457.    Scheme48
  458.           Web site: www-swiss.ai.mit.edu/~jar/s48.html (download from ftp
  459.           site)
  460.           FTP site: swiss-ftp.ai.mit.edu:/archive/s48/
  461.           Scheme 48 is a Scheme implementation based on a virtual machine
  462.           architecture. Scheme 48 is designed to be straightforward,
  463.           flexible, reliable, and fast. It should be easily portable to
  464.           32-bit byte-addressed machines that have POSIX and ANSI C
  465.           support. In addition to the usual Scheme built-in procedures
  466.           and a development environment, library software includes
  467.           support for hygienic macros (as described in the Revised^4
  468.           Scheme report), multitasking, records, exception handling, hash
  469.           tables, arrays, weak pointers, and FORMAT. Scheme 48 implements
  470.           and exploits an experimental module system loosely derived from
  471.           Standard ML and Scheme Xerox. The development environment
  472.           supports interactive changes to modules and interfaces.
  473.           
  474.           
  475.           
  476.    SCM (Scheme)
  477.           FTP site: swiss-ftp.ai.mit.edu:/archive/scm/
  478.           SCM conforms to the Revised^4 Report on the Algorithmic
  479.           Language Scheme and the IEEE P1178 specification. Scm is
  480.           written in C. It uses the following utilities (all available at
  481.           the ftp site).
  482.           
  483.           + SLIB (Standard Scheme Library) is a portable Scheme library
  484.             which is intended to provide compatibility and utility
  485.             functions for all standard Scheme implementations, including
  486.             SCM, Chez, Elk, Gambit, MacScheme, MITScheme, scheme->C,
  487.             Scheme48, T3.1, and VSCM, and is available as the file
  488.             slib2a0.tar.gz. Written by Aubrey Jaffer.
  489.           + JACAL is a symbolic math system written in Scheme, and is
  490.             available as the file jacal1a4.tar.gz.
  491.           + SCMCONFIG contains additional files for the SCM distribution
  492.             to build SCM on Unix machines using GNU autoconf.
  493.           + SLIB-PSD is a portable debugger for Scheme (requires emacs
  494.             editor).
  495.           + TURTLSCM is a turtle graphics package which works with SCM on
  496.             MSDOS or X11 machines. Written by Mkinen Sami (sjm@cc.tut.fi)
  497.             and Jarkko Leppanen (jtl@cc.tut.fi), it is available as the
  498.             file turtlegr.tar.Z.
  499.           + XSCM is an X Windows interface to Xlib and the Motif and
  500.             OpenLook toolkits for the SCM interpreter. It requires
  501.             scm4a10 or later. It should be available as xscm1.05.tar.Z.
  502.             Contact campbell@redsox.bsw.com for more information.
  503.             
  504.    
  505.           
  506.           
  507.           
  508.    Shift [NEW]
  509.           Web site: www.path.berkeley.edu/shift/
  510.           Shift is a programming language for describing dynamic networks
  511.           of hybrid automata. Such systems consist of components which
  512.           can be created, interconnected and destroyed as the system
  513.           evolves. Components exhibit hybrid behavior, consisting of
  514.           continuous-time phases separated by discrete-event transitions.
  515.           Components may evolve independently, or they may interact
  516.           through their inputs, outputs and exported events. The
  517.           interaction network itself may evolve. 
  518.           
  519.    
  520.    
  521.    
  522.    
  523. Traditional Artificial Intelligence
  524.  
  525.     Traditional AI is based around the ideas of logic, rule systems,
  526.    linguistics, and the concept of rationality. At its roots are
  527.    programming languages such as Lisp and Prolog. Expert systems are the
  528.    largest successful example of this paradigm. An expert system consists
  529.    of a detailed knowledge base and a complex rule system to utilize it.
  530.    Such systems have been used for such things as medical diagnosis
  531.    support and credit checking systems. 
  532.    
  533.   AI class/code libraries
  534.   
  535.    These are libraries of code or classes for use in programming within
  536.    the artificial intelligence field. They are not meant as stand alone
  537.    applications, but rather as tools for building your own applications.
  538.    
  539.    
  540.    
  541.    
  542.           
  543.    AI Search
  544.           FTP site: ftp.icce.rug.nl/pub/peter/
  545.           Submitted by: Peter M. Bouthoorn
  546.           Basically, the library offers the programmer a set of search
  547.           algorithms that may be used to solve all kind of different
  548.           problems. The idea is that when developing problem solving
  549.           software the programmer should be able to concentrate on the
  550.           representation of the problem to be solved and should not need
  551.           to bother with the implementation of the search algorithm that
  552.           will be used to actually conduct the search. This idea has been
  553.           realized by the implementation of a set of search classes that
  554.           may be incorporated in other software through _C++_'s features
  555.           of derivation and inheritance. The following search algorithms
  556.           have been implemented:
  557.           
  558.           - depth-first tree and graph search.
  559.           - breadth-first tree and graph search.
  560.           - uniform-cost tree and graph search.
  561.           - best-first search.
  562.           - bidirectional depth-first tree and graph search.
  563.           - bidirectional breadth-first tree and graph search.
  564.           - AND/OR depth tree search.
  565.           - AND/OR breadth tree search.
  566.           
  567.           
  568.           Peter plans to release a new version of the library soon, which
  569.           will also be featured in a book about C++ and AI to appear this
  570.           year.
  571.           
  572.           
  573.           
  574.    Chess In Lisp (CIL) [NEW]
  575.           FTP site: chess.onenet.net/pub/chess/uploads/projects/
  576.           The CIL (Chess In Lisp) foundation is a Common Lisp
  577.           implementaion of all the core functions needed for development
  578.           of chess applications. The main purpose of the CIL project is
  579.           to get AI researchers interested in using Lisp to work in the
  580.           chess domain.
  581.           
  582.           
  583.           
  584.    Screamer
  585.           Web site: www.cis.upenn.edu/~screamer-tools/home.html
  586.           Screamer is an extension of Common Lisp that adds support for
  587.           nondeterministic programming. Screamer consists of two levels.
  588.           The basic nondeterministic level adds support for backtracking
  589.           and undoable side effects. On top of this nondeterministic
  590.           substrate, Screamer provides a comprehensive constraint
  591.           programming language in which one can formulate and solve mixed
  592.           systems of numeric and symbolic constraints. Together, these
  593.           two levels augment Common Lisp with practically all of the
  594.           functionality of both Prolog and constraint logic programming
  595.           languages such as CHiP and CLP(R). Furthermore, Screamer is
  596.           fully integrated with Common Lisp. Screamer programs can
  597.           coexist and interoperate with other extensions to Common Lisp
  598.           such as CLOS, CLIM and Iterate.
  599.           
  600.           
  601.           
  602.    
  603.    
  604.    
  605.    
  606.   AI software kits, applications, etc.
  607.   
  608.    These are various applications, software kits, etc. meant for research
  609.    in the field of artificial intelligence. Their ease of use will vary,
  610.    as they were designed to meet some particular research interest more
  611.    than as an easy to use commercial package.
  612.    
  613.    
  614.           
  615.    ASA - Adaptive Simulated Annealing
  616.           Web site: www.ingber.com/#ASA-CODE
  617.           FTP site: ftp.ingber.com/
  618.           ASA (Adaptive Simulated Annealing) is a powerful global
  619.           optimization C-code algorithm especially useful for nonlinear
  620.           and/or stochastic systems.
  621.           
  622.           ASA is developed to statistically find the best global fit of a
  623.           nonlinear non-convex cost-function over a D-dimensional space.
  624.           This algorithm permits an annealing schedule for 'temperature'
  625.           T decreasing exponentially in annealing-time k, T = T_0 exp(-c
  626.           k^1/D). The introduction of re-annealing also permits
  627.           adaptation to changing sensitivities in the multi-dimensional
  628.           parameter-space. This annealing schedule is faster than fast
  629.           Cauchy annealing, where T = T_0/k, and much faster than
  630.           Boltzmann annealing, where T = T_0/ln k.
  631.           
  632.           
  633.           
  634.    Babylon
  635.           FTP site: ftp.gmd.de/gmd/ai-research/Software/Babylon/
  636.           BABYLON is a modular, configurable, hybrid environment for
  637.           developing expert systems. Its features include objects, rules
  638.           with forward and backward chaining, logic (Prolog) and
  639.           constraints. BABYLON is implemented and embedded in Common
  640.           Lisp.
  641.           
  642.           
  643.           
  644.    CLEARS
  645.           Web site: www.coli.uni-sb.de/~clears/
  646.           The CLEARS system is an interactive graphical environment for
  647.           computational semantics. The tool allows exploration and
  648.           comparison of different semantic formalisms, and their
  649.           interaction with syntax. This enables the user to get an idea
  650.           of the range of possibilities of semantic construction, and
  651.           also where there is real convergence between theories.
  652.           
  653.           
  654.           
  655.    CLIPS
  656.           Web site: www.jsc.nasa.gov/~clips/CLIPS.html
  657.           FTP site:
  658.           cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/areas/exper
  659.           t/systems/clips
  660.           
  661.           CLIPS is a productive development and delivery expert system
  662.           tool which provides a complete environment for the construction
  663.           of rule and/or object based expert systems.
  664.           
  665.           CLIPS provides a cohesive tool for handling a wide variety of
  666.           knowledge with support for three different programming
  667.           paradigms: rule-based, object-oriented and procedural.
  668.           Rule-based programming allows knowledge to be represented as
  669.           heuristics, or "rules of thumb," which specify a set of actions
  670.           to be performed for a given situation. Object-oriented
  671.           programming allows complex systems to be modeled as modular
  672.           components (which can be easily reused to model other systems
  673.           or to create new components). The procedural programming
  674.           capabilities provided by CLIPS are similar to capabilities
  675.           found in languages such as C, Pascal, Ada, and LISP.
  676.           
  677.           
  678.           
  679.    EMA-XPS - A Hybrid Graphic Expert System Shell
  680.           Web site: wmwap1.math.uni-wuppertal.de:80/EMA-XPS/
  681.           EMA-XPS is a hybrid graphic expert system shell based on the
  682.           ASCII-oriented shell Babylon 2.3 of the German National
  683.           Research Center for Computer Sciences (GMD). In addition to
  684.           Babylon's AI-power (object oriented data representation,
  685.           forward and backward chained rules - collectible into sets,
  686.           horn clauses, and constraint networks) a graphic interface
  687.           based on the X11 Window System and the OSF/Motif Widget Library
  688.           has been provided.
  689.           
  690.           
  691.           
  692.    FOOL & FOX
  693.           FTP site: ntia.its.bldrdoc.gov/pub/fuzzy/prog/
  694.           FOOL stands for the Fuzzy Organizer OLdenburg. It is a result
  695.           from a project at the University of Oldenburg. FOOL is a
  696.           graphical user interface to develop fuzzy rulebases. FOOL will
  697.           help you to invent and maintain a database that specifies the
  698.           behavior of a fuzzy-controller or something like that.
  699.           
  700.           FOX is a small but powerful fuzzy engine which reads this
  701.           database, reads some input values and calculates the new
  702.           control value.
  703.           
  704.           
  705.           
  706.    FUF and SURGE
  707.           Web site: www.dfki.de/lt/registry/generation/fuf.html
  708.           FTP site: ftp.cs.columbia.edu/pub/fuf/
  709.           FUF is an extended implementation of the formalism of
  710.           functional unification grammars (FUGs) introduced by Martin Kay
  711.           specialized to the task of natural language generation. It adds
  712.           the following features to the base formalism:
  713.           
  714.           + Types and inheritance.
  715.           + Extended control facilities (goal freezing, intelligent
  716.             backtracking).
  717.           + Modular syntax.
  718.             
  719.    These extensions allow the development of large grammars which can be
  720.           processed efficiently and can be maintained and understood more
  721.           easily. SURGE is a large syntactic realization grammar of
  722.           English written in FUF. SURGE is developed to serve as a black
  723.           box syntactic generation component in a larger generation
  724.           system that encapsulates a rich knowledge of English syntax.
  725.           SURGE can also be used as a platform for exploration of grammar
  726.           writing with a generation perspective.
  727.           
  728.           
  729.           
  730.    The Grammar Workbench
  731.           Web site: www.cs.kun.nl/agfl/GWB.html
  732.           The Grammar Workbench, or GWB for short, is an environment for
  733.           the comfortable development of Affix Grammars in the
  734.           AGFL-formalism. Its purposes are:
  735.           
  736.           + to allow the user to input, inspect and modify a grammar;
  737.           + to perform consistency checks on the grammar;
  738.           + to compute grammar properties;
  739.           + to generate example sentences;
  740.           + to assist in performing grammar transformations.
  741.             
  742.    
  743.           
  744.           
  745.           
  746.    GSM Suite [NEW]
  747.           Web site: www.slip.net/~andrewm/gsm/
  748.           The GSM Suite is a set of programs for using Finite State
  749.           Machines in a graphical fashion. The suite consists of programs
  750.           that edit, compile, and print state machines. Included in the
  751.           suite is an editor program, gsmedit, a compiler, gsm2cc, that
  752.           produces a C++ implementation of a state machine, a PostScript
  753.           generator, gsm2ps, and two other minor programs. GSM is
  754.           licensed under the GNU Public License and so is free for your
  755.           use under the terms of that license.
  756.           
  757.           
  758.           
  759.    Illuminator [NEW]
  760.           Web site:
  761.           documents.cfar.umd.edu/resources/source/illuminator.html
  762.           Illuminator is a toolset for developing OCR and Image
  763.           Understanding applications. Illuminator has two major parts: a
  764.           library for representing, storing and retrieving OCR
  765.           information, heretofore called dafslib, and an X-Windows "DAFS"
  766.           file viewer, called illum. Illuminator and DAFS lib were
  767.           designed to supplant existing OCR formats and become a standard
  768.           in the industry. They particularly are extensible to handle
  769.           more than just English. The features of this release:
  770.           
  771.           + 5 magnification levels for images
  772.           + flagged characters and words
  773.           + unicode support -- American, British, French, German, Greek,
  774.             Italian, MICR, Norwegian, Russian, Spanish, Swedish,
  775.             keyboards
  776.           + reads DAFS, TIFF's, PDA's (image only)
  777.           + save to DAFS, ASCII/UTF or Unicode
  778.           + Entity Viewer - shows properties, character choices, bounding
  779.             boxes image fragment for a selected entity, change type,
  780.             change content, hierarchy mode
  781.             
  782.    
  783.           
  784.           
  785.           
  786.    Jess, the Java Expert System Shell [NEW]
  787.           Web site: herzberg.ca.sandia.gov/jess/
  788.           Jess is a clone of the popular CLIPS expert system shell
  789.           written entirely in Java. With Jess, you can conveniently give
  790.           your applets the ability to 'reason'. Jess is compatible with
  791.           all versions of Java starting with version 1.0.2. Jess
  792.           implements the following constructs from CLIPS: defrules,
  793.           deffunctions, defglobals, deffacts, and deftemplates.
  794.           
  795.           
  796.           
  797.    learn [NEW]
  798.           FTP site: sunsite.unc.edu/pub/Linux/apps/cai/
  799.           Learn is a vocable learning program with memory model.
  800.           
  801.           
  802.           
  803.    Otter: An Automated Deduction System
  804.           Web site: www.mcs.anl.gov/home/mccune/ar/otter
  805.           Our current automated deduction system Otter is designed to
  806.           prove theorems stated in first-order logic with equality.
  807.           Otter's inference rules are based on resolution and
  808.           paramodulation, and it includes facilities for term rewriting,
  809.           term orderings, Knuth-Bendix completion, weighting, and
  810.           strategies for directing and restricting searches for proofs.
  811.           Otter can also be used as a symbolic calculator and has an
  812.           embedded equational programming system.
  813.           
  814.           
  815.           
  816.    RIPPER [NEW]
  817.           Web site: www.research.att.com/~wcohen/ripperd.html
  818.           Ripper is a system for fast effective rule induction. Given a
  819.           set of data, Ripper will learn a set of rules that will predict
  820.           the patterns in the data. Ripper is written in ASCI C and comes
  821.           with documentation and some sample problems.
  822.           
  823.           
  824.           
  825.    SNePS
  826.           Web site: www.cs.buffalo.edu/pub/sneps/WWW/
  827.           FTP site: ftp.cs.buffalo.edu/pub/sneps/
  828.           The long-term goal of The SNePS Research Group is the design
  829.           and construction of a natural-language-using computerized
  830.           cognitive agent, and carrying out the research in artificial
  831.           intelligence, computational linguistics, and cognitive science
  832.           necessary for that endeavor. The three-part focus of the group
  833.           is on knowledge representation, reasoning, and natural-language
  834.           understanding and generation. The group is widely known for its
  835.           development of the SNePS knowledge representation/reasoning
  836.           system, and Cassie, its computerized cognitive agent.
  837.           
  838.           
  839.           
  840.    Soar [NEW]
  841.           Web site: www.isi.edu/soar/soar.html
  842.           FTP site: cs.cmu.edu/afs/cs/project/soar/public/Soar6/
  843.           Soar has been developed to be a general cognitive architecture.
  844.           We intend ultimately to enable the Soar architecture to:
  845.           
  846.           + work on the full range of tasks expected of an intelligent
  847.             agent, from highly routine to extremely difficult, open-ended
  848.             problems
  849.           + represent and use appropriate forms of knowledge, such as
  850.             procedural, declarative, episodic, and possibly iconic
  851.           + employ the full range of problem solving methods
  852.           + interact with the outside world and
  853.           + learn about all aspects of the tasks and its performance on
  854.             them.
  855.             
  856.    In other words, our intention is for Soar to support all the
  857.           capabilities required of a general intelligent agent.
  858.           
  859.           
  860.           
  861.    TCM (Toolkit for Conceptual Modeling) [NEW]
  862.           Web site: www.cs.vu.nl/~tcm/
  863.           FTP site: ftp.cs.vu.nl/pub/tcm/
  864.           TCM (Toolkit for Conceptual Modeling) is our suite of graphical
  865.           editors. TCM contains graphical editors for Entity-Relationship
  866.           diagrams, Class-Relationship diagrams, Data and Event Flow
  867.           diagrams, State Transition diagrams, Jackson Process Structure
  868.           diagrams and System Network diagrams, Function Refinement trees
  869.           and various table editors, such as a Function-Entity table
  870.           editor and a Function Decomposition table editor. TCM is easy
  871.           to use and performs numerous consistency checks, some of them
  872.           immediately, some of them upon request.
  873.           
  874.           
  875.           
  876.    WEKA [NEW]
  877.           Web site: lucy.cs.waikato.ac.nz/~ml/
  878.           WEKA (Waikato Environment for Knowledge Analysis) is an
  879.           state-of-the-art facility for applying machine learning
  880.           techniques to practical problems. It is a comprehensive
  881.           software "workbench" that allows people to analyse real-world
  882.           data. It integrates different machine learning tools within a
  883.           common framework and a uniform user interface. It is designed
  884.           to support a "simplicity-first" methodology, which allows users
  885.           to experiment interactively with simple machine learning tools
  886.           before looking for more complex solutions. 
  887.           
  888.    
  889.    
  890.    
  891.    
  892. Connectionism
  893.  
  894.     Connectionism is a technical term for a group of related techniques.
  895.    These techniques include areas such as Artificial Neural Networks,
  896.    Semantic Networks and a few other similar ideas. My present focus is
  897.    on neural networks (though I am looking for resources on the other
  898.    techniques). Neural networks are programs designed to simulate the
  899.    workings of the brain. They consist of a network of small
  900.    mathematical-based nodes, which work together to form patterns of
  901.    information. They have tremendous potential and currently seem to be
  902.    having a great deal of success with image processing and robot
  903.    control. 
  904.    
  905.   Connectionist class/code libraries
  906.   
  907.    These are libraries of code or classes for use in programming within
  908.    the Connectionist field. They are not meant as stand alone
  909.    applications, but rather as tools for building your own applications.
  910.    
  911.    
  912.           
  913.    S-ElimBel [NEW]
  914.           Web site: www.spaces.uci.edu/thiery/elimbel/
  915.           S-ElimBel is an algorithm that computes the belief in a
  916.           Bayesian network, implemented in MIT-Scheme. This algorithm has
  917.           the particularity of being rather easy to understand. Moreover,
  918.           one can apply it to any kind of Bayesian network - it being
  919.           singly connected or muliply connected. It is, however, less
  920.           powerful than the standard algorithm of belief propagation.
  921.           Indeed, the computation has to be reconducted entirely for each
  922.           new evidence added to the network. Also, one needs to run the
  923.           algorithm as many times as one has nodes for which the belief
  924.           is wanted.
  925.           
  926.           
  927.           
  928.    Matrix Class [NEW]
  929.           FTP site: pink.cs.ucla.edu/pub/
  930.           A simple, fast, efficient C++ Matrix class designed for
  931.           scientists and engineers. The Matrix class is well suited for
  932.           applications with complex math algorithms. As an demonstration
  933.           of the Matrix class, it was used to implement the backward
  934.           error propagation algorithm for a multi-layer feed-forward
  935.           artificial neural network.
  936.           
  937.           
  938.           
  939.    ANSI-C Neural Networks [NEW]
  940.           Web site: www.geocities.com/CapeCanaveral/1624/
  941.           This site contains ANSC-C source code for 8 types of neural
  942.           nets, including:
  943.           
  944.           + Adaline Network
  945.           + Backpropagation
  946.           + Hopfield Model
  947.           + (BAM) Bidirectional Associative Memory
  948.           + Boltzmann Machine
  949.           + Counterpropagation
  950.           + (SOM) Self-Organizing Map
  951.           + (ART1) Adaptive Resonance Theory
  952.             
  953.    They were designed to help turn the theory of a particular network
  954.           model into the design for a simulator implementation , and to
  955.           help with embeding an actual application into a particular
  956.           network model.
  957.           
  958.           
  959.           
  960.    Software for Flexible Bayesian Modeling [NEW]
  961.           Web site: www.cs.utoronto.ca/~radford/fbm.software.html
  962.           This software implements flexible Bayesian models for
  963.           regression and classification applications that are based on
  964.           multilayer perceptron neural networks or on Gaussian processes.
  965.           The implementation uses Markov chain Monte Carlo methods.
  966.           Software modules that support Markov chain sampling are
  967.           included in the distribution, and may be useful in other
  968.           applications.
  969.           
  970.           
  971.           
  972.    Various (C++) Neural Networks
  973.           Web site: www.mcs.com/~drt/svbp.html
  974.           Submitted by: Don Tveter
  975.           Example neural net codes from the book, The Basis of Artificial
  976.           Intelligence. These are simple example codes of these various
  977.           neural nets. They work well as a good starting point for simple
  978.           experimentation and for learning what the code is like behind
  979.           the simulators. The types of networks available on this site
  980.           are: (implemented in C++)
  981.           
  982.           + The Backprop Package
  983.           + The Nearest Neighbor Algorithms
  984.           + The Interactive Activation Algorithm
  985.           + The Hopfield and Boltzman machine Algorithms
  986.           + The Linear Pattern Classifier
  987.           + ART I
  988.           + Bi-Directional Associative Memory
  989.           + The Feedforward Counter-Propagation Network
  990.             
  991.    
  992.           
  993.           
  994.           
  995.    
  996.    
  997.    
  998.    
  999.   Connectionist software kits/applications
  1000.   
  1001.    These are various applications, software kits, etc. meant for research
  1002.    in the field of Connectionism. Their ease of use will vary, as they
  1003.    were designed to meet some particular research interest more than as
  1004.    an easy to use commercial package.
  1005.    
  1006.    
  1007.           
  1008.    Aspirin/MIGRAINES (am6.tar.Z on ftp site) [NEW]
  1009.           FTP site:
  1010.           sunsite.unc.edu/pub/academic/computer-science/neural-networks/
  1011.           programs/Aspirin/
  1012.           The software that we are releasing now is for creating, and
  1013.           evaluating, feed-forward networks such as those used with the
  1014.           backpropagation learning algorithm. The software is aimed both
  1015.           at the expert programmer/neural network researcher who may wish
  1016.           to tailor significant portions of the system to his/her precise
  1017.           needs, as well as at casual users who will wish to use the
  1018.           system with an absolute minimum of effort.
  1019.           
  1020.           
  1021.           
  1022.    Neureka ANS (nn/xnn) [NEW]
  1023.           Web site: www.bgif.no/neureka/
  1024.           FTP site: ftp.ii.uib.no/pub/neureka/linux/
  1025.           nn is a high-level neural network specification language. The
  1026.           current version is best suited for feed-forward nets, but
  1027.           recurrent models can and have been implemented, e.g. Hopfield
  1028.           nets, Jordan/Elman nets, etc. In nn, it is easy to change
  1029.           network dynamics. The nn compiler can generate C code or
  1030.           executable programs (so there must be a C compiler available),
  1031.           with a powerful command line interface (but everything may also
  1032.           be controlled via the graphical interface, xnn). It is possible
  1033.           for the user to write C routines that can be called from inside
  1034.           the nn specification, and to use the nn specification as a
  1035.           function that is called from a C program. Please note that no
  1036.           programming is necessary in order to use the network models
  1037.           that come with the system (`netpack').
  1038.           
  1039.           xnn is a graphical front end to networks generated by the nn
  1040.           compiler, and to the compiler itself. The xnn graphical
  1041.           interface is intuitive and easy to use for beginners, yet
  1042.           powerful, with many possibilities for visualizing network data.
  1043.           
  1044.           
  1045.           NOTE: You have to run the install program that comes with this
  1046.           to get the license key installed. It gets put (by default) in
  1047.           /usr/lib. If you (like myself) want to install the package
  1048.           somewhere other than in the /usr directory structure (the
  1049.           install program gives you this option) you will have to set up
  1050.           some environmental variables (NNLIBDIR & NNINCLUDEDIR are
  1051.           required). You can read about these (and a few other optional
  1052.           variables) in appendix A of the documentation (pg 113).
  1053.           
  1054.           
  1055.           
  1056.    PDP++
  1057.           Web site: www.cnbc.cmu.edu/PDP++/
  1058.           FTP site (US): cnbc.cmu.edu/pub/pdp++/
  1059.           FTP site (Europe): unix.hensa.ac.uk/mirrors/pdp++/ 
  1060.           As the field of Connectionist modeling has grown, so has the
  1061.           need for a comprehensive simulation environment for the
  1062.           development and testing of Connectionist models. Our goal in
  1063.           developing PDP++ has been to integrate several powerful
  1064.           software development and user interface tools into a general
  1065.           purpose simulation environment that is both user friendly and
  1066.           user extensible. The simulator is built in the C++ programming
  1067.           language, and incorporates a state of the art script
  1068.           interpreter with the full expressive power of C++. The
  1069.           graphical user interface is built with the Interviews toolkit,
  1070.           and allows full access to the data structures and processing
  1071.           modules out of which the simulator is built. We have
  1072.           constructed several useful graphical modules for easy
  1073.           interaction with the structure and the contents of neural
  1074.           networks, and we've made it possible to change and adapt many
  1075.           things. At the programming level, we have set things up in such
  1076.           a way as to make user extensions as painless as possible. The
  1077.           programmer creates new C++ objects, which might be new kinds of
  1078.           units or new kinds of processes; once compiled and linked into
  1079.           the simulator, these new objects can then be accessed and used
  1080.           like any other.
  1081.           
  1082.           
  1083.           
  1084.    Simple Neural Net (in Python) [NEW]
  1085.           Web site: starship.skyport.net/crew/amk/unmaintained/
  1086.           Simple neural network code, which implements a class for
  1087.           3-level networks (input, hidden, and output layers). The only
  1088.           learning rule implemented is simple backpropagation. No
  1089.           documentation (or even comments) at all, because this is simply
  1090.           code that I use to experiment with. Includes modules containing
  1091.           sample datasets from Carl G. Looney's NN book. Requires the
  1092.           Numeric extensions.
  1093.           
  1094.           
  1095.           
  1096.    SCNN [NEW]
  1097.           Web site:
  1098.           apx00.physik.uni-frankfurt.de/e_ag_rt/cnn/SCNN/homepage.html
  1099.           SCNN is an universal simulating system for Cellular Neural
  1100.           Networks (CNN). CNN are analog processing neural networks with
  1101.           regular and local interconnections, governed by a set of
  1102.           nonlinear ordinary differential equations. Due to their local
  1103.           connectivity, CNN are realized as VLSI chips, which operates at
  1104.           very high speed.
  1105.           
  1106.           
  1107.           
  1108.    Semantic Networks in Python [NEW]
  1109.           Web site: www-acs.ucsd.edu/~jstrout/python/ai/
  1110.           The semnet.py module defines several simple classes for
  1111.           building and using semantic networks. A semantic network is a
  1112.           way of representing knowledge, and it enables the program to do
  1113.           simple reasoning with very little effort on the part of the
  1114.           programmer.
  1115.           
  1116.           The following classes are defined:
  1117.           
  1118.           + _Entity_: This class represents a noun; it is something which
  1119.             can be related to other things, and about which you can store
  1120.             facts.
  1121.           + _Relation_: A Relation is a type of relationship which may
  1122.             exist between two entities. One special relation, "IS_A", is
  1123.             predefined because it has special meaning (a sort of logical
  1124.             inheritance).
  1125.           + _Fact_: A Fact is an assertion that a relationship exists
  1126.             between two entities.
  1127.             
  1128.    
  1129.           
  1130.           With these three object types, you can very quickly define
  1131.           knowledge about a set of objects, and query them for logical
  1132.           conclusions.
  1133.           
  1134.           
  1135.           
  1136.    SNNS
  1137.           Web site:
  1138.           www.informatik.uni-stuttgart.de/ipvr/bv/projekte/snns/snns.htm
  1139.           l
  1140.           FTP site: ftp.informatik.uni-stuttgart.de/pub/SNNS/
  1141.           Stuttgart Neural Net Simulator (version 4.1). An awesome neural
  1142.           net simulator. Better than any commercial simulator I've seen.
  1143.           The simulator kernel is written in C (it's fast!). It supports
  1144.           over 20 different network architectures, has 2D and 3D X-based
  1145.           graphical representations, the 2D GUI has an integrated network
  1146.           editor, and can generate a separate NN program in C.
  1147.           SNNS is very powerful, though a bit difficult to learn at
  1148.           first. To help with this it comes with example networks and
  1149.           tutorials for many of the architectures.
  1150.           ENZO, a supplementary system allows you to evolve your networks
  1151.           with genetic algorithms.
  1152.           
  1153.           The Readme.linux file that comes with this package must be old.
  1154.           It's instructions for building the package are wrong. I've
  1155.           edited it to reflect what I had to do to get the package to
  1156.           compile. Please download SNNS.Readme.linux and use it instead
  1157.           of the Readme.linux file that comes with the distribution.
  1158.           
  1159.           
  1160.           
  1161.    SPRLIB/ANNLIB [NEW]
  1162.           Web site: www.ph.tn.tudelft.nl/~sprlib/
  1163.           SPRLIB (Statistical Pattern Recognition Library) was developed
  1164.           to support the easy construction and simulation of pattern
  1165.           classifiers. It consist of a library of functions (written in
  1166.           C) that can be called from your own program. Most of the
  1167.           well-known classifiers are present (k-nn, Fisher, Parzen,
  1168.           ....), as well as error estimation and dataset generation
  1169.           routines.
  1170.           
  1171.           ANNLIB (Artificial Neural Networks Library) is a neural network
  1172.           simulation library based on the data architecture laid down by
  1173.           SPRLIB. The library contains numerous functions for creating,
  1174.           training and testing feed-forward networks. Training algorithms
  1175.           include back-propagation, pseudo-Newton, Levenberg-Marquardt,
  1176.           conjugate gradient descent, BFGS.... Furthermore, it is
  1177.           possible - due to the datastructures' general applicability -
  1178.           to build Kohonen maps and other more exotic network
  1179.           architectures using the same data types.
  1180.           
  1181.           
  1182.           
  1183.    
  1184.    
  1185.    
  1186.    
  1187. Evolutionary Computing
  1188.  
  1189.     Evolutionary computing is actually a broad term for a vast array of
  1190.    programming techniques, including genetic algorithms, complex adaptive
  1191.    systems, evolutionary programming, etc. The main thrust of all these
  1192.    techniques is the idea of evolution. The idea that a program can be
  1193.    written that will evolve toward a certain goal. This goal can be
  1194.    anything from solving some engineering problem to winning a game. 
  1195.    
  1196.   EC class/code libraries
  1197.   
  1198.    These are libraries of code or classes for use in programming within
  1199.    the evolutionary computation field. They are not meant as stand alone
  1200.    applications, but rather as tools for building your own applications.
  1201.    
  1202.    
  1203.           
  1204.    FORTRAN GA [NEW]
  1205.           Web site: www.staff.uiuc.edu/~carroll/ga.html
  1206.           This program is a FORTRAN version of a genetic algorithm
  1207.           driver. This code initializes a random sample of individuals
  1208.           with different parameters to be optimized using the genetic
  1209.           algorithm approach, i.e. evolution via survival of the fittest.
  1210.           The selection scheme used is tournament selection with a
  1211.           shuffling technique for choosing random pairs for mating. The
  1212.           routine includes binary coding for the individuals, jump
  1213.           mutation, creep mutation, and the option for single-point or
  1214.           uniform crossover. Niching (sharing) and an option for the
  1215.           number of children per pair of parents has been added. More
  1216.           recently, an option for the use of a micro-GA has been added.
  1217.           
  1218.           
  1219.           
  1220.    GAGS
  1221.           Web site: kal-el.ugr.es/gags.html
  1222.           FTP site: kal-el.ugr.es/GAGS/
  1223.           Genetic Algorithm application generator and class library
  1224.           written mainly in C++.
  1225.           As a class library, and among other thing, GAGS includes:
  1226.           
  1227.           + A _chromosome hierarchy_ with variable length chromosomes.
  1228.             _Genetic operators_: 2-point crossover, uniform crossover,
  1229.             bit-flip mutation, transposition (gene interchange between 2
  1230.             parts of the chromosome), and variable-length operators:
  1231.             duplication, elimination, and random addition.
  1232.           + _Population level operators_ include steady state, roulette
  1233.             wheel and tournament selection.
  1234.           + _Gnuplot wrapper_: turns gnuplot into a iostreams-like class.
  1235.           + Easy sample file loading and configuration file parsing.
  1236.             
  1237.    As an application generator (written in PERL), you only need to supply
  1238.           it with an ANSI-C or C++ fitness function, and it creates a C++
  1239.           program that uses the above library to 90% capacity, compiles
  1240.           it, and runs it, saving results and presenting fitness thru
  1241.           gnuplot.
  1242.           
  1243.           
  1244.           
  1245.    GAlib: Matthew's Genetic Algorithms Library
  1246.           Web Site: lancet.mit.edu/ga/
  1247.           FTP site: lancet.mit.edu/pub/ga/
  1248.           Register GAlib at: http://lancet.mit.edu/ga/Register.html
  1249.           GAlib contains a set of C++ genetic algorithm objects. The
  1250.           library includes tools for using genetic algorithms to do
  1251.           optimization in any C++ program using any representation and
  1252.           genetic operators. The documentation includes an extensive
  1253.           overview of how to implement a genetic algorithm as well as
  1254.           examples illustrating customizations to the GAlib classes.
  1255.           
  1256.           
  1257.           
  1258.    GALOPPS
  1259.           Web site: isl.msu.edu/GA/software/galopps/index.html
  1260.           FTP site: isl.cps.msu.edu/pub/GA/galopps/
  1261.           GALOPPS is a flexible, generic GA, in 'C'. It was based upon
  1262.           Goldberg's Simple Genetic Algorithm (SGA) architecture, in
  1263.           order to make it easier for users to learn to use and extend.
  1264.           
  1265.           GALOPPS extends the SGA capabilities several fold:
  1266.           
  1267.           + (optional) A new Graphical User Interface, based on TCL/TK,
  1268.             for Unix users, allowing easy running of GALOPPS 3.2 (single
  1269.             or multiple subpopulations) on one or more processors. GUI
  1270.             writes/reads "standard" GALOPPS input and master files, and
  1271.             displays graphical output (during or after run) of
  1272.             user-selected variables.
  1273.           + 5 selection methods: roulette wheel, stochastic remainder
  1274.             sampling, tournament selection, stochastic universal
  1275.             sampling, linear-ranking-then-SUS.
  1276.           + Random or superuniform initialization of "ordinary"
  1277.             (non-permutation) binary or non-binary chromosomes; random
  1278.             initialization of permutation-based chromosomes; or
  1279.             user-supplied initialization of arbitrary types of
  1280.             chromosomes.
  1281.           + Binary or non-binary alphabetic fields on value-based
  1282.             chromosomes, including different user-definable field sizes.
  1283.           + 3 crossovers for value-based representations: 1-pt, 2-pt, and
  1284.             uniform, all of which operate at field boundaries if a
  1285.             non-binary alphabet is used.
  1286.           + 4 crossovers for order-based reps: PMX, order-based, uniform
  1287.             order-based, and cycle.
  1288.           + 4 mutations: fast bitwise, multiple-field, swap and random
  1289.             sublist scramble.
  1290.           + Fitness scaling: linear scaling, Boltzmann scaling, sigma
  1291.             truncation, window scaling, ranking.
  1292.           + _Plus_ a whole lot more....
  1293.             
  1294.    
  1295.           
  1296.           
  1297.           
  1298.    GECO
  1299.           FTP site: ftp://ftp.aic.nrl.navy.mil/pub/galist/src/
  1300.           GECO (Genetic Evolution through Combination of Objects), an
  1301.           extendible object-oriented tool-box for constructing genetic
  1302.           algorithms (in Lisp). It provides a set of extensible classes
  1303.           and methods designed for generality. Some simple examples are
  1304.           also provided to illustrate the intended use.
  1305.           
  1306.           
  1307.           
  1308.    gpjpp Genetic Programming in Java [NEW]
  1309.           Web site: www.turbopower.com/~kimk/gpjpp.asp
  1310.           gpjpp is a Java package I wrote for doing research in genetic
  1311.           programming. It is a port of the gpc++ kernel written by Adam
  1312.           Fraser and Thomas Weinbrenner. Included in the package are four
  1313.           of Koza's standard examples: the artificial ant, the hopping
  1314.           lawnmower, symbolic regression, and the boolean multiplexer.
  1315.           Here is a partial list of its features:
  1316.           
  1317.           + graphic output of expression trees
  1318.           + efficient diversity checking
  1319.           + Koza's greedy over-selection option for large populations
  1320.           + extensible GPRun class that encapsulates most details of a
  1321.             genetic programming test
  1322.           + more robust and efficient streaming code, with automatic
  1323.             checkpoint and restart built into the GPRun class
  1324.           + an explicit complexity limit that can be set on each GP
  1325.           + additional configuration variables to allow more testing
  1326.             without recompilation
  1327.           + support for automatically defined functions (ADFs)
  1328.           + tournament and fitness proportionate selection
  1329.           + demetic grouping
  1330.           + optional steady state population
  1331.           + subtree crossover
  1332.           + swap and shrink mutation
  1333.             
  1334.    
  1335.           
  1336.           
  1337.           
  1338.    GP Kernel
  1339.           Web site: www.emk.e-technik.th-darmstadt.de/~thomasw/gp.html
  1340.           The GP kernel is a C++ class library that can be used to apply
  1341.           genetic programming techniques to all kinds of problems. The
  1342.           library defines a class hierarchy. An integral component is the
  1343.           ability to produce automatically defined functions as found in
  1344.           Koza's "Genetic Programming II".Technical documentation
  1345.           (postscript format) is included. There is also a short
  1346.           introduction into genetic programming.
  1347.           
  1348.           Functionality includes; Automatically defined functions (ADFs),
  1349.           tournament and fitness proportionate selection, demetic
  1350.           grouping, optional steady state genetic programming kernel,
  1351.           subtree crossover, swap and shrink mutation, a way of changing
  1352.           every parameter of the system without recompilation, capacity
  1353.           for multiple populations, loading and saving of populations and
  1354.           genetic programs, standard random number generator, internal
  1355.           parameter checks.
  1356.           
  1357.           
  1358.           
  1359.    lil-gp
  1360.           Web site: isl.msu.edu/GA/software/lil-gp/index.html
  1361.           FTP site: isl.cps.msu.edu/pub/GA/lilgp/
  1362.           lil-gp is a generic 'C' genetic programming tool. It was
  1363.           written with a number of goals in mind: speed, ease of use and
  1364.           support for a number of options including:
  1365.           
  1366.           + Generic 'C' program that runs on UNIX workstations
  1367.           + Support for multiple population experiments, using arbitrary
  1368.             and user settable topologies for exchange, for a single
  1369.             processor (i.e., you can do multiple population gp
  1370.             experiments on your PC).
  1371.           + lil-gp manipulates trees of function pointers which are
  1372.             allocated in single, large memory blocks for speed and to
  1373.             avoid swapping.
  1374.             
  1375.    
  1376.           
  1377.           
  1378.           
  1379.    PGAPack Parallel Genetic Algorithm Library [NEW]
  1380.           Web site: www.mcs.anl.gov/home/levine/PGAPACK/index.html
  1381.           FTP site: ftp.mcs.anl.gov/pub/pgapack/
  1382.           PGAPack is a general-purpose, data-structure-neutral, parallel
  1383.           genetic algorithm library. It is intended to provide most
  1384.           capabilities desired in a genetic algorithm library, in an
  1385.           integrated, seamless, and portable manner. Key features are in
  1386.           PGAPack V1.0 include:
  1387.           
  1388.           + Callable from Fortran or C.
  1389.           + Runs on uniprocessors, parallel computers, and workstation
  1390.             networks.
  1391.           + Binary-, integer-, real-, and character-valued native data
  1392.             types.
  1393.           + Full extensibility to support custom operators and new data
  1394.             types.
  1395.           + Easy-to-use interface for novice and application users.
  1396.           + Multiple levels of access for expert users.
  1397.           + Parameterized population replacement.
  1398.           + Multiple crossover, mutation, and selection operators.
  1399.           + Easy integration of hill-climbing heuristics.
  1400.           + Extensive debugging facilities.
  1401.           + Large set of example problems.
  1402.           + Detailed users guide.
  1403.             
  1404.    
  1405.           
  1406.           
  1407.           
  1408.    Sugal
  1409.           Web site: www.trajan-software.demon.co.uk/sugal.htm
  1410.           Sugal [soo-gall] is the SUnderland Genetic ALgorithm system.
  1411.           The aim of Sugal is to support research and implementation in
  1412.           Genetic Algorithms on a common software platform. As such,
  1413.           Sugal supports a large number of variants of Genetic
  1414.           Algorithms, and has extensive features to support customization
  1415.           and extension.
  1416.           
  1417.           
  1418.           
  1419.    
  1420.    
  1421.   EC software kits/applications
  1422.   
  1423.    These are various applications, software kits, etc. meant for research
  1424.    in the field of evolutionary computing. Their ease of use will vary,
  1425.    as they were designed to meet some particular research interest more
  1426.    than as an easy to use commercial package.
  1427.    
  1428.    
  1429.           
  1430.    ADATE(Automatic Design of Algorithms Through Evolution)
  1431.           Web site: www-ia.hiof.no/~rolando/adate_intro.html
  1432.           ADATE is a system for automatic programming i.e., inductive
  1433.           inference of algorithms, which may be the best way to develop
  1434.           artificial and general intelligence.
  1435.           
  1436.           The ADATE system can automatically generate non-trivial and
  1437.           novel algorithms. Algorithms are generated through large scale
  1438.           combinatorial search that employs sophisticated program
  1439.           transformations and heuristics. The ADATE system is
  1440.           particularly good at synthesizing symbolic, functional programs
  1441.           and has several unique qualities.
  1442.           
  1443.           
  1444.           
  1445.    esep & xesep [NEW]
  1446.           Web site(esep): www.iit.edu/~linjinl/esep.html Web site(xesep):
  1447.           www.iit.edu/~linjinl/xesep.html
  1448.           This is a new scheduler, called Evolution Scheduler, based on
  1449.           Genetic Algorithms and Evolutionary Programming. It lives with
  1450.           original Linux priority scheduler.This means you don't have to
  1451.           reboot to change the scheduling policy. You may simply use the
  1452.           manager program esep to switch between them at any time, and
  1453.           esep itself is an all-in-one for scheduling status, commands,
  1454.           and administration. We didn't intend to remove the original
  1455.           priority scheduler; instead, at least, esep provides you with
  1456.           another choice to use a more intelligent scheduler, which
  1457.           carries out natural competition in an easy and effective way.
  1458.           
  1459.           Xesep is a graphical user interface to the esep (Evolution
  1460.           Scheduling and Evolving Processes). It's intended to show users
  1461.           how to start, play, and feel the Evolution Scheduling and
  1462.           Evolving Processes, including sub-programs to display system
  1463.           status, evolving process status, queue status, and evolution
  1464.           scheduling status periodically in as small as one mini-second.
  1465.           
  1466.           
  1467.           
  1468.    GPsys [NEW]
  1469.           Web site: www.cs.ucl.ac.uk/staff/A.Qureshi/gpsys.html
  1470.           GPsys (pronounced gipsys) is a Java (requires Java 1.1 or
  1471.           later) based Genetic Programming system developed by Adil
  1472.           Qureshi. The software includes documentation, source and
  1473.           executables.
  1474.           
  1475.           Feature Summary:
  1476.           
  1477.           + Steady State engine
  1478.           + ADF support
  1479.           + Strongly Typed
  1480.                o supports generic functions and terminals
  1481.                o has many built-in primitives
  1482.                o includes indexed memory
  1483.           + Save/Load feature
  1484.                o can save/load current generation to/from a file
  1485.                o data stored in GZIP compression format to minimise disk
  1486.                  requirements
  1487.                o uses serialisable objects for efficiency
  1488.           + Fully Documented
  1489.           + Example Problems
  1490.                o Lawnmower (including GUI viewer)
  1491.                o Symbolic Regression
  1492.           + Totally Parameterised
  1493.           + Fully Object Oriented and Extensible
  1494.           + High Performance
  1495.           + Memory Efficient
  1496.             
  1497.    
  1498.           
  1499.    
  1500.    
  1501.    
  1502.    
  1503. Alife
  1504.  
  1505.     Alife takes yet another approach to exploring the mysteries of
  1506.    intelligence. It has many aspects similar to EC and Connectionism, but
  1507.    takes these ideas and gives them a meta-level twist. Alife emphasizes
  1508.    the development of intelligence through emergent behavior of complex
  1509.    adaptive systems. Alife stresses the social or group based aspects of
  1510.    intelligence. It seeks to understand life and survival. By studying
  1511.    the behaviors of groups of 'beings' Alife seeks to discover the way
  1512.    intelligence or higher order activity emerges from seemingly simple
  1513.    individuals. Cellular Automata and Conway's Game of Life are probably
  1514.    the most commonly known applications of this field. 
  1515.    
  1516.   Alife class/code libraries
  1517.   
  1518.    These are libraries of code or classes for use in programming within
  1519.    the artificial life field. They are not meant as stand alone
  1520.    applications, but rather as tools for building your own applications.
  1521.    
  1522.    
  1523.    
  1524.    
  1525.           
  1526.    John von Neumann Universal Constructor
  1527.           Web site: alife.santafe.edu/alife/software/jvn.html
  1528.           FTP site: alife.santafe.edu/pub/SOFTWARE/jvn/
  1529.           The universal constructor of John von Neumann is an extension
  1530.           of the logical concept of universal computing machine. In the
  1531.           cellular environment proposed by von Neumann both computing and
  1532.           constructive universality can be achieved. Von Neumann proved
  1533.           that in his cellular lattice both a Turing machine and a
  1534.           machine capable of producing any other cell assembly, when fed
  1535.           with a suitable program, can be embedded. He called the latter
  1536.           machine a "universal constructor" and showed that, when
  1537.           provided with a program containing its own description, this is
  1538.           capable of self-reproducing.
  1539.           
  1540.           
  1541.           
  1542.    Swarm
  1543.           Web site: www.santafe.edu/projects/swarm
  1544.           FTP site: ftp.santafe.edu/pub/swarm
  1545.           The swarm Alife simulation kit. Swarm is a simulation
  1546.           environment which facilitates development and experimentation
  1547.           with simulations involving a large number of agents behaving
  1548.           and interacting within a dynamic environment. It consists of a
  1549.           collection of classes and libraries written in Objective-C and
  1550.           allows great flexibility in creating simulations and analyzing
  1551.           their results. It comes with three demos and good
  1552.           documentation.
  1553.           
  1554.           Swarm 1.0 is out. It requires _libtclobjc_ and _BLT 2.1_ (both
  1555.           available at the swarm site).
  1556.           
  1557.           
  1558.           
  1559.    
  1560.    
  1561.    
  1562.    
  1563.   Alife software kits, applications, etc.
  1564.   
  1565.    These are various applications, software kits, etc. meant for research
  1566.    in the field of artificial life. Their ease of use will vary, as they
  1567.    were designed to meet some particular research interest more than as
  1568.    an easy to use commercial package.
  1569.    
  1570.    
  1571.           
  1572.    BugsX
  1573.           FTP site:
  1574.           ftp.Germany.EU.net/pub/research/softcomp/Alife/packages/bugsx/
  1575.           
  1576.           Display and evolve biomorphs. It is a program which draws the
  1577.           biomorphs based on parametric plots of Fourier sine and cosine
  1578.           series and let's you play with them using the genetic
  1579.           algorithm.
  1580.           
  1581.           
  1582.           
  1583.    The Cellular Automata Simulation System [NEW]
  1584.           Web site: www.cs.runet.edu/~dana/ca/cellular.html
  1585.           The system consists of a compiler for the Cellang cellular
  1586.           automata programming language, along with the corresponding
  1587.           documentation, viewer, and various tools. Cellang has been
  1588.           undergoing refinement for the last several years (1991-1995),
  1589.           with corresponding upgrades to the compiler. Postscript
  1590.           versions of the tutorial and language reference manual are
  1591.           available for those wanting more detailed information. The most
  1592.           important distinguishing features of Cellang, include support
  1593.           for:
  1594.           
  1595.           + any number of dimensions;
  1596.           + compile time specification of each dimensions size; cell
  1597.             neighborhoods of any size (though bounded at compile time)
  1598.             and shape;
  1599.           + positional and time dependent neighborhoods;
  1600.           + associating multiple values (fields), including arrays, with
  1601.             each cell;
  1602.           + associating a potentially unbounded number of mobile agents [
  1603.             Agents are mobile entities based on a mechanism of the same
  1604.             name in the Creatures system, developed by Ian Stephenson
  1605.             (ian@ohm.york.ac.uk).] with each cell; and
  1606.           + local interactions only, since it is impossible to construct
  1607.             automata that contain any global control or references to
  1608.             global variables.
  1609.             
  1610.    
  1611.           
  1612.           
  1613.           
  1614.    dblife & dblifelib
  1615.           FTP site: ftp.cc.gatech.edu/ac121/linux/games/amusements/life/
  1616.           _dblife:_ Sources for a fancy Game of Life program for X11 (and
  1617.           curses). It is not meant to be incredibly fast (use xlife for
  1618.           that:-). But it IS meant to allow the easy editing and viewing
  1619.           of Life objects and has some powerful features. The related
  1620.           dblifelib package is a library of Life objects to use with the
  1621.           program.
  1622.           
  1623.           _dblifelib:_ This is a library of interesting Life objects,
  1624.           including oscillators, spaceships, puffers, and other weird
  1625.           things. The related dblife package contains a Life program
  1626.           which can read the objects in the Library.
  1627.           
  1628.           
  1629.           
  1630.    Drone
  1631.           Web site: pscs.physics.lsa.umich.edu/Software/Drone/
  1632.           Drone is a tool for automatically running batch jobs of a
  1633.           simulation program. It allows sweeps over arbitrary sets of
  1634.           parameters, as well as multiple runs for each parameter set,
  1635.           with a separate random seed for each run. The runs may be
  1636.           executed either on a single computer or over the Internet on a
  1637.           set of remote hosts. Drone is written in Expect (an extension
  1638.           to the Tcl scripting language) and runs under Unix. It was
  1639.           originally designed for use with the Swarm agent-based
  1640.           simulation framework, but Drone can be used with any simulation
  1641.           program that reads parameters from the command line or from an
  1642.           input file.
  1643.           
  1644.           
  1645.           
  1646.    EcoLab [NEW]
  1647.           Web site: parallel.acsu.unsw.edu.au/rks/ecolab.html
  1648.           EcoLab is a system that implements an abstract ecology model.
  1649.           It is written as a set of Tcl/Tk commands so that the model
  1650.           parameters can easily be changed on the fly by means of editing
  1651.           a script. The model itself is written in C++.
  1652.           
  1653.           
  1654.           
  1655.    LEE
  1656.           Web site: www-cse.ucsd.edu/users/fil/lee/lee.html
  1657.           FTP site: cs.ucsd.edu/pub/LEE/
  1658.           LEE (Latent Energy Environments) is both an Alife model and a
  1659.           software tool to be used for simulations within the framework
  1660.           of that model. We hope that LEE will help understand a broad
  1661.           range of issues in theoretical, behavioral, and evolutionary
  1662.           biology. The LEE tool described here consists of approximately
  1663.           7,000 lines of C code and runs in both Unix and Macintosh
  1664.           platforms.
  1665.           
  1666.           
  1667.           
  1668.    Net-Life & ZooLife
  1669.           Web site:www.geocities.com/SiliconValley/Heights/1051**
  1670.           FTP site: ftp.coe.uga.edu/users/jae/alife/
  1671.           *(netlife-2.0.tar.gz contains both Net-Life and ZooLife)
  1672.           
  1673.           _Net-Life_ is a simulation of artificial-life, with neural
  1674.           "brains" generated via slightly random techniques. Net-Life
  1675.           uses artificial neural nets and evolutionary algorithms to
  1676.           breed artificial organisms that are similar to single cell
  1677.           organisms. Net-life uses asexual reproduction of its fittest
  1678.           individuals with a chance of mutation after each round to
  1679.           eventually evolve successful life-forms.
  1680.           
  1681.           _ZooLife_ is a simulation of artificial-life. ZooLife uses
  1682.           probabilistic methods and evolutionary algorithms to breed
  1683.           artificial organisms that are similar to plant/animal zoo
  1684.           organisms. ZooLife uses asexual reproduction with a chance of
  1685.           mutation.
  1686.           
  1687.           
  1688.           
  1689.    Primordial Soup [NEW]
  1690.           Web site: alife.santafe.edu/alife/software/psoup.html
  1691.           Primordial Soup is an artificial life program. Organisms in the
  1692.           form of computer software loops live in a shared memory space
  1693.           (the "soup") and self-reproduce. The organisms mutate and
  1694.           evolve, behaving in accordance with the principles of Darwinian
  1695.           evolution.
  1696.           
  1697.           The program may be started with one or more organisms seeding
  1698.           the soup. Alternatively, the system may be started "sterile",
  1699.           with no organisms present. Spontaneous generation of
  1700.           self-reproducing organisms has been observed after runs as
  1701.           short as 15 minutes.
  1702.           
  1703.           
  1704.           
  1705.    Tierra
  1706.           Web site: www.hip.atr.co.jp/~ray/tierra/tierra.html
  1707.           FTP site: alife.santafe.edu/pub/SOFTWARE/Tierra/
  1708.           Alternate FTP site:
  1709.           ftp.cc.gatech.edu/ac121/linux/science/biology/
  1710.           Tierra's written in the C programming language. This source
  1711.           code creates a virtual computer and its operating system, whose
  1712.           architecture has been designed in such a way that the
  1713.           executable machine codes are evolvable. This means that the
  1714.           machine code can be mutated (by flipping bits at random) or
  1715.           recombined (by swapping segments of code between algorithms),
  1716.           and the resulting code remains functional enough of the time
  1717.           for natural (or presumably artificial) selection to be able to
  1718.           improve the code over time.
  1719.           
  1720.           
  1721.           
  1722.    TIN
  1723.           FTP site: ftp.coe.uga.edu/users/jae/alife/
  1724.           This program simulates primitive life-forms, equipped with some
  1725.           basic instincts and abilities, in a 2D environment consisting
  1726.           of cells. By mutation new generations can prove their success,
  1727.           and thus passing on "good family values".
  1728.           
  1729.           The brain of a TIN can be seen as a collection of processes,
  1730.           each representing drives or impulses to behave a certain way,
  1731.           depending on the state/perception of the environment ( e.g.
  1732.           presence of food, walls, neighbors, scent traces) These
  1733.           behavior process currently are : eating, moving, mating,
  1734.           relaxing, tracing others, gathering food and killing. The
  1735.           process with the highest impulse value takes control, or in
  1736.           other words: the tin will act according to its most urgent
  1737.           need.
  1738.           
  1739.           
  1740.           
  1741.    XLIFE
  1742.           FTP site: ftp.cc.gatech.edu/ac121/linux/games/amusements/life/
  1743.           This program will evolve patterns for John Horton Conway's game
  1744.           of Life. It will also handle general cellular automata with the
  1745.           orthogonal neighborhood and up to 8 states (it's possible to
  1746.           recompile for more states, but very expensive in memory).
  1747.           Transition rules and sample patterns are provided for the
  1748.           8-state automaton of E. F. Codd, the Wireworld automaton, and a
  1749.           whole class of `Prisoner's Dilemma' games. 
  1750.           
  1751.    
  1752.    
  1753.    
  1754.    
  1755. Autonomous Agents
  1756.  
  1757.     Also known as intelligent software agents or just agents, this area
  1758.    of AI research deals with simple applications of small programs that
  1759.    aid the user in his/her work. They can be mobile (able to stop their
  1760.    execution on one machine and resume it on another) or static (live in
  1761.    one machine). They are usually specific to the task (and therefore
  1762.    fairly simple) and meant to help the user much as an assistant would.
  1763.    The most popular (ie. widely known) use of this type of application to
  1764.    date are the web robots that many of the indexing engines (eg.
  1765.    webcrawler) use.
  1766.    
  1767.    
  1768.    
  1769.    
  1770.           
  1771.    AgentK
  1772.           FTP site: ftp.csd.abdn.ac.uk/pub/wdavies/agentk
  1773.           This package synthesizes two well-known agent paradigms:
  1774.           Agent-Oriented Programming, Shoham (1990), and the Knowledge
  1775.           Query & Manipulation Language, Finin (1993). The initial
  1776.           implementation of AOP, Agent-0, is a simple language for
  1777.           specifying agent behaviour. KQML provides a standard language
  1778.           for inter-agent communication. Our integration (which we have
  1779.           called Agent-K) demonstrates that Agent-0 and KQML are highly
  1780.           compatible. Agent-K provides the possibility of inter-operable
  1781.           (or open) software agents, that can communicate via KQML and
  1782.           which are programmed using the AOP approach.
  1783.           
  1784.           
  1785.           
  1786.    Agent, the Perl5 Module
  1787.           FTP site: ftp.hawk.igs.net/pub/users/jduncan/modules/Agent/
  1788.           The Agent is a prototype for an Information Agent system. It is
  1789.           both platform and language independent, as it stores contained
  1790.           information in simple packed strings. It can be packed and
  1791.           shipped across any network with any format, as it freezes
  1792.           itself in its current state.
  1793.           
  1794.           
  1795.           
  1796.    AGENT TCL
  1797.           Web site: www.cs.dartmouth.edu/~agent/
  1798.           FTP site: ftp.cs.dartmouth.edu/pub/agents/
  1799.           A transportable agent is a program that can migrate from
  1800.           machine to machine in a heterogeneous network. The program
  1801.           chooses when and where to migrate. It can suspend its execution
  1802.           at an arbitrary point, transport to another machine and resume
  1803.           execution on the new machine. For example, an agent carrying a
  1804.           mail message migrates first to a router and then to the
  1805.           recipient's mailbox. The agent can perform arbitrarily complex
  1806.           processing at each machine in order to ensure that the message
  1807.           reaches the intended recipient.
  1808.           
  1809.           
  1810.           
  1811.    Aglets Workbench [NEW]
  1812.           Web site: www.trl.ibm.co.jp/aglets/
  1813.           An aglet is a Java object that can move from one host on the
  1814.           Internet to another. That is, an aglet that executes on one
  1815.           host can suddenly halt execution, dispatch to a remote host,
  1816.           and resume execution there. When the aglet moves, it takes
  1817.           along its program code as well as its state (data). A built-in
  1818.           security mechanism makes it safe for a computer to host
  1819.           untrusted aglets. The Java Aglet API (J-AAPI) is a proposed
  1820.           public standard for interfacing aglets and their environment.
  1821.           J-AAPI contains methods for initializing an aglet, message
  1822.           handling, and dispatching, retracting, deactivating/activating,
  1823.           cloning, and disposing of the aglet. J-AAPI is simple,
  1824.           flexible, and stable. Application developers can write
  1825.           platform-independent aglets and expect them to run on any host
  1826.           that supports J-AAPI.
  1827.           
  1828.           
  1829.           
  1830.    Ara
  1831.           Web site: www.uni-kl.de/AG-Nehmer/Ara/
  1832.           Ara is a platform for the portable and secure execution of
  1833.           mobile agents in heterogeneous networks. Mobile agents in this
  1834.           sense are programs with the ability to change their host
  1835.           machine during execution while preserving their internal state.
  1836.           This enables them to handle interactions locally which
  1837.           otherwise had to be performed remotely. Ara's specific aim in
  1838.           comparison to similar platforms is to provide full mobile agent
  1839.           functionality while retaining as much as possible of
  1840.           established programming models and languages.
  1841.           
  1842.           
  1843.           
  1844.    JATLite
  1845.           Web site: java.stanford.edu/java_agent/html/
  1846.           JATLite is providing a set of java packages which makes easy to
  1847.           build multi-agent systems using Java. JATLite provides only
  1848.           light-weight, small set of packages so that the developers can
  1849.           handle all the packages with little efforts. For flexibility
  1850.           JATLite provides four different layers from abstract to Router
  1851.           implementation. A user can access any layer we are providing.
  1852.           Each layer has a different set of assumptions. The user can
  1853.           choose an appropriate layer according to the assumptions on the
  1854.           layer and user's application. The introduction page contains
  1855.           JATLite features and the set of assumptions for each layer.
  1856.           
  1857.           
  1858.           
  1859.    Java(tm) Agent Template
  1860.           Web site: cdr.stanford.edu/ABE/JavaAgent.html
  1861.           The JAT provides a fully functional template, written entirely
  1862.           in the Java language, for constructing software agents which
  1863.           communicate peer-to-peer with a community of other agents
  1864.           distributed over the Internet. Although portions of the code
  1865.           which define each agent are portable, JAT agents are not
  1866.           migratory but rather have a static existence on a single host.
  1867.           This behavior is in contrast to many other "agent"
  1868.           technologies. (However, using the Java RMI, JAT agents could
  1869.           dynamically migrate to a foreign host via an agent resident on
  1870.           that host). Currently, all agent messages use KQML as a
  1871.           top-level protocol or message wrapper. The JAT includes
  1872.           functionality for dynamically exchanging "Resources", which can
  1873.           include Java classes (e.g. new languages and interpreters,
  1874.           remote services, etc.), data files and information inlined into
  1875.           the KQML messages.
  1876.           
  1877.           
  1878.           
  1879.    Java-To-Go [NEW]
  1880.           Web site: ptolemy.eecs.berkeley.edu/dgm/javatools/java-to-go/
  1881.           Java-To-Go is an experimental infrastructure that assists in
  1882.           the development and experimentation of mobile agents and
  1883.           agent-based applications for itinerative computing (itinerative
  1884.           computing: the set of applications that requires site-to-site
  1885.           computations. The main emphasis here is on a easy-to-setup
  1886.           environment that promotes quick experimentation on mobile
  1887.           agents.
  1888.           
  1889.           
  1890.           
  1891.    Kafka [NEW]
  1892.           Web site: www.fujitsu.co.jp/hypertext/free/kafka/
  1893.           Kafka is yet another agent library designed for constructing
  1894.           multi-agent based distributed applications. Kafka is a
  1895.           flexible, extendable, and easy-to-use java class library for
  1896.           programmers who are familiar with distributed programming. It
  1897.           is based on Java's RMI and has the following added features:
  1898.           
  1899.         Runtime Reflection:
  1900.                 Agents can modify their behaviour (program codes) at
  1901.                 runtime. The behaviour of the agent is represented by an
  1902.                 abstract class Action. It is useful for remote
  1903.                 maintenance or installation services.
  1904.                 
  1905.         Remote Evaluation:
  1906.                 Agents can receive and evaluate program codes (classes)
  1907.                 with or without the serialized object. Remote evaluation
  1908.                 is a fundamental function of a mobile agent and is
  1909.                 thought to be a push model of service delivery.
  1910.                 
  1911.         Distributed Name Service:
  1912.                 Agents have any number of logical names that don't
  1913.                 contain the host name. These names can be managed by the
  1914.                 distributed directories.
  1915.                 
  1916.         Customizable security policy
  1917.                 a very flexible, customizable, 3-layered security model
  1918.                 is implemented in Kafka.
  1919.                 
  1920.         100% Java and RMI compatible:
  1921.                 Kafka is written completely in Java. Agent is a Java RMI
  1922.                 server object itself. So, agents can directly communicate
  1923.                 with other RMI objects.
  1924.                 
  1925.    
  1926.           
  1927.           
  1928.           
  1929.    Khepera Simulator
  1930.           Web site: diwww.epfl.ch/lami/team/michel/khep-sim/
  1931.           Khepera Simulator is a public domain software package written
  1932.           by Olivier MICHEL during the preparation of his Ph.D. thesis,
  1933.           at the Laboratoire I3S, URA 1376 of CNRS and University of
  1934.           Nice-Sophia Antipolis, France. It allows to write your own
  1935.           controller for the mobile robot Khepera using C or C++
  1936.           languages, to test them in a simulated environment and features
  1937.           a nice colorful X11 graphical interface. Moreover, if you own a
  1938.           Khepera robot, it can drive the real robot using the same
  1939.           control algorithm. It is mainly oriented toward to researchers
  1940.           studying autonomous agents.
  1941.           
  1942.           
  1943.           
  1944.    Mole [NEW]
  1945.           Web site:
  1946.           www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole.html
  1947.           Mole is an agent system supporting mobile agents programmed in
  1948.           Java. Mole's agents consist of a cluster of objects, which have
  1949.           no references to the outside, and as a whole work on tasks
  1950.           given by the user or another agent. They have the ability to
  1951.           roam a network of "locations" autonomously. These "locations"
  1952.           are an abstraction of real, existing nodes in the underlying
  1953.           network. They can use location-specific resources by
  1954.           communicating with dedicated agents representing these
  1955.           services. Agents are able to use services provided by other
  1956.           agents and to provide services as well.
  1957.           
  1958.           
  1959.           
  1960.    Odyssey [NEW]
  1961.           Web site: www.genmagic.com/agents/
  1962.           Odyssey is General Magic's initial implementation of mobile
  1963.           agents in 100% pure Java. The Odyssey class libraries enable
  1964.           you to develop your own mobile agent applications. Use mobile
  1965.           agents to access data, make decisions and notify users. Your
  1966.           agent-enabled applications may also take full advantage of the
  1967.           Java platform and use other third party libraries, for example,
  1968.           to access remote CORBA objects or to access relational
  1969.           databases using JDBC. To see how it's done, take a look at the
  1970.           sample applications included as part of the Odyssey download.
  1971.           
  1972.           
  1973.           
  1974.    Penguin!
  1975.           
  1976.           FTP site:
  1977.           www.perl.org/CPAN/modules/by-category/23_Miscellaneous_Modules
  1978.           /Penguin/FSG/
  1979.           Penguin is a Perl 5 module. It provides you with a set of
  1980.           functions which allow you to:
  1981.           
  1982.           + send encrypted, digitally signed Perl code to a remote
  1983.             machine to be executed.
  1984.           + receive code and, depending on who signed it, execute it in
  1985.             an arbitrarily secure, limited compartment.
  1986.             
  1987.    The combination of these functions enable direct Perl coding of
  1988.           algorithms to handle safe internet commerce, mobile
  1989.           information-gathering agents, "live content" web browser helper
  1990.           apps, distributed load-balanced computation, remote software
  1991.           update, distance machine administration, content-based
  1992.           information propagation, Internet-wide shared-data
  1993.           applications, network application builders, and so on.
  1994.           
  1995.           
  1996.           
  1997.    SimRobot [NEW]
  1998.           Web site: www.informatik.uni-bremen.de/~simrobot/
  1999.           FTP site: ftp.uni-bremen.de/pub/ZKW/INFORM/simrobot/
  2000.           SimRobot is a program for simulation of sensor based robots in
  2001.           a 3D environment. It is written in C++, runs under UNIX and X11
  2002.           and needs the graphics toolkit XView.
  2003.           
  2004.           + Simulation of robot kinematics
  2005.           + Hierarchically built scene definition via a simple definition
  2006.             language
  2007.           + Various sensors built in: camera, facette eye, distance
  2008.             measurement, light sensor, etc.
  2009.           + Objects defined as polyeders
  2010.           + Emitter abstractly defined; can be interpreted e.g. as light
  2011.             or sound
  2012.           + Camera images computed according to the raytracing or
  2013.             Z-buffer algorithms known from computer graphics
  2014.           + Specific sensor/motor software interface for communicating
  2015.             with the simulation
  2016.           + Texture mapping onto the object surfaces: bitmaps in various
  2017.             formats
  2018.           + Comprehensive visualization of the scene: wire frame w/o
  2019.             hidden lines, sensor and actor values
  2020.           + Interactive as well as batch driven control of the agents and
  2021.             operation in the environment
  2022.           + Collision detection
  2023.           + Extendability with user defined object types
  2024.           + Possible socket communication to e.g. the Khoros image
  2025.             processing software
  2026.             
  2027.    
  2028.           
  2029.           
  2030.           
  2031.    TclRobots
  2032.           FTP site: ftp.neosoft.com/pub/tcl/sorted/games/tclrobots-2.0/
  2033.           Redhat Patch:
  2034.           ftp.coe.uga.edu/users/jae/ai/tclrobots-redhat.patch
  2035.           RPMs: ftp://ftp.redhat.com/contrib/
  2036.           TclRobots is a programming game, similar to 'Core War'. To play
  2037.           TclRobots, you must write a Tcl program that controls a robot.
  2038.           The robot's mission is to survive a battle with other robots.
  2039.           Two, three, or four robots compete during a battle, each
  2040.           running different programs (or possibly the same program in
  2041.           different robots.) Each robot is equipped with a scanner,
  2042.           cannon, drive mechanism. A single match continues until one
  2043.           robot is left running. Robots may compete individually, or
  2044.           combine in a team oriented battle. A tournament can be run with
  2045.           any number of robot programs, each robot playing every other in
  2046.           a round-robin fashion, one-on-one. A battle simulator is
  2047.           available to help debug robot programs.
  2048.           
  2049.           The TclRobots program provides a physical environment, imposing
  2050.           certain game parameters to which all robots must adhere.
  2051.           TclRobots also provides a view on a battle, and a controlling
  2052.           user interface. TclRobots requirements: a wish interpreter
  2053.           built from Tcl 7.4 and Tk 4.0.
  2054.           
  2055.           
  2056.           
  2057.    The Tocoma Project [NEW]
  2058.           Web site: www.cs.uit.no/DOS/Tacoma/index.html
  2059.           An agent is a process that may migrate through a computer
  2060.           network in order to satisfy requests made by clients. Agents
  2061.           are an attractive way to describe network-wide computations.
  2062.           
  2063.           The TACOMA project focuses on operating system support for
  2064.           agents and how agents can be used to solve problems
  2065.           traditionally addressed by operating systems. We have
  2066.           implemented a series of prototype systems to support agents.
  2067.           
  2068.           TACOMA Version 1.2 is based on UNIX and TCP. The system
  2069.           supports agents written in C, Tcl/Tk, Perl, Python, and Scheme
  2070.           (Elk). It is implemented in C. This TACOMA version has been in
  2071.           public domain since April 1996.
  2072.           
  2073.           We are currently focusing on heterogeneity, fault-tolerance,
  2074.           security and management issues. Also, several TACOMA
  2075.           applications are under construction. We implemented StormCast
  2076.           4.0, a wide-area network weather monitoring system accessible
  2077.           over the internet, using TACOMA and Java. We are now in the
  2078.           process of evaluating this application, and plan to build a new
  2079.           StormCast version to be completed by June 1997.
  2080.           
  2081.           
  2082.           
  2083.    VWORLD
  2084.           Web site: www.ai.uga.edu/students/jae/projects.html#vworld
  2085.           Vworld is a simulated environment for research with autonomous
  2086.           agents written in prolog. It is currently in something of an
  2087.           beta stage. It works well with SWI-prolog, but should work with
  2088.           Quitnus-prolog with only a few changes. It is being designed to
  2089.           serve as an educational tool for class projects dealing with
  2090.           prolog and autonomous agents. It comes with three demo worlds
  2091.           or environments, along with sample agents for them.
  2092.           There are two versions now. One written for SWI-prolog and one
  2093.           written for LPA-prolog. Documentation is roughly done (with a
  2094.           student/professor framework in mind), and a graphical interface
  2095.           is planned. 
  2096.           
  2097.    
  2098.    
  2099.    
  2100.    
  2101. AI & Alife related newsgroups
  2102.  
  2103.    These newsgroups are not Linux specific. But they are good resources
  2104.    for anyone working in artificial intelligence or artificial life. If
  2105.    you can't access these newsgroups, many of their FAQs are available
  2106.    at:
  2107.    http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/ai/top.html
  2108.      * comp.ai
  2109.      * comp.ai.edu
  2110.      * comp.ai.genetic
  2111.      * comp.ai.neural-nets
  2112.      * comp.ai.vision
  2113.      * comp.ai.fuzzy
  2114.      * comp.ai.games
  2115.      * comp.ai.jair.announce
  2116.      * comp.ai.jair.papers
  2117.      * comp.ai.nat-lang
  2118.      * comp.ai.nlang-know-rep
  2119.      * comp.ai.philosophy
  2120.      * comp.ai.shells
  2121.      * comp.ai.alife
  2122.      * comp.ai.doc-analysis.misc
  2123.      * comp.ai.doc-analysis.ocr
  2124.      * comp.lang.prolog
  2125.      * comp.lang.lisp
  2126.      * alt.irc.bots
  2127.        
  2128.    
  2129.    
  2130. AI & Alife resource links
  2131.  
  2132.    These are a few of the many AI and Alife sites out there. These sites
  2133.    are good places to start hunting for more information or for finding
  2134.    software. I'll be adding more links to this list soon, as well as
  2135.    organizing it better. These links are not Linux specific, but I wanted
  2136.    to include them to provide a jump off point to the huge amount of info
  2137.    related to these topics located on the web.
  2138.    
  2139.    
  2140.    
  2141.   AI & Alife archives, software resources, etc.
  2142.    
  2143.      * SAL.KachinaTech.COM/Z/3/-Scientific Applications for Linux's AI
  2144.        page [NEW]
  2145.      * alife.santafe.edu/~joke/zooland/-ZooLand Artificial Life Resources
  2146.      * www.neuronet.ph.kcl.ac.uk/neuronet/software/software.html-NEuroNet
  2147.        - ANN software
  2148.      * www.cs.cmu.edu/Web/Groups/AI/html/repository.html-CMU Artificial
  2149.        Intelligence Repository
  2150.      * ftp.io.com/pub/genetic-programming/-John Koza's Genetic
  2151.        Programming archive.
  2152.        
  2153.   AI/Alife Research, Bibliographies, Books, etc.
  2154.      * www.mcs.net/~jorn/html/ai.html-Outsider's Guide to AI [NEW]
  2155.      *
  2156.        www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/cl
  2157.        m/clm.html-Common Lisp Book
  2158.      * www.elwoodcorp.com/alu/table/contents.htm-The Association of Lisp
  2159.        Users [NEW]
  2160.      * www.cs.indiana.edu/scheme-repository/home.html-Scheme repository
  2161.      * agents.www.media.mit.edu/groups/agents/-MIT Media Lab, Autonomous
  2162.        Agents Group
  2163.      * www.aic.nrl.navy.mil/-Navy Center for Applied Research in
  2164.        Artificial Intelligence
  2165.      * intranet.ca/~sshah/waste/waste.html-WASTE (AI Contest)
  2166.      * www.cs.washington.edu/research/jair/home.html-Journal of
  2167.        Artificial Intelligence Research
  2168.      * www.cs.ucl.ac.uk/misc/ai/-University of London's AI Resource Page
  2169.      * www.cris.com/~swoodcoc/ai.html -Artificial Intelligence in Games
  2170.      * www.cs.umbc.edu/agents/agentnews/-AgentNews Webletter
  2171.      * www.agent.org-Agent Society Home Page [NEW]
  2172.      * www.botspot.com/main.html-The BotSpot (a software agent resource
  2173.        page) [NEW]
  2174.      * drogo.cselt.stet.it/fipa/-FIPA Foundation for Intelligent Physical
  2175.        Agents [NEW]
  2176.      * www.robotmag.com/-Robot Magazine [NEW]
  2177.      * alife.santafe.edu/~joke/encore/-ENCORE-The Hitch-Hikers Guide to
  2178.        Evolutionary Computation
  2179.      * alife.santafe.edu-Santafe's Alife page
  2180.      * www.krl.caltech.edu/~brown/alife/-Alife FAQ
  2181.      * www.cogs.susx.ac.uk/users/ezequiel/alife-page/alife.html-ALife
  2182.        Bibliography
  2183.      * complex.csu.edu.au/complex/-Complex Systems Information Network
  2184.      * www.geneticprogramming.com/-The Genetic Programming Notebook [NEW]
  2185.      * gracco.irmkant.rm.cnr.it/luigi/lupa_algames.html-The Artificial
  2186.        Life Games Homepage
  2187.      * www.krl.caltech.edu/~charles/alife-game/-Project: Von Neumann
  2188.      * gal4.ge.uiuc.edu/illigal.home.html-IlliGAL Home Page (GA's)
  2189.      * isl.msu.edu/GA/-MSU GARAGe Home Page (GA's)
  2190.      * www.aracnet.com/~wwir/NovaGenetica/-Nova Genetica (GA's)
  2191.        
  2192.    
  2193.    
  2194.    
  2195.      _________________________________________________________________
  2196.    
  2197.    
  2198.    
  2199.    This page created and maintained by
  2200.    John Eikenberry
  2201.    All Standard Disclaimers Apply
  2202.