The logic and computer language LPS (Logic-based Production System) 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 logical rules of the form if antecedent then consequent. The database is a model-theoretic structure, which changes destructively as a result of external events and actions. Computation consists in making the logical rules true in the model-theoretic structure that is the history of database states, actions and events, by performing actions to make consequents true whenever antecedents becomes true. In addition, LPS also includes logic programs both to recognise when antecedents become true and to generate actions to make consequents true.
The slides at http://www.slideshare.net/ruleml2012/kelps-lps-30-aug-2012 give a flavour of the language. Additional material about the kernel of LPS is available on the RuleML wiki. More technical papers can be found on Bob Kowalski’s home page, which also includes a copy of his 2011 book, Computational Logic and Human Thinking, which presents the philosophical background of LPS.