As Norbert said, Prolog semantic is too poor to handle an interesting semantic level.<br>So maybe language like Golog, are maybe Agent BDI (for Belief Desire Intention) languages - which intent to provide a rational agent definition framework are better candidate to become a good programming language with the attempto parser.<br>

<br>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.<br><br>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.<br>

<br><div class="gmail_quote">2012/2/11 David Whitten <span dir="ltr"><<a href="mailto:whitten@worldvista.org">whitten@worldvista.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I also, would like to explore the ideas that Patrick has brought to us.<br>
<div class="im"><br>
On Sat, Feb 11, 2012 at 12:42 PM, Norbert E. Fuchs <<a href="mailto:fuchs@ifi.uzh.ch">fuchs@ifi.uzh.ch</a>> wrote:<br>
><br>
> On 11 Feb 2012, at 17:34 , Patrick Forkin wrote:<br>
><br>
>> ... As I writer researching and writing in both English and German I have built a framework to support<br>
>> my work in two languages and even allow me to translate texts I write in English into German.<br>
>><br>
>> It works well, but I wish to automate certain of its time-consuming tasks.<br>
>><br>
>> ...<br>
>><br>
>> For a variety of reasons I ...will look for an ability to use a<br>
>> language that uses natural language or controlled English, to create a form of pseudocode which can be<br>
>> translated into a language such as Prolog.<br>
>><br>
</div>As I understand, you want to take a specification written in<br>
controlled english or some other CNL,<br>
and produce a program written in the Prolog programming language.<br>
<br>
Normally, I think of a Prolog program as taking facts and rules and<br>
producing conclusions<br>
or testing queries to see if they are true.<br>
<br>
So one part of this Prolog program is a database of base facts, expressing<br>
relationships between various simple constants.   As an example, we could have a<br>
database of people represented by their names,<br>
and the family relationships between them.<br>
So we might have some people Adam, Eve, Seth, Abel, and Cain.<br>
we might have a relationship "begat" which maps a person to another person<br>
    specifying who the child might be. ie:  begat(Adam,Seth).<br>
we might have a relationship "gender" which maps a person to either<br>
Male or Female.<br>
    so we might have:   gender(Adam,Male).<br>
<br>
The rules for a Prolog program express a relationship that extends<br>
the relationships between constants using the relationships already in<br>
the database of facts.<br>
For example, a relationship "father" might hold for people<br>
father( ?PARENT, ?CHILD) :- gender(?PARENT,Male), begat(?PARENT,?CHILD).<br>
<br>
Finally, once you have a Prolog program of rules and facts, you can ask it<br>
either to generate implicit information from the defined relationships,<br>
such as giving a list of all the fathers in that are known to it,<br>
or to validate and answer a query for some relationship between two<br>
known constants,<br>
such as father(Eve,Cain) and reply whether this relationship is true,<br>
false, or unknown.<br>
<br>
So what I understand that Patrick is asking for the ability to express the<br>
facts and rules for his application using a document that states them<br>
in controlled<br>
natural language.  Creating the facts should be easy enough.<br>
Creating the rules also should be easy. I think Norbert agrees,<br>
except for those which can be expressed in DRS can't be expressed in Prolog<br>
<br>
Using the resultant Prolog program for generating implicit results and<br>
for queries<br>
seems to be reasonable, from what I know about Attempto. Specifically, this<br>
is possible if you have some kind of prover (like RACE) that will take the DRS<br>
forms and the "questions" which ask about generating or validating and<br>
answering.<br>
<div class="im"><br>
>> Is the language Attempto far enough down the development path to be used in such a context?<br>
<br>
</div>I believe it is. Perhaps someone else on the mailing list can validate<br>
my opinion.<br>
<div class="im">>><br>
>> Are there working projects doing such from which I might gather experiences of others?<br>
<br>
</div>Does ACE Wiki do the kind of things that Patrick is talking about?<br>
the URL <a href="http://attempto.ifi.uzh.ch/acewiki/" target="_blank">http://attempto.ifi.uzh.ch/acewiki/</a> points to several sample wikis .<br>
one of them is a URL: <a href="http://attempto.ifi.uzh.ch/webapps/acewikiattempto/" target="_blank">http://attempto.ifi.uzh.ch/webapps/acewikiattempto/</a> .<br>
<br>
I tried to find a URL to a particular page on the wiki, but I don't<br>
know how to do that.<br>
<div class="im"><br>
<br>
><br>
> Patrick<br>
><br>
> If I understood your message correctly, you are addressing two topics:<br>
><br>
> (1) translation between English and German<br>
> (2) translation of (controlled) English into Prolog<br>
><br>
> Concerning (1), I'd like to point you to the Grammatical Framework GF (<a href="http://www.grammaticalframework.org/" target="_blank">http://www.grammaticalframework.org/</a>).<br>
><br>
> Concerning (2), Attempto Controlled English ACE (<a href="http://attempto.ifi.uzh.ch/site/" target="_blank">http://attempto.ifi.uzh.ch/site/</a>) can be translated into Discourse Representation Structures DRS, i.e. first-order logic (see <a href="http://attempto.ifi.uzh.ch/ape/" target="_blank">http://attempto.ifi.uzh.ch/ape/</a>). 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.<br>


><br>
</div>Norbert,<br>
could you expand a little on these issues, or point us to a web page<br>
where these example might be found?<br>
<div class="HOEnZb"><div class="h5"><br>
> We just started in the EU project MOLTO (<a href="http://www.molto-project.eu/" target="_blank">http://www.molto-project.eu/</a>) to translate ACE from English into other controlled languages, but results are not to be expected any time soon.<br>


><br>
> Regards.<br>
><br>
>   --- nef<br>
> _______________________________________________<br>
> attempto mailing list<br>
> <a href="mailto:attempto@lists.ifi.uzh.ch">attempto@lists.ifi.uzh.ch</a><br>
> <a href="https://lists.ifi.uzh.ch/listinfo/attempto" target="_blank">https://lists.ifi.uzh.ch/listinfo/attempto</a><br>
_______________________________________________<br>
attempto mailing list<br>
<a href="mailto:attempto@lists.ifi.uzh.ch">attempto@lists.ifi.uzh.ch</a><br>
<a href="https://lists.ifi.uzh.ch/listinfo/attempto" target="_blank">https://lists.ifi.uzh.ch/listinfo/attempto</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>---------------------<br><a href="https://twitter.com/#%21/ontologiae/" target="_blank">https://twitter.com/#!/ontologiae/</a><br><a href="http://linuxfr.org/users/montaigne" target="_blank">http://linuxfr.org/users/montaigne</a><br>

<br>