Logic Production Systems (LPS)

A new mixed logic/imperative programming language by Bob Kowalski and Fariba Sadri:

“Logic-based Production System" is a new computer language that combines the characteristics of an imperative programming language with those of a declarative database and knowledge representation language. It is the result of over a decade of research led by Bob Kowalski and Fariba Sadri at Imperial College London.

The kernel of LPS consists of a database, together with reactive rules of the form if antecedent then consequent. The database changes destructively in response to actions and external events, according to a domain-specific causal theory. Computation consists in making the reactive rules true, by performing actions to make the consequent true whenever the antecedent becomes true. In addition, LPS includes Prolog-like logic programs both to recognise when antecedents become true and to generate plans of actions that make consequents true.

The page links to papers and slides that describe the language in more detail and there is an online playground to try it out.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Very similar time model to that of Terms

The treatment of time and of change is very similar to that of the Terms project


Terms is an interesting project. I may have missed something otherwise, but my understanding is it makes the Open World Assumption, correct? Thank you.


@Cyril - Terms is forward chaining, and in its rules you can check conditions for both classical negation and negation by failure. So you could develop with it theories with either a closed world or an open world interpretation. But yes, the examples in the documentation are all OWA.