                    CLIPS FREQUENTLY ASKED QUESTIONS
                           January 4th, 1995           
                    
This is the frequently asked questions list for CLIPS. A current
version of this file, clips-faq, is available by anonymous ftp from 
hubble.jsc.nasa.gov in the directory /pub/clips. Comments/Suggestions
about this list can be sent to Gary Riley. My email address is 
riley@gothamcity.jsc.nasa.gov. If you have a special version of CLIPS, 
CLIPS programs, or anything else that you'd like to make available to 
other CLIPS users, send email as well. References to the capabilities 
of other tools are to my best knowledge. If these references are 
incorrect or out-of-date, please let me know and I will correct them.
The mention of other products and services in this FAQ does not
represent an endorsement by either myself or NASA.

ITEMS OF INTEREST
-----------------

 * ISP has a World Wide Web page (see question #27).
 
 * Inference has a World Wide Web page (see question #21).
 
 * AGENT_CLIPS 1.0 Beta is available (see question #14).
     
 * An enhanced version of the CLIPS Windows 3.1 editor is 
   available (see question #14).
 
CONTENTS
--------
 1) What is CLIPS?
 2) Where can I get a copy of CLIPS?
 3) What's new in version 6.0 of CLIPS?
 4) Can CLIPS be redistributed? Are there any licensing fees?
 5) What forums are available for answering questions about CLIPS?
 6) Are there any bug fixes for CLIPS?
 7) Is there an Ada version of CLIPS?
 8) When's the next CLIPS conference?
 9) Is the CLIPS User's Group still active?
10) Are there any copies of the CLIPS Conference Proceedings left?
11) Are there any recent reviews of CLIPS?
12) Are there any sources describing applications built using CLIPS? 
13) Are there any textbooks using CLIPS?
14) Are there any special versions of CLIPS?
15) Can CLIPS access extended memory beyond the DOS 640K limit on a PC?
16) Can CLIPS be compiled using a C++ compiler?
17) Does COOL store its objects as C++ data structures? 
    Are there any plans to convert CLIPS to C++?
18) How can I integrate CLIPS as a C program with other C++ programs?
19) Is a Dynamic Link Library Available for the Windows version of CLIPS?
    How do I use CLIPS with other Windows 3.1 applications?
20) What are the origins of CLIPS?
21) Are there any languages similar to CLIPS?
22) Did Inference aid in the development of CLIPS?
23) What are the future plans for CLIPS?
24) Can CLIPS be used for real time applications?
25) Is the CLIPS 6.0 Architecture Manual available?
26) Are there any CLIPS example programs?
27) Are training classes for CLIPS available?
28) How do I unsubscribe from the CLIPS list server?
29) What does the "Script Line 7" error message mean?
30) Are there any examples of user defined functions other
    than the ones in the Advanced Programming Guide?
31) Does a run-time program generated using the constructs-to-c
    command run any faster than a program loaded using the load
    or bload commands?
32) What does the "Previously Installed Software is neither VCPI 
    nor DPMI compatible" error message mean?
33) Are there any companies providing CLIPS consulting services?


 1) WHAT IS CLIPS?
------------------
    CLIPS is a productive development and delivery expert system tool which
    provides a complete environment for the construction of rule and/or 
    object based expert systems. CLIPS is being used by over 5,000 users 
    throughout the public and private community including: all NASA sites 
    and branches of the military, numerous federal bureaus, government 
    contractors, universities, and many companies. The key features of 
    CLIPS are: 

    *  Knowledge Representation: CLIPS provides a cohesive tool for handling 
       a wide variety of knowledge with support for three different 
       programming paradigms: rule-based, object-oriented and procedural. 
       Rule-based programming allows knowledge to be represented as 
       heuristics, or "rules of thumb," which specify a set of actions to be 
       performed for a given situation. Object-oriented programming allows 
       complex systems to be modeled as modular components (which can be 
       easily reused to model other systems or to create new components). 
       The procedural programming capabilities provided by CLIPS are similar 
       to capabilities found in languages such as C, Pascal, Ada, and LISP.
    
    *  Portability: CLIPS is written in C for portability and speed and has
       been installed on many different computers without code changes. 
       Computers on which CLIPS has been tested include IBM PC compatibles,
       Macintosh, VAX 11/780, and Sun 3/260. CLIPS can be ported to any 
       system which has an ANSI compliant C compiler. CLIPS comes with all 
       source code which can be modified or tailored to meet a user's 
       specific needs.
    
    *  Integration/Extensibility: CLIPS can be embedded within procedural 
       code, called as a subroutine, and integrated with languages such as 
       C, FORTRAN and ADA. CLIPS can be easily extended by a user through 
       the use of several well-defined protocols.
    
    *  Interactive Development: The standard version of CLIPS provides an
       interactive, text oriented development environment, including 
       debugging aids, on-line help, and an integrated editor. Interfaces 
       providing features such as pulldown menus, integrated editors, and
       multiple windows have been developed for the Macintosh, Windows 3.1, 
       and X Window environments.
    
    *  Verification/Validation: CLIPS includes a number of features to 
       support the verification and validation of expert systems including 
       support for modular design and partitioning of a knowledge base, 
       static and dynamic constraint checking of slot values and function 
       arguments, and semantic analysis of rule patterns to determine if 
       inconsistencies could prevent a rule from firing or generate an error.
    
    *  Fully Documented: CLIPS comes with extensive documentation including 
       a Reference Manual and a User's Guide.

 2) WHERE CAN I GET A COPY OF CLIPS?
