CLIPS FREQUENTLY ASKED QUESTIONS June 13th, 1994 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 ----------------- * CLIPS 6.0 is available by anonymous ftp (see question #2 for more details). * FuzzyCLIPS 6.02, an extended version of CLIPS 6.02 for representing and manipulating fuzzy facts and rules, is available. Both the source code and executables can be obtained by anonymous ftp (see question #14 for more details). * The Third CLIPS Conference is coming in September. * CLIPS 6.02 bug fixes are available (see question #6). 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? 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 Software Technology Branch Help Desk. For more information, contact Software Technology Branch Help Telephone (713) 286-8919 Fax (713) 244-5698 EMail stbprod@fdr.jsc.nasa.gov To order from the STB 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 STB Products 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 Telephone (706) 542-3265 Fax (706) 542-4807 EMail service@cossack.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 Telephone (214) 650-2002 Fax (214) 650-1929 Email ncc.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 Telephone (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. 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 Software Technology 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 Software Technology Branch (STB) 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 STB Help Desk can also be reached via electronic mail at 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@cossack.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@cossack.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@cossack.cosmic.uga.edu" with "UNSUBSCRIBE CLIPS-LIST" being the text of the message. If you appear to be experiencing difficulties at our end please send E-mail to "service@cossack.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. The STB 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 Software Technology 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 will be held at NASA's Johnson Space Center in Houston, Texas on September 12-14, 1994. The Software Technology Branch of NASA/Johnson Space Center has developed numerous software technologies in support of institutional and space systems development and operations. The purpose of the CLIPS Conference is to disseminate information about how these technologies are utilized, especially CLIPS. An exhibit area will be available for demonstration by attendees and vendors. New products, enhancements, and demonstrations of the Software Technology Branch technologies will also be showcased. Papers are solicited for parallel sessions concerning applications of STB technologies in government, defense, industry, business, and education. The should include applications of CLIPS, NETS, COSTMODELER, Splicer, TARGET, and other STB products. Abstracts for papers must be received by June 1, 1994. A non-faxed hard copy of the abstract should be sent directly to: Carla Colangelo NASA/Johnson Space Center Mail Code PT4 Houston, Texas 77058 (713) 483-9071 (voice) (713) 244-5698 (fax) Preferably send an electronic copy in Word or ASCII format on a PC-compatible or Macintosh diskette. Alternately, the abstract may be sent by electronic mail to stbprod@fdr.jsc.nasa.gov. Notification of acceptance will be tendered by July 15, 1994 and author's guidelines will be sent with an acceptance letter. Final papers (including an abstract) in camera ready form must be submitted by the conference opening date. An electronic copy (in Tex, LaTex, Word, or ASCII on a PC-compatible or Macintosh diskette) should also be submitted. Papers will be published in the conference proceedings and selected papers may appear in a book in early 1995. The registration fee until August 15, 1994 is $200 (or $50 for students). Registration for one day of the conference is $75. After August 15, 1994 add $30 per person for registration. You can register by mail, phone, or fax to I-NET Inc. 1020 Bay Area Boulevard, Suite 202 Houston, Texas 77058 (713) 286-2102 (voice) (713) 286-5253 (fax) Other submission and conference information can be requested from Carla Colangelo (see above address). Any information regarding demos or computer equipment for demos should be directed to: Chris Ortiz NASA/Johnson Space Center Mail Code PT4 Houston, TX 77058 (713) 483-1904 (voice) (713) 244-5698 (fax) Cancellation: Failure to attend an activity does not constitute withdrawal. I-NET Inc. must be notified of intent to withdraw either by phone or in writing. Conference fees are fully refundable if cancellation is received by September 8, 1994. Participant substitution may be made at any time. Registration Questions: Call I-NET at (713) 286-2102. NASA/JSC civil servants call Jane Kremer, Human Resources Development, AH-311, at (713) 483-2601. Location of Conference: Gilruth Center, NASA/Johnson Space Center, Houston, Texas 77058 9) IS THE CLIPS USER'S GROUP STILL ACTIVE? ------------------------------------------- Apparently not. Several individuals have had problems contacting all but a few of the officers. At the next CLIPS conference, we'll try to determine if there's enough interest to warrant restarting the group. 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 STB Help Desk to obtain a copy). 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 STB 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 STB Help Desk has a booklet containing CLIPS application abstracts (see question #2 for information on contacting the STB 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 STB 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 20 Park Plaza Boston, MA 02116 Telephone (800) 343-2204 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 Telephone (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/clips5.1 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. The file nrc-fuzzy-clips available by anonymous ftp from hubble.jsc.nasa.gov in the directory /pub/clips/Documents contains additional information on obtaining FuzzyCLIPS. 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 feagin@cl.uh.edu or write to Knoware, P.O. Box 977, Seabrook, TX 77586-0977. 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. The file daynaclips available by anonymous ftp from hubble.jsc.nasa.gov in the directory /pub/clips/Documents contains additional information. DYNACLIPS V3.0 (for CLIPS 5.1 or 6.0 on UNIX) can be downloaded by anonymous ftp from ftp.cs.cmu.edu. The file dyna_v3.tar.gz is in the user/ai/areas/expert/systems/clips/dyna/v3 directory. The Washington University School of Medicine has developed some data base library functions which provide a Sybase interface for CLIPS 6.0. The file clips-sybase available by anonymous ftp from hubble.jsc.nasa.gov in the directory /pub/clips/Documents contains additional information. 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. 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 /pub/clips/incoming. 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 Telephone (310) 322-0200 Fax (310) 322-3242 The Haley Enterprise, Inc. 413 Orchard Street Sewickley, PA 15143, Telephone (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 Telephone (617) 547-2500 Fax (617) 547-1962 Talarian Corporation 444 Castro Street Suite 140 Mountain View, CA 94041 Telephone (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 STB Help Desk no longer provides CLIPS training courses. S.E.T.A.P (Software Engineering, Training, And Programming) offers CLIPS Training. Expert Systems classes (taught in Houston, Texas) are available on the following dates: Introduction to Expert Systems - 6/13/94 through 6/17/94 Integrating 'C' Code with CLIPS - 6/20/94 through 6/24/94 The individual cost for a class is $990. For two or more, the cost is $865 each. A free copy of CLIPS is provided with class registration. Upon request, instruction is available on your own premises. For more information contact: S.E.T.A.P P.O. Box 58507 Webster, TX 77598 1 (800) 724-4305 ------------------------ 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. 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@cossack.cosmic.uga.edu" with "UNSUBSCRIBE CLIPS-LIST" being the text of the message. If you appear to be experiencing difficulties at our end please send E-mail to "service@cossack.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 two 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. 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.