Man Linux: Main Page and Category List

NAME

       clips     - an expert system programming language

SYNOPSIS

       clips [ file.clp ]

DESCRIPTION

       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 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:

       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 an IBM PC
              running DOS and Windows 95 and a  Macintosh  running  MacOS  and
              Mach.   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
              95, 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. (provided  in  the  Debian  clips-doc
              package)

FILES

       /usr/lib/clips/clips.hlp
              The  help  for  the  CLIPS  interpreter, type in (help) once the
              interpreter is run it to read it.

BUGS

       CLIPS is old software so bugs are not unheard of.

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 CLIPS 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 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 for CLIPS 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
       CLIPS would be a low cost expert system tool ideal for the purposes  of
       training.  Another year of development and internal use went into CLIPS
       improving its portability, performance, functionality,  and  supporting
       documentation.  Version  3.0  of  CLIPS  was  made  available to groups
       outside of NASA in the summer of 1986.

       Further enhancements transformed CLIPS 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 CLIPS, released respectively in the summer  and
       fall  of 1987, featured greatly improved performance, external language
       integration, and delivery capabilities. Version 4.2 of CLIPS,  released
       in the summer of 1988, was a complete rewrite of

       CLIPS  for  code  modularity.  Also  included with this release were an
       architecture manual providing  a  detailed  description  of  the  CLIPS
       software   architecture  and  a  utility  program  for  aiding  in  the
       verification and validation of  rule-based  programs.  Version  4.3  of
       CLIPS,  released in the summer of 1989, added still more functionality.

       Originally, the primary  representation  methodology  in  CLIPS  was  a
       forward  chaining  rule language based on the Rete algorithm (hence the
       Production System part of the CLIPS acronym).  Version  5.0  of  CLIPS,
       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 CLIPS is called the CLIPS Object-
       Oriented Language (COOL).  Version 5.1 of CLIPS, 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,
       CLIPS has received widespread  acceptance  throughout  the  government,
       industry,  and academia. The development of CLIPS 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.  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 private companies.

       CLIPS  is  now maintained as public domain software by the main program
       authors who no longer work for NASA.

       There have appeared also derivative works from CLIPS like:

       JESS   The Java Expert System Shell, which provides a CLIPS interpreter
              for the Java programming language.

       fuzzyCLIPS
              A fuzzy extension of CLIPS.

       bw     CLIPS A version of CLIPS using backward chains.

AUTHOR

       As  with  any  large  project,  CLIPS  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  CLIPS  Reference Manual, and designed the original version of
       CRSV; Gary Riley, who designed and developed the rule-based portion of

       CLIPS , coauthored the CLIPS Reference Manual  and  CLIPS  Architecture
       Manual,  and  developed  the  Macintosh  interface  for  CLIPS  ; Brian
       Donnell, who designed and developed the CLIPS Object Oriented  Language
       (COOL),  coauthored  the  CLIPS Reference Manual and CLIPS Architecture
       Manual, and developed the previous MS-DOS interfaces for CLIPS  ;  Bebe
       Ly, who was responsible for maintenance and enhancements to CRSV and is
       now responsible for developing the X Window interface for CLIPS;  Chris
       Ortiz,  who  developed  the Windows 3.1 interface for CLIPS; Dr. Joseph
       Giarratano of the University of Houston-Clear Lake, who wrote the CLIPS
       User’s Guide; and Frank Lopez, who designed and developed CLIPS version
       1.0 and wrote the CLIPS 1.0 User’s Guide.

       Many other individuals contributed to the design, development,  review,
       and   general   support  of  CLIPS,  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.

SEE ALSO

       /usr/share/doc/clips-common/CLIPS-FAQ In Debian systems, you will  find
       the FAQ file compressed, use zcat or zless to read it.

       /usr/share/doc/clips-common/html/ You will find more documentation from
       upstream development in the html directoryin Debian systems.

       /usr/share/doc/clips-common/examples/ A number  of  examples  of  CLIPS
       program  are available so you can test the interpreter and learn how it
       works.  You  can,  for  example,  load   one   of   them   with   (load
       "/usr/share/doc/clips-common/examples/wordgame.clp")  and  run it using
       (reset) and (run).

COPYRIGHT

       This manpage was made by Javier Fernandez-Sanguino <jfs@debian.org> for
       Debian GNU/Linux  (but may be used by others)