[Attempto] my reasons for subscribing to the list

David Whitten whitten at worldvista.org
Sat Feb 11 20:10:31 CET 2012


I also, would like to explore the ideas that Patrick has brought to us.

On Sat, Feb 11, 2012 at 12:42 PM, Norbert E. Fuchs <fuchs at ifi.uzh.ch> wrote:
>
> On 11 Feb 2012, at 17:34 , Patrick Forkin wrote:
>
>> ... As I writer researching and writing in both English and German I have built a framework to support
>> my work in two languages and even allow me to translate texts I write in English into German.
>>
>> It works well, but I wish to automate certain of its time-consuming tasks.
>>
>> ...
>>
>> For a variety of reasons I ...will look for an ability to use a
>> language that uses natural language or controlled English, to create a form of pseudocode which can be
>> translated into a language such as Prolog.
>>
As I understand, you want to take a specification written in
controlled english or some other CNL,
and produce a program written in the Prolog programming language.

Normally, I think of a Prolog program as taking facts and rules and
producing conclusions
or testing queries to see if they are true.

So one part of this Prolog program is a database of base facts, expressing
relationships between various simple constants.   As an example, we could have a
database of people represented by their names,
and the family relationships between them.
So we might have some people Adam, Eve, Seth, Abel, and Cain.
we might have a relationship "begat" which maps a person to another person
    specifying who the child might be. ie:  begat(Adam,Seth).
we might have a relationship "gender" which maps a person to either
Male or Female.
    so we might have:   gender(Adam,Male).

The rules for a Prolog program express a relationship that extends
the relationships between constants using the relationships already in
the database of facts.
For example, a relationship "father" might hold for people
father( ?PARENT, ?CHILD) :- gender(?PARENT,Male), begat(?PARENT,?CHILD).

Finally, once you have a Prolog program of rules and facts, you can ask it
either to generate implicit information from the defined relationships,
such as giving a list of all the fathers in that are known to it,
or to validate and answer a query for some relationship between two
known constants,
such as father(Eve,Cain) and reply whether this relationship is true,
false, or unknown.

So what I understand that Patrick is asking for the ability to express the
facts and rules for his application using a document that states them
in controlled
natural language.  Creating the facts should be easy enough.
Creating the rules also should be easy. I think Norbert agrees,
except for those which can be expressed in DRS can't be expressed in Prolog

Using the resultant Prolog program for generating implicit results and
for queries
seems to be reasonable, from what I know about Attempto. Specifically, this
is possible if you have some kind of prover (like RACE) that will take the DRS
forms and the "questions" which ask about generating or validating and
answering.

>> Is the language Attempto far enough down the development path to be used in such a context?

I believe it is. Perhaps someone else on the mailing list can validate
my opinion.
>>
>> Are there working projects doing such from which I might gather experiences of others?

Does ACE Wiki do the kind of things that Patrick is talking about?
the URL http://attempto.ifi.uzh.ch/acewiki/ points to several sample wikis .
one of them is a URL: http://attempto.ifi.uzh.ch/webapps/acewikiattempto/ .

I tried to find a URL to a particular page on the wiki, but I don't
know how to do that.


>
> Patrick
>
> If I understood your message correctly, you are addressing two topics:
>
> (1) translation between English and German
> (2) translation of (controlled) English into Prolog
>
> Concerning (1), I'd like to point you to the Grammatical Framework GF (http://www.grammaticalframework.org/).
>
> Concerning (2), 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.
>
Norbert,
could you expand a little on these issues, or point us to a web page
where these example might be found?

> We just started in the EU project MOLTO (http://www.molto-project.eu/) to translate ACE from English into other controlled languages, but results are not to be expected any time soon.
>
> Regards.
>
>   --- nef
> _______________________________________________
> attempto mailing list
> attempto at lists.ifi.uzh.ch
> https://lists.ifi.uzh.ch/listinfo/attempto


More information about the attempto mailing list