Knowledge Representation and Reasoning in (Controlled) Natural Language
Attempto Controlled English (ACE) is a controlled natural language, i.e. a precisely defined, tractable subset of full English that can be automatically and unambiguously translated into first-order logic. ACE seems completely natural, but is actually a formal language, concretely it is a first-order logic language with the syntax of a subset of English. Thus ACE is human and machine understandable. While the meaning of a sentence in unrestricted natural language can vary depending on its — possibly only vaguely defined — context, the meaning of an ACE sentence is completely and uniquely defined. As a formal language ACE has to be learned, which — as experience shows — takes about two days.
ACE was originally developed to specify software programs, but has since been used as a general knowledge representation language. For instance, we specified in ACE an automated teller machine, Kemmerer’s library data base, Schubert’s Steamroller, data base integrity constraints, and Kowalski’s subway regulations. ACE served as natural language interface for the model generator EP Tableaux, for a FLUX agent, and recently for MIT’s Process Handbook. We partially investigated applying ACE to knowledge assimilation, medical reports, planning, and as input language for a synthesiser of constraint logic programs. Other people suggested to express in ACE ontologies, legal texts, or standards. There were first attempts to use ACE to teach logic. Our current focus of application is the semantic web within the EU Network of Excellence REWERSE.
To support automatic reasoning in ACE we have developed the Attempto Reasoner (RACE). RACE proves that one ACE text is the logical consequence of another one, and gives a justification for the proof in ACE. If there is more than one proof then RACE will find all of them. Variations of the basic proof procedure permit query answering and consistency checking. Reasoning in RACE is supported by auxiliary first-order axioms and by evaluable functions. The current implementation of RACE is based on the model generator Satchmo. As a consequence, RACE cannot only be used for theorem proving but also for model generation.
ACE and RACE are powerful and general tools that do not require a priori world knowledge or a domain ontology — though both can be expressed in ACE — and they are neutral with regard to particular applications or methods.
More information on ACE and RACE, demo versions, and publications can be found at: http://www.ifi.unizh.ch/attempto.