We present a first step towards a framework for defining and manipulating normative documents or contracts described as Contract-Oriented (C-O) Diagrams. These diagrams provide a visual representation for such texts, giving the possibility to express a signatory's obligations, permissions and prohibitions, with or without timing constraints, as well as the penalties resulting from the non-fulfilment of a contract. This work presents a CNL for verbalising C-O Diagrams, a web-based tool allowing editing in this CNL, and another for visualising and manipulating the diagrams interactively. We then show how these proof-of-concept tools can be used by applying them to a small example.
Attempto Controlled English (ACE) is a language specifically designed to write specifications. ACE is a controlled natural language, i.e. a subset of English with a domain specific vocabulary and a restricted grammar in the form of a small set of construction and interpretation principles. This means that all ACE sentences are correct English, but that not all English sentences are allowed in ACE. The restriction of full natural language to a controlled subset is essential for ACE to be suitable for specification purposes. The main goals of this restriction are: to support the writing of precise specifications, to reduce ambiguity and vagueness inherent in full natural language, to encourage domain specialists to deliberately choose a clear and unambiguous writing style so that readers of a specification understand it in the same way as the writer, to make specifications computer processable, to render specifications unambiguously translatable into formal specification languages, particularly into first-order logic, and to make specifications executable. In brief, ACE allows domain specialists to express specifications in familiar natural language and to combine this with the rigor of formal specification languages. ACE has been used to specify a simple automatic teller machine, Kemmerer''s library data base problem, Schubert''s steamroller, and a number of smaller problems. Recently, ACE has also been used as the input language of a theorem prover, and first attempts have been made to interface it to a program synthesiser. Clearly, ACE can be adapted and extended for other purposes requiring precise input, e.g. writing technical documentation or updating databases. The use of ACE presupposes only basic knowledge of English grammar. Note however, that because ACE is a controlled natural language not all standard grammatical notions are directly applicable or suitable for the description of the ACE grammar. Some grammatical notions have a restricted meaning in ACE, while other notions are especially coined for an effective description of the language. The divergences are kept to a minimum so that ACE can be easily learned extending basic grammatical knowledge. RACE is a first-order reasoner for Attempto Controlled English (ACE) that can show the (in-) consistency of a set of ACE axioms, prove ACE theorems from ACE axioms and answer ACE queries from ACE axioms. In each case RACE gives a proof justification in ACE and full English. This paper is a system description of RACE sketching its structure, its implementation, its operation and its user interface. The power and the limitations of RACE are demonstrated and discussed by concrete examples.