Recent Freeware: Clips

Authors

Publication

Pub Details

Date

Pages

See all articles from QL Hacker's Journal 24

CLIPS is an expert system developed by NASA in 1986. It has been ported to the QL by Emiliano Barbaini of Italy. CLIPS is an interpretive language like BASIC or Lisp. Like Lisp or Prolog, CLIPS is designed for use in artificial intelligence.

CLIPS has three ways to represent knowledge: Rules, Generic Functions, and Object Oriented Programming (OOP). CLIPS supports the 5 features of OOP: classes, message handlers, abstraction, inheritance, and polymorphism. Or so the manual says.

When I read through the first part of the manual, it introduced CLIPS by talking about facts and rules. Facts are just “words” you tell CLIPS and rules are actions it takes based on the facts. Facts are what ever you define them to be. Here some examples:

   (assert (bob))
(assert (animal-is duck))
(assert (animal-is bob))

Each fact is stored as a literal in CLIPS and no check in done on it.

Rules are really IF..THEN statements. Rules say that if a given fact exists, then perform some function. Here is an example

   (defrule animal
(animal-is duck)
=>
(assert (sound-is quack)))

If the fact (animal-is duck) exists (has been asserted) then the fact (sound-is quack) will be asserted. You can have multiple facts in a rule, the same as using AND in an IF statement, by listing the facts before the =>. The same goes for having mulitple actions in the rule, by listing them before ending the rule with a closing ).

CLIPS terminology is a bit different and takes some getting used to. CLIPS uses the term field to define a single element in a fact. In (assert (bob)), bob is a field. In (assert (bob dave)), both bob and dave are fields. CLIPS supports the following types of fields: float, integer, symbol, string, external address, fact address, instance address, and instance name.

The manual that comes with CLIPS is really a tutorial. The reference manual as not passed to me. As someone new to CLIPS it is probably better to have a tutorial instead of the reference manual, it’s makes it easier to learn the language.

I have not gone too far into the manual, nor do I know how far I will go. I don’t see CLIPS used for much everyday computing on the QL, but it does have the potential for letting a QLer explore the non-everyday areas of computer science.

To get an idea of what one can do with CLIPS, the Proceeding from the first three CLIPS Users Conference are included at the back of the manual. Some of the area covered are: “Three CLIPS-based Expert Systems for Solving Engineering Problems”, “Using CLIPS in a Distributed System – the Network Control Center (NCC) Expert System”, “Space Shuttle Systems Monitoring: Real-Time Telemetry Processing Using CLIPS”, “A CLIPS Expert System for Maximizing Alfalfa”, “MOM – A Meteorological Data Checking Expert System in CLIPS”, and “Using a CLIPS Expert System to Automatically Manage TCP/IP Networks”. It looks like CLIPS can be used for a variety of applications.

CLIPS is a 500K executable and requires an expanded QL. I have a Gold Card on my QL and it works fine. I have not tested it on a 640K QL. CLIPS is available via QHJ Freeware (same address as the QHJ). Send a disk and return postage and it is yours. The FTP site maya.dei.unipd.it seems to be down, so Emiliano did not put it there. If a request is made, it can be put on ftp.nvg.unit.no in the QL subdirectory.

Products

 

Downloadable Media

 

Image Gallery

Scroll to Top