------------------------------------
    CLIPS version 6.0 is available at no cost to U.S government agencies
    and their contractors for use on U.S. government projects from the 
    Client/Server Systems Branch Help Desk. For more information, contact
    
       Client/Server Systems Branch Help Desk
       Phone: (713) 286-8919
       Fax:   (713) 244-5698
       EMail: stbprod@fdr.jsc.nasa.gov

    To order from the CSSB Help Desk, U.S. government employees must submit
    a request in writing on agency stationary. The request should include
    their name, organization name, organization address, and phone number.
    Contractors must also include their U.S. government contract number and 
    the name and phone number of their government contracting officer. 
    Software can not be sent to home addresses. Along with the letter
    include the appropriate media for storing the software: either two
    Macintosh high density 3 1/2" disks, two PC high density 3 1/2",
    or one Sun DC600 or DC6150 data cartridge. Send the letter and disks to

       CSSB Help Desk
       NASA/Johnson Space Center
       Mail Stop PT4
       Houston, TX  77058
    
    CLIPS version 6.0 is available from COSMIC. For new orders, the cost is 
    $350 for the program and $115 for printed documentation. For update 
    orders, the cost is $100 for the program or $200 for the program and 
    printed documentation. Price discounts are available to U.S. academic 
    institutions. For more information, contact
    
       COSMIC
       382 E. Broad St.
       Athens, GA  30602
       Phone: (706) 542-3265
       Fax:   (706) 542-4807 
       EMail: service@cosmic.uga.edu
    
    CLIPS version 6.0 is available on an ISO-9660 format CD-ROM from the 
    Network Cybernetics Corporation. Over 3,000 AI related files are 
    included on the CD-ROM. The cost is $129 + $5(domestic)/$10(foreign) 
    shipping. For more information, contact
      
       Network Cybernetics Corporation
       4201 Wingren Rd., Suite 202 
       Irving, TX 75062-2763
       Phone: (214) 650-2002
       Fax:   (214) 650-1929
       Email: ncc.com
    
    CLIPS version 6.0 is available on an ISO-9660 format CD-ROM from 
    Prime Time Freeware. It comes as part of an AI package based
    on the CMU AI repository and consists of two CD-ROMs bound into
    a 224-page book. Each CD-ROM contains approximately 600
    megabytes of gzipped archives (more than 5 gigabytes uncompressed 
    and unpacked). It sells for $60 plus applicable sales tax and 
    shipping and handling charges. For more information, contact
       
    Prime Time Freeware
    370 Altair Way, Suite 150
    Sunnyvale, CA  94086 USA
    Phone: (408) 433-9662
    Fax:   (408)433-0727
    Email: ptf@cfcl.com
   
    CLIPS version 6.0 is available from the Austin Code Works for $50.
    For more information, contact
    
       The Austin Code Works
       11100 Leafwood Lane
       Austin, Texas 78750-3409
       Phone: (512) 258-0785
       Fax:   (512) 258-8831
       BBS:   (512) 258-8831
       EMail: acw!info@uunet.uu.net

    The CLIPS 6.0 UNIX, PC, and Macintosh distribution packages 
    are available by anonymous ftp from ftp.cs.cmu.edu and can  
    be found in the user/ai/areas/expert/systems/clips directory.
    The distribution packages are also available by anonymous ftp
    from eecs.nwu.edu and can be found in the /pub/CLIPS directory.
    Other versions of CLIPS and CLIPS related files are also
    available at both ftp sites. [Many of the files located at 
    these sites are compressed and stored in a zip format. The file 
    unzip51.tar.Z is an unzip utility for UNIX which is available 
    by anonymous ftp from garbo.uwasa.fi and can be found in the 
    directory /unix/arcers. An unzip utility for PCs is also 
    available at this site. The file pkz204g.exe is contained in 
    the directory /pc/arcers.]
    
 3) WHAT'S NEW IN VERSION 6.0 OF CLIPS?
---------------------------------------
    CLIPS version 6.0 contains the following major enhancements and changes:

    *  Instances of user-defined clases in COOL can be pattern-matched
       on the left-hand side of rules.

    *  The defmodule construct allows a knowledge base to be modularized
       and partitioned.

    *  Not conditional elements may now contain CEs other than pattern CEs.
       The exists and forall CEs have been added. Connective constraints
       can be used with multifield variables.

    *  Static and dynamic constraint checking are supported to a much greater
       extent than in CLIPS 5.1. In addition to deftemplates, COOL also 
       performs constraint checking. Many of the features previously available 
       in CRSV are now directly supported in CLIPS.

    *  Deftemplates can now contain more than one multifield slot.

    *  The syntax for the defclass construct has been considerably
       changed.

    *  A Windows 3.1 CLIPS interface is now available for PC compatible
       computers. In addition, an MS-DOS 386 version of CLIPS is available
       which can use extended memory.

 4) CAN CLIPS BE REDISTRIBUTED? ARE THERE ANY LICENSING FEES?
-------------------------------------------------------------
    Copies of CLIPS purchased through COSMIC can be freely used and
    redistributed without restrictions. This is the mechanism through 
    which companies, such as the Austin Code Works or Network Cybernetics 
    Corporation, can redistribute CLIPS. The redistribution restrictions, 
    or lack thereof, also apply to any individual or company that has a
    copy of CLIPS that can trace its origins back to a purchase from 
    COSMIC. For example, if you buy a copy of CLIPS from the Austin Code 
    Works or you download a copy of CLIPS from an anonymous ftp site that 
    purchased a copy from COSMIC, you can freely use and redistribute the 
    copy you obtained.
    
    Users who receive CLIPS from the Client/Server Systems Branch Help Desk 
    may only use CLIPS in connection with the specific project under which 
    it was provided and no further use or dissemination can be made without 
    prior written permission.

 5) WHAT FORUMS ARE AVAILABLE FOR ANSWERING QUESTIONS ABOUT CLIPS?
