--- a/doc/html/CLIPSCount.html
+++ b/doc/html/CLIPSCount.html
@@ -9,8 +9,7 @@
 <H1><TABLE WIDTH="807" HEIGHT="297" BORDER="0" CELLSPACING="2" CELLPADDING=
 "0">
 <TR>
-<TD WIDTH="31%" HEIGHT="292"><ADDRESS>&nbsp;<IMG SRC="clips.gif" ALIGN="LEFT" WIDTH="232" HEIGHT="259"
-NATURALSIZEFLAG="0"></ADDRESS>
+<TD WIDTH="31%" HEIGHT="292">
 </TD>
 <TD WIDTH="69%"><P>&nbsp;</P>
 
@@ -31,9 +30,8 @@
 
 <H1>A Tool for Building Expert Systems</H1>
 
-<ADDRESS><IMG SRC="blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG="3"><BR>
-Last Update February 3, 2005 <A HREF="SupportServices.html">Gary Riley</A><div style="padding:5px; font:9px Verdana;"><a href="http://www.digitalpoint.com/tools/counter/"><img src="http://count.digitalpoint.com/?c=00AA00&u=1" alt="Website Counter" style="border:0px; width:88px; height:19px;"></a><br /><a href="http://www.auction-registration.com/">eBay</a></div>
-</ADDRESS>
+<ADDRESS><BR>
+Last Update February 3, 2005 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS>
 </BODY>
 </HTML>
 
--- a/doc/html/CLIPSJNIBeta.html
+++ b/doc/html/CLIPSJNIBeta.html
@@ -1 +1 @@
-<HTML><HEAD>  <TITLE>CLIPSJNI Version 0.2 Beta</TITLE></HEAD><BODY><H1><IMG SRC="http://clipsrules.sourceforge.net/CLIPSIcon.gif" ALIGN="CENTER" WIDTH="96" HEIGHT="96" NATURALSIZEFLAG="3">CLIPSJNI Version 0.2 Beta</H1><P>A beta version of CLIPSJNI, a Java Native Interface for CLIPS, is available for downloadon the <A HREF="http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062">SourceForge CLIPS Download Page</A>.</P>    <P>Version 0.1 demonstrates basic techniques for integrating CLIPS with a GUIand comes with three examples of CLIPS programs integrated with a Swing front end.</P><P>Version 0.2 adds an additional example and demonstrates how to build a GUI using languages other than English. Example software generated translations are provided for Spanish, Japanese, Russian, and Arabic.</P><P><A HREF="index.html">Back to CLIPS Home Page.</A></P><IMG SRC="http://clipsrules.sourceforge.net/blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG="3"><BR><TABLE WIDTH="700" BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD WIDTH="40%"><ADDRESS><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=215471&amp;type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a></ADDRESS></TD><TD WIDTH="60%"><ADDRESS>Last Update February 7, 2008 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS></TD></TR></TABLE></BODY></HTML>
\ No newline at end of file
+<HTML><HEAD>  <TITLE>CLIPSJNI Version 0.2 Beta</TITLE></HEAD><BODY><H1>CLIPSJNI Version 0.2 Beta</H1><P>A beta version of CLIPSJNI, a Java Native Interface for CLIPS, is available for downloadon the <A HREF="http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062">SourceForge CLIPS Download Page</A>.</P>    <P>Version 0.1 demonstrates basic techniques for integrating CLIPS with a GUIand comes with three examples of CLIPS programs integrated with a Swing front end.</P><P>Version 0.2 adds an additional example and demonstrates how to build a GUI using languages other than English. Example software generated translations are provided for Spanish, Japanese, Russian, and Arabic.</P><P><A HREF="index.html">Back to CLIPS Home Page.</A></P><IMG SRC="http://clipsrules.sourceforge.net/blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG="3"><BR><TABLE WIDTH="700" BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD WIDTH="40%"><ADDRESS><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=215471&amp;type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a></ADDRESS></TD><TD WIDTH="60%"><ADDRESS>Last Update February 7, 2008 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS></TD></TR></TABLE></BODY></HTML>
--- a/doc/html/Consulting.html
+++ b/doc/html/Consulting.html
@@ -5,8 +5,7 @@
 </HEAD>
 <BODY>
 
-<H1><IMG SRC="http://clipsrules.sourceforge.net/CLIPSIcon.gif" ALIGN="CENTER" WIDTH="96" HEIGHT="96" NATURALSIZEFLAG=
-"3"> Consulting/Training/Employment</H1>
+<H1>Consulting/Training/Employment</H1>
 
 <P>I'm currently searching for employment opportunities (preferably in the Houston area or telecommuting).</P>
 
@@ -17,8 +16,7 @@
 
 <P><A HREF="index.html">Back to CLIPS Home Page.</A></P>
 
-<ADDRESS><IMG SRC="http://clipsrules.sourceforge.net/blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG=
-"3"><BR>
+<ADDRESS><BR>
 Last Update March 5, 2008 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS>
 </BODY>
 </HTML>
