File: remove_logos.diff

package info (click to toggle)
clips 6.30-4.1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 72,580 kB
  • sloc: ansic: 92,903; makefile: 374; sh: 175; modula3: 8
file content (1183 lines) | stat: -rw-r--r-- 64,684 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
--- 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>