------------------------------------------------------------------
    If you have problems using or installing CLIPS, the Client/Server Systems 
    Branch (CSSB) Help Desk can be contacted at (713) 286-8919 from 9:00 a.m. 
    to 4:00 p.m. (Central Standard Time). Leave your name and number and a 
    support person will get back to you. The CSSB Help Desk can also be 
    reached via electronic mail at stbprod@fdr.jsc.nasa.gov or by FAX at 
    (713) 244-5698. 
    
    ------------------------

    An electronic conferencing facility is also available to CLIPS users. 
    Subscribers to this facility may send questions, observations, answers, 
    editorials, etc., in the form of electronic mail to the conference. 
    All subscribers will have a copy of these messages reflected back to 
    them at their respective electronic mail addresses to process at their 
    leisure. All that is required is that you have an electronic mail address 
    that is accessible either directly on the Internet or via a gateway 
    connected thereto (e.g., BITNET or NASAMAIL). To subscribe, simply send 
    a single line message to listserv@cosmic.uga.edu saying 
    SUBSCRIBE CLIPS-LIST (the hyphen is required).  The subject field is 
    ignored but the address found in the 'Reply:', 'Reply to:', or 'From:' 
    field will be entered in the distribution list.  Upon subscription you 
    will receive a mail message instructing you how to participate in the 
    conference from that point forward.
    
    To send your own messages to members of the conference you need
    simply address your mail to clips-list@cosmic.uga.edu.
    Your message will be reflected to all other members of the
    conference.  If you want to reply directly to a single member of
    the conference you should send mail to their personal address.
    This will help 'minimize bandwidth' and reduce the amount of
    irrelevant messages others have to scan.
    
    If you wish to remove yourself from the conference and discontinue
    receiving mail simply send a message to listserv@cosmic.uga.edu 
    with "UNSUBSCRIBE CLIPS-LIST" being the text of the message.  If you 
    appear to be experiencing difficulties at the list-server end, please 
    send E-mail to service@cosmic.uga.edu. If you need to talk to a 
    person about your (CLIPS-LIST) problems, you may call (706) 542-3265 and 
    ask to speak with the Electronic Conference Sysop.
    
    ------------------------

    Usenet users can also find information and post questions about CLIPS 
    to the comp.ai.shells news group.
    
    ------------------------
    
    An anonymous ftp site maintained by the CLIPS development team can be
    accessed at hubble.jsc.nasa.gov. Bug fixes and other CLIPS related
    information are contained in the /pub/clips directory. The file read-me
    describes the contents of the clips directory.
    
    ------------------------
    
    A CLIPS World Wide Web page can be accessed using the URL 
    http://www.jsc.nasa.gov/~clips/CLIPS.html.
    
    ------------------------
    
    The CSSB Bulletin Board is no longer available.
    
 6) ARE THERE ANY BUG FIXES FOR CLIPS?
--------------------------------------
    A list of bug fixes for CLIPS 6.0 and the replacement source  
    files to fix the bugs are available by anonymous ftp from 
    hubble.jsc.nasa.gov in the directory /pub/clips/Bug-Fixes. 
    
 7) IS THERE AN ADA VERSION OF CLIPS?
-------------------------------------    
    CLIPS/Ada version 4.4 is a version of CLIPS developed entirely in Ada 
    and containing a subset of the features found in the C version of CLIPS.
    CLIPS/Ada version 4.4 contains all of the features found in CLIPS/C
    version 4.3, and with the exception of the CLIPS Object-Oriented 
    Language, all of the features found in CLIPS/C version 5.0. There are
    currently no plans to update CLIPS/Ada to a more recent version of
    CLIPS/C. CLIPS/Ada can be obtained through the Client/Server Systems 
    Branch Help Desk (free for NASA and its contractors) or COSMIC
    ($400 for the program and $21 for the documentation). 

 8) WHEN'S THE NEXT CLIPS CONFERENCE?
---------------------------------------------
    The Third CLIPS Conference was held at NASA's Johnson Space
    Center in Houston, Texas on September 12-14, 1994. No plans
    have been made yet for a fourth conference.
    
 9) IS THE CLIPS USER'S GROUP STILL ACTIVE?
-------------------------------------------
    No. Most of the current user interaction occurs through the
    CLIPS list server (see question #5).

10) ARE THERE ANY COPIES OF THE CLIPS CONFERENCE PROCEEDINGS LEFT?
------------------------------------------------------------------
    There are copies of both the First and Second CLIPS Conference
    Proceedings (see question #2 for information on contacting the
    CSSB Help Desk to obtain a copy). Copies of the Third CLIPS 
    Conference Proceedings are available in electronic format 
    from the CLIPS anonymous ftp site (see question #5).

11) ARE THERE ANY RECENT REVIEWS OF CLIPS?
------------------------------------------
    The two most recent reviews of CLIPS are "The Art of Production
    Systems" by Tom Brooke in the January 1992 issue of AI Expert
    and "A Comparative Evaluation of Expert System Tools" by
    Dr. William Mettrey in the February 1991 issue of IEEE Computer.
    A bibliography list of CLIPS related books, papers, and 
    articles is available via anonymous ftp from hubble.jsc.nasa.gov
    in the /pub/clips/Documents directory. The help desk also has
    copies of an evaluation by Dr. William Mettrey which compares
    ART-IM, CLIPS, KES, Knowledge Craft, LEVEL5, and Vax OPS5 (see 
    question #2 for information on contacting the CSSB Help Desk to 
    obtain a copy).
        
12) ARE THERE ANY SOURCES DESCRIBING APPLICATIONS BUILT USING CLIPS? 
--------------------------------------------------------------------
    There are a number of sources describing applications built 
    using CLIPS. The 1st and 2nd CLIPS Conference Proceedings are
    a good place to start. In addition, the CSSB Help Desk has a 
    booklet containing CLIPS application abstracts (see question #2 
    for information on contacting the CSSB Help Desk to obtain a copy).
    The abstracts booklet is also available via anonymous ftp from
    hubble.jsc.nasa.gov. The /pub/clips/Documents directory contains 
    abstract.sea.hqx (a binhexed self extracting archive of the abstracts 
    booklet in Macintosh Microsoft Word 5.1 format) and abstract.zip (a
    binary file in pkzip format in Word for Windows 2.0 format). A 
    bibliography list of CLIPS related books, papers, and articles is 
    also available in the /pub/clips/Documents directory.

    If you'd like to share information with other CLIPS users about 
    your CLIPS applications, please provide the following information:

    *	The name of your expert system.
    *	Its purpose (brief-one or two sentences).
    *	Development stage (conceptual, developing, alpha testing, beta 
        testing, finished).
    *	Other Languages/Shells used.
    *	Papers or other references that describe your application.
    *	Contact person (name, organization, address, phone, fax, email 
        address, etc).
    *	Description of your application (no more than a page or so).

    Send the information by either mail, fax, or electronic mail to
    the CSSB Products Help Desk.

    Since the primary purpose of this booklet is to provide CLIPS users 
    the opportunity to contact other individuals developing applications 
    of interest, we're limiting the applications listed in this booklet 
    to those that provide at least some source of further information 
    (such as a mail address, email address, phone number, or reference 
    other than the CLIPS conference proceedings). In either case, we're 
    still interested in hearing about any applications you've developed.

    ------------------------

    The Proceedings of the First, Fourth, and Fifth Innovative 
    Applications of Artificial Intelligence also contain descriptions
    of applications built using CLIPS ("An Intelligent Training System 
    for Space Shuttle Flight Controllers" and "Space Shuttle Telemetry 
    Monitoring" in the First, "HUB SIAASHING: A Knowledge-Based System 
    for Severe, Temporary Airline Schedule Reduction" in the Fourth,
    and "PI-in-a-Box: A Knowledge-based System for Space Science 
    Experimentation" and "The DRAIR Advisor: A Knowledge-Based System 
    for Materiel Deficiency Analysis" in the Fifth).

13) ARE THERE ANY TEXTBOOKS USING CLIPS?
----------------------------------------
    "Expert Systems: Principles and Programming," 2nd Edition, by 
    Giarratano and Riley comes with an MS-DOS 386 executable of version 
    6.0 of CLIPS. The first half of the book is theory oriented and the 
    second half covers rule-based programming using CLIPS. For more 
    information, contact
   
       PWS Publishing Company
       20 Park Plaza,
       Boston, MA  02116-4324
       Phone: (617) 542-3377
       Fax:   (617) 338-6134

    "The Engineering of Knowledge-based Systems: Theory and Practice"  
    by Gonzalez and Dankel comes with an MS-DOS executable of version
    5.1 of CLIPS. The use of CLIPS isn't integrated throughout the book,
    but there is a 25 page appendix that describes the fundamentals of
    using the CLIPS executable bundled with the book. For more information, 
    contact

       Prentice Hall
       P.O. Box 11073
       Des Moines, Iowa 50336-1073
       Phone: (515) 284-6761
       Fax:   (515) 284-2607    
              
