The Prolog program in this directory 1) translates both the "affirmative part" of sentences (i.e. "John took a plane from Paris to Baghdad") and the "query part" (i.e. "Is John in Baghdad?"). This allows to "run" the output in smodels with the travel module, and actually get answers to the queries; 2) has a much cleaner algorithmic structure. Marcello has tested the translator on the logic form of the sentence "John took the plane from Paris to Baghdad. Is John in Baghdad?" The output of the translator is: ------------ event(e1,take,11). happened(e1). event_actor(e1,john). object(e1,plane). parameter(e1,from,paris). parameter(e1,to,baghdad). suggested_step(e1, 0). person(john). city(paris). city(baghdad). answer_true(q(e1)):-h(at(john, baghdad), n). answer_false(q(e1)):- -h(at(john, baghdad), n). type_query(q(e1), boolean). ------------ The first block of facts encodes "John took the plane from Paris to Baghdad". The "11" indicates the particular sense of verb "take". The 11th sense of take is "travel or go by means of a certain kind of transportation, or a certain route". The LCC Logic Form encodes each verb as a pair . The "sense" component is essential in the mapping from LCC Logic Form into A-Prolog, because it allows us to map each events to the occurrence of the correct action. The second encodes information that LCC's translator extracted from the WordNet database. The last block encodes the query "Is John in Baghdad?". To use the translator, you will need to copy all the attachments of this email to some directory, and then cd to that directory. You will also need to have SWI-Prolog installed: I used SWI-Prolog because I am more familiar with its string manipulation predicates -- porting to Sicstus requires only minor changes). The translation is obtained by: 1) Entering the "affirmative" part of the logic form in file "test1" (already attached to this email). 2) Entering the "query" part of the logic form in file "query1" (already attached to this email). 3) Running SWI-Prolog. 4) Consulting "translator.pl" with [translator]. 5) Giving the Prolog query "translate.". To have smodels answer the question, you will then need to: 1) Copy the output of the translator in some text file, say "test1.apl". 2) Run "lparse -c n=4 test1.apl interface.apl travel | smodels" Suggestions, comments, and questions are of course welcome. Please, keep in mind that this prototype has been tested only on the above sentence. Other sentences are likely not to work (yet) because information is missing on the link between verbs (besides "to take" and "to be") and the actions used in the travel module.