-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME-forbus-dekleer.txt
243 lines (214 loc) · 7.71 KB
/
README-forbus-dekleer.txt
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
NOTES ON THE CODE FOR "BUILDING PROBLEM SOLVERS"
by Ken Forbus and Johan de Kleer
Version of October 23, 1993
------------------------------------------------------------------------
HOW TO GET THE CODE
------------------------------------------------------------------------
All the code described in the book is available via anonmyous ftp.
(If you do not have internet access, MIT Press will, for a fee, send
you a floppy. Please contact them directly about this. Please do not
ask us for floppies, we simply do not have the facilities to process
such requests.) The ftp sites the code is currently installed on are:
multivac.ils.nwu.edu: pub/BPS/
parcftp.xerox.com:/pub/bps/
There are three formats: a unix tar file (compressed and
uncompressed), an MS-DOS zip archive, and a Macintosh Stuffit archive.
Please be sure to ftp the files you need in binary mode.
------------------------------------------------------------------------
HOW THE CODE IS ORGANIZED
------------------------------------------------------------------------
The code is contained in the following eleven directories:
atms Assumption-based truth maintenance system, inference engine,
planner and examples.
cps Simple search engine with examples.
ftre Faster pattern-directed inference system plus examples
gde General Diagnostic Engine, ATMS-based constraint language
plus examples.
jtms Justification-based TMS, inference engine, symbolic
integration system and examples.
ltms Logic-based TMS, inference engine and examples.
relax Symbolic relaxation system and examples.
tcon Constraint language and examples.
tgizmo Simple Qualitative Process theory system plus examples.
tre Pattern-directed inference system plus examples
utils Loading and listing programs.
A complete listing of files is at the end of this note, along with the
legalese regarding their use.
------------------------------------------------------------------------
USING THE CODE
------------------------------------------------------------------------
Please see the appendix in Building Problem Solvers for details.
------------------------------------------------------------------------
COMPATIBILITY NOTES
------------------------------------------------------------------------
The programs in this book were developed on the following platforms:
Symbolics Common Lisp, on 36XX's and XL1200's
Lucid Common Lisp on IBM RT's, IBM RS/6000's.
In addition, various subsets of the code have been used on
Franz Common Lisp, various platforms
Lucid Common Lisp, various platforms
Kyoto Common Lisp, varous platforms
Symbolics CLOE on 386's
Macintosh Common Lisp, various Apple computers
Allegro CL/PC, on 486's.
We have taken great pains to write our code to be as portable as
possible. However, glitches can occur. So far, every problem we know
about can be solved by placing the code in its own package, rather
than the user package. (We recommend this in general anyway, but as
explained in the book, we left everything in the package
:COMMON-LISP-USER for simplicity.)
Here is the list of incompatibilities that we know of, and suggestions
for fixes. Others will be added as they are discovered.
MACINTOSH COMMON LISP: We use RLET to bind pattern variables
in rules. The symbol ccl::rlet is exported into the user package,
which thus causes an error. You can either tell the lisp to allow the
redefinition of RLET, or use a seperate package.
ALLEGRO CL/PC: The symbols TRUE and FALSE exported to the user
package from an internal package as constants. In this particular
port of Allegro Common Lisp, this causes problems even when using TRUE
and FALSE as field names (in the LTMS), even with a non-empty conc
name. You can either rename the fields or put the LTMS in a package
other than COMMON-LISP-USER.
------------------------------------------------------------------------
BUGS
------------------------------------------------------------------------
The best way to report bugs is by sending electronic mail to
bug-bps@ils.nwu.edu
Mail to this address is automatically forwarded to both Forbus and de Kleer.
------------------------------------------------------------------------
LEGAL NOTICE
------------------------------------------------------------------------
American society is growing increasingly litigeous; we regret the
necessity of the following notice. That is, the copyright notice
below and the paragraph which follows must be included in any separate
copy of the code from this book:
Copyright (c) 1986-1993 Kenneth D. Forbus, Johan de Kleer and Xerox
Corporation. All Rights Reserved.
Use, reproduction, and preparation of derivative works are permitted.
Any copy of this software or of any derivative work must include the
above copyright notice and this paragraph. Any distribution of this
software or derivative works must comply with all applicable United
States export control laws. This software is made available as is, and
Kenneth D. Forbus, Johan de Kleer and Xerox Corporation disclaim all
warranties, express or implied, including without limitation the implied
warranties of merchantability and fitness for a particular purpose, and
notwithstanding any other provision contained herein, any liability for
damages resulting from the software or its use is expressly disclaimed,
whether arising in contract, tort (including negligence) or strict
liability, even if Kenneth D. Forbus, Johan de Kleer or Xerox
Corporation is advised of the possibility of such damages.
------------------------------------------------------------------------
COMPLETE LISTING OF BPS FILES
------------------------------------------------------------------------
./atms/adata.lisp
./atms/ainter.lisp
./atms/unify.lisp
./atms/aplanr.lisp
./atms/plan-e.lisp
./atms/arules.lisp
./atms/atest.lisp
./atms/plan-a.lisp
./atms/atms.lisp
./atms/atre.lisp
./atms/funify.lisp
./atms/atret.lisp
./atms/blocks.lisp
./atms/bcode.lisp
./cps/algebra.lisp
./cps/variants.lisp
./cps/boston.lisp
./cps/search.lisp
./cps/cps.lisp
./cps/match.lisp
./cps/simplify.lisp
./cps/subways.lisp
./ftre/fdata.lisp
./ftre/finter.lisp
./ftre/unify.lisp
./ftre/fnd-ex.lisp
./ftre/funify.lisp
./ftre/fnd.lisp
./ftre/fqrule.lisp
./ftre/fqueens.lisp
./ftre/frules.lisp
./ftre/ftre.lisp
./gde/atcon.lisp
./gde/gde.lisp
./gde/condef.lisp
./gde/diagrams.lisp
./gde/2bit.txt
./gde/polyex.txt
./jtms/funify.lisp
./jtms/jdata.lisp
./jtms/unify.lisp
./jtms/jinter.lisp
./jtms/jqrule.lisp
./jtms/jqueens.lisp
./jtms/match.lisp
./jtms/jrules.lisp
./jtms/jsaint.lisp
./jtms/jtre.lisp
./jtms/jsops.lisp
./jtms/simplify.lisp
./jtms/jsrules.lisp
./jtms/jtest.lisp
./jtms/jtms-ex.lisp
./jtms/jtms.lisp
./jtms/jtms.lisp
./ltms/cltms.lisp
./ltms/cwa.lisp
./ltms/dds.lisp
./ltms/unify.lisp
./ltms/funify.lisp
./ltms/indirect.lisp
./ltms/laccept.lisp
./ltms/ldata.lisp
./ltms/ltre.lisp
./ltms/linter.lisp
./ltms/lrules.lisp
./ltms/ltms-ex.lisp
./ltms/ltms.lisp
./ltms/setrule.lisp
./relax/allen.lisp
./relax/cube.lisp
./relax/jcatalog.lisp
./relax/scene.lisp
./relax/stack.lisp
./relax/timedb.lisp
./relax/wedge.lisp
./relax/waltzer.lisp
./tcon/tcon.lisp
./tcon/condef.lisp
./tcon/debug.lisp
./tcon/intex.txt
./tcon/motion.lisp
./tcon/polybox.lisp
./tcon/suspend.lisp
./tgizmo/mi.lisp
./tgizmo/debug.lisp
./tgizmo/defs.lisp
./tgizmo/ex1.lisp
./tgizmo/ineqs.lisp
./tgizmo/ex2.lisp
./tgizmo/tnst.lisp
./tgizmo/tgizmo.lisp
./tgizmo/mlang.lisp
./tgizmo/ex3.lisp
./tgizmo/resolve.lisp
./tgizmo/ex4.lisp
./tgizmo/ex5.lisp
./tgizmo/ex6.lisp
./tgizmo/ex7.lisp
./tgizmo/states.lisp
./tgizmo/laws.lisp
./tgizmo/psvs.lisp
./tre/data.lisp
./tre/rules.lisp
./tre/unify.lisp
./tre/tinter.lisp
./tre/treex1.lisp
./tre/tre.lisp
./utils/lst.lisp
./utils/loader.lisp
------------------------------------------------------------------------
------------------------------------------------------------------------