14) ARE THERE ANY SPECIAL VERSIONS OF CLIPS?
--------------------------------------------
    HyperCLIPS version 2.0 integrates Macintosh HyperCard version 1.2 or 
    higher with CLIPS version 5.0. It is available through COSMIC (see
    question #2). The cost is $50 for the program and $15 for the
    documentation.
    
    wxCLIPS, developed by Julian Smart, provides a simple graphical front 
    end to CLIPS 5.1, and in addition contains a suite of extra functions  
    for creating GUI applications in CLIPS. wxCLIPS is available by 
    anonymous ftp from skye.aiai.ed.ac.uk (192.41.104.6). wxCLIPS is in  
    the /pub/wxclips directory.

    FuzzyCLIPS 1.5 is an extension of CLIPS incorporating fuzzy logic. 
    FuzzyCLIPS includes all CLIPS 5.1 capabilities  and adds the 
    fuzzy logic processing capability. FuzzyCLIPS is available for IBM
    PC, UNIX, and Macintosh platforms. Prices range from $199 for
    FuzzyCLIPS User to $499 for FuzzyCLIPS Developer to $899 for
    FuzzyCLIPS Professional. For more information, contact Togai InfraLogic, 
    Inc. by phone at 1 (800) 863-8999.

    FuzzyCLIPS 6.02 is an extended version of CLIPS 6.02 for representing  
    and manipulating fuzzy facts and rules. In addition to the CLIPS 
    functionality, FuzzyCLIPS can deal with exact, fuzzy (or inexact), and 
    combined reasoning, allowing fuzzy and normal terms to be freely mixed 
    in the rules and facts of an expert system. The system uses two basic 
    inexact concepts, fuzziness and uncertainty.It was developed by the
    Knowledge Systems Laboratory of the National Research Council of Canada 
    (and is a different tool than the previously mentioned FuzzyCLIPS 1.5 
    developed by Togai InfraLogic). FuzzyCLIPS is available via anonymous 
    ftp from ai.iit.nrc.ca in the directory /pub/fzclips. FuzzyCLIPS is 
    also available via WWW (the World Wide Web). It can be accessed 
    indirectly by accessing the Knowledge Systems Lab Server using the URL 
    http://ai.iit.nrc.ca/home_page.html or more directly by using the URL 
    http://ai.iit.nrc.ca/fuzzy/fuzzy.html. Versions are available for unix 
    systems, Macintosh systems and PC systems. There is no cost for the 
    software, but please read the terms for use in the FuzzyCLIPS 
    documentation or in the WWW FuzzyCLIPS pages. For further information 
    or queries about FuzzyCLIPS please direct messages to 
    fzclips@ai.iit.nrc.ca.

    CLIPsTOOL, developed by Dr. Terry Feagin, is an extension of CLIPS
    6.0 that allows the CLIPS programmer to create windows, items (such
    as buttons, sliders, checkboxes, gauges, textfields, etc.) within 
    windows, menus, notices or alerts, etc., to draw lines, rectangles, 
    circles, etc. in color/patterns in windows, to load/save images 
    into/from a window, etc. from the RHS of a CLIPS rule (or in fact 
    from the CLIPS> prompt if desired).  Events such as mouse clicks, 
    keyboard entry, closing or quitting from a window, etc. cause facts 
    to be asserted so that subsequent rules can fire. It's all written
    in X and uses the XView toolkit (distributed with X).  At present, 
    it runs on Sun workstations (an IBM RS/6000 version is underway). 
    Discounts are available for universities and government. For more 
    information, send email to  knoware@blkbox.com or write to Knoware, 
    P.O. Box 977, Seabrook, TX  77586-0977. A demo version of CLIPsTool,
    clips_demo.tar.Z, is available by anonymous ftp from blkbox.com in 
    the directory pub/unix. 
  
    DYNACLIPS (DYNAamic CLIPS Utilities), developed by Yilmaz Cengeloglu,
    is a set of blackboard, dynamic knowledge exchange, and agent tools
    for either CLIPS 5.1 or CLIPS 6.0. It is a set of libraries that can 
    be linked with CLIPS. DYNACLIPS V3.1 (for CLIPS 5.1 or 6.0 on UNIX)
    can be downloaded by anonymous ftp from ftp.cs.cmu.edu from the 
    user/ai/areas/expert/systems/clips/dyna/v31 directory.
    
    AGENT_CLIPS 1.0 Beta, developed by Yilmaz Cengeloglu, is a multi-agent 
    tool for Macintosh which allows multiple copies of CLIPS to run at the 
    same time. Each Agent (CLIPS) can send commands to other active agents 
    at run time. AGENT_CLIPS handles incoming commands automatically.
    Command transfer allows facts and rules to be exchanged at run time.
    This is a form of knowledge exchange among intelligent agents.
    AGENT_CLIPS 1.0 is available on Compuserve in the AIEXPERT forum
    under Libraries, Expert System. Use the "go AIEXPERT" command to go 
    the AIEXPERT Forum. The name of the file is AGENT_CLIPS 1.0.sea.
    
    The Washington University School of Medicine has developed some data 
    base library functions which provide a Sybase interface for CLIPS 6.0.
    The source code and documentation are available via anonymous ftp on
    wuarchive.wustl.edu. The file names are README and clips2sybase.tar.uu,
    and can be found in the /packages/clips2sybase/v6.01 directory. There is
    also a version for CLIPS 5.1 in the /packages/clips2sybase/v5.1 directory.
    
    An enhanced version of the CLIPS Windows 3.1 editor, developed by Ron
    Shapiro, is available by anonymous ftp from hubble.jsc.nasa.gov. The
    file newedit.zip is contained in the directory /pub/clips/Programs
    directory. Among other nifty features, the editing of multiple documents 
    is supported.

15) CAN CLIPS ACCESS EXTENDED MEMORY BEYOND THE DOS 640K LIMIT ON A PC?
-----------------------------------------------------------------------
    The executables distributed with versions of CLIPS prior to CLIPS
    6.0 were not able to access extended memory on IBM PC compatible
    computers. The CLIPS 6.0 PC distribution package comes with a DOS 
    386 executable and a Windows 3.1 executable both of which can 
    access extended memory. The DOS and the Windows 3.1  executable 
    requires a 386 microprocessor or better.

    The DOSX memory manager used by the 386 version of CLIPS is compatible
    with Microsoft's himem.sys, ramdrive.sys, and smartdrv.sys; Qualitas 
    386^MAX version 5.0 and above; and IBM's vdisk.sys. If an extended 
    memory manager is available, then DOSX will use it to allocate extended 
    memory, otherwise DOSX will allocate the extended memory itself.

    A DOS 286 CLIPS executable with all features enabled that also uses 
    extended memory cannot be generated because of limitations on the 
    amount of static data (< 64K). By disabling features, an 286 executable 
    can be created which contains less than 64K of static data and also has 
    access to extended memory. Generating the executable requires the use of
    DOS Extender (either a separate product or one bundled with the compiler).
 
    A DOS 86 executable which has access to extended memory can not be 
    created, however it is possible to create a CLIPS executable that can
    run within the DOS 640K memory limit by disabling features.
    
