MESSAGE
DATE | 2015-11-19 |
FROM | Ruben Safir
|
SUBJECT | Subject: [Hangout-NYLXS] Clips Notes
|
anyone ever do anywork with CLIPS. It is a rules based AI application with a programming environment similar to a functional language.
It has an inference engine and you load it up with facts and rules and see if you can build a forward chaining expert system.
https://aur.archlinux.org/packages/clips/
http://clipsrules.sourceforge.net/
It was initially designed out of NASA
======================================================================= 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:
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 "rules of thumb," 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. 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. 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. 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 MacOS, Windows XP, and X Window environments. 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. Fully Documented: CLIPS comes with extensive documentation including a Reference Manual and a User's Guide. Low Cost: CLIPS is maintained as public domain software.
===================================================================
An expert system might look something like this
http://www.nylxs.com/docs/grad_school/artificial_intelligence/fishing.svg
although this is not complete. Its a system designed to max revenue for a fishing boat out of local waters. There is a DIA diagram in the making as well
http://www.nylxs.com/docs/grad_school/artificial_intelligence/fishing.dia
The system revolves about two kinds of constructs, facts and rules
facts can be created mulitple ways but the best method involves creating fact templates with the detemplate command deffacts
(deftemplate [] + )
So if we need to describe fish in a useful way we can use the following syntax
(deftemplate fish (slot species) (slot habitat) (slot seasonal_availablity) (slot season_opens) (slot season_closes) (slot popularity) )
(deftemplate date (slot date))
(deffacts today (date (November 18) ))
then we can define multi types of fish
(deffacts fishes "Species of Fish" (fish (species scup) (habitat bottom) (seasonal_availability "January 1st through December 31") (season_opens "May 1st") (season_closes "December_31") (populary 3 ) ;scale 1-5 )
(fish (species striped_bass) (habitat game) ;game fish are near the surface or shallows (seasonal_availability "April 1 through October 31st") (season_opens "January 1") (season_closes "December 31") (popularity 4) )
(fish (species tautog) (habitat bottom) seasonal_availability ("April 1 through Jun 15 and October 15th through February 15") (season_opens "October 5") (season_closes "December 15th") (popularity 5) ) )
(reset) //reset the inference engine
defrules( fishing ( fish (species scup) => (printout t "We have scup") )
(run) _______________________________________________ hangout mailing list hangout-at-nylxs.com http://www.nylxs.com/
|
|