[ANN] CLIPSExamples 1.0 - a RevCLIPS demo app
Alex Rice
alex at mindlube.com
Fri Dec 26 03:25:42 EST 2003
On Dec 25, 2003, at 3:55 PM, Mark Brownell wrote:
> Kool; COOL
>
> Can't wait to see your source code for this CLIPSExamples 1.0.
There are some short docs in the 07-09-03 version of revclips you can
start with. There are some minor changes to the API that will be
upcoming in the next revclips version, that are mentioned on the
revclips web page.
Basically all the CLIPSExamples app does is load clips source code from
files on disk, and runs CLIPS on it. The input and output is redirected
to go into the GUI app instead of a console app. So the essence of the
app is just this single handler. The error handling and selecting of
source code file to run is omitted just for emphasis:
on startSystem
clipsInit
clipsLoad "examples/something.clp"
clipsReset
get clipsRun(-1)
end startSystem
So there is actually not much to CLIPSExamples; and if you want to
start right away learning CLIPS open up the .clp files in the examples/
directory. They are the text (source) for the programs in the popup
menu there in CLIPSExamples.
Also download the main CLIPS distribution to use the interactive shell
for experimenting and learning.
> Thanks for the introduction to CLIPS and your hard work.
You're welcome. I think CLIPS is great & I'm glad to be able to bring
it to new users.
I learned CLIPS for a project for my day job with Architectural
Research Consultants Inc. It's a "facility calculator" for estimating
spaces and costs for large construction and development projects. It is
a really difficult programming challenge and I originally trying to do
it with normal procedural code, in Realbasic. It would have been just
as hard in C++, in Java, Perl, etc. I was trying to solve it
procedurally and that was the problem. Luckily I had taken some machine
learning and cognitive psych. classes in college and it occurred to me
it really is an expert system I was programming. After all the
architects and planners were telling me who to encode into the software
rules. So I searched, found and learned CLIPS and it really saved my
butt.
But also realized rule-based programming is just really *neat* and not
only for expert systems. Anywhere you have a many-to-many pattern
matching problems, it's perfect. Or AI, or agent-based systems.
Possibly even neural networks and other connectivist and more
math-related stuff. I have some ideas for using CLIPS as the engine for
puzzle and action games written in Rev.
You can work with just "facts" and "rules" if you want. That's what I
did for the facility calculator. But CLIPS also has procedural
programming (functions, loops, switches, if-thens, etc). It has generic
functions. It has object oriented programming. It has "instance set
queries and distributed actions" which I've never seen in another
programming language. So is has all these powerful aspects, and one can
use any or all of them together.
> This looks like something I could get into. I can't wait to get into
> expert systems with the AI capacity of CLIPS & Roulette patterns among
> groups of numbers occurring during multi-numbered events like 300
> spins per full-event-cycle. I was going to write my own 80%, 85%, 95%
> & 100% if/then based system for checking patterns using Transcript for
> the rule based checking.
I don't know roulette, but gaming/gambling in general would be perfect
for rule-based systems. The rules of play are, well, rules of course.
Also to represent the game state, and the heuristics/rules of thumb for
smart game play, prediction, odds making, all this kind of thing, with
CLIPS you could write all the aspects to fit together into a working,
coherent model.
With transcript it would surely be possible, but it would be much
tougher, even with a 4GL language like transcript.
There are people who scoff at expert systems and say stuff like "oh in
college I wrote a rule-based expert system in 15 minutes using LISP"
then know that person is just talking about just a pattern matching
*algorithm*, not a real working engine and programming language like
CLIPS. Also, CLIPS in source form is 5.6 MB of well engineered C code.
That's nothing to sneeze at :-)
> Being new to CLIPS just today I will have to learn from your
> CLIPSExamples 1.0 source code.
I recommend the Beginning Programmers Guide (bpg.pdf) at
<http://www.ghg.net/clips/download/>.
Also there is a good book in print: _Expert Systems, Principles and
Programming_ by Giarratano & Riley. It's about half general expert
systems theory and half CLIPS specifics. Co author is Garey Riley, the
main CLIPS programmer and is active on the mailing list and web forums.
Anyways- between the BPG and the print book- that's how I learned. The
Advanced Programming Guide (apg.pdf) describes the C API for embedding
and extending CLIPS like I did to create revclips.
Alex Rice <alex at mindlube.com> | Mindlube Software |
<http://mindlube.com>
what a waste of thumbs that are opposable
to make machines that are disposable -Ani DiFranco
More information about the use-livecode
mailing list