16) CAN CLIPS BE COMPILED USING A C++ COMPILER?
-----------------------------------------------
    CLIPS was designed to support both the older Kernighan and Ritchie (K&R)
    C compilers and C compilers based on the ANSI C standard. C++ is not a 
    proper superset of ANSI C, and therefore some ANSI compliant code cannot 
    be compiled using a pure C++ compiler. Specifically, old style K&R  
    function declarations, which are used throughout CLIPS in conjuction with 
    both K&R and ANSI style prototypes, either do not compile or have
    different meanings in C++. Thus, CLIPS can not be compiled using a pure
    C++ compiler. Many C++ compilers provide an option which allows the use 
    of K&R style function declarations. In addition, it is also possible link
    CLIPS object files generated using a C compiler with object files 
    generated by a C++ compiler.

17) DOES COOL STORE ITS OBJECTS AS C++ DATA STRUCTURES? 
    ARE THERE ANY PLANS TO CONVERT CLIPS TO C++?
-------------------------------------------------------
    CLIPS was written to conform to the ANSI C standard. It was also written 
    to be as compatible as possible with the older K&R style compilers.
    Since the object extensions of C++ are not part of the ANSI C standard,
    they are not utilized in the CLIPS source code. There are no plans to
    convert the CLIPS source code to C++.

18) HOW CAN I INTEGRATE CLIPS AS A C PROGRAM WITH OTHER C++ PROGRAMS?
---------------------------------------------------------------------
    The file clips-and-c++ available by anonymous ftp from hubble.jsc.nasa.gov
    in the directory /pub/clips/Documents describes how CLIPS source files
    compiled as C programs can be integrated with C++ files compiled using a 
    C++ compiler.

19) IS A DYNAMIC LINK LIBRARY AVAILABLE FOR THE WINDOWS VERSION OF CLIPS?
    HOW DO I USE CLIPS WITH OTHER WINDOWS 3.1 APPLICATIONS?
-------------------------------------------------------------------------
    A Windows Dynamic Link Library (DLL) for CLIPS 6.0 is not available.
    A DLL for CLIPS 5.1 is available by anonymous ftp from ftp.cs.cmu.edu.
    in the directory user/ai/areas/expert/systems/clips/contrib/clipsdll. 
    The file clips-and-windows available by anonymous ftp from 
    hubble.jsc.nasa.gov in the directory /pub/clips/Documents describes 
    three techniques for using CLIPS with other Windows 3.1 applications 
    (embedding CLIPS into your Windows application, creating CLIPS as a DLL, 
    or using Dynamic Data Exchange).

20) WHAT ARE THE ORIGINS OF CLIPS?
----------------------------------  
    The origins of CLIPS date back to 1984 at NASA's Johnson Space Center. 
    At this time, the Artificial Intelligence Section (now the Software 
    Technology Branch) had developed over a dozen prototype expert systems 
    applications using state-of-the-art hardware and software. However, 
    despite extensive demonstrations of the potential of expert systems, 
    few of these applications were put into regular use. This failure to 
    provide expert systems technology within NASA's operational computing 
    constraints could largely be traced to the use of LISP as the base 
    language for nearly all expert system software tools at that time.

    The Artificial Intelligence Section felt that the use of a conventional 
    language, such as C, would eliminate most of these problems. Although a
    number of tool vendors started converting their tools to run in C, the 
    cost of each tool was still very high, most were restricted to a small 
    variety of computers, and the projected availability times were 
    discouraging. To meet all of its needs in a timely and cost effective 
    manner, it became evident that the Artificial Intelligence Section would 
    have to develop its own C based expert system tool.

    The prototype version of CLIPS was developed in 1985. Particular 
    attention was given to making the tool compatible with expert systems 
    under development at that time. Thus, the syntax of CLIPS was made to 
    very closely resemble the syntax of a subset of the ART expert system 
    tool developed by Inference Corporation. Although originally modelled 
    from ART, CLIPS was developed entirely without assistance from 
    Inference or access to the ART source code.

    The original intent of the prototype was to gain useful insight and 
    knowledge about the construction of expert system tools and to lay the 
    groundwork for the construction of a fully usable tool. The CLIPS 
    prototype had numerous shortcomings, however, it demonstrated the 
    feasibility of the project concept. After additional development, it 
    became apparent that sufficient enhancements to the prototype would 
    produce a low cost expert system tool that would be ideal for the 
    purposes of training. Another year of development and internal use went 
    into CLIPS improving its portability, performance, and functionality.
    The first release of CLIPS to groups outside of NASA occurred in 1986.

    Further enhancements transformed CLIPS from a training tool into a tool 
    useful for the development and delivery of expert systems as well.
    Subsequent enhancements to CLIPS extended it beyond its initial 
    representation methodology of forward chaining rules by adding 
    procedural and object-oriented programming paradigms.