--- a/doc/html/Download.html
+++ b/doc/html/Download.html
@@ -6,8 +6,7 @@
 </HEAD>
 <BODY>
 
-<H1><IMG SRC="CLIPSIcon.gif" ALIGN="CENTER" WIDTH="96" HEIGHT="96" NATURALSIZEFLAG=
-"3"> CLIPS Download Area</H1>
+<H1>CLIPS Download Area</H1>
 
 <P>This is the primary site for obtaining the latest release of CLIPS. The current
 release is <A HREF="Version62.html">CLIPS 6.2</A> and is available in the 
@@ -79,6 +78,5 @@
 <ADDRESS><IMG SRC="blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG=
 "3"><BR>
 Last Update May 22, 2004 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS>
-<div style="padding:5px; font:9px Verdana; text-align:center;"><a href="http://www.digitalpoint.com/tools/counter/"><img src="http://count.digitalpoint.com/?c=00AA00&u=1" alt="Free Hit Counter" style="border:0px; width:88px; height:19px;"></a><br /><a href="http://www.auction-registration.com/">eBay</a></div>
 </BODY>
 </HTML>
--- a/doc/html/FAQ.html
+++ b/doc/html/FAQ.html
@@ -1 +1 @@
-<HTML><HEAD>  <TITLE>Frequently Asked Questions</TITLE></HEAD><BODY><H1><IMG SRC="http://clipsrules.sourceforge.net/CLIPSIcon.gif" ALIGN="CENTER" WIDTH="96" HEIGHT="96" NATURALSIZEFLAG="3"> Frequently Asked Questions</H1><OL><LI><A HREF="FAQ.html#Q1">What is CLIPS?</A></LI><LI><A HREF="FAQ.html#Q2">Where Can I Get a Copy of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q3">What's New in Version 6.2 of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q4">Can CLIPS Be Redistributed? Are There Any Licensing Fees?</A></LI><LI><A HREF="FAQ.html#Q5">What Forums Are Available For Answering Questions About CLIPS?</A></LI><LI><A HREF="FAQ.html#Q6">Are There Any Sources Describing Applications Built Using CLIPS?</A></LI><LI><A HREF="FAQ.html#Q7">Are There Any Textbooks Using CLIPS?</A></LI><LI><A HREF="FAQ.html#Q8">Are There Any Special Versions of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q9">Can CLIPS be Integrated with C++ Code?</A></LI><LI><A HREF="FAQ.html#Q10">Is a Dynamic Link Library Available for CLIPS?</A></LI><LI><A HREF="FAQ.html#Q11">What are the Origins of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q12">Are There Any Languages Similar to CLIPS?</A></LI><LI><A HREF="FAQ.html#Q13">What are the Future Plans for CLIPS?</A></LI><LI><A HREF="FAQ.html#Q14">Can CLIPS be Used for Real Time Applications?</A></LI><LI><A HREF="FAQ.html#Q15">Are There Any Examples of User Defined Functions Other                   Than the Ones in the Advanced Programming Guide?</A></LI><LI><A HREF="FAQ.html#Q16">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><LI><A HREF="FAQ.html#Q17">Is the CLIPS 6.X Architecture Manual Available?</A><LI><A HREF="FAQ.html#Q18">Are Consulting/Training Services Available for CLIPS?</A></LI></OL><OL><LI><a name="Q1">What is CLIPS?</a>       <P>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. Created in 1985, CLIPS is now widely used       throughout the government, industry, and academia. Its key features are:</P>         <UL>   <LI><P>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 &quot;rules of thumb,&quot;          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, Java, Ada, and LISP.</P></LI>   <LI><P>Portability: CLIPS is written in C for portability and speed and has          been installed on many different operating systems without code changes.           Operating systems on which CLIPS has been tested include Windows XP,           MacOS X, and Unix. CLIPS can be ported to any system which has an ANSI           compliant C or C++ compiler. CLIPS comes with all source code which can           be modified or tailored to meet a user's specific needs.</P></LI>     <LI><P>Integration/Extensibility: CLIPS can be embedded within procedural          code, called as a subroutine, and integrated with languages such as C, Java,          FORTRAN and ADA. CLIPS can be easily extended by a user through the use          of several well-defined protocols.</P></LI>     <LI><P>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 Mac OS X, Windows XP, and X Window environments.</P></LI>             <LI><P>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.</P></LI>     <LI><P>Fully Documented: CLIPS comes with extensive documentation including          a Reference Manual and a User's Guide.</P></LI>                          <LI><P>Low Cost: CLIPS is maintained as public domain software.</P></LI>   </UL></LI><LI><A name="Q2">Where Can I Get a Copy of CLIPS?</A>   <P>CLIPS executables, documentation, source code, and examples can be downloaded      from the <A HREF="http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062">Download Page</A>      of the <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A>.</P></LI><LI><A name="Q3">What's New in Version 6.2 of CLIPS?</A></LI>   <UL>   <LI><P>CLIPS now provides a mechanism which allows an embedded application to           create multiple environments into which programs can be loaded.</P></LI>   <LI><P>An improved Windows XP CLIPS interface is now available and the Macintosh           CLIPS interface has been enhanced to support Mac OS X.</P></LI>   </UL></LI><LI><A name="Q4">Can CLIPS Be Redistributed? Are There Any Licensing Fees?</A>   <P>Copies of CLIPS executables, documentation, and source code downloaded from      the <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A> are subject to the following       license agreement:</P>         <P>Permission is hereby granted, free of charge, to any person obtaining a copy       of this software and associated documentation files (the "Software"), to deal       in the Software without restriction, including without limitation the rights       to use, copy, modify, merge, publish, distribute, and/or sell copies of the       Software, and to permit persons to whom the Software is furnished to do so.</P>         <P>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR       IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,       FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.       IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL       INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM       LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE       OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR       PERFORMANCE OF THIS SOFTWARE.</P>      </LI><LI><A name="Q5">What Forums Are Available For Answering Questions About CLIPS?</A>         <UL>   <LI><P>The <A HREF="http://groups.google.com/group/CLIPSESG/">CLIPS Expert System Group</A>      is a forum for the discussion of CLIPS related topics.</P></LI>         <LI><P>Questions regarding CLIPS can be sent via electronic mail to clipsYYYY@swbell.net       where YYYY is the current year (for example, 2008). Include the words 'CLIPS USER'       in the subject line.</P></LI>   <LI><P>The <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A> also has a       <A HREF="http://sourceforge.net/forum/?group_id=215471">Forums Page</A>.</P></LI>   </UL>      </LI><LI><A name="Q6">Are There Any Sources Describing Applications Built Using CLIPS?</A>         <P>There are a number of sources describing applications built using CLIPS:</P>      <UL>   <LI><P>A bibliography list of CLIPS related books, papers, and articles is contained           in Appendix J of the CLIPS Basic Programming Guide.</P></LI>         <LI><P>Proceedings of the Third CLIPS Conference, held in 1994, are available in PDF.</P></LI>   <LI><P>The Proceedings of the First, Fourth, and Fifth           <A HREF="http://www.aaai.org/Conferences/IAAI/iaai.php">Innovative Applications of           Artificial Intelligence</A> 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).</P></LI>   </UL>      </LI><LI><A name="Q7">Are There Any Textbooks Using CLIPS?</A>         <P><A HREF="http://www.amazon.com/exec/obidos/tg/detail/-/0534384471/ref=lpr_g_1/002-8157855-8752009?v=glance&s=bo">      <cite>Expert Systems: Principles and Programming</cite></A>, 4th Edition, by Giarratano and Riley       (ISBN 0-534-38447-1), comes with a CD-ROM containing CLIPS 6.22 executables, source       code, and documentation. The first half of the book is theory oriented and the       second half covers rule-based, procedural, and object-oriented programming using       CLIPS. For more information, contact <A HREF="http://www.course.com/">Course Technology</A>.</P>         <P><A HREF="http://members.aol.com/jacksonpe/music1/introduc.htm"><cite>Introduction To Expert Systems</cite></A>,       3rd Edition, by Jackson (ISBN 0-201-87686-8),       contains numerous CLIPS examples and exercises throughout the book. For more       information, contact <A HREF="http://www.awl.com/">Addison Wesley</A>.</P>      <P><A HREF="http://www.prenhall.com/books/esm_0132769409.html"><cite>The Engineering of Knowledge-based       Systems: Theory and Practice</cite></A>, by Gonzalez and       Dankel (ISBN 0132 769 409), 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 <A HREF="http://www.prenhall.com/">Prentice Hall</A>.</P>      </LI><LI><A name="Q8">Are There Any Special Versions of CLIPS?</A>   <UL>      <LI><P><A HREF="http://www.telepath.com/~dennison/Ted/AdaClips/AdaClips.html">AdaClips</A>          is a semi-thick Ada (95) binding to CLIPS.</P></LI>      <LI><P><A HREF="http://www.openchannelfoundation.org/projects/CLIPS-ADA">CLIPS/Ada</A> version           4.4, available from the <A HREF="http://www.openchannelfoundation.org/">Open Channel Foundation</A>,          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 no          plans to update CLIPS/Ada to a more recent version of CLIPS/C.</P></LI>   <LI><P><A HREF="http://cape.sourceforge.net/">CAPE</A> is a programming environment           that combines the CLIPS rule-based system with the Perl procedural programming           language.</P></LI>       <LI><P>The <A HREF="http://clipsmm.sourceforge.net/">clipsmm</A> library is a C++ interface to CLIPS.</P></LI>   <LI><P><A HREF="http://www.mommosoft.com/Default.aspx?item=Solutions">ClipsNet</A> integrates           CLIPS projects into the .Net framework by making the CLIPS environment available through           both managed and unmanaged code.</P></LI>   <LI><P>The <A HREF="http://www.proai.net/clips.htm">Clips .NET Lib</A> integrates .NET and CLIPS.           This library is distributed with source code.</P></LI>   <LI><P><A HREF="http://www.ortech-engr.com/fuzzy/fzyclips.html">FuzzyCLIPS 1.5</A> is an           extension of CLIPS incorporating fuzzy logic. FuzzyCLIPS includes all CLIPS 5.1           capabilities  and adds the fuzzy logic processing capability.</P></LI>   <LI><P><A HREF="http://ai.iit.nrc.ca/IR_public/fuzzy/fuzzyClips/fuzzyCLIPSIndex.html">FuzzyCLIPS 6.04</A>          is an extended version of CLIPS 6.04 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).</P></LI>   <LI><P><A HREF="http://www.cs.umbc.edu/kqml/software/kapiclips.shtml">KAPICLIPS</A> is A KQML           (Knowledge Query & Manipulation Language) API for CLIPS, developed by Ernest Friedman-Hill.</P></LI>              <LI><P><A HREF="http://www.mikekreuzer.com/luaClips.htm">LuaCLIPS</A> combines Lua, an open source            scripting language, with CLIPS in a Lua accessible Windows DLL.</P></LI>    <LI><P><A HREF="http://www.objectiveclips.com/">ObjectiveCLIPS</A>, a framework that lets you build           Mac GUIs on top of CLIPS deftemplates which are derived from persistent Core Data objects.</P></LI>   <LI><P><A HREF="http://www.discomsys.com/~mps/dnld">PerlCLIPS</A> is an integration between Perl and CLIPS.</P></LI>       <LI><P><A HREF="http://phlips.sourceforge.net">PHLIPS</A> is a PHP extension that provides a basic           interface to the CLIPS environment.</P></LI>       <LI><P><A HREF="http://pyclips.sourceforge.net/web/">PyCLIPS</A> is a Python module           that integrates CLIPS into Python.</P></LI>              <LI><P><A HREF="http://wiki.tcl.tk/3510">TclCLIPS</A> provides a Tcl interface to CLIPS</P></LI>    <LI><P><A HREF="http://www.anthemion.co.uk/wxclips/">wxCLIPS</A>, developed by Julian Smart,           provides a simple graphical front end to CLIPS 5.1/6.0, and in addition contains a suite           of extra functions for creating GUI applications in CLIPS.</P></LI>      <LI><P><A HREF="http://www.zope.org/Members/raystream/zZCLIPS0.1">ZClips</A> allows Zope to interact with CLIPS.</P></LI>      </UL></LI>   <LI><A name="Q9">Can CLIPS be Integrated with C++ Code?</A>         <P>Yes. Version 6.1 and later can be compiled with either an ANSI C or C++ compiler.      However, the CLIPS source code only uses features that are available in both the       ANSI C and C++ standards. Since the object extensions of C++ are not part of the       ANSI C standard, they are not utilized in the CLIPS source code. CLIPS 6.3 comes      with starter projects which demonstrate how to build a C++ library.</P>   <P>The <A HREF="http://clipsmm.sourceforge.net/">clipsmm</A> library is a C++ interface to CLIPS.</P>         </LI><LI><A name="Q10">Is a Dynamic Link Library Available for CLIPS?</A>         <P>There are several DLLs available for use with CLIPS:</P>      <UL>   <LI><P>The <A HREF="http://www.proai.net/clips.htm">Clips .NET Lib</A> integrates .NET and CLIPS.           This library is distributed with source code.</P></LI>      <LI><P>CLIPS 6.3 comes with starter projects that demonstrate how to build a DLL.</P></LI>      <LI><P><A HREF="http://www.mommosoft.com/Default.aspx?item=Solutions">ClipsNet</A> integrates            CLIPS projects into the .Net framework by making the CLIPS environment available through            both managed and unmanaged code.</P></LI>   <LI><P>A DLL, ActiveX Control, and other items of interest for CLIPS 6.2 are available          <A HREF="http://ourworld.compuserve.com/homepages/marktoml/clipstuf.htm">here</A>.</P></LI>   </UL>         </LI><LI><A name="Q11">What are the Origins of CLIPS?</A>         <P>The origins of CLIPS date back to 1984 at NASA's Johnson Space Center.       At this time, the Artificial Intelligence Section 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.</P>         <P>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.</P>   <P>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.</P>         <P>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.</P>       <P>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.</P>   <P>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.</P>         <P>In the mid 1990s the focus of the Artifical Intelligence Section (now the      Software Technology Branch) shifted away from expert system technology.      The principle developers subsequently left NASA. CLIPS is now maintained       independently from NASA as public domain software by one of the original      program authors. The first public domain release of CLIPS, version 6.1      in 1998, removed support for older non-ANSI C Compilers and added support      for C++ compilers. Commands to profile the time spent in constructs and      user-defined functions were also added. Version 6.2, released in the       Spring of 2002, added support for multiple environments into which programs       can be loaded and improved Windows XP and MacOS development interfaces.</P>   </LI><LI><A name="Q12">Are There Any Languages Similar to CLIPS?</A>         <P>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 (which      later became <A HREF="http://www.mindbox.com/Products/ARTEnterprise.aspx">ARTEnterprise</A>, by       The Haley Enterprise to develop Eclipse (which later became      <A HREF="http://www.haley.com/products/HaleyRules.html">HaleyRules</A>),      and by Production Systems      Technology to develop <A HREF="http://www.pst.com/clips_r2.htm">CLIPS/R2</A>. Other languages, such as       <A HREF="http://www.jessrules.com/">Jess</A>, adopted      syntax similar to ART and CLIPS. This has created a family of tools      that share the same basic syntax for the definition of rules. While the        features and capabilities of these tools has diverged sufficiently that      porting an application taking full advantage of a tool's complete      feature set is non-trivial, it's still possible if one uses a restricted       subset of features to write portable programs that will run with few if       any simple changes.</P></LI><LI><A name="Q13">What are the Future Plans for CLIPS?</A>   <P>Version 6.3 will target rule performance, improved integration with other languages       (such as C++, .NET, and Java), and examples for common use cases. Version 6.4 will       target unicode support.</P></LI><LI><A name="Q14">Can CLIPS be Used for Real Time Applications?</A>   <P>Yes and no. It depends on what you mean by a real time application. </P>   <P>If you want guaranteed response time, then the answer is no. Generally speaking,       the more robust the pattern matching capabilities of a tool, the more       difficult it is to guarantee real time response.</P>   <P>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 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.</P>   <P>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 in seconds or fractions of a      second.</P>   <P>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.</P></LI><LI><A name="Q15">Are There Any Examples of User Defined Functions Other                  Than the Ones in the Advanced Programming Guide?</A>         <P>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 in the CLIPS      source code such as bmathfun.c, iofun.c, miscfun.c, prdctfun.c,       emathfun.c, filecom.c, and multifun.c for examples.</P></LI><LI><A name="Q16">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>   <P>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.</P>    </LI>    <LI><A name="Q17">Is the CLIPS 6.X Architecture Manual Available?</A>   <P>There are no plans to write a 6.X Architecture Manual. Copies     of the CLIPS 5.1 Architecture Manual are still bundled with the    CLIPS documentation.</P>    </LI><LI><A name="Q18">Are Consulting/Training Services Available for CLIPS?</A>   <P>Inquiries about consulting, training, or other employment opportunities       can be sent to gdrworkYYYY@swbell.net or clipsYYYY@swbell.net where YYYY       is the current year (for example, 2008).</P></LI>        </OL><P><A HREF="index.html">Back to CLIPS Home Page.</A></P><IMG SRC="http://clipsrules.sourceforge.net/blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG="3"><BR><TABLE WIDTH="700" BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD WIDTH="40%"><ADDRESS><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=215471&amp;type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a></ADDRESS></TD><TD WIDTH="60%"><ADDRESS>Last Update January 25, 2008 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS></TD></TR></TABLE></BODY></HTML>
\ No newline at end of file
+<HTML><HEAD>  <TITLE>Frequently Asked Questions</TITLE></HEAD><BODY><H1>Frequently Asked Questions</H1><OL><LI><A HREF="FAQ.html#Q1">What is CLIPS?</A></LI><LI><A HREF="FAQ.html#Q2">Where Can I Get a Copy of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q3">What's New in Version 6.2 of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q4">Can CLIPS Be Redistributed? Are There Any Licensing Fees?</A></LI><LI><A HREF="FAQ.html#Q5">What Forums Are Available For Answering Questions About CLIPS?</A></LI><LI><A HREF="FAQ.html#Q6">Are There Any Sources Describing Applications Built Using CLIPS?</A></LI><LI><A HREF="FAQ.html#Q7">Are There Any Textbooks Using CLIPS?</A></LI><LI><A HREF="FAQ.html#Q8">Are There Any Special Versions of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q9">Can CLIPS be Integrated with C++ Code?</A></LI><LI><A HREF="FAQ.html#Q10">Is a Dynamic Link Library Available for CLIPS?</A></LI><LI><A HREF="FAQ.html#Q11">What are the Origins of CLIPS?</A></LI><LI><A HREF="FAQ.html#Q12">Are There Any Languages Similar to CLIPS?</A></LI><LI><A HREF="FAQ.html#Q13">What are the Future Plans for CLIPS?</A></LI><LI><A HREF="FAQ.html#Q14">Can CLIPS be Used for Real Time Applications?</A></LI><LI><A HREF="FAQ.html#Q15">Are There Any Examples of User Defined Functions Other                   Than the Ones in the Advanced Programming Guide?</A></LI><LI><A HREF="FAQ.html#Q16">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><LI><A HREF="FAQ.html#Q17">Is the CLIPS 6.X Architecture Manual Available?</A><LI><A HREF="FAQ.html#Q18">Are Consulting/Training Services Available for CLIPS?</A></LI></OL><OL><LI><a name="Q1">What is CLIPS?</a>       <P>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. Created in 1985, CLIPS is now widely used       throughout the government, industry, and academia. Its key features are:</P>         <UL>   <LI><P>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 &quot;rules of thumb,&quot;          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, Java, Ada, and LISP.</P></LI>   <LI><P>Portability: CLIPS is written in C for portability and speed and has          been installed on many different operating systems without code changes.           Operating systems on which CLIPS has been tested include Windows XP,           MacOS X, and Unix. CLIPS can be ported to any system which has an ANSI           compliant C or C++ compiler. CLIPS comes with all source code which can           be modified or tailored to meet a user's specific needs.</P></LI>     <LI><P>Integration/Extensibility: CLIPS can be embedded within procedural          code, called as a subroutine, and integrated with languages such as C, Java,          FORTRAN and ADA. CLIPS can be easily extended by a user through the use          of several well-defined protocols.</P></LI>     <LI><P>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 Mac OS X, Windows XP, and X Window environments.</P></LI>             <LI><P>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.</P></LI>     <LI><P>Fully Documented: CLIPS comes with extensive documentation including          a Reference Manual and a User's Guide.</P></LI>                          <LI><P>Low Cost: CLIPS is maintained as public domain software.</P></LI>   </UL></LI><LI><A name="Q2">Where Can I Get a Copy of CLIPS?</A>   <P>CLIPS executables, documentation, source code, and examples can be downloaded      from the <A HREF="http://sourceforge.net/project/showfiles.php?group_id=215471&package_id=260062">Download Page</A>      of the <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A>.</P></LI><LI><A name="Q3">What's New in Version 6.2 of CLIPS?</A></LI>   <UL>   <LI><P>CLIPS now provides a mechanism which allows an embedded application to           create multiple environments into which programs can be loaded.</P></LI>   <LI><P>An improved Windows XP CLIPS interface is now available and the Macintosh           CLIPS interface has been enhanced to support Mac OS X.</P></LI>   </UL></LI><LI><A name="Q4">Can CLIPS Be Redistributed? Are There Any Licensing Fees?</A>   <P>Copies of CLIPS executables, documentation, and source code downloaded from      the <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A> are subject to the following       license agreement:</P>         <P>Permission is hereby granted, free of charge, to any person obtaining a copy       of this software and associated documentation files (the "Software"), to deal       in the Software without restriction, including without limitation the rights       to use, copy, modify, merge, publish, distribute, and/or sell copies of the       Software, and to permit persons to whom the Software is furnished to do so.</P>         <P>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR       IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,       FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.       IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL       INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM       LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE       OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR       PERFORMANCE OF THIS SOFTWARE.</P>      </LI><LI><A name="Q5">What Forums Are Available For Answering Questions About CLIPS?</A>         <UL>   <LI><P>The <A HREF="http://groups.google.com/group/CLIPSESG/">CLIPS Expert System Group</A>      is a forum for the discussion of CLIPS related topics.</P></LI>         <LI><P>Questions regarding CLIPS can be sent via electronic mail to clipsYYYY@swbell.net       where YYYY is the current year (for example, 2008). Include the words 'CLIPS USER'       in the subject line.</P></LI>   <LI><P>The <A HREF="http://sourceforge.net/projects/clipsrules/">CLIPS Project</A> on       <A HREF="http://sourceforge.net/">SourceForge</A> also has a       <A HREF="http://sourceforge.net/forum/?group_id=215471">Forums Page</A>.</P></LI>   </UL>      </LI><LI><A name="Q6">Are There Any Sources Describing Applications Built Using CLIPS?</A>         <P>There are a number of sources describing applications built using CLIPS:</P>      <UL>   <LI><P>A bibliography list of CLIPS related books, papers, and articles is contained           in Appendix J of the CLIPS Basic Programming Guide.</P></LI>         <LI><P>Proceedings of the Third CLIPS Conference, held in 1994, are available in PDF.</P></LI>   <LI><P>The Proceedings of the First, Fourth, and Fifth           <A HREF="http://www.aaai.org/Conferences/IAAI/iaai.php">Innovative Applications of           Artificial Intelligence</A> 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).</P></LI>   </UL>      </LI><LI><A name="Q7">Are There Any Textbooks Using CLIPS?</A>         <P><A HREF="http://www.amazon.com/exec/obidos/tg/detail/-/0534384471/ref=lpr_g_1/002-8157855-8752009?v=glance&s=bo">      <cite>Expert Systems: Principles and Programming</cite></A>, 4th Edition, by Giarratano and Riley       (ISBN 0-534-38447-1), comes with a CD-ROM containing CLIPS 6.22 executables, source       code, and documentation. The first half of the book is theory oriented and the       second half covers rule-based, procedural, and object-oriented programming using       CLIPS. For more information, contact <A HREF="http://www.course.com/">Course Technology</A>.</P>         <P><A HREF="http://members.aol.com/jacksonpe/music1/introduc.htm"><cite>Introduction To Expert Systems</cite></A>,       3rd Edition, by Jackson (ISBN 0-201-87686-8),       contains numerous CLIPS examples and exercises throughout the book. For more       information, contact <A HREF="http://www.awl.com/">Addison Wesley</A>.</P>      <P><A HREF="http://www.prenhall.com/books/esm_0132769409.html"><cite>The Engineering of Knowledge-based       Systems: Theory and Practice</cite></A>, by Gonzalez and       Dankel (ISBN 0132 769 409), 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 <A HREF="http://www.prenhall.com/">Prentice Hall</A>.</P>      </LI><LI><A name="Q8">Are There Any Special Versions of CLIPS?</A>   <UL>      <LI><P><A HREF="http://www.telepath.com/~dennison/Ted/AdaClips/AdaClips.html">AdaClips</A>          is a semi-thick Ada (95) binding to CLIPS.</P></LI>      <LI><P><A HREF="http://www.openchannelfoundation.org/projects/CLIPS-ADA">CLIPS/Ada</A> version           4.4, available from the <A HREF="http://www.openchannelfoundation.org/">Open Channel Foundation</A>,          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 no          plans to update CLIPS/Ada to a more recent version of CLIPS/C.</P></LI>   <LI><P><A HREF="http://cape.sourceforge.net/">CAPE</A> is a programming environment           that combines the CLIPS rule-based system with the Perl procedural programming           language.</P></LI>       <LI><P>The <A HREF="http://clipsmm.sourceforge.net/">clipsmm</A> library is a C++ interface to CLIPS.</P></LI>   <LI><P><A HREF="http://www.mommosoft.com/Default.aspx?item=Solutions">ClipsNet</A> integrates           CLIPS projects into the .Net framework by making the CLIPS environment available through           both managed and unmanaged code.</P></LI>   <LI><P>The <A HREF="http://www.proai.net/clips.htm">Clips .NET Lib</A> integrates .NET and CLIPS.           This library is distributed with source code.</P></LI>   <LI><P><A HREF="http://www.ortech-engr.com/fuzzy/fzyclips.html">FuzzyCLIPS 1.5</A> is an           extension of CLIPS incorporating fuzzy logic. FuzzyCLIPS includes all CLIPS 5.1           capabilities  and adds the fuzzy logic processing capability.</P></LI>   <LI><P><A HREF="http://ai.iit.nrc.ca/IR_public/fuzzy/fuzzyClips/fuzzyCLIPSIndex.html">FuzzyCLIPS 6.04</A>          is an extended version of CLIPS 6.04 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).</P></LI>   <LI><P><A HREF="http://www.cs.umbc.edu/kqml/software/kapiclips.shtml">KAPICLIPS</A> is A KQML           (Knowledge Query & Manipulation Language) API for CLIPS, developed by Ernest Friedman-Hill.</P></LI>              <LI><P><A HREF="http://www.mikekreuzer.com/luaClips.htm">LuaCLIPS</A> combines Lua, an open source            scripting language, with CLIPS in a Lua accessible Windows DLL.</P></LI>    <LI><P><A HREF="http://www.objectiveclips.com/">ObjectiveCLIPS</A>, a framework that lets you build           Mac GUIs on top of CLIPS deftemplates which are derived from persistent Core Data objects.</P></LI>   <LI><P><A HREF="http://www.discomsys.com/~mps/dnld">PerlCLIPS</A> is an integration between Perl and CLIPS.</P></LI>       <LI><P><A HREF="http://phlips.sourceforge.net">PHLIPS</A> is a PHP extension that provides a basic           interface to the CLIPS environment.</P></LI>       <LI><P><A HREF="http://pyclips.sourceforge.net/web/">PyCLIPS</A> is a Python module           that integrates CLIPS into Python.</P></LI>              <LI><P><A HREF="http://wiki.tcl.tk/3510">TclCLIPS</A> provides a Tcl interface to CLIPS</P></LI>    <LI><P><A HREF="http://www.anthemion.co.uk/wxclips/">wxCLIPS</A>, developed by Julian Smart,           provides a simple graphical front end to CLIPS 5.1/6.0, and in addition contains a suite           of extra functions for creating GUI applications in CLIPS.</P></LI>      <LI><P><A HREF="http://www.zope.org/Members/raystream/zZCLIPS0.1">ZClips</A> allows Zope to interact with CLIPS.</P></LI>      </UL></LI>   <LI><A name="Q9">Can CLIPS be Integrated with C++ Code?</A>         <P>Yes. Version 6.1 and later can be compiled with either an ANSI C or C++ compiler.      However, the CLIPS source code only uses features that are available in both the       ANSI C and C++ standards. Since the object extensions of C++ are not part of the       ANSI C standard, they are not utilized in the CLIPS source code. CLIPS 6.3 comes      with starter projects which demonstrate how to build a C++ library.</P>   <P>The <A HREF="http://clipsmm.sourceforge.net/">clipsmm</A> library is a C++ interface to CLIPS.</P>         </LI><LI><A name="Q10">Is a Dynamic Link Library Available for CLIPS?</A>         <P>There are several DLLs available for use with CLIPS:</P>      <UL>   <LI><P>The <A HREF="http://www.proai.net/clips.htm">Clips .NET Lib</A> integrates .NET and CLIPS.           This library is distributed with source code.</P></LI>      <LI><P>CLIPS 6.3 comes with starter projects that demonstrate how to build a DLL.</P></LI>      <LI><P><A HREF="http://www.mommosoft.com/Default.aspx?item=Solutions">ClipsNet</A> integrates            CLIPS projects into the .Net framework by making the CLIPS environment available through            both managed and unmanaged code.</P></LI>   <LI><P>A DLL, ActiveX Control, and other items of interest for CLIPS 6.2 are available          <A HREF="http://ourworld.compuserve.com/homepages/marktoml/clipstuf.htm">here</A>.</P></LI>   </UL>         </LI><LI><A name="Q11">What are the Origins of CLIPS?</A>         <P>The origins of CLIPS date back to 1984 at NASA's Johnson Space Center.       At this time, the Artificial Intelligence Section 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.</P>         <P>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.</P>   <P>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.</P>         <P>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.</P>       <P>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.</P>   <P>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.</P>         <P>In the mid 1990s the focus of the Artifical Intelligence Section (now the      Software Technology Branch) shifted away from expert system technology.      The principle developers subsequently left NASA. CLIPS is now maintained       independently from NASA as public domain software by one of the original      program authors. The first public domain release of CLIPS, version 6.1      in 1998, removed support for older non-ANSI C Compilers and added support      for C++ compilers. Commands to profile the time spent in constructs and      user-defined functions were also added. Version 6.2, released in the       Spring of 2002, added support for multiple environments into which programs       can be loaded and improved Windows XP and MacOS development interfaces.</P>   </LI><LI><A name="Q12">Are There Any Languages Similar to CLIPS?</A>         <P>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 (which      later became <A HREF="http://www.mindbox.com/Products/ARTEnterprise.aspx">ARTEnterprise</A>, by       The Haley Enterprise to develop Eclipse (which later became      <A HREF="http://www.haley.com/products/HaleyRules.html">HaleyRules</A>),      and by Production Systems      Technology to develop <A HREF="http://www.pst.com/clips_r2.htm">CLIPS/R2</A>. Other languages, such as       <A HREF="http://www.jessrules.com/">Jess</A>, adopted      syntax similar to ART and CLIPS. This has created a family of tools      that share the same basic syntax for the definition of rules. While the        features and capabilities of these tools has diverged sufficiently that      porting an application taking full advantage of a tool's complete      feature set is non-trivial, it's still possible if one uses a restricted       subset of features to write portable programs that will run with few if       any simple changes.</P></LI><LI><A name="Q13">What are the Future Plans for CLIPS?</A>   <P>Version 6.3 will target rule performance, improved integration with other languages       (such as C++, .NET, and Java), and examples for common use cases. Version 6.4 will       target unicode support.</P></LI><LI><A name="Q14">Can CLIPS be Used for Real Time Applications?</A>   <P>Yes and no. It depends on what you mean by a real time application. </P>   <P>If you want guaranteed response time, then the answer is no. Generally speaking,       the more robust the pattern matching capabilities of a tool, the more       difficult it is to guarantee real time response.</P>   <P>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 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.</P>   <P>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 in seconds or fractions of a      second.</P>   <P>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.</P></LI><LI><A name="Q15">Are There Any Examples of User Defined Functions Other                  Than the Ones in the Advanced Programming Guide?</A>         <P>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 in the CLIPS      source code such as bmathfun.c, iofun.c, miscfun.c, prdctfun.c,       emathfun.c, filecom.c, and multifun.c for examples.</P></LI><LI><A name="Q16">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>   <P>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.</P>    </LI>    <LI><A name="Q17">Is the CLIPS 6.X Architecture Manual Available?</A>   <P>There are no plans to write a 6.X Architecture Manual. Copies     of the CLIPS 5.1 Architecture Manual are still bundled with the    CLIPS documentation.</P>    </LI><LI><A name="Q18">Are Consulting/Training Services Available for CLIPS?</A>   <P>Inquiries about consulting, training, or other employment opportunities       can be sent to gdrworkYYYY@swbell.net or clipsYYYY@swbell.net where YYYY       is the current year (for example, 2008).</P></LI>        </OL><P><A HREF="index.html">Back to CLIPS Home Page.</A></P><IMG SRC="http://clipsrules.sourceforge.net/blueline.gif" ALIGN="LEFT" WIDTH="550" HEIGHT="4" NATURALSIZEFLAG="3"><BR><TABLE WIDTH="700" BORDER="0" CELLSPACING="0" CELLPADDING="0"><TR><TD WIDTH="40%"><ADDRESS><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=215471&amp;type=2" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a></ADDRESS></TD><TD WIDTH="60%"><ADDRESS>Last Update January 25, 2008 <A HREF="SupportServices.html">Gary Riley</A></ADDRESS></TD></TR></TABLE></BODY></HTML>
