.\" Process this file with .\" groff -man -Tascii foo.1 .\" .TH CLIPS 1 "July 2003" Linux "C Language Integrated Production System" .SH NAME clips \- an expert system programming language .SH SYNOPSIS .B clips [ .I file.clp .B ] .SH DESCRIPTION \fBCLIPS\fR 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 numerous 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: .IP Knowledge\ Representation \fBCLIPS\fR 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 \fBCLIPS\fR are similar to capabilities found in languages such as C, Pascal, Ada, and LISP. .IP Portability \fBCLIPS\fR is written in C for portability and speed and has been installed on many different computers without code changes. Computers on which \fBCLIPS\fR has been tested include an IBM PC running DOS and Windows 95 and a Macintosh running MacOS and Mach. \fBCLIPS\fR can be ported to any system which has an ANSI compliant C compiler. \fBCLIPS\fR comes with all source code which can be modified or tailored to meet a user's specific needs. .IP Integration/Extensibility \fBCLIPS\fR can be embedded within procedural code, called as a subroutine, and integrated with languages such as C, FORTRAN and ADA. \fBCLIPS\fR can be easily extended by a user through the use of several well-defined protocols. .IP Interactive\ Development The standard version of \fBCLIPS\fR 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 95, and X Window environments. .IP Verification/Validation \fBCLIPS\fR 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. .IP Fully\ Documented \fBCLIPS\fR comes with extensive documentation including a a User's Guide, a Basic Programming Guide, an Advanced Programming Guide and an Architecture Manual. All of these documents are provided in the Debian \fBclips-doc\fR package. .\" Disabled - help file was removed from 6.24 to 6.30 .\" .SH FILES .\" .TP .\" /usr/lib/clips/clips.hlp .\" The help for the \fBCLIPS\fR interpreter, type in \fI(help)\fR .\" once the interpreter is run it to read it. .SH BUGS \fBCLIPS\fR is old software so bugs are not unheard of. .SH HISTORY The origins of the C Language Integrated Production System (CLIPS) date back to 1984 at NASA's Johnson Space Center. At this time, the Artificial Intelligence Section (later the Software Technology Branch, Client/Server Systems Branch, and now the Information Technology Office) 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. In particular, three problems hindered the use of LISP based expert system tools within NASA: the low availability of LISP on a wide variety of conventional computers, the high cost of state-of-the-art LISP tools and hardware, and the poor integration of LISP with other languages (making embedded applications difficult). The Artificial Intelligence Section felt that the use of a conventional language, such as C, would eliminate most of these problems, and initially looked to the expert system tool vendors to provide an expert system tool written using a conventional language. 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 \fBCLIPS\fR was developed in the spring of 1985 in a little over two months. Particular attention was given to making the tool compatible with expert systems under development at that time by the Artificial Intelligence Section. Thus, the syntax of \fBCLIPS\fR 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, \fBCLIPS\fR was developed entirely without assistance from Inference or access to the ART source code. The original intent for \fBCLIPS\fR was to gain useful insight and knowledge about the construction of expert system tools and to lay the groundwork for the construction of a replacement tool for the commercial tools currently being used. Version 1.0 demonstrated the feasibility of the project concept. After additional development, it became apparent that \fBCLIPS\fR would be a low cost expert system tool ideal for the purposes of training. Another year of development and internal use went into \fBCLIPS\fR improving its portability, performance, functionality, and supporting documentation. Version 3.0 of \fBCLIPS\fR was made available to groups outside of NASA in the summer of 1986. Further enhancements transformed \fBCLIPS\fR from a training tool into a tool useful for the development and delivery of expert systems as well. Versions 4.0 and 4.1 of \fBCLIPS\fR, released respectively in the summer and fall of 1987, featured greatly improved performance, external language integration, and delivery capabilities. Version 4.2 of \fBCLIPS\fR, released in the summer of 1988, was a complete rewrite of \fBCLIPS\fR for code modularity. Also included with this release were an architecture manual providing a detailed description of the \fBCLIPS\fR software architecture and a utility program for aiding in the verification and validation of rule-based programs. Version 4.3 of \fBCLIPS\fR, released in the summer of 1989, added still more functionality. Originally, the primary representation methodology in \fBCLIPS\fR was a forward chaining rule language based on the Rete algorithm (hence the Production System part of the \fBCLIPS\fR acronym). Version 5.0 of \fBCLIPS\fR, released in the spring of 1991, introduced two new programming paradigms: procedural programming (as found in languages such as C and Ada;) and object-oriented programming (as found in languages such as the Common Lisp Object System and Smalltalk). The object-oriented programming language provided within \fBCLIPS\fR is called the \fBCLIPS\fR Object-Oriented Language (COOL). Version 5.1 of \fBCLIPS\fR, released in the fall of 1991, was primarily a software maintenance upgrade required to support the newly developed and/or enhanced X Window, MS-DOS, and Macintosh interfaces. Version 6.0, released in the Spring of 1993, added fully integrated object/rule pattern matching and support features for rule-based software engineering. Version 6.1, released in the Summer of 1998, added C++ compatibility and functions for profiling performance. Because of its portability, extensibility, capabilities, and low-cost, \fBCLIPS\fR has received widespread acceptance throughout the government, industry, and academia. The development of \fBCLIPS\fR has helped to improve the ability to deliver expert system technology throughout the public and private sectors for a wide range of applications and diverse computing environments. \fBCLIPS\fR 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 private companies. \fBCLIPS\fR is now maintained as public domain software by the main program authors who no longer work for NASA. Derivative works for \fBCLIPS\fR have also appeared, such as: .IP JESS The Java Expert System Shell, which provides a \fBCLIPS\fR interpreter for the Java programming language. .IP fuzzyCLIPS A fuzzy extension of \fBCLIPS\fR. .IP bw \fBCLIPS\fR A version of \fBCLIPS\fR using backward chains. .SH AUTHOR As with any large project, \fBCLIPS\fR is the result of the efforts of numerous people. The primary contributors have been: Robert Savely, previous branch chief of the STB and now chief scientist of advanced software technology at JSC, who conceived the project and provided overall direction and support; Chris Culbert, current chief of the Information Technology Office, who managed the project, wrote the original \fBCLIPS\fR Reference Manual, and designed the original version of CRSV; Gary Riley, who designed and developed the rule-based portion of \fBCLIPS\fR , coauthored the \fBCLIPS\fR Reference Manual and \fBCLIPS\fR Architecture Manual, and developed the Macintosh interface for \fBCLIPS\fR ; Brian Donnell, who designed and developed the \fBCLIPS\fR Object Oriented Language (COOL), coauthored the \fBCLIPS\fR Reference Manual and \fBCLIPS\fR Architecture Manual, and developed the previous MS-DOS interfaces for \fBCLIPS\fR ; Bebe Ly, who was responsible for maintenance and enhancements to CRSV and is now responsible for developing the X Window interface for \fBCLIPS\fR; Chris Ortiz, who developed the Windows 3.1 interface for \fBCLIPS\fR; Dr. Joseph Giarratano of the University of Houston-Clear Lake, who wrote the \fBCLIPS\fR User's Guide; and Frank Lopez, who designed and developed \fBCLIPS\fR version 1.0 and wrote the \fBCLIPS\fR 1.0 User's Guide. Many other individuals contributed to the design, development, review, and general support of \fBCLIPS\fR, including: Jack Aldridge, Carla Armstrong, Paul Baffes, Ann Baker, Stephen Baudendistel, Les Berke, Tom Blinn, Marlon Boarnet, Dan Bochsler, Bob Brown, Barry Cameron, Tim Cleghorn, Major Paul Condit, Major Steve Cross, Andy Cunningham, Dan Danley, Mark Engelberg, Kirt Fields, Ken Freeman, Kevin Greiner, Ervin Grice, Sharon Hecht, Patti Herrick, Mark Hoffman, Grace Hua, Gordon Johnson, Phillip Johnston, Sam Juliano, Ed Lineberry, Bowen Loftin, Linda Martin, Daniel McCoy, Terry McGregor, Becky McGuire, Scott Meadows, C. J. Melebeck, Paul Mitchell, Steve Mueller, Bill Paseman, Cynthia Rathjen, Eric Raymond, Reza Razavipour, Marsha Renals, Monica Rua, Tim Saito, Gregg Swietek, Eric Taylor, James Villarreal, Lui Wang, Bob Way, Jim Wescott, Charlie Wheeler, and Wes White. .SH SEE ALSO .BR http://www.clipsrules.net/ Homepage for \fBCLIPS\fR .BR /usr/share/doc/clips-doc/ There you will find the basic and advanced programming guide, as well as other upstream documentation. .BR /usr/share/doc/clips-common/examples/ A number of examples of the \fBCLIPS\fR program are available so you can test the interpreter and learn how it works. For example, you can load one a word game using \fB(load "/usr/share/doc/clips-common/examples/wordgame.clp")\fR and run it using \fB(reset)\fR and \fB(run)\fR. .SH COPYRIGHT This manpage was made by Javier Fernández-Sanguino for Debian GNU/Linux (but may be used by others)