21) ARE THERE ANY LANGUAGES SIMILAR TO CLIPS?
---------------------------------------------
    CLIPS is an interesting example of technology transfer between the 
    government and private sectors. Syntactically, CLIPS traces its origins 
    to Inference's ART which traced the origins of its rule-based language 
    to OPS5. Later, CLIPS was used by Inference to develop ART-IM and by 
    The Haley Enterprise to develop Eclipse. In the early days of CLIPS
    development, porting an application from CLIPS to ART was fairly easy
    (although the reverse was not necessarily true if many of the advanced
    features of ART were utilized). In recent years, the features and
    capabilities of CLIPS, ART-IM, and Eclipse have diverged sufficiently
    that porting from one to the other is no longer a trivial task. Still,
    the basic syntax of their rules remains very similar and the flavor of
    the languages is more or less the same. For more information on either
    ART-IM or Eclipse, contact respectively Inference or The Haley Enterprise.

       Inference Corporation
       550 North Continental Blvd.
       El Segundo, CA 90245
       Phone: (310) 322-0200
       Fax:   (310) 322-3242
       WWW:   http://www.inference.com
       
       The Haley Enterprise, Inc.
       413 Orchard Street
       Sewickley, PA 15143, 
       Phone: (412) 741-6420
       Fax:   (412) 741-6457
       
22) DID INFERENCE AID IN THE DEVELOPMENT OF CLIPS?
--------------------------------------------------
    Over the last several years, there has been a persistent group of 
    rumours to the effect that either Inference developed CLIPS for NASA
    or that NASA used the ART source code to develop CLIPS. Neither of 
    these statements are true. To set the matter straight, there is not a  
    single line of CLIPS source code that was either written by Inference 
    or given to NASA by Inference. In addition, NASA never had access to 
    the ART source code.
   
23) WHAT ARE THE FUTURE PLANS FOR CLIPS?
----------------------------------------
    After eight years of development and the release of version 6.0
    of CLIPS, our list of "must have" features has become very short.
    We haven't made any plans to begin work on the next major release
    of CLIPS. We will, of course, continue to maintain the CLIPS code
    and have minor releases when necessary to fix bugs or provide
    minor new capabilities. We intend to complete the CLIPS 6.0
    Architecture Manual and have it available sometime in 1994.
    
    It is likely that we will develop a Windows Dynamic Link Library
    and support Macintosh AppleEvents for the next major release of
    CLIPS. The development of a class browswer for the machine specific 
    interfaces is also a possibility.
    
    Likely new capabilities for the next major release of CLIPS would
    be temporal reasoning, inheritance by generalization, and 
    persistent objects.
    
24) CAN CLIPS BE USED FOR REAL TIME APPLICATIONS?
-------------------------------------------------
    Yes and no. It depends on what you mean by a real time application.
    
    If you want guaranteed response time, then the answer is no. Note 
    that even tools specifically designed for real time applications 
    like G2 and RTworks can't give you guaranteed response times. 
    Generally speaking, the more robust the pattern matching capabilities 
    of a tool, the more difficult it is to guarantee real time response.
    
    If you need built-in functionality that allows you reason about events
    as they occur over time, then the answer is no. Many tools designed
    for real time applications provide features that allow you (among other
    things) to schedule rules to be checked at a particular time or on a 
    particular time interval, specify how long data is valid, determine 
    trends in data (such as whether it's increasing or decreasing), and 
    synchronize the execution of tasks. In addition, some tools such as G2,
    provide extensive facilities for the "non AI" related aspects of
    developing a real time application such as the graphical interface,
    simulation, and data acquisition. It's possible to use CLIPS to reason
    about events as they occur over time--It's just not a built-in feature.
    You can, for example, add an additional slot to facts which stores their 
    creation time and then use rules which reason based on the contents of
    this slot.

    If by real time you mean that the application is able to keep up with
    the data as it is received, then the answer is maybe. Almost all 
    expert system tools can keep up with a real time system that only
    requires decisions to be made in minutes/hours/days. Response time
    tends to become an issue only when large amounts of data are being
    processed or decisions are required every few seconds.
    
    If you need really, really fast response time, then the answer is maybe.
    Of course, my definition of really, really fast is probably different
    than yours, so let me quantity that: if you need responses faster than
    every 1 to 2 seconds, then CLIPS will probably not be fast enough. 
    Again, even tools such as G2 are probably not capable of dealing with
    data rates in the milliseconds. The smallest time increment available 
    in G2 for scheduling a rule is one second, so even if G2 is capable of
    receiving data several times a second, it's not capable of processing
    the data within that time frame.

    CLIPS is based on the Rete pattern matching algorithm. The efficiency
    of this algorithm is based on the assumption that data changes slowly
    over time (e.g. a single rule firing affects < 5% of all facts). This
    assumption would appear to fail miserably for monitoring applications
    (as well as other applications where rapid data change can occur). If,
    for example, you have 100 facts representing various sensor values and 
    the sensor values change every second, you have very rapid data changes 
    (assuming you don't have thousands and thousands of facts of other 
    types). It's often possible to comply with the Rete assumption by
    preprocessing data. For example, if a sensor value changes from 10 to 
    10.1 and this change is not significant, then it's not necessary to
    retract the old fact and assert a new fact with the changed sensor
    value. Another preprocessing approach would be to convert numeric 
    values to symbolic values such as low, nominal, and high and then to
    retract the old fact and assert a new one only if the symbolic value
    changed. The major drawback to this approach is that you generally have
    to write C code to preprocess the data and keep track of pointers to
    facts so that facts can later be retracted by the preprocessor--Of
    course if you're dealing with real-time data, you're probably writing
    some C code anyway.
                      
    For more information on either G2 or RTworks, contact respectively 
    Gensym Corporation or Talarian Corporation.

       Gensym Corporation
       125 CambridgePark Drive
       Cambridge, MA  02140
       Phone: (617) 547-2500
       Fax:   (617) 547-1962
       
       Talarian Corporation
       444 Castro Street
       Suite 140
       Mountain View, CA 94041
       Phone: (415) 965-8050
       Fax:   (415) 965-9077

25) IS THE CLIPS 6.0 ARCHITECTURE MANUAL AVAILABLE?
---------------------------------------------------
    We have not yet completed the 6.0 Architecture Manual. Copies of the
    CLIPS 5.1 Architecture Manual are still available.
    
