Attempto Controlled English


Attempto Controlled English is a controlled natural language, i.e. a subset of standard English with a restricted syntax and restricted semantics described by a small set of construction and interpretation rules. It has been under development at the University of Zurich since 1995. In 2013, ACE version 6.7 was announced.
ACE can serve as knowledge representation, specification, and query language, and is intended for professionals who want to use formal notations and formal methods, but may not be familiar with them. Though ACE appears perfectly natural – it can be read and understood by any speaker of English – it is in fact a formal language.
ACE and its related tools have been used in the fields of software specifications, theorem proving, text summaries, ontologies, rules, querying, medical documentation and planning.
Here are some simple examples:
  1. Every woman is a human.
  2. A woman is a human.
  3. A man tries-on a new tie. If the tie pleases his wife then the man buys it.
ACE construction rules require that each noun be introduced by a determiner. Regarding the list of examples above, ACE interpretation rules decide that is interpreted as universally quantified, while is interpreted as existentially quantified. Sentences like "Women are human" do not follow ACE syntax and are consequently not valid.
Interpretation rules resolve the anaphoric references in : the tie and it of the second sentence refer to a new tie of the first sentence, while his and the man of the second sentence refer to a man of the first sentence. Thus an ACE text is a coherent entity of anaphorically linked sentences.
The Attempto Parsing Engine translates ACE texts unambiguously into discourse representation structures that use a variant of the language of first-order logic. A DRS can be further translated into other formal languages, for instance AceRules with various semantics, OWL, and SWRL. Translating an ACE text into first-order logic allows users to reason about the text, for instance to verify, to validate, and to query it.

Overview

As an overview of the current version 6.6 of ACE this section:
The vocabulary of ACE comprises:
The grammar of ACE defines and constrains the form and the meaning of ACE sentences and texts. ACE's grammar is expressed as a set of . The meaning of sentences is described as a small set of . A describes how to use ACE and how to avoid pitfalls.

ACE texts

An ACE text is a sequence of declarative sentences that can be anaphorically interrelated. Furthermore, ACE supports questions and commands.

Simple sentences

A simple sentence asserts that something is the case — a fact, an event, a state.
Simple ACE sentences have the following general structure:
Every sentence has a subject and a verb. Complements are necessary for transitive verbs and ditransitive verbs, whereas adjuncts are optional.
All elements of a simple sentence can be elaborated upon to describe the situation in more detail. To further specify the nouns customer and card, we could add adjectives:
possessive nouns and of-prepositional phrases:
or variables as appositions:
Other modifications of nouns are possible through relative sentences:
which are described below since they make a sentence composite. We can also detail the insertion event, e.g. by adding an adverb:
or, equivalently:
or, by adding prepositional phrases:
We can combine all of these elaborations to arrive at:

Composite sentences

Composite sentences are recursively built from simpler sentences through coordination, subordination, quantification, and negation. Note that ACE composite sentences overlap with what linguists call compound sentences and complex sentences.
Coordination
Coordination by and is possible between sentences and between phrases of the same syntactic type.
Note that the coordination of the noun phrases a card and a code represents a plural object.
Coordination by or is possible between sentences, verb phrases, and relative clauses.
Coordination by and and or is governed by the standard binding order of logic, i.e. and binds stronger than or. Commas can be used to override the standard binding order. Thus the sentence:
means that the customer inserts a VisaCard and a code, or alternatively a MasterCard and a code.
Subordination
There are four constructs of subordination: relative sentences, if-then sentences, modality, and sentence subordination.
Relative sentences starting with who, which, and that allow to add detail to nouns:
With the help of if-then sentences we can specify conditional or hypothetical situations:
Note the anaphoric reference via the pronoun it in the then-part to the noun phrase a card in the if-part.
Modality allows us to express possibility and necessity:
Sentence subordination comes in various forms:
Quantification
Quantification allows us to speak about all objects of a certain class, or to denote explicitly the existence of at least one object of this class. The textual occurrence of a universal or existential quantifier opens its scope that extends to the end of the sentence, or in coordinations to the end of the respective coordinated sentence.
To express that all involved customers insert cards we can write
This sentence means that each customer inserts a card that may, or may not, be the same as the one inserted by another customer. To specify that all customers insert the same card — however unrealistic that situation seems — we can write:
or, equivalently:
To state that every card is inserted by a customer we write:
or, somewhat indirectly:
Negation
Negation allows us to express that something is not the case:
To negate something for all objects of a certain class one uses no:
or, there is no:
To negate a complete statement one uses sentence negation:
These forms of negation are logical negations, i.e. they state that something is provably not the case. Negation as failure states that a state of affairs cannot be proved, i.e. there is no information whether the state of affairs is the case or not.

Queries

ACE supports two forms of queries: yes/no-queries and wh-queries.
Yes/no-queries ask for the existence or non-existence of a specified situation. If we specified:
then we can ask:
to get a positive answer. Note that interrogative sentences always end with a question mark.
With the help of wh-queries, i.e. queries with query words, we can interrogate a text for details of the specified situation. If we specified:
we can ask for each element of the sentence with the exception of the verb.
Queries can also be constructed by a sequence of declarative sentences followed by one interrogative sentence, for example:

Commands

ACE also supports commands. Some examples:
A command always consists of a noun phrase, followed by a comma, followed by an uncoordinated verb phrase. Furthermore, a command has to end with an exclamation mark.

Constraining ambiguity

To constrain the ambiguity of full natural language ACE employs three simple means:
In natural language, relative sentences combined with coordinations can introduce ambiguity:
In ACE the sentence has the unequivocal meaning that the customer opens an account, as reflected by the paraphrase:
To express the alternative — though not very realistic — meaning that the card opens an account, the relative pronoun that must be repeated, thus yielding a coordination of relative sentences:
This sentence is unambiguously equivalent in meaning to the paraphrase:

Interpretation rules

Not all ambiguities can be safely removed from ACE without rendering it artificial. To deterministically interpret otherwise syntactically correct ACE sentences we use a small set of interpretation rules. For example, if we write:
then with a code attaches to the verb inserts, but not to a card. However, this is probably not what we meant to say. To express that the code is associated with the card we can employ the interpretation rule that a relative sentence always modifies the immediately preceding noun phrase, and rephrase the input as:
yielding the paraphrase:
or — to specify that the customer inserts a card and a code — as:

Anaphoric references

Usually ACE texts consist of more than one sentence:
To express that all occurrences of card and code should mean the same card and the same code, ACE provides anaphoric references via the definite article:
During the processing of the ACE text, all anaphoric references are replaced by the most recent and most specific accessible noun phrase that agrees in gender and number. As an example of "most recent and most specific", suppose an ACE parser is given the sentence:
Then:
refers to the second card, while:
refers to the first card.
Noun phrases within if-then sentences, universally quantified sentences, negations, modality, and subordinated sentences cannot be referred to anaphorically from subsequent sentences, i.e. such noun phrases are not "accessible" from the following text. Thus for each of the sentences:
we cannot refer to a card with:
Anaphoric references are also possible via personal pronouns:
or via variables:
Anaphoric references via definite articles and variables can be combined:
Note that proper names like SimpleMat always refer to the same object.