View source code on GitHub

RECALL

Relativized Contract Language Analyser

Download RECALL tool

Introduction to RECALL Tool

Nowadays, contracts has an important role in business where trade relationships between different parties are dictated by legal rules. The concept of electronic contracts has arisen mostly due to technological advances and most frequent practice of electronic trading between companies and customers. Therewith new challenges have emerged to guarantee reliability between the stakeholders in the electronic negotiations. The automatic verification of electronic contracts has arisen as a new challenge especially in the task of detecting conflicts in multi-party contracts. The problem of checking contracts has been largely addressed in the literature, but only few works have dealt with multi-party contracts. The RECALL tool is an automatic checker for finding conflicts on multi-party contracts modeled by the relativized contract language. The modeling and automatic checking of the contract allow us to ascertain important results on its business model.

Technologies and architecture

We have developed the RECALL tool based on the conflict detection algorithm proposed by Della Mura and Bonifácio 1. The RECALL tool has been mainly developed in Java SE and supported by some libraries such as ANTLR to generate the grammar syntax and Apache Commons CLI to setting the configuration file in the interface module. Some operations of set theory was optimized by applying the Guava library on the Automaton Construction and Conflict Analysis modules. Aiming to yield a graphical representation of the generated automaton we have also used the Graphviz library.

The follow figure presents the tool's architecture composed by the implemented modules and their relationships.

The Command Line Interface module corresponds to the user interaction with the tool, where settings for the contract analysis are given to the tool. The Contract Representation module states the contract data to be processed by the tool using the RCL syntax. Finally, the Conflict Analysis module aims at finding conflicts for all decompositions obtained in the automaton construction. The Automaton Construction module accomplishes the construction of an automaton that models the contract described in RCL.

Documentation and support

The tool's documentation contains information about the command-line parameters as well a complete description of the RCL language syntax for building contracts and subsequent verification using this tool.

In addition, we provide some examples of contracts written in RCL to facilitate their understanding.

If you have any questions, suggestions or find any problems (or bugs) in RECALL Tool, please contact us at