26) ARE THERE ANY CLIPS EXAMPLE PROGRAMS?
-----------------------------------------
    A few programs (some of which were done by students from an expert 
    systems course) are available by anonymous ftp from 
    hubble.jsc.nasa.gov in the directory /pub/clips/Programs.
    
    ------------------------
    
    COSMIC sells several CLIPS related programs:
    
    The Design Manager's Aid for Intelligent Decomposition (DeMAID) is a 
    knowledge-based system for ordering the sequence of modules and 
    identifying a possible multilevel structure for the problem design. 
    It was developed using CLIPS 4.3.
    
    The CLIPS Intelligent Tutoring System (CLIPSITS) is designed to be used
    to learn CLIPS. CLIPSITS is divided into 10 lessons which mirror the
    first 10 chapters of the CLIPS User's Guide. CLIPSITS is compatible 
    with the Version 4.2 and 4.3 CLIPS User's Guide, however, the program
    does not cover any new features of CLIPS 4.3 that were added since
    the release of CLIPS 4.2.
    
    The Expert Script Generator (ESG) is a software package that 
    automatically generates high-level task objective commands for a 
    complex menu-driven language used for telerobotics control. It was
    developed using CLIPS 4.2.

    For more information on these programs, contact COSMIC (see question #2).
    
27) ARE TRAINING CLASSES FOR CLIPS AVAILABLE?
---------------------------------------------
    The CSSB Help Desk no longer provides CLIPS training courses.
    
    ------------------------

    I.S.P (Intelligent Software Professionals, formerly S.E.T.A.P.) 
    offers CLIPS Training. Expert Systems classes are available for 
    the following topics:

       Basic CLIPS 
       Integrating 'C' Code with CLIPS 
       
    The 5 day Basic CLIPS class is offered in Houston, Texas the
    following dates:

       Apr.  3 - Apr.  3, 1995
       Jul. 10 - Jul. 14, 1995

    The individual cost for a class is $1090. For two or more, the cost is
    $990 each. Lunch is provided. A free copy of CLIPS is provided with 
    class registration. Upon request, instruction is available on your own 
    premises. For more information contact:

       I.S.P.
       P.O. Box 57562
       Webster, TX  77598
       Phone: (800) 724-4305
       Fax:   (713) 474-3829
       Email: isp@phoenix.phoenix.net
       WWW:   http://www.phoenix.net/USERS/isp
       
    ------------------------
    
    Dr. David Goldstein, Assistant Professor at North Carolina A&T State 
    University, offers two short courses: "Building Expert Systems" and 
    "Developing Object-Oriented Knowledge-Based Systems." Both are two
    day courses and cost $625.

    "Building Expert Systems" teaches the theoretic fundamentals of 
    knowledge-based systems, the design techniques of knowledge-based systems, 
    and will present how to implement knowledge-based systems using CLIPS. 
    Students will attain a working knowledge of terminology, techniques, and 
    tools, and will be given hands-on experience using CLIPS. Students will  
    also build several small systems. No prerequisites are required. Course  
    notes and a copy of CLIPS will be provided.
    
    "Developing Object-Oriented Knowledge-Based Systems" presents how to 
    implement sophisticated intelligent systems. Students will be given 
    hands-on experience using CLIPS by building several small systems.  
    Course topics include: truth-maintenance; probabilistic reasoning; 
    object-oriented knowledge-based systems; using CLIPS for intelligent  
    database queries; embedding CLIPS for knowledge-based control systems. A  
    discussion of research around the world on knowledge-based systems,  
    including real-time systems and distributed artificial intelligence  
    (cooperative systems) will occur. Prerequisites are the "Building Expert 
    Systems" Short Course or an expert systems or artificial intelligence 
    course. Course notes and overheads will be provided, as well as a copy of 
    CLIPS.
    
    For more information, contact David Goldstein by email at goldstn@ncat.edu
    or write to him at the Computer Science Department, Graham Hall, NCA&T  
    State University, Greensboro, NC 27411.
    
    ------------------------
    
    Intelligent Visual Computing offers the course Building Expert Systems
    at the customer's site. This course is based on CLIPS version 6
    including COOL. For more information including pricing and a course
    outline contact:
    
       Intelligent Visual Computing
       1143-I Executive Circle
       Cary, NC 27511
       Phone: (800) 776-2810
       Email: mdc@ivc.com
       
    ------------------------
    
    Intelligent Software Associates, Inc. (ISAI) provides a two-week, 
    on-site training course in Expert System development using CLIPS 
    as well as shorter courses on Knowledge Engineering, LISP Programming, 
    and an Executive Overview of AI. For more information, contact:

       Tim Bickmore
       Intelligent Software Associates, Inc.
       P.O. Box 188825
       Sacramento, CA 95818
       Phone: (916) 737-1441
       Email: bickmore@netcom.com
      
28) HOW DO I UNSUBSCRIBE FROM THE CLIPS LIST SERVER?
----------------------------------------------------
    If you wish to remove yourself from the conference and discontinue
    receiving mail simply send a message to "listserv@cosmic.uga.edu" 
    with "UNSUBSCRIBE CLIPS-LIST" being the text of the message.  If you 
    appear to be experiencing difficulties at the list-server end,
    please send E-mail to service@cosmic.uga.edu. If you need to talk 
    to a person about your (CLIPS-LIST) problems, you may call (706) 542-3265 
    and ask to speak with the Electronic Conference Sysop.

