The Logical Contracts Server extends the Swish implementation of LPS, with a view towards representing and executing smart legal contracts. It builds upon several decades of research on the use of logic programming to represent legal documents. But it also exploits the use of reactive rules and causal laws in LPS to represent obligations and prohibitions.



LPS builds upon the event calculus ontology of events, fluents and time, but using destructive state transitions, without frame axioms. As argued by van Lambalgen and Hamm, the event calculus provides a useful framework for formalising natural language expressions of tense and aspect. Logical Contracts aim to exploit this connection between the event calculus and natural language, to provide a simplified natural language representation of contracts.



The examples menu of the Logical Contracts Server contains some preliminary examples of Logical Contracts and their English formulation.

Presented at RuleML+RR 2018 2nd International Joint Conference on Rules and Reasoning 18-21 Sep 2018, Luxembourg.



The use of logic to improve the analysis and drafting of legal documents was advocated already in the 1950s by the legal theorist Layman Allen. It was given a boost in the 1980s with the use of logic programming (LP) to implement a large portion of the British Nationality Act. Arguably, since then, LP in one form or another has been the dominant approach to the representation of legal documents in the field of AI and Law.



In the meanwhile, the field of blockchains and smart contracts has emerged, as a separate development from the field of AI and Law. As a result, there is a large gap between smart contracts implemented in blockchain programming languages, such as Solidity and Serpent, and smart contracts written in the natural language of the law. The resulting smart contracts are hard to verify and difficult for non-programmers to understand.



The gap between blockchain programming languages and logic-based languages for AI and Law has inspired several recent applications of logic-based AI approaches to the implementation of smart contracts and other legal documents. In this tutorial, we survey some of these recent developments, focusing on three main examples: the simplified loan agreement developed by Flood and Goodenough, the rock, paper scissors example used in a blockchain lecture course at the University of Maryland, and the delayed delivery example of the Accord Project.

In modal deontic logics, the focus is on inferring logical consequences of obligations, for example on inferring whether an obligation O mail, to mail a letter, logically implies O [mail or burn], an obligation to mail or burn the letter.



Here I present an alternative approach in which obligations are sentences (such as mail) in first-order logic (FOL), and the focus is on satisfying those sentences by making them true in some best model of the world. To facilitate this task and to make it manageable, candidate models are defined by a logic program (LP) extended by means of candidate action assumptions (A). The resulting combination of FOL, LP and A is a variant of abductive logic programming (ALP).

Obligation as Optimal Goal Satisfaction with Ken Satoh, In the Journal of Philosophical Logic, 2018, 47(4), 579-609.

Formalising deontic notions, such as obligation, prohibition and permission, is notoriously difficult. Among the many problems are both the problem of reasoning with conflicting obligations, and the related problem of reasoning with contrary-to-duty obligations, which arise when the violation of a primary obligation p is compensated by a secondary obligation q.

In this paper we propose a formalisation in which obligations are interpreted as goals in abductive logic programming (ALP), and satisfying a goal p is understood as generating a classical, non-modal model that makes p true, where some models may be better than others. To say that p is obligatory, is to require that p be true in all best models. To say that p is obligatory, but may be violated, resulting in a less than ideal situation q, means that the real goal is p or q (equivalently if not p then q), and that models in which p is true are better than models in which q is true.

We argue that the ALP approach to the representation of obligations has the advantage that it does not require the invention of a special-purpose logic, but is a general approach, which is suitable for many other applications, including abductive explanations, non-monotonic reasoning, combinatorial optimisation, and reactive systems of the production system variety.

Programming in Logic without Logic Programming with Fariba Sadri, Theory and Practice of Logic Programming, 2016, 16(3), 269-295.

In previous work, we proposed a logic-based framework in which computation is the execution of actions in an attempt to make reactive rules of the form if antecedent then consequent true in a canonical model of a logic program determined by an initial state, sequence of events, and the resulting sequence of subsequent states. In this model-theoretic semantics, reactive rules are the driving force, and logic programs play only a supporting role.

In the canonical model, states, actions and other events are represented with timestamps. But in the operational semantics, for the sake of efficiency, timestamps are omitted and only the current state is maintained. State transitions are performed reactively by executing actions to make the consequents of rules true whenever the antecedents become true. This operational semantics is sound, but incomplete. It cannot make reactive rules true by preventing their antecedents from becoming true, or by proactively making their consequents true before their antecedents become true.

In this paper, we characterize the notion of reactive model, and prove that the operational semantics can generate all and only such models. In order to focus on the main issues, we omit the logic programming component of the framework.

Reactive Computing as Model Generation with Fariba Sadri, New Generation Computing, 2015, 33(1), 33-67.

In this paper we propose a logic-based, framework inspired by artificial intelligence, but scaled down for practical database and programming applications. Computation in the framework is viewed as the task of generating a sequence of state transitions, with the purpose of making an agent's goals all true. States are represented by sets of atomic sentences (or facts), representing the values of program variables, tuples in a coordination language, facts in relational databases, or Herbrand models.

In the model-theoretic semantics, the entire sequence of states and events are combined into a single model-theoretic structure, by associating timestamps with facts and events. But in the operational semantics, facts are updated destructively, without timestamps. We show that the model generated by destructive updates is identical to the model generated by reasoning with facts containing timestamps. We also extend the model with intentional predicates and composite event predicates defined by logic programs containing conditions in first-order logic, which query the current state.

History of Logic Programming



Volume 9, Computational Logic (Joerg Siekmann, editor).

In the History of Logic series, edited by Dov Gabbay and John Woods, Elsevier, 2014, pp 523-569.

This history covers some of the highlights of the development of logic programming from the late 1960s into the 21st century. It focuses on a number of issues that continue to be important today:



the difference between solving a goal by theorem-proving and solving it by model generation,

the difference between solving a goal top-down and solving it bottom-up, and

the relationship between declarative and procedural representations.

WUENIC :

I worked with WHO and UNICEF from 2009 to 2013, helping to develop, implement and deploy a set of logical rules to assist in estimating global, country by country, infant immunization coverage. The problem is to reconcile inconsistencies when different sources of data conflict - for example when government reported data is inconsistent with survey data. The purpose of the logical rules is to make the reconciliation and estimation process more transparent and more consistent.

The rules have been implemented in XSB Prolog as a purely declarative logic program, and have been used to assist in making the annual estimates since 2010. In addition to helping to ensure transparency and consistency, the Prolog implementation has also proved useful in providing detailed documentation of the rationale for each of the estimates.