PowerLoom is the successor to the Loom knowledge representation system. It provides a language and environment for constructing intelligent applications. PowerLoom uses a fully expressive, logic-based representation language (a variant of KIF). It uses a Prolog-technology backward chainer as its deductive component. The backward chainer is (not yet) a complete theorem prover, but it can handle Horn rules, negation, and simple equality reasoning. Contrary to Prolog, it also handles recursive rules without the risk of infinite recursion. Once the classifier is completed, it will be able to classify descriptions expressed in full first order predicate calculus [See paper]. PowerLoom uses modules as a structuring device for knowledge bases, and ultra-lightweight worlds to support hypothetical reasoning.
To implement PowerLoom we developed a new programming language called STELLA, which is a Strongly Typed, Lisp-like LAnguage that can be translated into Lisp and C++. STELLA tries to preserve those features of Lisp that facilitate symbolic programming and rapid prototyping, while still allowing translation into readable as well as efficient C++ code. By writing PowerLoom in STELLA, we are able to deliver it in Common-Lisp as well as in C++. Once the STELLA-to-Java translator has been completed, PowerLoom will also become available in Java.