29) WHAT DOES THE "SCRIPT LINE 7" ERROR MESSAGE MEAN?
-----------------------------------------------------
    An early version of the CLIPS 6.0 PC installer has a bug that under
    some circumstances will cause an error message. The cryptic 
    "script line 7" error message usually occurs in three situations:

    1) There is not enough hard disk space available to install the files.
       Remember that it takes more than N megabytes of hard disk space
       to install N megabytes of files since the installer will move the
       compressed files to the hard disk and then decompress them. You 
       can prevent this problem if you make sure that you have enough
       free disk space available (full installation takes up about 12
       MB, so 20 MB should be more than safe).

    2) The installer has problems if the directory structure or files from 
       a previous installation already exist. To get around this, you can 
       reinstall to a different directory or delete the existing directories 
       and files before reinstalling. If situation #1 occurs, you will have 
       this problem if you free up hard disk space, but don't delete the 
       directories and files that were partially installed.
       
    3) Too many memory resident programs. Make copies of your autoexec.bat
       and config.sys files and then remove unnecessary memory resident 
       programs that are loaded by these files. Reboot your machine and
       then try running the installer.

30) ARE THERE ANY EXAMPLES OF USER DEFINED FUNCTIONS OTHER 
    THAN THE ONES IN THE ADVANCE PROGRAMMING GUIDE? 
----------------------------------------------------------
    Virtually all of the system defined functions that come ready to use 
    with CLIPS utilize the same programming interface that you have to
    use to define your own functions. Look through files such as bmathfun.c, 
    iofun.c, miscfun.c, prdctfun.c, emathfun.c, filecom.c, and multifun.c 
    for examples.

31) DOES A RUN-TIME PROGRAM GENERATED USING THE CONSTRUCTS-TO-C
    COMMAND RUN ANY FASTER THAN A PROGRAM LOADED USING THE LOAD 
    OR BLOAD COMMANDS?
---------------------------------------------------------------
    A run-time program will not run any faster than a program loaded using 
    the load or bload commands. The constructs-to-c command used to generate 
    a run-time program creates files containing the C data structures that 
    would dynamically be allocated if the load or bload command was used. 
    With the exception of some initialization routines, the constructs-to-c 
    command does not generate any executable code. The primary benefits of 
    creating a run-time program are: applications can be delivered as a 
    single executable file; loading constructs as part of an executable is 
    faster than loading them from an text or binary file; the CLIPS portion 
    of the run-time program is smaller because the code needed to parse 
    constructs can be discarded; and less memory is required to represent 
    your program's constructs since memory for them is statically rather 
    than dynamically allocated.
    
32) WHAT DOES THE "PREVIOUSLY INSTALLED SOFTWARE IS NEITHER VCPI 
    NOR DPMI COMPATIBLE" ERROR MESSAGE MEAN?
----------------------------------------------------------------
    The CLIPS386 executable uses Zortech's DOSX 386 extender. DOSX 386
    programs are compatible with IBM's vdisk.sys, Microsoft's 
    ramdrive.sys, smartdrv.sys, himem.sys, Qualitas' 386^MAX (v5.0 and 
    above), and other well-behaved TSRs which may or may not use extended 
    memory. DOSX 386 programs are not compatible with some versions of 
    TSRs that switch the processor to V86 mode and leave the processor in 
    that state. These types of programs must be either VCPI compatible or 
    DPMI compatible.
 
    If you get the VCPI/DPMI compatibility error message, the cause is
    most likely a program loaded by the autoexec.bat or config.sys files.
    If you don't know whether programs loaded by these files are VCPI/DPMI,
    you can determine which program is causing problems by first 
    verifying that the problem is indeed caused by a program loaded from
    the autoexec.bat or config.sys files. Remove as many calls to TSRs as 
    possible contained in these files (after making a backup), reboot
    your machine, and then see if the CLIPS386 can now be run. If it
    can, you can determine which TSR is causing problems by calls to
    TSRs back to your autoexec.bat and config.sys files one at a time.
    
33) ARE THERE ANY COMPANIES PROVIDING CLIPS CONSULTING SERVICES?
----------------------------------------------------------------
   In addition to the course "Building Expert Systems" that is built 
   using CLIPS we do consulting and development in: Expert systems, 
   CLIPS, Object Oriented Analysis and Design, and C++. For more 
   information contact:

       Intelligent Visual Computing
       1143-I Executive Circle
       Cary, NC 27511
       Phone: (800) 776-2810
       Email: mdc@ivc.com

    ------------------------
    
    For information on CLIPS consulting services, contact:
    
       William Mark McVea  P.E.
       Email: mcvea@ecn.purdue.edu

    ------------------------

    In 1990, Intelligent Software Associates, Inc., in Sacramento, California, 
    was started to provide consulting services, custom software development, 
    and training in Expert Systems development. While we have experience
    developing systems in other shells (notably ART, KEE, and Nexpert), we 
    have actually performed most of our work in CLIPS since 1986, when we 
    worked at Lockheed's AI Center. I taught Lockheed's course in advanced  
    ART development and, along with other ISAI personnel, a two-week course 
    in Expert System development using CLIPS. While at Lockheed, we also 
    consulted on the development of numerous systems using ART and CLIPS,
    and I developed a RETE-based production system in Common LISP (roughly
    CLIPS 4.0 plus logical dependencies, structured facts and backward 
    chaining) that was used on several Lockheed research projects.

    ISAI has done custom Expert System development for both commercial 
    organizations (in the health insurance and industrial monitoring and 
    control industries) and for NASA (in the area of rocket engine monitoring 
    and control). We still provide a two-week, on-site training course in 
    Expert System development using CLIPS (taught to various commercial 
    companies, and personnel from NASA LeRC, MSFC, and KSC), as well as 
    shorter courses on Knowledge Engineering, LISP Programming, and an 
    Executive Overview of AI.  We have developed bridges between CLIPS and 
    the Ingres and Mettrica databases (an Oracle bridge is in development), 
    and also have integrated CLIPS into numerous procedural programs.

    For more information, contact:

       Tim Bickmore
       Intelligent Software Associates, Inc.
       P.O. Box 188825
       Sacramento, CA 95818
       Phone: (916) 737-1441
       Email: bickmore@netcom.com

    ------------------------

    My company, TeamSource, provides software development and consulting
    services over a wide range of computer technologies, including CLIPS.
    For more information, contact:
   
       Jeff Richardson
       Email: jar@interaccess.com
      

