One of the problems of controlled natural languages is that the restrictions of the language have to be learned in order to write correct sentences. These restrictions are not always easy to explain. A possible solution for this problem is to provide predictive authoring tools. Such an authoring tool guides the user during the creation or modification of sentences. It makes sure that only valid sentences can be created. Thus, parsing these sentences with the ACE parser will never lead to errors.
The most imporant property of an authoring tool is that it enforces the syntactic correctness of an ACE text. The syntactic structure of the text has to be compliant with the syntax of ACE. In many situations, only a subset of the language ACE is used. For example, the ACE to OWL translation supports only a subset of ACE because of the limited expressiveness of OWL. Another example is AceRules that accepts only ACE sentences that can be mapped to rule structures. In those cases, an authoring tool has to enforce this particular subset.
Furthermore, it is often necessary that users comply with a standard terminology. They should not use different words for the same thing. In ACE, such a terminology can be represented as a lexicon. An authoring tool also ensures the lexical correctness by forcing the user to use only the words that are in the lexicon.
To some degree, an authoring tool can also take care of the semantic correctness. If the verb "meets", for example, is defined in some ontology as a relation between humans then the authoring tool can prevent the user from writing sentences like "a man meets a car". We assume that the ontology says that "car" is not human.
There are several existing authoring tools for controlled natural languages:
As an example, we show the authoring tool of AceWiki. The following picture is a screenshot of the AceWiki authoring tool. The numbered components are explained below.
(1) is a read-only text field that shows the beginning of an ACE sentence. This beginning has been entered by a user and it has been accepted by the authoring tool as a correct sentence beginning. Thus, there is at least one possible completion that leads to a correct sentence. The button "Delete" can be used to go back.
The text field (2) can be used for entering the next words of the sentence. If they are a correct continuation of the sentence then they are moved to the text field (1). The text of (2) is also used to filter the entries of the menus (3).
Clicking on the entries of the menu boxes (3) is an alternative way to construct a sentence. There is a menu box for each word class that is allowed at the current position. In this case, only function words, proper names, or references are allowed. The menu box for verbs, for example, is not shown because verbs are not allowed at this position.
If a word is not yet known then it can be added on-the-fly by clicking on the respective menu entry (4). Then a dialog is shown that allows the user to add a new word.
Finally, references can be introduced that point to objects occurring earlier in the sentence (5).
Tobias Kuhn, 2007-08-29