Translates an Attempto DRS into the Core ACE fragment of Attempto Controlled English (ACE).
- - Kaarel Kaljurand
- - 2012-07-15
The setup: we have DRS-boxes and discourse referents, such that
Each referent lives-in exactly 1 box.
For each box at least 1 referent lives-in it.
Each referent has a unique ID and maps-to a set of conditions.
Each box has a unique ID and has a name (if, then, '', or, `it is false that', etc.)
The task: verbalize each discourse referent, i.e. the conditions
of each discourse referent. And do it in the context of
- the box,
- whether the referent has been verbalized already,
- whether some other referent from the same box has been verbalized already.
The order is important. It is set by referents_to_orderedreferents/2.
For the developer: to see the internals, use:
?- drs_to_coreace:ref2conds(Referent, Conditions, BoxId, SentenceId).
- To be done
- - URGENT: Use "Is it true that ... ?" for Yes/No questions
- - Reorder conditions in OR-contructs so that the implications always come last
Every dog barks and it is false that a cat sleeps or there is a man. (3711)
There is a man or it is false a cat sleeps and if there is a dog ...
- - Every pet is a dog or is a cat ,and is not a cow. # Support for mixing 'and' and 'or' is buggy.
- - A customer enters every card or enters every code. # Serious scoping problem.
- - Every book is something that an author that a publisher that John hates knows writes. (can be improved)
- - What does every man like?
- - What does no man like?
- - There are less than 3 men and less than 3 women.
- - Less than 3 men and John wait.
- - /for-each-of plural constructions/
- - Make `less than' and `at most' work in general
- - Maybe use reflexive pronouns also when definite NPs are available: himself, herself, itself.
- drs_to_coreace(+Drs:drs, -AceSentenceList:list) is det
Empty DRS -> 
Unsupported DRS -> 
Supported DRS -> [sentence1, sentence2, ..., sentenceN], where sentence is an atom
|Drs||- is an Attempto DRS|
|AceSentenceList||- is a verbalization of the input DRS in Core ACE (a list of Core ACE sentences)|
The following predicates are exported, but not or incorrectly documented.
- bigdrs_to_coreace(Arg1, Arg2)