[Attempto] Attempto Controlled English for Programming (in Prolog)

Norbert E. Fuchs fuchs at ifi.uzh.ch
Sun Feb 12 15:43:16 CET 2012


Pierre-Alexandre

I would like to complement and to partially correct your statements.


On 12 Feb 2012, at 13:18 , Pierre-Alexandre Voye wrote:

> As Norbert said, Prolog semantic is too poor to handle an interesting semantic level.

Well, this is not what I said. I wrote

>> Attempto Controlled English ACE (http://attempto.ifi.uzh.ch/site/) can be translated into Discourse Representation Structures DRS, i.e. first-order logic (see http://attempto.ifi.uzh.ch/ape/). A subset of ACE can be translated into DRSs that can be further translated into Prolog clauses. Recall that Prolog does not allow for clauses with disjunctive heads. Thus ACE sentences of the form "Every A is a B or is a C." cannot be translated into Prolog clauses. There are further syntactic restrictions when you use negation.

That is to say, while full ACE is translated into full first-order logic (FOL), there are subsets of ACE that can be translated into subsets of first-order logic, for instance into Prolog (= definite clause subset of FOL), or into OWL (= various description logic subsets of FOL). 

In fact, early simpler versions of ACE were translated into Prolog and then executed. See our publication from the 1990's (http://attempto.ifi.uzh.ch/site/pubs/).

> ...
> 
> But remember ACE is a tool made to build ontology, and when you try to use it for a programming purpose (my case), it comes a lot of problem.

This statement is misleading. ACE was initially designed as a language for executable specifications, and there is a complete executable specification of an ATM to be found in our publications. Later ACE was used for rule-based systems, business rules, policy rules, medical applications, signal processing, documentation, query language, natural-language interface, and also for ontologies. Thus we call ACE a general knowledge representation language.

ACE has been used to generate executable code, for instance Prolog, rules in the AceRules system, and OWL in ACE View. Furthermore, ACE is interpreted in various theorem provers (RACE, TPTP).

What is your "lot of problem"?

> In fact, it would be interesting to have a doc about how to modify the internal of ACE to be able to experiment grammar extensions.

This statement leaves me absolutely flabbergasted. You cannot only download the complete source code of the ACE Parsing Engine APE (http://attempto.ifi.uzh.ch/site/downloads/), but you have access to the detailed documentation of ACE and APE (http://attempto.ifi.uzh.ch/site/docs/). 

What is missing that prevents you from extending ACE and APE?

Best regards.

Norbert E. Fuchs
Department of Informatics & Institute of Computational Linguistics
University of Zurich






More information about the attempto mailing list