Automated Reasoning with Situation Theory

In the late 80’s I read Situations and Attitudes by Jon Barwise and John Perry (published in 1983). I was fascinated. I spent the next few years immersed in a project to create a computational realization of some of the ideas in that book. This project became my Computer Science Master’s thesis Automated Reasoning with Situation Theory: A Novel Approach to Beliefs and Perception (1992).

The main products of that research were a mathematical formalism for infon logic, a belief logic, and FELIX, a theorem prover that implemented these logics. FELIX was implemented in Prolog using MacProlog32 on a Mac II and later ported to XGP. (I think it’s too big of a system to run in ProscriptLS.)

From the introduction of the thesis:

Computationally modeling and analyzing intelligence (CMAI) is the large issue toward which this thesis is directed. Situation theory (ST) provides the philosophical and logical basis for the approach of this work. There are many issues in CMAI. Many of these issues have in common various problems in knowledge representation (KR). This thesis provides an application of situation theory to some of these common knowledge representation problems, particularly in the area of reasoning about beliefs.

The central claim of this thesis is that situation theory is superior to classical logic as a foundation for knowledge representation in artificial intelligence. This claim is elaborated in the following four hypotheses:

  1. A version of situation theory can be defined which has a characterizing logic (an “infon” logic) similar in form and expressivity to classical first order logic.
  2. There is a semi-decision procedure for this new infon logic, and a theorem prover can be devised which implements it. Further, many of the techniques of automated theorem proving developed for classical logic can be applied to automated theorem proving in this new infon logic.
  3. This new version of situation theory and the associated theorem prover is appropriate as a knowledge representation and reasoning system for theories of perception and belief.
  4. Theories of perception and belief as defined by their embeddings in the new version of situation theory provide a better account of human reasoning than classical logic-based computational approaches to perception and belief.

Situation theory is a recently developed theory, primarily concerned with understanding information and meaning among people. It has seen only very limited application to computational problems in natural language understanding. Thus, one of the contributions of this thesis is to further develop the computational application of situation theory. Another contribution is a new set of problems for situation theory to address – what are the inference rules appropriate to reasoning in situation theory? Also, this thesis is intended to contribute toward a computational system which is as good at intelligent behavior as a typical person is, neither better nor worse.

ProscriptLS with HTML builtins and an interactive debugger

Programming for web browsers is attractive. Such a program can be run by any one, any where, and everyone knows how to access it: Any one with access to a computer can load a web page and this runs whatever program is associated with that page. There is a sophisticated environment for making web pages easily available.

There are compromises that web programming demands. Everything must be run by a browser, the program has limited access to the host platform environment (e.g. the file system), different browsers on different platforms have different behaviors that the program must allow for, the browser execution environment relies primarily on HTTP for network communication, and the program must run in an environment of HTML, CSS, and Javascript or WebAssembly. The particular compromise I am interested in is the requirement to program using Javascript. There are many projects to support programming in other languages – I would like to use Prolog as my web browser language.

The goal of ProscriptLS  (my version of the Proscript project) is to be able to create complex web pages using Prolog and a very small amount of Javascript. This small amount of Javascript is due to limits inherent in the situation that require a minimal amount of Javascript to be used to get the Prolog environment set up. The original Proscript project was created by Matt Lilley. My fork of Matt Lilley’s project extensively modifies it.

ProscriptLS is a WAM-based implementation of Prolog with HTML document builtins and a Procedure Box Control Flow interactive debugger. The debugger uses a JQuery terminal running a ProscriptLS interpreter as an element of a web page. The debugger is implemented along the lines presented in the LogicForSystems-1 technical note.

There is an example use of ProscriptLS to create a simple calculator here.

Extending the WAM for tracing

While working on a javascript-based Prolog implementation (Proscript) I realized it needed an interactive debugger. Since Proscript is implemented using the Warren Abstract Machine (WAM) creating the standard Prolog debugger is complicated. I was not able to find any information on how people have solved this problem aside from reading the source of other Prolog implementations (e.g. GNU Prolog, SWI-Prolog).

I have created a technical note that describes how to integrate interactive debugging in Prolog with the WAM. This is presented in a tutorial fashion inspired by Hassan Aït-Kaci’s “Warren’s abstract machine: a tutorial reconstruction.”

Extending the WAM for tracing

What is Science Fiction?

I am an avid fan of science fiction. I enjoy other works of fiction as well, but science fiction has always been my favorite. I just stumbled on a great piece about science-fiction-as-literature written by Joanna Russ in 1975: Towards an Aesthetic of Science Fiction

This is an academic piece and thus somewhat dry. Nonetheless it is worth the effort to read for those of us entranced by science fiction. Ms. Russ says “That science fiction, like much medieval literature, is didactic.” She extends the medieval literature analogy in various convincing ways.

Medieval literature is a startling choice for the most interesting analogy to science fiction among traditional forms of literature.


SPARCL – Sets and Partitioning Constraints in Logic.

My PhD research (completed in 1996) was to create the SPARCL programming language. The dissertation is Seeing the Logic of Programming With Sets. From the abstract:

This dissertation studies the hypothesis that visual logic programming based on sets with partitioning constraints provides a superior basis for exploratory program- ming languages. Our research program is to design and implement such a program- ming language with an integrated development environment, and to analyze this implementation.

The programming language we have created is named SPARCL (Sets and Partitioning Constraints in Logic). It has the four elements of the hypothesis: it is a visual language, it is a logic programming language, it relies entirely on sets to organize data (which implies that programs are organized using sets, since programs can be viewed as data in this language), and it supports partitioning constraints on the contents of sets. In developing this language, we invented new visual language representation techniques (the automatically laid out “smooth” hyperedge in two and three dimensions) and a new kind of unification for logic programming (the partitioned set unification algorithm).

The SPARCL language was implemented in Logic Programming Associate’s  (LPA) MacProlog32 on an Apple Macintosh. Unfortunately LPA stopped supporting MacProlog32. I started the XGP open source project to replace MacProlog32 so that I could continue SPARCL (and other projects). XGP almost succeeded…