PEARL

Michael Frank Deering: AI: PEARL

Concept

PEARL, “A Package for Efficient Access to Representations in Lisp”, was what at the time was called an “AI programming language”, or a knowledge representation package. It was built by myself and Joseph Faletti (home page http://trumpet.sdsu.edu/faletti/faletti.html) at U.C. Berkeley in 1980 through 1981 and beyond.

AI had very few new formal programing languages because it was so much simpler to just add whatever one needed on top of LISP. In this I think that thew AI community really fail the programing language community; AI had a lot of neat concepts that could have been formulized as base programming language constructs, but this rarely happened. All of Prolog was just an efficient implementation of a particular pattern matching and search technique know to the AI community; they could have formulized something more general.

PEARL fit this LISP plug-in model, but only nearly all similar efforts, there were special optimized implementation techniques below the LISP level for storage and pattern search.

Specifically PEARL had fairly deep knowledge about how knowledge structures are connected together in Shankian AI representations (Wilinsky was one of Shank’s first graduate students). Using this deep knowledge, PEARL built a special hashed data base of such structures. PEARL had effectively a data base language for describing efficient pattern matching queries into this hashed data base. The idea was to have a basis for building large scale knowledge based systems in which search as part of reasoning would stay close to linear in complexity. While in retrospect PEARL’s query language was a little too ad-hoc, the general idea of doing something more efficient that linear search and pattern matches down a list of all the data base contents was a good idea (as was born out by the larger collection of such work in the 1996 book below.)

Many of the deficiencies in PEARL were corrected in my next AI package, Crystal, which (unfortunately) was only productize as the internal engine to AAIS Prolog.

Usage

PEARL was used internally by a number of Robert Wilinsky’s graduate students in AI at U.C. Berkeley; the package was later distributed and used at several other universities. I used PEARL to built an AI systems for my (never published) masters’s thesis. (I was a bit late in writing up the thesis document, and was told that you can’t turn in your master’s thesis after you have turned in your Ph.D. thesis!)

Publications

Michael F. Deering and Joseph Faletti, “Database Support for Storage of AI Reasoning Knowledge”, in Expert Data Base Systems, 1986, Benjamin/Cummings Publishing Company, Inc., 527-536.

Michael F. Deering, Joseph Faletti, and Robert Wilensky. (1982) The PEARL Users Manual. Berkeley Electronic Research Laboratory. Memorandum No. UCB/ERL/M82/19. March.

Michael F. Deering, Joseph Faletti, and Robert. Wilensky, “PEARL – A Package for Efficient Access to Representations in Lisp”, in Proc. of IJCAI-81, August, 1981, 930-932.