Convert a set of ACE sentences to trees. Assume that the ACE implementation does not have ambiguity, i.e. that we get 1 tree per each sentence.
To evaluate the ambiguity in a (non-ACE) concrete grammar, linearize each tree (but generate only one variant), and parse the obtained linearization, obtaining a list of one or more parse trees. One element of this list is the original parse tree, the other trees stand for alternative meanings.
Display the cases where the roundtrip ACE->LangX->ACE goes wrong, e.g.:
# list of test sentences
ACE sentence 1
# list of languages where roundtripping fails
Ger
# list of ACE sentences that demonstrate the ambiguity
ACE sentence 1-Ger-1
ACE sentence 1-Ger-2
...
Spa
ACE sentence 1-Spa-1
...
ACE sentence 2
...
(Write a Haskell program to perform this analysis/visualization. Such a tool is actually not specific to ACE-in-GF, e.g. one could apply it to Phrasebook, where the role of ACE is played by DisambEng.)
Convert a set of ACE sentences to trees. Assume that the ACE implementation does not have ambiguity, i.e. that we get 1 tree per each sentence.
To evaluate the ambiguity in a (non-ACE) concrete grammar, linearize each tree (but generate only one variant), and parse the obtained linearization, obtaining a list of one or more parse trees. One element of this list is the original parse tree, the other trees stand for alternative meanings.
Display the cases where the roundtrip ACE->LangX->ACE goes wrong, e.g.:
(Write a Haskell program to perform this analysis/visualization. Such a tool is actually not specific to ACE-in-GF, e.g. one could apply it to Phrasebook, where the role of ACE is played by DisambEng.)