All of the interesting technological, artistic or just plain fun subjects I'd investigate if I had an infinite number of lifetimes. In other words, a dumping ground...

Friday, 25 July 2008

lisp

Steel Bank Common Lisp (SBCL) is an open source (free software) compiler and runtime system for ANSI Common Lisp. It provides an interactive environment including an integrated native compiler, a debugger, and many extensions.

SBCL runs on a number of POSIX platforms, and experimentally on Windows. See the download page for supported platforms, and getting started guide for additional help.

The most recent version is SBCL 1.0.18, released June 29, 2008 (release notes).


The Common Lisp Reasoner project aims to create a practical technology that exploits the synergy between its three major components to make AI-related applications, such as scheduling and diagnosis, easier to develop. These components are:

  • A portable extension of the Common Lisp Object System (CLOS)
  • The Assumption-Based Truth-Maintenance System (ATMS) of de Kleer
  • A rule language comprising non-directional constraints as well as unidirectional rules

Because CLOS permits, by means of the Metaobject Protocol, open-ended extension, it is both the implementation language and the kernel of the implemented system, within which a set of sound principles appropriate to the practice of knowledge representation rather than programming have been realized.

In reasoning applications, the values stored into the slots of an instance (the data to be reasoned with) are accumulated rather than replaced. Permitted values are specified in the class of the instance. They are either other instances, or enumerated ranges of (mutually exclusive) values that may subsequently be narrowed by reasoning activity.

Each stored value is encapsulated in an ATMS node—a record not only of the value, but also its justification (derivation) and the resultant belief states (or environments), determined by the ATMS, in which it holds. An environment is given by a set of primitive assumptions; an assumption constitutes an explicit, problem-specific decision to assume some datum or data. The ATMS enables environments to be explored systematically and efficiently.

The rule language permits the expression of arbitrarily complex logical sentences. The slot definitions of classes collectively constitute a vocabulary of attributes that can be referred to in rule definitions. When reasoning, classes and instances provide an efficient means of retrieving rules and the data upon which they operate.

Source code may be downloaded via the project page. Before downloading, consult the release notes to determine compatibility with your Common Lisp implementation of choice.

No comments:

tim's shared items

Add to Google Reader or Homepage