LPS is a production system language for building reactive agents based on logic. An agent's goals are expressed using reactive rules, while the methods of reaching those goals -- i.e. its beliefs -- are expressed as logic programs. LPS combines both reactive rules and logic programming into a single framework using both forward reasoning in reactive rule processing and and backward reasoning in logic programs through SLD resolution.
In LPS, reactive rules are in the form of "if antecedent then consequent". When the antecedent of reactive rules become true, the rules are said to be fired. During computation, LPS will select actions from the consequent of fired rules for execution and thus by modus ponens keeping the reactive rule true in the model.
LPS also feature a database of facts that can be destructively updated based on executed actions as well as externally observed events. This database can represent the local worldview of a single agent or a shared blackboard of knowledge among several agents in the same context.
The LPS framework was the result of research led by Robert "Bob" Kowalski and Fariba Sadri at Imperial College London over the past decade, its interpreter implemented in Prolog by several contributors.